1

使用 Google 地球(或地图)API 我使用哪些函数来获取特定区域的高度图/高度(以公里的精度而不是经度的精度)?

例如,如果我有位置 Lat=11 Long=12,我可以获得该位置的高度吗?我知道谷歌的高度可能不准确,不会有 5 米甚至 1 公里的精度,但没关系(它是为了简单有趣的谷歌地球应用程序,所以不需要高度的准确性)。

我下面的代码可以获得鼠标当前所在位置的当前高度,但是是否有函数调用来获取给定位置的一系列高度值

google.earth.addEventListener(ge.getWindow(), 'mousemove', function(evt) {

   if (event.getDidHitGlobe()) {
     var lat  = event.getLatitude();
     var long = event.getLongitude();
     var groundAltitude = ge.getGlobe().getGroundAltitude(latitude, longitude);
     if (groundAltitude) {
        alert(groundAltitude.toFixed(2));
   }
});

这是唯一的方法吗?请注意,这是精确到 1 经度/纬度,我可以更精确(如 1 公里特定)

function obtainAreaAlt(startLong, endLong, startLat, endLat) {

     var alt = {};
     while (startLong < endLong) {
         var origLat = startLat;
         while (startLat < endLat) {
           var a = ge.getGlobe().getGroundAltitude(startLat, startLong);
           if (a)
              alt[""+startLat+","+startLong] = a.toFixed(2);
           startLat++;
         }
         startLong++;
         startLat = origLat;
     }

     return alt;
}
4

2 回答 2

2

您可以使用 Google Maps API 的高程服务。它接受位置数组(纬度/经度值)或路径。

演示在这里:

https://google-developers.appspot.com/maps/documentation/javascript/examples/elevation-paths

此处的文档:

https://developers.google.com/maps/documentation/javascript/reference#ElevationService

请注意,有使用限制!

于 2012-07-01T11:24:33.523 回答
0

使用 google earth 插件,如果您正在选择海拔高度并等待海拔数据数据完成下载到浏览器以获得更好的海拔分辨率,您将需要移动到该位置。

要确定高程数据是否已完成下载,请使用 ge.getStreamingPercent()

http://earth-api-samples.googlecode.com/svn/trunk/examples/streamingpercent.html

如果你被缩小得太远,地球上会填充一个低分辨率的地形模型

于 2012-07-04T06:28:54.047 回答