Cesium专栏-填挖方分析(附源码下载)
Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品。它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精度,渲染质量以及多平台,易用性上都有高质量的保证。
关于填挖方分析
从百度百科查找到的关于填方和挖方的定义如下:
填方:填方指的是路基表面高于原地面时,从原地面填筑至路基表面部分的土石体积。
挖方:指的是路基表面低于原地面时,从原地面至路基表面挖去部分的土石体积。
在简书里,也找到一篇 基于GIS的填挖方平衡分析 的文章,并给出了在ArcGIS软件中的实操。
本文着重要介绍的是在Cesium中如何计算填方与挖方,其中会借鉴小专栏里的另外一篇文章 Cesium专栏-剖面分析 中关于地形高度采样的内容。
需要注意的是:本文使用的计算方式只是一种研究行方案,用于拓展思路,并不是最准确的计算方式,请评估后慎用!
具体做法
1.定义地形服务,绘制施工区域
- // 在使用地形服务前,请设置好 Cesium.Ion.defaultAccessToken
- var terrainProvider = Cesium.createWorldTerrain({
- requestWaterMask: true,
- requestVertexNormals: true
- });
- // 定义填挖方的基准面高度
- var excavateHeight = 2300; // 开挖高度
- var buryHeight = 6000; // 填埋高度
- // 定义施工区域
- var scope = [
- Cesium.Cartesian3.fromDegrees(99, 29),
- Cesium.Cartesian3.fromDegrees(100, 29),
- Cesium.Cartesian3.fromDegrees(100, 30),
- Cesium.Cartesian3.fromDegrees(99, 30)
- ];
2.剖分施工区域,计算每个区域的面积与填挖高度
核心思想:计算 开挖/填埋 的 开挖量/填方量 的 核心思想就是 剖分 微积分
- // 设置剖分最小单元 0.01°
- var subdivisionCell = 0.01; // 剖分精度自定义
- // 存储所有的剖分矩形
- var subRectangles = [];
- for (var i = 99; i <= 100; i = i + subdivisionCell) {
- for (var j = 29; j <= 30; j = j + subdivisionCell) {
- var subRectangle = new Cesium.Rectangle(
- Cesium.Math.toRadians(i),
- Cesium.Math.toRadians(j),
- Cesium.Math.toRadians(i + subdivisionCell),
- Cesium.Math.toRadians(j + subdivisionCell)
- );
- subRectangles.push(subRectangle);
- }
- }
- // 计算每个矩形的中心点作为这个矩形的代表
- var subRectanglesCenterPoints = [];
- subRectangles.forEach(subRectangle => {
- var centerPoint = Cesium.Cartographic.fromRadians((subRectangle.west + subRectangle.east) / 2, (subRectangle
- .north +
- subRectangle.south) / 2);
- subRectanglesCenterPoints.push(centerPoint);
- });
- // 采样每个中心点到达地表的高度
- var promise = Cesium.sampleTerrainMostDetailed(terrainProvider, subRectanglesCenterPoints);
- Cesium.when(promise, function (updatedPositions) {
- // 所有高度
- var heights = [];
- updatedPositions.forEach(point => {
- heights.push(point.height);
- });
- });
3.计算填挖方
更多详情见下面链接文章:
GIS之家小专栏此文章:Cesium专栏-填挖方分析(附源码下载)
文章提供源码,对本专栏感兴趣的话,可以关注一波
Cesium专栏-填挖方分析(附源码下载)的更多相关文章
- Cesium专栏-地形开挖(附源码下载)
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- cesium 实现风场图效果(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- leaflet 结合 d3.js 实现 geojson 数据地形剖面分析(附源码下载)
前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...
- Cesium专栏-空间分析之剖面分析(附源码下载)
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- Cesium-空间分析之通视分析(附源码下载)
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- Cesium专栏-雷达遮罩动态扫描(附源码下载)
Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精度,渲染质量以 ...
- Cesium专栏-地形开挖2-任意多边形开挖(附源码下载)
“任意多边形地形开挖” 是“地形开挖”的补充篇,在这节里,我们介绍关于如何使用任意多边形对地形进行开挖,同时,由于有不少小伙伴也咨询了关于“地形开挖”篇后序内容中的填充地形的效果,之前没放出来,是想让 ...
- cesium 圆圈警戒扫描(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- cesium 雷达扫描(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
随机推荐
- 从零开始入门 K8s | 手把手带你理解 etcd
作者 | 曾凡松(逐灵) 阿里云容器平台高级技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 16 讲. 导读:etcd 是用于共享配置和服务发现的分布式.一致性的 ...
- Windows下创建Python虚拟环境的两种方法:
在实际的项目开发中,我们会根据自己的需求去下载各种相应的框架库,但是每个项目可能使用的库不一样,或者版本不一样等等等.为了避免这些因素对我们的项目造成一些不必要的影响,我们可能需要来回的切换或者装卸等 ...
- 小白学 Python 爬虫(16):urllib 实战之爬取妹子图
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- MVC方法的返回值类型
MVC方法返回值类型 ModelAndView返回值类型: 1.当返回为null时,页面不跳转. 2.当返回值没有指定视图名时,默认使用请求名作为视图名进行跳转. 3.当返回值指定了视图名,程序会按照 ...
- HDU1847 Good Luck In CET4 Everybody
大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Cici都是如此.当然,作为在考场浸润了十几载的当代大学生,Kiki和Cici更懂得考 ...
- 赌十包辣条,你一定没见过这么通透的ThreadLocal讲解
1.看个热闹 鉴于普罗大众都喜欢看热闹,咱们先来看个热闹再开工吧! 场景一: 中午了, 张三.李四和王五一起去食堂大菜吃饭.食堂刚经营不久,还很简陋,负责打菜的只有一位老阿姨. 张三:我要一份鸡腿. ...
- [golang] nats的消息传递模型介绍
目录 nats的消息传递模型 What is NATS 主题式消息(Subject-Based Messaging) 发布订阅(Publish-Subscribe) 请求应答(Request-Repl ...
- nginx部署基于http负载均衡器
nginx跨多个应用程序实例的负载平衡是一种用于优化资源利用率,最大化吞吐量,减少延迟和确保容错配置的常用技术. 环境介绍 配置nginx负载均衡器因会用到多台服务器来进行,所以下面我会用到docke ...
- MT9V034 全局快门体验总结
MT9V034 全局快门体验总结 部分照片来源网络,尊重版权. . 这个是实物照片 全局快门(相对滚动快门) 拍摄高速物体的效果 高动态效果 低照度和高照度对比 实际拍照效果图(来自网友华健) 特殊应 ...
- PC端、移动端页面适配方案
前言 页面自适应PC端.移动端大体上可以分为两种: 1.在同一个页面进行自适应布局,通常使用CSS3 @media 媒体查询器实现 2.两套页面,在后端进行统一适配,根据不同的浏览器UA返回对应的页面 ...