- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在 Cesium 中的珠穆朗玛峰顶部放置一个点.截至昨晚,我最有可能的候选者是我借用的代码来进行大地测量到 ecef 的转换(来自 PySatel.coord)。今早复习,似乎是正确的:
a = 6378.137
b = 6356.7523142
esq = 6.69437999014 * 0.001
e1sq = 6.73949674228 * 0.001
f = 1 / 298.257223563
def geodetic2ecef(lat, lon, alt):
"""Convert geodetic coordinates to ECEF.
Units are degrees and kilometers.
"""
lat, lon = radians(lat), radians(lon)
xi = sqrt(1 - esq * sin(lat))
x = (a / xi + alt) * cos(lat) * cos(lon)
y = (a / xi + alt) * cos(lat) * sin(lon)
z = (a / xi * (1 - esq) + alt) * sin(lat)
return x, y, z
我从维基百科中提取了珠穆朗玛峰的纬度/经度/高度。在我的 CZML 中定位对象之前,我将上述代码提供的 ECF 坐标乘以 1000(m/km)。我得到一个 ECF 位置:[302995.41122130124, 5640733.98308375, 2981975.8695256836]。使用默认地形提供程序(在 tutorial 中描述),这一点明显高于珠穆朗玛峰的顶峰。
这是相关的 CZML 片段:
{"position":
{"cartesian": [302995.41122130124, 5640733.98308375, 2981975.8695256836]},
"id": "ellipsoid-1",
"ellipsoid":
{
"radii": {"cartesian": [3545.5375159540376,
164.44985193756034,
164.62702908803794]},
"material": {"solidColor": {"color": {"rgba": [0, 255, 0, 100]}}}
},
"orientation": {"unitQuaternion": [0.00014107125875577922,
-0.011462389405915903,
-0.010254110199791062,
-0.70702315200093502]}
}
最佳答案
这里有几个因素在起作用。
首先,Cesium 用于地形的源数据可能低于预期的珠穆朗玛峰高度。我们使用 CGIAR SRTM 数据集,因此他们常见问题解答中的此项是相关的:
Why do some mountain regions have peaks significantly lower than they should be?
As mentioned earlier, many original data voids are concentrated in mountainous areas and in snow-covered regions. Hence, many peaks in high-mountain areas are actually interpolated. Without using a high resolution co-variable for the interpolation, the interpolation fails to identify that the data void is actually a peak, and tends to “flatten” the peak, leading to underestimates in the true elevation for that region. This issue is largely resolved in Version 4.
他们说它在 v4 中得到了很大程度的解决,Cesium 使用的版本,所以希望第一个因素不是实际问题。
其次,我们对用于 Cesium 的源地形数据的处理可能会使峰值变平一点。这个问题将很快得到纠正,希望在接下来的几个月内。
第三,维基百科提供的高度是高于平均海平面 (MSL) 的高度。 MSL 是一个复杂的表面,很难在数学上处理,所以你的 geodetic2ecef 没有这样做。相反,它与 Cesium 一样,假设高度是相对于 WGS84 椭球的,这是一个更好的表面。
NGA 有一个网站,可用于查找 WGS84 椭球上方的 MSL 高度,也称为大地水准面高度: http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/intpt.html
据报道,对于珠穆朗玛峰的顶峰(北纬 27° 59′ 17″,东经 86° 55′ 31″),MSL 低于 WGS84 28.73 米。如果您从维基百科上报告的山峰高度中减去该数字,您至少应该更接近。
此页面包含有关以编程方式计算大地水准面高度的信息: http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/egm96.html
我建议对 15 分钟的大地水准面高度文件进行插值,而不是根据系数计算高度。
一些与问题没有直接关系的其他注释:
Ellipsoid.cartographicToCartesian
。关于gis - 如何将大地测量位置转换为与 Cesium 中的地形模型一起使用的 ECF 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16299154/
我使用 Cesium 的 gltf 分支,我想显示飞机的 3d 模型。为此,我创建了加载并添加到数据源的 czmlDataSource。 问题是我无法弄清楚如何计算方向四元数以使平面在给定的经纬度处平
我在我的应用程序中使用铯。我的应用程序根据收到的位置在 map 上显示广告牌。 我想知道Cesium.Viewer和Cesium.CesiumWidget之间的区别。是否可以使用Cesium Widg
我以这样的方式创建 Cesium.Primitive: _createPrimitive: function (linesNumber) { var instances = [
我已经使用带有 webpack 模板的官方 cesium 设置了一个项目,可在此处找到:https://github.com/AnalyticalGraphicsInc/cesium-webpack-
我在 Google Groups 上看到了一些示例,它们演示了如何修改信息框的 css。在此特定示例中,使用 javascript 将 css 链接附加到文档的头部: https://groups.g
我完全是 Cesium 的菜鸟,所以请原谅我的愚蠢行为。我正在尝试编写一个应用程序,将位置和方向数据流式传输到 Cesium,实时绘制它以及显示它所在位置的路径。我遇到了实体视觉卡顿的问题,这几乎可以
有没有办法获得 CesiumJS 中给定位置的地面高度?我试过scene.globe.getHeight func 但它返回未定义。 //marker is a point on map. v
我正在使用铯,并试图检测折线与地球地形相交的位置。我有一条多段线,它从空中的某个点开始,以一定的角度向地球延伸。 现在我正在使用设定的距离计算终点,所以我有一个起点和终点。我想检测这条折线首先撞击地球
我正在使用从数据库提供的位置数据来绘制实体。 我目前正在使用 viewer.entities.removeAll(); 每次从数据库中获取结果时删除所有实体。 由于实体当前是 3D 模型,因此这会导致
之前好像有人问过这个问题,但我一直找不到合适的例子。我熟悉 PHP,但不熟悉 Javascript,无法弄清楚如何流式传输 CZML。 我想在 map 上显示大约 6.500 个 Assets 。为了
我想在 cesium.js 中显示地下的多段线。但我对此一无所知。 最佳答案 貌似cesium还没有提供官方的地下功能,原因是cesium cameral can not be placed unde
我创建了缩放至特定国家/地区的按钮。然而,当我单击新加坡按钮时,它会导航到新加坡,但我看不到确切的新加坡国家。 所以我想要一个更好的图像。 下面是我的代码...
假设我在铯 map 上显示一个点:( https://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=CZML%20Point.html&labe
我要从单击的点绘制一组圆形的线。我的代码工作正常,但它绘制的圆远离单击的点。有人可以帮助我找出我的错误在哪里吗? var viewer = new Cesium.Viewer('cesiumC
我想使用flyTo()并提供纬度长坐标,但保持相机与当前表面的高度/变焦/距离相同。 我尝试在调用flyTo时使用camera.position.z,但这似乎在每次调用flyTo()时都会放大得越来越
大家好,我正在尝试在我的铯地球仪上获取 WMS 图层。下面是我正在使用的代码。当我查看网络选项卡时,我确实看到请求在 200 处全部通过,并且当我使用请求上的链接时,它们确实起作用;但是,它说它们的文
我想使用 OL3-Cesium 在我的 WPF 应用程序中使用 WebBrowser 控件显示地球 View 。示例 html 文件在我的 IE 11 浏览器中运行良好,但如果我通过 WebBrows
我使用 Cesium Earth 库开发了一个应用程序。 问题是,绘制的线(实体路径)质量很差,不平滑。如何让它变得更好? viewer = new Cesium.Viewer('cesiumCo
我有多个 GeoJsonDataSource 对象,我想将它们放在 Cesium 地球仪上。问题是,如果它们重叠,我会遇到一些 z-fighting 问题,我无法调整它们的顺序。 有没有一种方法可以指
目录 前言 1、数据准备 2、效果实现 Cesium-01:Vue 中基础使用 Cesium-02:飞机模型简
我是一名优秀的程序员,十分优秀!