Cesium-如何计算点击位置周围指定区域的最高点、最低点、平均高度?

Posted

技术标签:

【中文标题】Cesium-如何计算点击位置周围指定区域的最高点、最低点、平均高度?【英文标题】:Cesium- How to calculate highest point, lowest point, average altitude in a specified area around the click position? 【发布时间】:2017-04-09 05:21:42 【问题描述】:

我已经成功计算出用户在 cesium 中点击的位置的高度,但我的下一步有点复杂。我想要做的是,当用户在地球上的某个点以任何缩放级别单击时,我想计算点击位置周围的最高点、最低点和平均高度(比如 1000 米的圆形区域)。我该怎么做,有什么想法吗?

【问题讨论】:

【参考方案1】:

我通过使用双线性插值在一个正方形区域中查找所有 LatLng 解决了这个问题,然后使用 Cesium 的示例地形查询每个点的高度信息。以下是我遵循的步骤:

    使用 google maps API 中的球形工具查找点击位置周围正方形区域的角点,如下所示: var northwest = google.maps.geometry.spherical.computeOffset(center, radius * Math.sqrt(2.0), 135); var northeast = google.maps.geometry.spherical.computeOffset(center, radius * Math.sqrt(2.0), 45); var southwest = google.maps.geometry.spherical.computeOffset(center, radius * Math.sqrt(2.0), 225); var southeast = google.maps.geometry.spherical.computeOffset(center, radius * Math.sqrt(2.0), 315); 然后使用双线性插值来查找正方形区域内的点。您可以使用球形工具interpolate 方法来避免额外的工作。像这样:google.maps.geometry.spherical.interpolate(latlng1, latlng2, fraction); 然后使用 Cesium 的示例地形查找上一步中计算的所有点的高度信息。 现在您可以轻松计算最高、最低和平均高度。

【讨论】:

以上是关于Cesium-如何计算点击位置周围指定区域的最高点、最低点、平均高度?的主要内容,如果未能解决你的问题,请参考以下文章

cesium如何改变地图gamma某一块区域的透明度

OpenGL / C++ - 如何在鼠标点击时填充一个点周围的区域?

在ArcGIS中,如何获得指定区域内所有点的经纬度坐标

Android:如何将地图视图的缩放级别设置为当前位置周围 1 公里半径?

如何使按钮的可点击区域成为按钮框架

个人笔记三维GIS开发-cesium坐标系统