我正在使用 ArcGis javascript api 3.2。我有一张地图和一个图层。我将如何获得发生鼠标单击事件的多边形几何?
问问题
1864 次
1 回答
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 是地图服务将返回的方法之一。
您可以在此链接中找到详细示例
于 2012-12-28T03:26:47.500 回答