3

程序应如何确定 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 的真实高度

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

4

1 回答 1

2

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

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

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

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

编辑

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

于 2012-05-05T03:37:09.820 回答