在cesium中实现空间查询(思路解析加源码)

空间查询作为GIS数据分析的基本手段,在三维GIS中也是必不可少的,下面就对具体实现做具体介绍


目录

在cesium中实现空间查询(思路解析加源码)

前言

一、获取待查询的点

二、获取待查询的面

二、面和点求交

总结

四、更多



前言

如果你不是GIS专业,那么你对空间查询的也许会很陌生,下面我就简单解释一下什么是空间查询,就在一个范围里面有很多个点,你随手圈出来一部分区域,要查出你圈出来的区域里面的点有哪些,这就是空间查询。


一、获取待查询的点

第一步就是要把我们需要查询的点数据准备好。方法如下:

         var res = response.data;var Towerspoints = [];for (var i = 0; i < res.length; i++) {var feature = new Object();feature.type = "Feature";feature.properties = { Name: res[i].evid };feature.geometry = {type: "Point",coordinates: [res[i].jingdu, res[i].weidu],};Towerspoints.push(feature);}TowersCollection = {type: "FeatureCollection",features: Towerspoints,};

二、获取待查询的面

第二步就是要把我们需要查询的范围(就是面对象)数据准备好。方法如下:

     var ellipsoid = viewer.scene.globe.ellipsoid;for (var i = 0; i < arrPoint.length; i++) {var cartograhpinc = ellipsoid.cartesianToCartographic(arrPoint[i]);var lng = Cesium.Math.toDegrees(cartograhpinc.longitude); //经度var lat = Cesium.Math.toDegrees(cartograhpinc.latitude); //维度searchRegion.push([lng, lat]);}var startPoint = ellipsoid.cartesianToCartographic(arrPoint[0]);var lng_S = Cesium.Math.toDegrees(startPoint.longitude);var lat_S = Cesium.Math.toDegrees(startPoint.latitude);searchRegion.push([lng_S, lat_S]);searchWithin.push(searchRegion);var searchWithinEntity = Cesium.turf.polygon(searchWithin);

二、面和点求交

这一步就是最后一步了,利用前面俩步我们准备好的点对象和面对象就行空间计算,这里我们利用到了turf库,方法如下:

 var ptsWithin = Cesium.turf.pointsWithinPolygon(TowersCollection,searchWithinEntity);

总结

1、主要是cesium对象和turf对象进行互相贯通

2、其次就是利用turf接口进行求交计算

效果如下:

空间查询结果

四、更多

这里有个地方需要说明,由于篇幅和时间有限,没有写出所有代码,这里主要列出来了主要实现思路。

如果你还有不了解的地方,

如果你还需要进行cesium交流,

那一起学习探讨吧。

你可以加入我们的基地,我们基地的地址是:450342630(QQ群号)

cesium中实现空间查询(思路解析加源码)相关推荐

  1. cesium面积计算_Cesium面积测量之思路解析加源码

    如果你看过我的距离量测文章,那么我相信,面积也是你需要测量的吧,那就看看吧. 一.实现思路 首先我们需要用到的鼠标移动事件.单击事件和双击事件,具体功能如下: 1,鼠标移动事件:判断是否开始进行测量操 ...

  2. Cesium面积测量之思路解析加源码

    如果你看过我的距离量测文章,那么我相信,面积也是你需要测量的吧,那就看看吧. 一.实现思路 首先我们需要用到的鼠标移动事件.单击事件和双击事件,具体功能如下: 1,鼠标移动事件:判断是否开始进行测量操 ...

  3. Cesium距离测量之思路解析加源码

    今天刚好是程序员的节日,话不多说祝大家前途一片光明,如果你正在做测量的工具那么我将会在稍后发布关与面积测量的文章. 一.实现思路 首先我们需要用到的鼠标移动事件.单击事件和双击事件,具体功能如下: 1 ...

  4. 虚拟机中磁盘空间查询

    1.查看当前磁盘空间 df -h 2.寻找当前目录,查看哪个文件夹占用空间最大 du -h --max-depth=1 3.进入选中文件夹,将文件以从大到小顺序展现 ls -lhS

  5. mount查看linux分区大小,【128】Linux 中磁盘空间查询df、du和分区fdisk和挂载mount

    内容目录(原文见公众号python宝) 一.Linux 查看磁盘空间可以使用 df 和 du 命令二.linux磁盘分区fdisk命令详解三.Linux挂载命令mount四.挂载分区实例 一.Linu ...

  6. geoserver三维_cesium结合geoserver实现地图空间查询(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  7. mysql空间计算_MySQL 空间计算 空间查询

    一.前言 MySQL实施了OGC建议的具有Geometry类型的SQL环境的一个子集.该术语指的是用一组集合类型扩展的环境.具有几何值的SQL列是作为拥有集合类型的列实施的.该规范描述了SQL几何类型 ...

  8. supermap mysql_超图supermap sdx数据库用sql实现空间查询

    在此介绍用sql对超图的空间数据库(sdx)进行空间查询,优点如下: 1.超图推荐的方式是用iobject,此方法要引入iobject 2.超图另一个推荐的方式是用iserver的REST接口,但we ...

  9. QGIS 3.10 空间查询

    空间查询是GIS的特色功能之一,通过一个图层与另一个图层的空间关系(相交.包含.相接等),空间查询可以筛选出满足"空间"条件的要素(feature).QGIS中,空间查询功能由[按 ...

最新文章

  1. 设计模式 之美 -- 建造者模式
  2. 【系统分析与设计】软件开发模式之敏捷开发(Scrum)分析
  3. spring cloud入门_SpringBoot 入门系列0SpringBoot与SpringCloud技术选型
  4. Python(9):函数
  5. python需要掌握的词汇量_北大保安英语词汇量1.5万,会用Python编程,孟母三迁真有道理...
  6. In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column...
  7. mysql数据库忘记密码时如何修改
  8. atitit prj mnrs 项目中的几种经理角色.docx
  9. 大战设计模式【10】—— 外观模式
  10. 《彼得林奇的成功投资》读书笔记
  11. python中条件语句的使用_如果(If) | Python 中的条件控制语句详解
  12. 织梦dede canonical 标签页面设置(最新完美修改)
  13. Tobii:眼球追踪技术能够提升制造行业安全性
  14. 在Excel工作簿中显示网络图片
  15. 全球各国人口密度(1961-2018年)
  16. scratch优秀案例分享:母亲节制作一个动画贺卡
  17. 设置EXCEL的默认打印机
  18. Grub for DOS/NTLDR中文版Climbing定制版第四版(完全淘汰VFloppy)
  19. 计算机应用基础—多媒体技术(一)
  20. 子查询合并Derived_merge

热门文章

  1. 算法流程图组件的基本含义及画法举例(Kmeans)
  2. BNB Chain对Zebec生态大力扶持,ZBC或继续登录一线平台
  3. tsm2812通用定时器中断_基于TMS320F2812的双通道高精度伺服系统
  4. 契约锁与200多家软件厂商实现集成应用,实现更多业务电子签需求
  5. C#中IndexOf的用法
  6. vba 邮件body html,如何用VBA将邮件内容HTML化
  7. 形式语义学的相关材料
  8. Vue技巧小结(持续更新)
  9. 第十八届全国大学生智能汽车竞赛—英飞凌芯片支持计划
  10. 大数据可视化陈为智慧树_知到智慧树_大数据可视化_大学课后答案