GIS地图工具 (二)

 

李泉 陈玉进 (南京跬步科技有限公司http://www.creable.cn

13.2 选择工具

       许多软件都有选择工具,地理信息系统也不例外,选择工具供用户选中图元之后,进行相应的操作。选择工具可分为二类:点选和框选。点选需要用户在地图窗口中点击一个位置来选中图元,框选则需要用户在地图窗口中拉一个框来选择,被框包含或与框相交的即被选中。图3说明的是点选的流程

 

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

 

13.3 编辑工具

       支持编辑的地理信息系统软件都有一系列的编辑工具,通常包含添加点、线、面,删除地图要素,修改地图要素的图形,修改地图要素的属性等等。地理信息系统软件的底层能支持编辑需要符合几个条件:

1.图层中容纳要素的集合必须能够动态添加删除修改。通常为了加快随机访问的速度,图层中用来管理地图要素的集合类会采用数组(数组随机访问最快)。而数组动态添加一个要素很慢,需要再申请一个比之前大一个的内存块,将原来的拷贝进这个新的内存块。链表结构则能够在不需要复制原来信息的前提加快速添加一个要素。故可采用数组和链表相结合的方式来管理地图要素。

2.文件结构能够支持动态添加删除修改。在执行保存操作的时候,如果文件结构不支持动态添加删除修改,势必要从头到尾将所有地图要素写入到文件中,对于大数据量这显然不合适。欲达到此要求可采用二种结构:

设置标记。即在每个要素前面添加一个标记位来表示是否被删除了。添加的要素写入到文件末尾,修改的要素首先将原始要素标记为删除,然后将新要素写入到文件末尾。

预留空间。即在文件中预留一些空间供添加要素使用,每个要素之后预留空间供修改使用。如出现预留空间不足的情况,需要在预留空间中写入一个指针,表示这个新要素存放在文件中的位置。

 

       添加点线面的流程差不多,仅以添加点为例。待用户输入好新要素的图形和属性之后,将新要素加入内存中和老要素统一管理,并可以写入到文件中持久化。添加线和添加面的时候会用到捕捉功能,这里大致说明一下捕捉功能如何实现。用户开启捕捉功能之后,需要先将屏幕上相关的节点(包括点要素、线上和面上的节点)转换为窗口坐标添加到一个链表里,用户鼠标单击之后,判断这个单击位置是否靠近链表中的某一个点,靠近则自动将光标移动到该点上。

       修改地图要素的图形主要是修改点的位置、线和面上节点的位置,删除线和面上的节点等操作。修改工具的流程是这样的:首先用户选择一个图元,然后进入编辑模式,这时候用户移动节点位置之后,通过单击鼠标右键结束修改工作,修改工具再调用引擎中相应的函数来保存用户的更改。删除节点的操作也是如此流程。

       修改地图要素的属性工具的流程:首先用户选择一个图元,然后该工具读取这个图元所在图层的属性结构(一个图层上所有图元共享同一种属性结构),再读取该图元的属性值,并以对话框的形式展现在用户面前,供用户修改,最后该工具调用引擎相应函数保存对属性的修改。

13.4 鹰眼工具

       鹰眼在地理信息系统中属于一个基础功能,许多这类软件都提供了该功能。鹰眼能够给用户一个更广阔的视野,用户也可以在鹰眼窗口中点击一个位置,主窗口也会跳转到相应的位置。主窗口中显示的实际地图范围也会在鹰眼窗口中体现出来。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值