GIS开发之二维地下管线综合管理系统(Arcgis)第四节 查询(1)

arcgis用excel生成管道线 准备好有地理坐标的数据点 类似于这样 打开arcgis 导入数据 如果出现 说明版本太高了!保存为后缀.xls就好了 继续导入 选择工具 系统工具箱-Dada managerment tools-要素-点集专线 就ok!记得转换坐标系 ... 阅读详情

前言

ArcGIS Api for JavaScript 查询接口分为属性查询和空间查询两种,具体使用的类如下:

  • 属性查询:QueryTask,FindTask(只能属性,多个图层)
  • 空间查询:IdentifyTask(多个图层),QueryTask(单个图层)

本文主要介绍空间查询函数的使用方法及函数封装过程

IdentifyTask(点击查询)

功能介绍:鼠标与地图交互实现,通过点击地图上某个图层的点、线、面信息,查询鼠标点击位置要素详情。通过解析返回数据格式,进行页面展示

  1. 类引入
//定义全局变量,点击查询任务和查询参数
var identifyTask, identifyParams;
var callbackFun;
var defaultParam;
define(["esri/tasks/IdentifyParameters", "esri/tasks/IdentifyTask"], function (IdentifyParameters, IdentifyTask){
	// 实现代码
	function QYIdentifyTask() {
		......
		return QYIdentifyTask;
	}
}
  1. 定义默认参数
this.defaultParams = {
	// 点击查询的图层地址
	url: "http://localhost:5013/arcgis/rest/services/test/MapServer",
	// 容差
	tolerance: 3,
	// 是否返回地理要素信息
    returnGeometry: true,
    // url中的图层号
   	layerIds: [2]
};
defaultParam = this.defaultParams;
  1. 参数设置
this.doIdentifyTask = function (options, callback) {
    var that = this;
    // 设置回调
    callbackFun = callback;
    identifyTask = new IdentifyTask(options.url || defaultParam.url);
    identifyParams = new IdentifyParameters();
    identifyParams.tolerance = options.tolerance || defaultParam.tolerance;
    identifyParams.returnGeometry = options.returnGeometry || defaultParam.returnGeometry; //是否返回集合对象
    identifyParams.layerIds = options.layerIds || defaultParam.layerIds;
    //        identifyParams.layerOption = IdentifyParameters.LAYER_OPTION_ALL; //指定使用哪个层在使用识别
    identifyParams.width = options.width || MWP.map.width; //当前正在查看地图的像素高度
    identifyParams.height = options.height || MWP.map.height; //当前正在查看地图的像素宽度
    identifyParams.mapExtent = options.extent || MWP.map.extent; //地图范围
    if (options.geometry) {
        identifyParams.geometry = options.geometry;
        that.execute(); // 执行点击查询函数
    }
};
  1. 执行查询
this.execute = function () {
    var that = this;
     identifyTask.execute(identifyParams,
      function (evt) {
          callbackFun.success(evt);
      },
      function (err) {
          callbackFun.fail(err);
      });
}
  1. 完整代码如下
//定义全局变量,点击查询任务和查询参数
var identifyTask, identifyParams;
var callbackFun;
var defaultParam;

define(["esri/tasks/IdentifyParameters", "esri/tasks/IdentifyTask"], function (IdentifyParameters, IdentifyTask) {

    // 清淤检测点击查询构造函数
    function QYIdentifyTask() {
        this.defaultParams = {
            url: "http://localhost:5013/arcgis/rest/services/test/MapServer",
            tolerance: 3,
            returnGeometry: true,
            layerIds: [2]
        };

        defaultParam = this.defaultParams;

        this.doIdentifyTask = function (options, callback) {
            var that = this;
            callbackFun = callback;
            identifyTask = new IdentifyTask(options.url || defaultParam.url);
            identifyParams = new IdentifyParameters();
            identifyParams.tolerance = options.tolerance || defaultParam.tolerance;
            identifyParams.returnGeometry = options.returnGeometry || defaultParam.returnGeometry; //是否返回集合对象
            identifyParams.layerIds = options.layerIds || defaultParam.layerIds;
            identifyParams.width = options.width || MWP.map.width; //当前正在查看地图的像素高度
            identifyParams.height = options.height || MWP.map.height; //当前正在查看地图的像素宽度
            identifyParams.mapExtent = options.extent || MWP.map.extent; //地图范围
            if (options.geometry) {
                identifyParams.geometry = options.geometry;
                that.execute();
            }
        };

        this.execute = function () {
            var that = this;
            identifyTask.execute(identifyParams,
          function (evt) {
              callbackFun.success(evt);
          },
          function (err) {
              callbackFun.fail(err);
          });
        }
    }
    return QYIdentifyTask;
});
  1. 调用
MWP.QYJC.click2QueryEvent = On.once(MWP.map, "click", function (me) {
    var QYClickTask = new QYIdentifyTask();
    var options = {
        geometry: me.mapPoint
    }
    // 此处options中设置的各项参数在执行是可覆盖封装函数中的对应的默认参数,如未设置,则选用默认参数
    QYClickTask.doIdentifyTask(options, {
        success: function (result) {
            if (result.length > 0) {
                // 后续处理...
            } else {
                MWP.showMapWarning("无查询结果!", "提示");
            }
            //返回数据成功
            console.log("res:->");
            console.log(result);
        },
        fail: function (err) {
            //查询失败
            MWP.showMapWarning("查询错误!\n" + err, "提示");
            MWP.map.setMapCursor("default");
            console.log("err:->");
            console.log(err);
        }
    });
})

参考资料

  1. arcgis api官方教程

下一篇主要分享QueryTask类的分析与函数封装,用以实现空间范围和属性结合查询功能

关注以下公众号,及时发布各种技术交流,并下载相关文档和程序

Alt

GIS开发之二维地下管线综合管理系统(Arcgis)第一节 总体介绍 二维地下管网综合管理系统(下称二维管网系统)是将地理信息系统、数据库、Web可视化技术用于城市地下管网信息管理,通过有效的数据采集、数据入库、条件查询、综合分析,使得各权属和业务部门能够方便的掌握地下管网资源分布与使用状况,促进城市精细化管理,保障城市地下管线高质量运转;为城市地下管线规划、建设管理、政府决策和紧急事故处理提供依据,为建设“智慧城市”、“智慧社会”提供数据基础。 系统功能: 二维管网系统在功能设计时着眼于“看、查、用、管”四个方面,通过管网综合管理系统提供的主要功能,做到对城市. 阅读详情

相关推荐

无人机视频与GIS融合三维实景怎么实现?

三维GIS正得到了各行业用户的认同,在城市规划、城市管理、应急处置、常态化管理、虚拟旅游、智能交通、海洋资源管理、无线通信基站选址、环保监测、地下管线等领域发挥效用。现有的技术主要是在平面地图上进行撒点,造成的结果往往是局部地区很多的摄像头重叠呈现,不能实现精确的选择,而三维视频融合技术,就是在技术融合大趋势下,结合当前先进的视频融合,虚实融合、三维动态等技术,实现三维场景实时动态可视化监控,更有效的识别、分析、挖掘海量数据的有效信息服务公共应用,实现精细化的管理。03 三维GIS的优势。

weixin_64078391的博客 1931

GIS开发之二维地下管线综合管理系统(Arcgis)第四节 查询(3)

目录1、前言2、功能介绍2.1 关于FindTask实现空间查询和属性查询3、示例代码3.1 QueryTask4、参考资料 1、前言   上节主要和大家分享了单图层图属查询相关的参数设置和前端代码封装,GIS开发之二维地下管线综合管理系统(Arcgis)第四节 查询(2)。   本节继续和大家分享讨论ArcGIS Api for Javascript 中查询的接口:FindTask,各位小伙伴如发现有疑问或者可优化的地方,欢迎评论区留言哈。 2、功能介绍 2.1 关于FindTask实现空间查询和属性查

baidu_33480921的博客 606

ArcGIS地下管线管理解决方案

ArcGIS地下管线理解决方案 ArcGIS 国内综合管网 GIS 成功案例 ArcGIS 国内煤气 /燃气管网 GIS成功案例

GIS开发之二维地下管线综合管理系统(Arcgis)第四节 查询(2)

目录1、前言2、功能介绍2.1 关于QueryTask实现空间查询和属性查询3、示例代码3.1 QueryTask4、参考资料 1、前言   上节主要和大家分享了点击查询相关的参数设置和前端代码封装,GIS开发之二维地下管线综合管理系统(Arcgis)第四节 查询(1)。   本节继续和大家分享讨论ArcGIS Api for Javascript 中查询的接口:QueryTask,各位小伙伴如发现有疑问或者可优化的地方,欢迎评论区留言哈。 2、功能介绍 2.1 关于QueryTask实现空间查询和属性查

baidu_33480921的博客 564

解密Android相机框架:从HAL到应用层的全链路解析

本文深入解析Android相机框架的全链路架构,从应用层到硬件抽象层(HAL)再到驱动层,详细介绍了CamX-CHI架构的设计哲学与实战应用。通过HAL3接口、V4L2交互机制及Camera2 API的最佳实践,帮助开发者优化相机性能,解决多摄切换、预览卡顿等常见问题,提升成像效率与稳定性。

weixin_29238147的博客 408

MSP430开发入门:手把手教你用IAR EW430从建工程到烧录调试(附F5529配置)

本文详细介绍了如何使用IAR Embedded Workbench(EW430)进行MSP430F5529开发板的嵌入式开发,从环境搭建、工程配置到硬件调试全流程。通过实战示例和关键配置技巧,帮助开发者快速掌握MSP430开发的核心要点,包括LED控制、定时器使用和低功耗优化等实用技术。

weixin_30240349的博客 391

ArcGIS 对地下管线进行分类标注

本次实验我们将管径(GJ)不同的数值分成两个子类分别进行标注: 先在数据上右键属性,点击1处的标注,然后勾选2处对号,选择3处的选项。 在4处点击添加,并输入新的类名称为:管(第一类)。 点击SQL查询,输入1处的表达式,然后点击2处的验证,表达式正确即可,在此处GJ表示“管径”的意思。 此处进行表达式解释:<>是数学上的不等于的意思,也就是除了0都选。 、 点击1处的表达式,输入2处的表达式内容。 注意,φ表示的无缝钢管公称直径,其规格为,如ф100:108 X 4,它的发音是“fai”,

yuanYW7556的博客 2185

Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码)

本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py库,详细演示了如何读取HDF5文件结构、理解数据分类(如传感器、健康参数、场景描述符)并加载为Pandas DataFrame。文章还澄清了数据集中常见的变量数量疑惑,并给出了从数据加载到构建剩余使用寿命预测模型预处理流水线的完整代码,帮助工程师和研究人员高效入门航空发动机预测性维护分析。

weixin_29057065的博客 422

arcgis 地下管线三维建模

arcgis三维地下管线建模笔记

weixin_38366931的博客 4672

封神台靶场,为了小芳,冲之——cookie注入

第二个靶场 打开网站 找一下注入点 一般在新闻这种里面点开看看 先判断是否存在注入 有waf 尝试了很多方法绕过都没成功,/and/,aandnd,AnD等一系列都没绕过去,乌鸡鲅鱼 删掉id=169 发现 然后判断cookie注入 在搜索框输入 Javascript:alert(document.cookie=”id=”+escape(‘169’)); 然后弹窗了(其中 “id=” 取决URL中的id= escape中的数值也是URL中id=的值)返回刚刚的页面,把ID删除后一样能正常显示。说明服务器能

Wubuqing的博客 650

ansys license许可证问题:Ansys License Manager Release 2024 R1...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 5367

GIS开发之二维地下管线综合管理系统(Arcgis)第二节 技术架构

目录架构技术选型GIS平台选择数据库选择开发语言选择开发框架发布部署代码目录开发参考资料 架构 系统总体架构图如下图所示: 技术选型 GIS平台选择 GIS基础平台选用ArcGIS 10.2系列软件,主要用到以下组件: GIS服务器:ArcGIS Server,用于地下管线图层数据的发布和管理,提供统一的WMS、WMTS等OGC服务,同时提供ArcGIS独有的查询和统计服务。 前端组件:ArcGIS Api for JS,用于实现管线系统前端地图页面的渲染,包括加载基础底图、加载管线图层和其他相关业

baidu_33480921的博客 2146

辉芒微教程第五篇《定时器0实现LED灯闪烁》

定时器定时器,一听就跟个闹钟似的,对于嵌入式定时器大部分的应用中,也的确可以这么理解,但是这只能肤浅地这么理解,实际其功能不仅仅是用来计数定时,但是对于我们这种8位单片机,这么理解就够了。

qq_41809823的博客 723

GIS开发之二维地下管线综合管理系统(Arcgis)第三节 使用python和modelbuilder

GIS开发之二维地下管线综合管理系统(Arcgis)第三节 使用python和modelbuilderArcGIS python使用modelbuilder使用 在管网系统的功能中,高效的数据处理和有效的功能分析对系统的稳定性和可用性有很大的帮助,比如常用的管线碰撞分析和管线开挖分析,在使用Arcgis API 构建管网系统时,采用合理的工具将会起到事半功倍的效果,此次分享,将介绍arcgis中两款高级工具:Python和modelbuilder。 ArcGIS python使用 Python是一种简单高效

wk2133的博客 1610

芒果YOLOv5改进05:损失函数IoU 篇之Repulsion Loss:原创改进损失函数 Repulsion:解决目标遮挡场景下检测,为解决密集人群检测中遮挡设计的损失函数,打造高效检测器涨点

YOLOv5改进代码实践|结合Repulsion 解决目标遮挡场景下检测🚀

包括YOLOv5、YOLOv7、YOLOv8等模型改进 4564

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

专注于编程、AI、人工智能等多个领域内容研究和分析 722

中科燕园arcgis外包案例之12---供水供热管线GIS系统

项目背景 绍兴县是浙江省第一个“数字城管”试点城市,也是全国第一个“数字城管”县级城市。随着经济的飞速发展、城市化步伐的加快,以及城市规模的扩大和现代化程度的不断提高,作为城市重要基础设施的城市地下管线也越来越庞大、密集,其种类也越来越复杂。城市管理部门须要管理的管线已由单一、简单的形式发展到包含给水、排水(雨水、污水、雨污合流)、燃气、热力、电力、通讯(电信、移动、联通、...

weixin_34273481的博客 319

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

GIS与虚拟仿真下直观、完整、立体地园区实景展示

“三维园区”是以信息化平台为依托,一款基于WEBGL技术自主研发的兼容三维、二维、矢量等多种数据格式的三维园区管理平台,以三维场景为依托,融合多个终端子系统,结合物联网,建立一站式服务的综合性公共服务系统或体系,实现园区智能化管理。 实现对内外信息的发布、宣传展示、信息交流和服务体系介绍等功能。通过对园区实景三维模型的管理,实现园区资源的实时盘点和管理,对楼宇内设备实施运行状况、实时数据、属性信息等进行综合展示,方便更细节地对外推介园区。对园区各种资源进行整合、调度、评估和统筹规划,为园区资源的优

木遥的专栏 3164

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

论信息系统项目的质量管理

论信息系统项目的质量管理 摘要: 2015年12月,我作为项目经理参与了XX省电缆辅助设施综合管理系统项目的建设,该项目投资共780万元人民币,建设工期为18个月。通过该项目的建设,实现了以电网GIS平台为基础,以设备及其台账管理、配电线路查询、单线图和接线图管理、电缆井剖面图展示、电缆故障定位及影响分析、电缆敷设最短路径查询为目标的综合管理能力。对提高电力管网的综合管理水平,解决...

与道耳 1379

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

中科燕园arcgis外包----排水管网地理信息系统

项目背景 绍兴县是浙江省第一个“数字城管”试点城市,也是全国第一个“数字城管”县级城市。随着经济的飞速发展、城市化步伐的加快,以及城市规模的扩大和现代化程度的不断提高,作为城市重要基础设施的城市地下管线也越来越庞大、密集,其种类也越来越复杂,城市管理部门需要管理的管线已由单一、简单的形式发展到包括给水、排水(雨水、污水、雨污合流)、燃气、热力、电力、通讯(电信、移动、联通、铁通、网...

weixin_30954265的博客 277

三维叉乘怎么算_自然资源管理,三维GIS能做什么?

由于自然资源部的组建,“山、水、林、田、湖、草”作为生命共同体综合管理是当前的迫切需求,原有的单要素的资源管理方式满足不了当前的管理需求,需要技术上实现从二维到三维的转变。自然资源管理中技术与业务的双转变随着GIS的深入应用,人们越来越多地要求在三维的场景下还原现实。在技术方面,三维GIS先要将地理数据变为可见的地理信息,因此人们一方面从三维可视化领域向三维GIS系统扩展,这一点同早期的...

weixin_39845406的博客 235

关于Arcgis的Identify功能

ArcMap中的Identify功能是有目的查看要素(Feature)属性信息经常使用的工具。ArcMap中的Identify功能有以下几个特征: 第一, 鼠标点击具有“穿透力”,可以同时对多个图层的要素实现选择; 第二, 同一图层可以选择多个要素; 第三, 被选中要素并不高亮显示,而是以绿色闪烁一次; 第四, 所有选中要素列于弹出的信息窗口中。 identify...

当命运之神把人抛入谷底的时候,也是人生腾飞的最佳时节。这个时候谁能积累能量,谁就能在未来获得丰收的回报;谁若自愿自艾,必定坐失良机,等在前面的将是两手空空和后悔莫及。 6578

ArcGIS API for JavaScript 4.2学习笔记[24] 【IdentifyTask类】的使用(结合IdentifyParameters类)(第七章完结)...

好吧,我都要吐了。 接连三个例子都是类似的套路,使用某个查询参数类的实例,结合对应的Task类,对返回值进行取值、显示。 这个例子是Identify识别,使用了TileLayer这种图层,数据来自Server的MapServer。 结果演示 戳不同的地方会有不同的识别结果。 我对TileLayer不是很了解,这一例仅针对有了解的同学,做一个Identify...

weixin_30856965的博客 426

一文解决ArcGIS生成点和管段 含案例讲解

一文解决gis 点和线段的生成与转换

细节处有神明的博客 3777

ArcGIS Geometry所有类型

esriGeometryType Constants The available kinds of geometry objects. Constant Value Description esriGeometryNull 0 A geometry of unknown type. esriGeometryPoin

jiangtianshe的博客 7685

ArcGis Server queryTask有结果,但geometry为空

今天发现在ArcGis Server中突然做queryTask查询时查询有结果,但结果的geometry为空。看了下百度一群菜鸟说的query.returnGeometry=true; 老子早就设置好了。 直接打开ArcGis/rest 目录进行Query ,发现查询的结果一样 没有geometry。打开MXD查看该图层,在“字段”中中发现Shape 字段没有被勾选。

lxy1106的专栏 4126
上一篇: GIS开发之二维地下管线综合管理系统(Arcgis)第二节 技术架构
下一篇: GIS开发之二维地下管线综合管理系统(Arcgis)第四节 查询(2)
CoderLPF
博客等级 码龄11年 25粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值