leaflet下对arcgis server的服务进行属性识别

使用arcgis 自己的服务是可以的,但其实也可以esri-leaflet.js这个提供的插件会方便很多,贴上插件地址:https://esri.github.io/esri-leaflet/api-reference/tasks/identify-features.html

function identify(graphic) {
    if (identifiedFeatures && identifiedFeatures.length > 0) {
      for(var i = 0;i<identifiedFeatures.length;i++)
      map.removeLayer(identifiedFeatures[i]);
    }
    layer
      .identify()
      .layers('all') // just the counties sublayer
      .on(map)
      .at(graphic)
      .run(function (error, featureCollection) {
        if (error) {
          alert('识别地块错误')
          return;
        }
        // make sure at least one feature was identified.
        getAllDJH(featureCollection)
      });
 
}
map.on('click', function (e) {
identify(e.latlng)
})

layers是要识别的哪一个图层,具体语法 [top | visible | all]:layerId1,layerId2

例子:layers('all ')或者 layers('visible:2,5')

属性识别还有很多其他的参数,比如layerDef是用于识别的时候过滤要素,比如time用于过滤某段时间的要素。

posted @ 2022-09-20 09:32  拎着红杯子的黄鸭子  Views(150)  Comments(0Edit  收藏  举报