码迷,mamicode.com
首页 > 编程语言 > 详细

ArcGIS API for JavaScript 学习之 identifyTask

时间:2015-12-25 18:52:45      阅读:879      评论:0      收藏:0      [点我收藏+]

标签:

//Identify查询
function initIdentify() {
    require(
       [
"esri/map",
"esri/InfoTemplate",
"esri/layers/ArcGISDynamicMapServiceLayer",
"esri/symbols/SimpleFillSymbol",
"esri/symbols/SimpleLineSymbol",
"esri/tasks/IdentifyTask",
"esri/tasks/IdentifyParameters",
"esri/dijit/Popup",
"dojo/_base/array",
"esri/Color",
"dojo/dom-construct",
"dojo/domReady!"
       ],
   function (
Map, InfoTemplate, ArcGISDynamicMapServiceLayer, SimpleFillSymbol,
SimpleLineSymbol, IdentifyTask, IdentifyParameters, Popup,
arrayUtils, Color, domConstruct
) {
       var identifyURL = "http://119.163.121.32:6080/arcgis/rest/services/kjgk/MapServer";
        
       identifyTask = new IdentifyTask(identifyURL);
       identifyParams = new IdentifyParameters();
       identifyParams.tolerance = 3;
       identifyParams.returnGeometry = true;
       identifyParams.layerIds = [0, 1, 2, 3];
       identifyParams.layerOption = IdentifyParameters.LAYER_OPTION_ALL;
       identifyParams.width = map.width;
       identifyParams.height = map.height;
       map.on("click", doIdentify);

       function doIdentify(event) {
           //Identify的geometry
           identifyParams.geometry = event.mapPoint;
           // Identify范围
           identifyParams.mapExtent = map.extent;
           var deferred = identifyTask.execute(identifyParams).addCallback(function (response) {
               return arrayUtils.map(response, function (result) {
                   var feature = result.feature;
                   var layerName = result.layerName;
                   feature.attributes.layerName = layerName;
                   if (layerName === SDE.heat) {
                       var heatTemplate = new InfoTemplate("属性信息",
                           "矿井编号:${KJBH}</br>矿井名称:${KJMC}</br>矿井类型:${KJLX}");
                       feature.setInfoTemplate(heatTemplate);
                   } else if (layerName === SDE.geo) {
                       var geoTemplate = new InfoTemplate("属性信息", "编号:${BH}");
                       feature.setInfoTemplate(geoTemplate);
                   } else if (layerName === SDE.dh) {
                       var dhTemplate = new InfoTemplate("属性信息", "编号:${ID}");
                       feature.setInfoTemplate(dhTemplate);
                   } else if (layerName === SDE.ckq) {
                       var ckqTemplate = new InfoTemplate("属性信息", "编号:${KJBH}");
                       feature.setInfoTemplate(ckqTemplate);
                   }
                   return feature;
               });
           });
           map.infoWindow.setFeatures([deferred]);
           map.infoWindow.show(event.mapPoint);
       }
   });
}    

事件触发调用即可。

ArcGIS API for JavaScript 学习之 identifyTask

标签:

原文地址:http://www.cnblogs.com/blueicejing/p/5076321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!