实现效果

ArcGISDynamicMapServiceLayer加载的图层(可为其它Layer加载的图层),实现此图层加载的元素周围点击进行空间查询,小窗口显示此元素的属性信息

代码


var smdf_url; //layer图层的server服务地址
var map;//地图对象
$(function() {dojo.require("esri.map");dojo.require("esri.layers.ArcGISDynamicMapServiceLayer");dojo.require("esri.SpatialReference");dojo.require("esri.tasks.IdentifyTask");dojo.require("esri.tasks.IdentifyParameters");dojo.require("esri.geometry.ScreenPoint");dojo.require("esri.dijit.editing.AttachmentEditor");dojo.require("dojo.dom");/*** 加载init()初始化*/dojo.addOnLoad(init);
});/*** 初始化地图加载图层*/
function init() {var spatialReference = new esri.SpatialReference({"wkid":4490});map = new esri.Map("mapDiv");map.spatialReference = spatialReference;m_graphicsLayer = new esri.layers.ArcGISDynamicMapServiceLayer(smdf_url,{"spatialReference" : {"wkid" : 4490}});map.addLayer(m_graphicsLayer);initFunctionality();
}/*** 空间查询属性设置*/
function initFunctionality() {map.on("click", doIdentify);//创建地图点击事件identifyTask = new esri.tasks.IdentifyTask(smdf_url);//查询identifyParams = new esri.tasks.IdentifyParameters();//查询参数identifyParams.tolerance = 10;//容差范围identifyParams.returnGeometry = true;//是否返回图形identifyParams.layerIds = [ 0 ];//查询图层identifyParams.layerOption = esri.tasks.IdentifyParameters.LAYER_OPTION_VISIBLE;//设置查询的图层//查询范围identifyParams.width = map.width;identifyParams.height = map.height;
}
/*** 执行空间查询*/
function doIdentify(event) {identifyParams.geometry = event.mapPoint;identifyParams.mapExtent = map.extent;//attachmentEditor支持启用附件,我参考的是官方  ,其中dojo.dom.byId("content")的参数id可不存在var attachmentEditor = new esri.dijit.editing.AttachmentEditor({}, dojo.dom.byId("content"));identifyTask.execute(identifyParams,function(results) { //执行查询var feature;if (results.length > 0) {for (var i = 0; i < results.length; i++) {feature = results[i].feature;map.infoWindow.setTitle("我是弹出框");map.infoWindow //自定义显示内容.setContent("<span>河道里程(m):</span>"+ feature.attributes.chainage+ "<br>"+ "<span>堤顶高程(m):</span>"+ feature.attributes.dike_terr+ "<br>"+ "<span>水面高程(m):</span>"+ (feature.attributes.dike_terr - feature.attributes.water).toFixed(3)+ "<br>"+ "<span>水面距堤顶(m):</span>"+ feature.attributes.water);attachmentEditor.showAttachments(feature, dynamicMapServiceLayer);//我的项目加载的layer元素为线类型,返回的经纬度位置为多个,所以需要取其中一个或者取中间位置,我取的中间位置var ceilnum = Math.ceil(feature.geometry.paths[0].length/2)var x = feature.geometry.paths[0][ceilnum][0];var y = feature.geometry.paths[0][ceilnum][1];//创建窗口弹出位置,注意需要与底图相同的坐标系var screenPoint = new esri.geometry.ScreenPoint(x,y);screenPoint.spatialReference = map.spatialReference;//显示窗口map.infoWindow.show(screenPoint,map.getInfoWindowAnchor(screenPoint));}}});
}

Arcgis for js实现服务元素周围点击显示元素属性相关推荐

  1. [HTML]CSS实现点击显示元素

    一.示例 结构如下(示例): <div><input type="radio" name="box" id="box1" ...

  2. arcgis for js 4.X自定义气泡点击地图对象弹出对话框

    题目的意思是,arcgis for js 4.X自定义气泡,点击地图对象弹出对话框,而不是弹出气泡.对话框是vue页面组成的自定义对话框,不是地图页面的对象. 基本思路: 1)气泡模板(PopupTe ...

  3. html怎么隐藏一个元素,html怎么隐藏div元素

    html隐藏div元素的方法:1.在div标签中使用hidden属性,添加"hidden="hidden""语句即可.2.在div标签中使用style属性,添加 ...

  4. DOM--操作元素案例:分时显示不同的图片以及问候语;仿淘宝关闭标签案例;隐藏显示文本框内容;仿新浪注册页面中密码长度的判定

    分时显示不同的图片以及问候语 分析: 根据不同的时间来判断,所以需要获取到系统的时间. 利用分支语言来设置不同的图片 需要更换不同的图片,因此需要操作img的元素src 需要一个div来显示不同问候语 ...

  5. ARCGIS API for JS调用ARCGIS Server自定义布局打印服务

    发布ARCGIS Server自定义布局打印服务 1.打印服务 1.1 什么是PrintingTools 服务 1.2 自定义打印服务 1.2.1 什么是自定义打印服务 1.2.2 更新布局模板 1. ...

  6. (转载)arcgis for js - 解决加载天地图和WMTS服务,WMTS服务不显示的问题,以及wmts服务密钥。...

    1 arcgis加载天地图和wmts服务 arcgis for js加载天地图的例子网上有很多,这里先不写了,后期有空再贴代码,这里主要分析下WMTS服务为什么不显示,怎么解决. 条件:这里的WMTS ...

  7. Arcgis for Js之加载wms服务

    概述:本节讲述Arcgis for Js加载ArcgisServer和GeoServer发布的wms服务. 1.定义resourceInfo var resourceInfo = { extent: ...

  8. android原生调用nextjs方法,详解使用Next.js构建服务端渲染应用

    next.js简介 最近在学React.js,React官方推荐使用next.js框架作为构建服务端渲染的网站,所以今天来研究一下next.js的使用. next.js作为一款轻量级的应用框架,主要用 ...

  9. control层alert弹出框乱码_【ArcGIS for JS】动态图层的属性查询(11)

    在真实需求中,我们不仅仅是将shp在地图中显示那么简单,我们往往要查询该图层的属性信息,我们在前面代码的基础上添加上属性查询. 1.1方法1(通过click直接获取) 1.1.1代码实现 给要素图层添 ...

最新文章

  1. 慢慢学Linux驱动开发,第七篇,scull的使用
  2. Elasticsearch Javascript API增删改查
  3. VC6.0生成文件的种类和作用
  4. LaTeX技巧006:使用pdfLaTeX时,添加PDF文件属性的方法
  5. 从变分编码、信息瓶颈到正态分布:论遗忘的重要性
  6. opencv获取模板旋转角度_OpenCV入门之获取图像的旋转角度
  7. 怎样从Mysql官网下载linux版本的mysql安装包
  8. HDU1290 献给杭电五十周年校庆的礼物【水题】
  9. [老老实实学WCF] 第五篇 再探通信--ClientBase
  10. 已知三点求圆心 c语言,转 已知两点坐标和半径求圆心坐标程序C++
  11. 如何复习备考计算机二级c语言,2019年计算机二级C语言备考有哪些经验?
  12. 戴尔服务器加无线网卡用不了,戴尔笔记本无线网卡驱动如何安装?(已解决)...
  13. windows+Texstudio+languagetool修改语法错误
  14. 牛客练习赛87 -C-牛老板
  15. 【转帖】财务尽职调查资料收集总结
  16. 自媒体运营抖音快手怎么快速涨粉
  17. JavaWeb09(新闻数据分页)
  18. 前任写的代码,真是辣鸡…
  19. python光棍节快乐_光棍节快乐的祝福语12条
  20. ASP.NET 入门

热门文章

  1. Python爬虫 — requests模块(1)
  2. 《pandas数据分析》(一)——数据基础操作
  3. 采购中的高级分析方法 1
  4. VRTK使用心得(二):配置VRTK(基于最新3.2.1版)
  5. Python 实现定时任务的八种方案!
  6. 安卓加密软件_oppo加密笔记在哪里?oppo手机怎么给云笔记加密? - 敬业签便签...
  7. java模板引擎 jade_Jade模板引擎使用详解
  8. 2023网约车考试报名全流程考试内容
  9. 身份证二要素核验接口
  10. 名字查找 与名字空间