ArcGIS API for JavaScript 学习之 identifyTask

//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);
       }
   });
}    

事件触发调用即可。

时间: 2024-12-25 15:28:56

ArcGIS API for JavaScript 学习之 identifyTask的相关文章

ArcGIS API for JavaScript 学习笔记 (一) --第一个WebGIS应用程序

说明:本地部署后续我会尝试. 简单介绍: 开发环境是Visual Studio 2012,因为它为所有的.aspx文件..htm文件以及外部的.js文件提供了IntelliSense(智能提示),相当于其他软件的代码自动补全功能,非常方便.接下来是我的第一个Javascript API 应用程序.ESRI在其arcgis online中提供了在线的ArcGIS API for JavaScript,在web应用中直接引用即可,无需下载安装:当然也可以下载API,然后部署到自己的web服务器,在这

ArcGIS API for JavaScript学习(1):第一个地图

1.简介 ArcGIS API for JavaScript跟随ArcGIS 9.3同时发布,是ESRI根据JavaScript技术实现的调用ArcGIS Server REST API接口的一组脚本.当前的最新版本是Version 3.20.通过ArcGIS API for JavaScript可以将ArcGIS Server提供的地图资源和其它资源(ArcGIS Online)嵌入到Web应用中. 在ArcGIS API For JS中,esri.Map类是最重要的一个类,Map作为地图图层

Arcgis api for javascript学习笔记-初步尝试(3.2X版本)

Arcgis api for javascript(3.22版本)官方地址 :https://developers.arcgis.com/javascript/3/ 1. 根据官方示例实现一个简单地图展示功能. 示例代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <link rel="stylesheet" href="https://js.arcgis.com/3.22/esri/css/esri

arcgis api for javascript学习(2016.9.22)

esri/config 用来修改一些配置的对象.只有一个属性对象defaults,defaults对象有四个属性:geometryService string,kemlService string,map object,io object.我们可以如下进行设置: require(["esri/config"],function(esriConfig){ esriConfig.defaults.geometryService="";// ...... }); 依据这个

Arcgis api for javascript学习笔记-三维地图的飞行效果

其实就只是用到了 view.goTo()  函数,再利用 window.setInterval()  函数(定时器)定时执行goTo().代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scala

ArcGIS API For JavaScript学习笔记

描述 此示例演示如何创建一个简单的 LayerList用于切换可见性.在该特定示例中,小部件包含在侧面板内.该窗口小部件使用ArcGIS Online Web地图中的图层. <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewpo

arcgis API for javascript 学习笔记

ArcGis Server地图是缓存的,意味着它有服务器管理员简历提示性能的一组预先渲染的切片.由于这个原因地图通过ArcGISTiledMapServiceLayer表示 如果地图服务没有一个可用的缓冲,使用ArcGISDynamicMapServiceLayer. 使用下列行创建地图:var map = new esri.Map("map");

ArcGIS API for JavaScript 4.2学习笔记[5] 官方API大章节概述与内容转译

内容如上,截图自ESRI官网,连接:ArcGIS API for JavaScript 4.2 [Get Started] 类似于绪论一样的东西,抽取了最需要关注的几个例子.如:加载Map和View,加载layers,使用弹出窗口,视觉化,与使用窗口小部件.(wtf居然没有分析你想搞事情啊web除了展示难道不应该有()&&*--@) [Mapping and Views] (点击进入我写的章节详细介绍) 最基础的,知道地图和视图的区别,能使用2D和3D地图,对地图的布局有一定的了解,对地图

ArcGIS API for JavaScript 4.2学习笔记[1] 显示地图

ArcGIS API for JavaScript 4.2直接从官网的Sample中学习,API Reference也是从官网翻译理解过来,鉴于网上截稿前还没有人发布过4.2的学习笔记,我就试试吧. 什么是ArcGIS API for JS?这里就不多介绍了,最关键的一点是4.x版本与3.x版本的变化,按官方的意思是重新写了底层. 笔记中规定: ArcGIS API for JavaScript简称AJS 使用CDN(即不配置本地环境)进行测试开发 其余根据需要进行修改.增删. 要将地图显示在h