GIS地图工具 (二)

news/2024/7/8 4:52:41 标签: 工具, 图形, 引擎, 算法, 工作

 

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

13.2 选择工具

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

 

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

 

13.3 编辑工具

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

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

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

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

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

 

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

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

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

13.4 鹰眼工具

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

 


http://www.niftyadmin.cn/n/508288.html

相关文章

众辰nz200变频器使用说明书_变频调试,变频器驱动电机空载试运行调试的方法和步骤...

1、设置电机的功率、极数,要综合考虑变频器的工作电流。2、设定变频器的最大输出频率、基频、设置转矩特性。通用变频器均备有多条VPf曲线供用户选择,用户在使用时应根据负载的性质选择合适的VPf曲线。如果是风机和泵类负载,要将变频器的转矩…

GIS地图工具 (三)

李泉 陈玉进 (南京跬步科技有限公司http://www.creable.cn ) 图4就是一个鹰眼工具的例子,主窗口的左上角有一个鹰眼窗口,该窗口显示了比主窗口视野更广的地图,其中用一矩形表示当前主窗口显示的内容在鹰眼窗口中的位置…

GIS Geometry对象模型

GIS Geometry对象模型 李泉 陈玉进 (南京跬步科技有限公司http://www.creable.cn ) 这章介绍OGC(Open GIS Consortium)推荐的Geometry对象模型,此几何形态在后面的算法中大量用到,在整个GIS的对象模型中,Geometry占有很…

微信撤回软件安卓版_微信内测更新,更新8个功能

没错,微信又来更新了,不过不是iOS的,机友们都知道iOS版本的微信和安卓版本的微信在很多时候并不是同步更新的版本,功能更新谁先谁后也是没有个准,比如修改微信号这个大家还记的是哪个版本先发布的吧。一般来说iOS版本微…

GIS Geometry对象模型 (二)

李泉 陈玉进(南京跬步科技有限公司http://www.creable.cn ) 8. Polygon Polygon是一个只包含一个外环和若干格内环的Surface。外环是一个LinearRing,切就是Polygon的外框线。内环都在Polygon内部,组成Polygon内部的岛屿…

js创建热点区域_一站式新闻热点抓取与挖掘,可作为毕设项目

分享2个项目新闻热点爬取与挖掘 地址:https://github.com/Jacen789/HotNewsAnalysis分类:Python爬虫,Python数据分析简介:自动抓取新浪、搜狐、新华网新闻,通过对新闻内容聚类,得到新闻热点;再对热点进行分…

获取payload_CTF必备技能丨Linux Pwn入门教程——利用漏洞获取libc

Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程。教程仅针对i386/amd64下的Linux Pwn常见的Pwn手法,如栈,堆&#xf…

矢量数据栅格化——多边形填充

矢量数据栅格化 李泉 陈玉进(南京跬步科技有限公司http://www.creable.cn ) 在计算机绘制图形过程中,除了需要绘制出多边形的轮廓线之外,有时还希望用某种色彩来填充图形的内部,以使得图形具有明暗自然、色彩丰富以及形…