Arcgis javascript api - 获取多边形几何

时间:2012-12-21 09:13:21

标签: javascript api arcgis

我正在使用ArcGis javascript api 3.2。我有一张地图和一层。 如何获得鼠标单击事件发生的多边形几何?

1 个答案:

答案 0 :(得分:0)

不仅仅是多边形id,你可以通过这样做从地图服务中获取任何参数...

1)通过传递MapService作为参数来创建一个新的IdentifyTask()。

identifyTask = new esri.tasks.IdentifyTask("<Map Service URL should go here>");

2)创建一个新的IdentifyParameters()并设置以下属性。

identifyParams = new esri.tasks.IdentifyParameters();
identifyParams.tolerance = 2;
identifyParams.returnGeometry = true;  
identifyParams.layers = esri.tasks.IdentifyParameters.LAYER_OPTION_ALL; 
identifyParams.layerIds = [0,1,2,3,4];
identifyParams.sr=map.spatialreference;
identifyParams.width  = map.width; 
identifyParams.height = map.height;

3)点击鼠标后应调用方法。你可以这样做

dojo.connect(map, "onClick", uponClick);

4)单击多边形时,将调用onClick()方法。在onClick()方法内部,通过传递identifyParams作为参数来调用identifyTask.execute。

function uponClick(evt){
  identifyParams.geometry = evt.mapPoint;
  identifyParams.mapExtent = map.extent;
  identifyTask.execute(identifyParams, function(result) { 
     for(var i=0; i<result.length; i++){                         
        polyId=result[i].feature.attributes["UNIQPOLYID"];
     }//end of for
  });//end of execute
}//end of uponClick

UNIQPOLYID是地图服务将返回的方法之一。

您可以在此链接中找到详细的样本

http://help.arcgis.com/en/webapi/javascript/arcgis/help/jssamples_start.htm#jssamples/find_drilldown.html