GIS地图工具(一)

 

GIS地图工具

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

    在地理信息系统中具有许多不同种类的工具供用户使用,友好的GIS核心组件会提供一些工具缺省的实现。地图工具根据其用途的不同可以分为四大类:浏览工具、选择工具、编辑工具、鹰眼工具。GIS核心组件中的地图控件应该提供一个工具接口供用户程序实现,以达到工具扩展的目的。下面四个小节将分别讨论这几种工具。

13.1 浏览工具

       在阅读这一章节之前,读者可以先回顾一下前面介绍的显示比例尺的概念。显示比例尺等于窗口中所显示的实际座标宽度与屏幕宽度之比,显示比例尺越大,则能看到的地图就越多,视野越宽。显示比例尺越小,能看到的地图就越少,视野越窄。在地理信息系统中,浏览分为对地图要素图形的浏览和对地图要素属性的浏览。这里将浏览工具分为放大工具、缩小工具、平移工具、信息工具,其中前三个工具用于对地图要素图形的浏览,放大工具能够将地图窗口中的地图放大显示,能够将地图要素放大展现在用户面前,但视野会变小,即看到的范围比之前小,显示比例尺缩小。缩小工具则相反,将地图要素缩小显示并增加视野,显示比例尺放大。平移工具可以在不改变当前显示比例尺的情况下,移动窗口并显示地图的其他位置。信息工具可以让用户查看某个地图要素的属性信息,多数以对话框的形式显示该地图要素所有字段的值。

13.1.1 放大工具、缩小工具和平移工具

       放大工具的实现主要是将显示比例尺缩小,GIS引擎自己就会将视图放大,反之则将视图缩小。前面的章节介绍过,地图要素读取之后,通过空间索引、MBR的过滤之后,需要绘制到窗口中,绘制之前需要进行一步地图实际座标到窗口座标的转换工作,这个转换过程使用的公式其中就有这个显示比例尺作为参数,只要将这个比例尺缩小,即可调用GIS引擎的方法来实现放大地图的功能。图1为地图座标转屏幕座标的流程。只要缩小步骤2中的显示比例尺或者等比例缩小步骤3中的显示范围,即可达到放大地图显示的目的,反之则是缩小工具的实现方式。修改步骤3中显示范围的中心点,即可达到平移地图的效果。

平移工具如果要想提供平滑拖动效果的话需要使用双缓冲技术来做,这里简单介绍一下双缓冲的原理,首先在内存中新建一个和窗口一模一样的画布,先将所有的东西画到这个画布上,然后一次性贴到窗口中,这样就可以有效的避免拖动效果中的闪烁。

 

 

 

 

13.1.2 信息工具

       信息工具用于向用户展现地图要素的属性。其实现的流程图如下

 

信息工具应该有一个选取策略,在注重信息点的地图上可以先遍历点,再遍历线,最后再遍历面,读者可以自行确定这种选取策略。地图要素经过空间索引和窗口两道过滤之后,遍历过滤之后的要素,计算这些要素与用户单击位置的窗口距离(一般为象素),与您制定的标准比较,如果符合标准则显示该要素的属性,循环结束。此种方法仅仅显示一个图元的属性,如果用户单击的位置下面具有多个图元那么只好显示第一个被遍历到的图元,读者可以尝试自己增加这种情况的处理,使得程序能够显示所有符合标准的图元属性。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章