(十九)WebGIS中I查询的原理及设计(包含AGS、GeoServer、Supermap)

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

我们在使用arcmap时,经常会用到被称为I查询的工具。具体功能便是,当激活I查询功能后,鼠标点击到某个要素上时,界面上会弹出一个对话框用来显示该要素的各属性信息。该功能截图如下:

                       

2.原理

在WebGIS中设计和实现该功能之前,我们有必要对该功能的原理做一个了解。

在OGC的WMS标准中规定了一个接口:GetFeatureInfo。该接口的功能描述便是:根据屏幕坐标、当前视图范围等参数,获得屏幕坐标某处要素的信息。

在OGC的WFS标准中也规定了一个接口:GetFeature。该接口同样提供了获取一个符合GML规范的数据文档的功能。

针对不同的地理服务器,我们选择以上两个不同的接口来实现。

这里我分别简述如何在AGS、GeoServer和Supermap中利用WMS或WMTS的接口来进行I查询。

2.1AGS中的I查询

AGS中我们选择WMS的GetFeatureInfo接口来实现。其本身提供了I查询界面,如下:

 

具体的rest请求格式为如下:

 

2.2GeoServer中的I查询

在GeoServer中我们选择利用WFS中的GetFeatrue来实现。

查询中,需要注意的是Filter的编写。这里给出一个样板例子:

 

2.3Supermap中的I查询

超图的WFS服务中提供了要素的范围查询界面,如下所示:

 

 

具体的REST服务请求格式为:

 

3.设计思路

这里我直接给出流程图:

 

4.优化设计

4.1展示结果可配置

当我们通过地理服务器查询出所有的结果时,可能有些结果并不是我们想要的。比如:

a.一个图层包含了很多字段,而我们只想展示其中的几个字段。

b.图层字段均是英文或者专业术语,而我们想换一种名称。

这里我们有必要在我们的数据库中设计一张与查询展示相关的表,该表中要包含这样一些信息:图层号、图层字段原始名称、图层字段展示别名、字段展示顺序、字段类型等。

这样我们的流程可稍作调整,变为:

 

4.2属性数据和空间数据展示的优化

在返回结果集中让属性数据和空间数据进行合理的关联。当点击到相关的属性数据时能够在地图上联动显示出此时属性数据所对应的要素。

效果如arcmap中的I查询。

5.效果展示

 

 

6.总结

I查询是WebGIS中很重要的一个功能,怎么样使其有更好的展示效果以及可扩展性也是仁者见仁智者见智。在下一章中,我将跟大家一起探讨WebGIS中图层树的设计和实现,欢迎大家继续关注。

 

                                                                      -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                           如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                           

时间: 2024-09-05 13:13:08

(十九)WebGIS中I查询的原理及设计(包含AGS、GeoServer、Supermap)的相关文章

(十八)WebGIS中清空功能和地图定位功能的设计以及实现

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 当地图中增加了很多元素后,对不同的元素需要进行一定的控制,最简单的控制就是能对元素有选择的进行清空删除.在本节中,还将介绍WebGIS中另外一个常用功能,即地图定位功能.具体描述便是:当输入一个坐标点后,能够将地图缩放到该点处.下面我便就以上两个功能展开此章节的内容. 2.清空功能 2.1设计思路 根据功能点,我们可以将清空分为如下几个情形: a.清空某个或

(十)WebGIS中地理坐标与屏幕坐标间的转换原理

 文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 地图本身是拥有坐标的,一般可以大致分为平面坐标和经纬度坐标,在这里我们统称为地理坐标,比如北京,(115.9°E ,39.6°N)和(506340,304400)均是其地理坐标,只是表示形式不同而已. 我们在上一章讲解了矢量图层中数据的来源,最后提出了一个还未解决的问题,即当我们获得了矢量数据后,如何在屏幕中将这些数据里的地理(Geometry)坐标转换为

(十六)WebGIS中偏移补偿量引发的问题之探讨

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 在上一章里讲解地图平移功能的实现时,我在最后提出了两个问题: A.在地图平移后,矢量图层的canvas的XY都发生了变化,此时根据地理坐标转换为屏幕坐标公式得出的屏幕坐标,在canvas上能将要素正确显示吗? B.矢量图层canvas的原点坐标XY有需要还原成初始的(0,0)的时候吗? 对这两个问题我给出的答案是:不能和需要. 在这一章里,我们将详细讲解得出

(十二) WebGIS中矢量图层的设计

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 在前几章中我们已经了解了什么是矢量查询.屏幕坐标与地理坐标之前的转换以及要素的设计,有了这些知识,这一章里我们终于可以进行矢量图层的设计了. 在Catalog里创建一个FeatureClass时,我们能够选择是创建点图层或者线图层或者面图层等.所谓点图层,即该图层中的要素只能是点,其他几个图层顾名思义,也是如此.那么在WebGIS中,我们同样也可以按照Arc

(十五)WebGIS中平移功能的设计和实现

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 这一章我们将详细讲解WebGIS工具栏中另一个基础工具--平移工具(Pan).在介绍命令模式时,我们已经知道了此工具为Tool型的. 这个工具主要有如下两个功能: A.当切换到此工具上时,按下鼠标不放,移动鼠标时可以拖动地图. B.当切换到此工具上时,点击鼠标(鼠标不做平移),可以使地图平移,以点击处为中心. 2.设计 2.1 原理 我们已经知道,WebGI

(十一)WebGIS中要素(Feature)的设计

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 在GIS中元素一般分为点元素,线元素,面元素以及symbol元素(特殊的点元素)等.与此对应,图层可以分为点图层,线图层,面图层以及标注图层等.从第9章到第10章,我给大家讲解了什么是矢量数据.矢量数据的来源.矢量数据的构造.以及矢量数据中的地理坐标与屏幕坐标之间的转换.在了解了这些概念和算法以及流程后,这一章我们将开始讲解设计出一个矢量图层前的最后一步,设

(十四)WebGIS中地图放大缩小的设计和实现

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 在上一章中,我们给出了整个工具栏设计的核心,使用命令模式,并设计了具体工具类所继承的基类--Command类.从这一章开始我们便正式进入了具体工具类的设计和实现. 放大和缩小工具是最基础的工具之一,其操作分为三种: a.点击地图,进行放大缩小 b.拉框,进行放大缩小 c.滚轮调控放大缩小 针对这三种操作方式,我们进行了不同的代码逻辑设计. 2.分析 a.滚轮

(八)WebGIS中栅格图层的设计

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.    前言 我们在上一章里了解到WebGIS中栅格图层的本质--地图图片.而从之前的第二章到第五章,我们详细的介绍了地图图片的获取原理和方法.所以在设计栅格图层前,我们已经知道了栅格图层中数据是如何获得的,剩下的便是怎样将这个过程用一种符合面向对象的设计原则来进行实现. 2.栅格数据获得的流程 这里我再次将栅格数据获得的流程描述一遍: 首先,得到屏幕范围内的地图

秋色园QBlog技术原理解析:系列终结篇:最后的AOP策略(十九)

开篇闲话: 好几个月没写文章了,从9月15号发布新浪"微博粉丝精灵"V1.0后,持续的几个月都在折腾它,现在都折腾到V3.4版本了. 因此,本篇迟来了三个月了,同时,本篇也是本系列的最后一篇了,也是秋色园最后杀手锏,霸气总该是要外露的.   上节回顾: 上节  秋色园QBlog技术原理解析:性能优化篇:读写分离与文本数据库(十八), 秋色园 QBlog 将一些简单频繁的数据,借用文本外储,来分减一些压力,从而为并发降温,保障网站的顺利运行.   本节概要: 文本外储,在一定程序上解决了