Supermap GIS二次开发之查询面内数据是否有点数据

作者:谢景,撰写时间:2019-1-18

在我们进行GIS二次开发的时候,经常会需要查询某个面区域里是否有点数据,或者是面区域里面的点数据是否超过多少个,如果超过,则该面区域高亮显示。
举个例子,就像我做的慢性病GIS系统,就需要查询一个社区里面的病人是否超过3人,超过则该社区高亮,在这里,病人坐标就是点数据。
下面做个简单的Demo演示一下查询过程。

思路:先查出面数据,然后再以面数据作为范围过滤条件对点数据进行查询,如果查出数据,则该面数据高亮。
下面演示代码:

function SelectRegion(){  //查询面数据的方法var queryRegion, queryByBoundsParams, queryService;//定义变量queryRegion = new SuperMap.REST.FilterParameter({ name: "Region@XJ" });//设置查询图层,这里是面数据所在的图层// QueryBySQLParameters  SQL 查询参数类queryByBoundsParams = new SuperMap.REST.QueryBySQLParameters({queryParams: [queryRegion],    //queryParams:该类用于设置查询数据集的查询过滤参数。});queryService = new SuperMap.REST.QueryBySQLService(url, {//processCompleted:设置成功回调函数eventListeners: { "processCompleted": processCompleted_selectAddress }});queryService.processAsync(queryByBoundsParams);//负责将客户端的动态分段服务参数传递到服务端。}function processCompleted_selectAddress(obj){ //成功回调函数  obj是服务端传回来的数据var i, len, features, feature,geometry, result = obj.result.recordsets;//声明变量features = result[0].features;for (i = 0, len = features.length; i < len; i++) { //循环面数据,调用查询点数据的方法,每个面数据都是查询点数据的范围过滤条件feature = features[i];geometry=feature.geometry;SelectPoint(feature);//查询点数据的方法}}function SelectPoint(feature){//查询点数据的方法var queryRegion, queryByGeometryParams, queryService;queryRegion = new SuperMap.REST.FilterParameter({ name: "Point@XJ" });//点数据所在图层queryByGeometryParams = new SuperMap.REST.QueryByGeometryParameters({queryParams: [queryRegion],geometry: feature.geometry,//范围过滤条件spatialQueryMode: SuperMap.REST.SpatialQueryMode.INTERSECT});queryService = new SuperMap.REST.QueryByGeometryService(url, {eventListeners: {//成功的回调函数是匿名方法"processCompleted": function(obj){//判断以面数据作为范围过滤条件下,有没有查询点数据,如果没有,则证明该面数据内没有点数据,如果有点数据,则使该面高亮显示。if(obj.result.recordsets[0].features.length>0){feature.style = {//设置面的样式strokeColor: "#304DBE",strokeWidth: 2,pointerEvents: "visiblePainted",fillColor: "#304DBE",fillOpacity: 0.4} vectorLayer.addFeatures(feature);//将该面数据添加到vectorLayer图层中显示。}    }}});queryService.processAsync(queryByGeometryParams);//负责将客户端的动态分段服务参数传递到服务端。}

效果图如下:

Supermap GIS二次开发之查询面内数据是否有点数据相关推荐

  1. 《SuperMap GIS二次开发MVC实战训练---江海区慢性病防治院系统》项目研发阶段性总结

    <SuperMap GIS二次开发MVC实战训练-江海区慢性病防治院系统>项目研发阶段性总结 作者:爱怡同学 本次任务完成时间:2019年1月1日-2019年1月10日 开发工具与关键技术 ...

  2. SuperMap GIS二次开发MVC实战训练-佛山顺德慢性病GIS项目总结

    SuperMap GIS二次开发MVC实战训练-佛山顺德慢性病GIS项目总结 作者:谢景 任务完成时间:2018年12月24日-2019年1月15日 完成模块功能:区域定位.查询搜索.路径分析.周边分 ...

  3. Supermap GIS二次开发

    开发工具与关键技术:iDesktop  Supermap GIS 作者:陈芝番 撰写时间:2020.5.13 目录 1.地图发布 2.选择工作空间类型 3.选择发布的服务类型 4.服务接口 5.地图 ...

  4. C# 基于AE的GIS二次开发 要素查询操作,属性表查询操作及其属性表修改操作

    直接上代码: 要素查询 并高亮显示 模糊查询我的根据自己的表设计的,自己用基本语句是 属性表字段 LIKE '*内容*' *号为 SQL like语句里的% like '%%',在ArcGIS里是*开 ...

  5. GIS二次开发:实验五 综合实验

    一.实验目的 1.掌握栅格数据读取与另存: 2.掌握地图制图工具的实现: 3.基于遥感影像的森林资源信息管理与更新系统的实现 二.实验仪器与设备 计算机.visual studio 软件.ArcGIS ...

  6. GIS 二次开发概述 (整理)

    GIS 二次开发概述 地理信息系统根据其内容可分为两大基本类型:一是应用型地理信息系统,以某一专业.领域或工作为主要内容,包括专题地理信息系统和区域综合地理信息系统:二是工具型地理信息系统,也就是 G ...

  7. [arcgis插件]gis二次开发 报备工具:SHP转TXT文本、TXT转SHP插件

    [arcgis插件]gis二次开发 报备工具:SHP转TXT文本.TXT转SHP插件 [2022.09.28版本更新] 1.shp转txt文件: 选择图层:选择面图层 保存路径:设置一个文件夹路径,可 ...

  8. GIS二次开发学习专题(一)C#入门

    GIS二次开发学习专题(一) 假期时间想整理电脑内存,所以就把代码发到网上了,希望可以供大家参考,学习资料来自<牟乃夏 AE开发教程-基于C#.NET> 发的代码是我整理+老师布置的作业 ...

  9. c# AE GIS二次开发学习专题(二) 基本地图控件使用

    GIS二次开发学习专题(二) 基本地图控件使用 学习资料来自<牟乃夏 AE开发教程-基于C#.NET> 发的代码是我整理+老师布置的作业 这一部分是地图基本控件的使用与编写,包括: 一.二 ...

最新文章

  1. jupyter Nodebook如何查看函数帮助
  2. E0144 const char * 类型的值不能用于初始化 char * 类型的实体
  3. BP: 通过SAP name拿到central person id
  4. ES6-2 块级作用域与嵌套、let、暂行性死区
  5. layui 开启关闭标签_欧盟发布照明产品ErP及能效标签法规新草案
  6. 【项目管理】项目进度管理的关键路径
  7. HALCON学习之旅(一)
  8. 带你深入理解Java的IO到底是个啥
  9. 云计算发展备受瞩目的五大方向
  10. 设A为n阶非零矩阵,且A^2=A. r(A)=r (0<r<n) 求|5E+A|
  11. PHP中Trait详解及其应用
  12. python vecm_用Eviews处理有关VARVECM模型的几个问题
  13. 从 ftp 上下载文件、文件夹
  14. PLC/WINCC实现远程监控的方法
  15. 免费的客户订单及商品管理系统
  16. 色彩搭配方案与其特性描述
  17. 大数据分析师高级证书_有大数据分析师资格证书吗?
  18. 湘乡江南计算机学校舒俊梅,东山学校建校120周年校庆捐款捐物情况公布-湘乡东山学校.DOC...
  19. Spring 面向切面编程(AOP) D5
  20. P2P网贷平台资金存管深度介绍

热门文章

  1. 数字标牌无线联网方案
  2. 基于视频图像的识别算法
  3. rarLinux 安装及使用
  4. android应用开发 adb调测工具
  5. 【tomcat 端口占用启动失败】The Tomcat connector configured to listen on port xx failed to start
  6. ninja 编译系统
  7. mysql threads create_mysql Threads_created 增长过快的解决
  8. Windows制作U盘在Thinkpad T60上安装Debian 7 (Wheezy)
  9. Pytorch和DCGAN生成肖像画
  10. 【Adobe Illustrator 教程】1. 认识AI并创建第一张画布