WebGIS中基于AGS的画圆查询简析以及经过Polygon来布局圆的算法88bifa必发娱乐

文章版权由小编李晓晖和网易共有,若转发请于显著处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

有些项目须求中要求在前者举行画圆查询,将圆范围上的多方面形要素在前者进行体现。因为此项目标环境是AGS环境,考虑采取AGS的I查询来成功。

   88bifa必发娱乐 1                    

2.I询问的连锁参数介绍

I查询中关键涉嫌到如下几个参数:geometry、geometryType、layerDefs、layers、tolerance、mapExtent、imageDisplay等。

2.1亮堂相对简便易行的参数

略知一二geometry、geometryType、layerDefs、layers那是七个参数绝对简便易行。

Geometry:查询要素的布局。

GeometryType:查询的不二法门,分为点、线、面、四角范围查询。

LayerDefs:查询过滤条件,可以针对须求查询的Layers来设置属性过滤。

Layers:须求查询的图层。有top、visible、all两种过滤图层模式。

2.2明白相对复杂的参数

在I查询的参数中还有tolerance、mapExtent、imageDisplay这样七个参数,他们之间是互为关系的,掌握起来有点复杂。

官方的文书档案上有如下描述:

 88bifa必发娱乐 2

字面上,我们能够将以上八个参数明白为:查询缓冲范围、查询时的地形图范围、查询时的图片大小。

那里,笔者将进一步表达下那八个参数内在的情致。

mapExtent:指的是此时大家做I查询时荧屏范围上的地理坐标范围。

ImageDisplay:包蕴了三个值:查询时的荧屏地图像素级中度(height:px)、宽度(width:px)、像素DPI。

Tolerance:查询时依据像素级的缓存大小(不是动真格的的地理长度)。

透过自笔者上边的描述,大家应该能够窥见那八个参数的内在关联。即,通过mapExtent和ImageDisplay,地图服务器内部能够算出此时的四个像素所对应的真人真事地理单位长度。然后再乘以tolerence中的像素级长度,地图服务器内部便能赢获得真实的缓冲地理级长度。

2.3总结

询问了以上参数的真人真事意思后,大家得以对项目供给给出第多个缓解方案,即利用I查询的点类型查询来完结。

3.方案一:利用I查询的点类型查询来成功,可行?

3.1测试

 我们着想,地图服务器内部的点查询相应是:基于点坐标以及缓冲长度,创设出3个圆来进行查询。而真实际情状形真的如此呢?以下是三个对点类型查询的测试:

 88bifa必发娱乐 3

大家发现,在I查询的点类型查询后,对圆范围本没有接触到的72③ 、1564五个要素也被询问出来,那又是怎么?

答案是:点类型查询,并不是如大家事先知道的缓冲出贰个圆,而应该是缓冲出了2个Extent。如图,当我们创设了这一个Extent后,确实能够将本不被圆涉及到的七个面要素也询问出来。

3.2结论

I查询中基于point的询问其实是构造extent的询问,并不吻合与供给中的圆查询。可是I查询可以提供的询问办法又唯有:点、线、面、范围查询种种,那终究该怎么开始展览圆查询?那里大家付出别的一个方案:用面来效仿圆进行查询。

4.方案二:用面来模拟圆,进行I查询多边形类型查询,可行?

4.1Polygon模拟圆的算法

咱俩大体思路是:在圆上依据360度,一度取1个点,然后构造成一个polygon。具体贯彻如下:

 88bifa必发娱乐 4

4.2测试和结论

测试进度相对简单,小编不再描述,那里一贯交给测试结果:正确。

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

相关文章