您的位置:首页 > 其它

GIS地图工具 (二)

2009-09-26 20:05 232 查看
李泉 陈玉进 (南京跬步科技有限公司http://www.creable.cn
13.2 选择工具
许多软件都有选择工具,地理信息系统也不例外,选择工具供用户选中图元之后,进行相应的操作。选择工具可分为二类:点选和框选。点选需要用户在地图窗口中点击一个位置来选中图元,框选则需要用户在地图窗口中拉一个框来选择,被框包含或与框相交的即被选中。图3说明的是点选的流程



该流程与信息工具类似,只是最终的操作是“选中该要素”,显示选中了之后的效果,并记下该要素的指针,供用户使用相应的命令操作该对象。框选则需要判断地图要素是否被框包含或者与框相交,这要用的前面章节介绍的算法。

13.3 编辑工具
支持编辑的地理信息系统软件都有一系列的编辑工具,通常包含添加点、线、面,删除地图要素,修改地图要素的图形,修改地图要素的属性等等。地理信息系统软件的底层能支持编辑需要符合几个条件:
1.图层中容纳要素的集合必须能够动态添加删除修改。通常为了加快随机访问的速度,图层中用来管理地图要素的集合类会采用数组(数组随机访问最快)。而数组动态添加一个要素很慢,需要再申请一个比之前大一个的内存块,将原来的拷贝进这个新的内存块。链表结构则能够在不需要复制原来信息的前提加快速添加一个要素。故可采用数组和链表相结合的方式来管理地图要素。
2.文件结构能够支持动态添加删除修改。在执行保存操作的时候,如果文件结构不支持动态添加删除修改,势必要从头到尾将所有地图要素写入到文件中,对于大数据量这显然不合适。欲达到此要求可采用二种结构:
① 设置标记。即在每个要素前面添加一个标记位来表示是否被删除了。添加的要素写入到文件末尾,修改的要素首先将原始要素标记为删除,然后将新要素写入到文件末尾。
② 预留空间。即在文件中预留一些空间供添加要素使用,每个要素之后预留空间供修改使用。如出现预留空间不足的情况,需要在预留空间中写入一个指针,表示这个新要素存放在文件中的位置。

添加点线面的流程差不多,仅以添加点为例。待用户输入好新要素的图形和属性之后,将新要素加入内存中和老要素统一管理,并可以写入到文件中持久化。添加线和添加面的时候会用到捕捉功能,这里大致说明一下捕捉功能如何实现。用户开启捕捉功能之后,需要先将屏幕上相关的节点(包括点要素、线上和面上的节点)转换为窗口坐标添加到一个链表里,用户鼠标单击之后,判断这个单击位置是否靠近链表中的某一个点,靠近则自动将光标移动到该点上。
修改地图要素的图形主要是修改点的位置、线和面上节点的位置,删除线和面上的节点等操作。修改工具的流程是这样的:首先用户选择一个图元,然后进入编辑模式,这时候用户移动节点位置之后,通过单击鼠标右键结束修改工作,修改工具再调用引擎中相应的函数来保存用户的更改。删除节点的操作也是如此流程。
修改地图要素的属性工具的流程:首先用户选择一个图元,然后该工具读取这个图元所在图层的属性结构(一个图层上所有图元共享同一种属性结构),再读取该图元的属性值,并以对话框的形式展现在用户面前,供用户修改,最后该工具调用引擎相应函数保存对属性的修改。
13.4 鹰眼工具
鹰眼在地理信息系统中属于一个基础功能,许多这类软件都提供了该功能。鹰眼能够给用户一个更广阔的视野,用户也可以在鹰眼窗口中点击一个位置,主窗口也会跳转到相应的位置。主窗口中显示的实际地图范围也会在鹰眼窗口中体现出来。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: