【问题标题】:Get ground altitude in a reliable way以可靠的方式获取地面高度
【发布时间】:2012-05-05 11:37:09
【问题描述】:

程序应如何确定 Google Earth API 已获取某个位置的准确高度?

Google Earth Plugin API 有以下方法获取地面高度:

double GEGlobe.getGroundAltitude(double lat, double lon)

但是,根据相机与目标纬度、经度的距离,此函数会返回不同的结果。例如,如果某个位置的真实高度为:+181.60

当相机与该位置的距离不同时调用该函数会返回以下高度:

getGroundAltitude 在不同相机位置的返回值:

-19.38(相机距离位置很远)

+06.11(相机现在更近了)

+89.13 (...)

+166.82

+177.47

+181.53(相机现在靠近该位置)

返回值 181.53 与真实高度 181.60 足够接近

问题是,程序应该如何确定它已经可靠地获得了最准确的高度?

【问题讨论】:

    标签: google-earth-plugin


    【解决方案1】:

    这是 Google 地球的缺陷之一。地面高度取决于该给定点可用的图像质量。所以,画得好,价值就准确,画得不好,价值就不好。

    您可以检查使用getStreamingPercent() 加载了多少图像——随着流传输百分比的增加,地面高度值应该会变得更加准确。

    您可能希望使用 Google 的海拔 API,它实际上调用以从外部服务器获取数据(其中加载的百分比不起作用。)这种方法的缺点是它需要互联网连接,所以这是需要牢记的。

    https://developers.google.com/maps/documentation/elevation/

    编辑

    要记住的另一件事是,getGroundAltitude() 电话非常挑剔。它试图获取地球上单个点的值——但它没有很好的错误检查(即它可能不知道点 X、Y 的值,因此即使周围的所有点都返回错误X,Y 有有效数据。)

    【讨论】:

    • 这回答了我的疑问。谢谢!
    • “但它没有很好的错误检查” - 我明白你的意思。如果尚未加载该位置的高度数据,则文档说 getGroundAltitude 返回零。如果它以这种方式工作(更好的是,如果它返回 NaN)它可能对我有用。 getGroundAltitude 似乎是图像的主要部分的补充数据。正如你所说,我一直在研究谷歌的海拔 API。我还查看了Map Quest,它提供了一个 Web 端点来读取海拔和其他此类地球数据。
    • Incase 它对其他人有用:MapQuest 有一个 Web 服务,支持 JSONP,这对基于浏览器的 javascript 很有用(即 MapQuest 可以返回包装在回调函数中的数据)。 Google Elevation 服务似乎不支持 JSONP 回调。 MapQuest 海拔有时与 Google Elevation Service 的差异高达 +11/-11 米。有时更多,有时更少,有时几乎相等。这不一定说哪个更准确。最好由专家来回答。毕竟我的猜测是两者都会在某种程度上插入数据。
    • 如果有人对使用其他高程服务有见解,将会很有用。
    猜你喜欢
    • 2015-06-10
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    • 2018-12-10
    • 2018-04-17
    • 1970-01-01
    相关资源
    最近更新 更多