ArcGIS API for JS实现要素的查询与定位

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28418387/article/details/82823628

1、实现多要素查询与定位

a、线查询与定位

线要素主要是那些到路线,在查询下下拉选择某种道路类型,便可以获得该图层的layerid,将该ID值传递给要查询的URL,形成完整的查询URL,通过Query()和QueryTask实现查询过程,获取查询结果的features,循环遍历每个feature,添加Graphic样式,在图上高亮显示。

以上部分都比较容易,关键是定位。

之前实现过通过获取单个要素的extent可以定位到单个要素,那么多个要素的定位主要思路就是,获取查询到的每个feature的extent,比较每个extent,保留最大包围extent,具体代码如下:

再通过map.setExtent()方法就可以定位到所有查询要素了

b、点查询与定位

选择一些点地物,比如建制村,同理获取点要素的所有feature,比较所有点要素的经纬度坐标,获取到经度的最大最小值和纬度的最大最小值,来组合成一个新的Extent,再通过map.setExtent()定位

这里需要注意,点要素的样式就不能使用线要素的样式了,线要素使用SimpleLineSymbol,点要素要使用SimpleMarkerSymbol

2、将查询到的要素与FearueTable关联

主要意思是将在地图上查询到的要素,点击查看属性控件后还可以看到对应要素的属性,点击每个要素行还可以定位。

这里实现的主要思路是,查询到的每个要素,获取到它们的crowid属性,并将这些属性存储到全局变量crowids数组中,这样查询到的要素就可以与FeatureTable关联上了,你查询到什么要素FeatureTable就可以根据你查询到的要素的crowid获取到对应的属性表并显示在FeatureTable中。

这里有个细节,每次查询下拉选择图层时都要讲该图层ID传递给FeatureTable中的LayerID变量组成正确的查询URL

猜你喜欢

转载自blog.csdn.net/qq_28418387/article/details/82823628