Google地图根据高程绘制路线

时间:2017-09-05 18:39:18

标签: javascript google-maps google-maps-api-3 google-elevation-api

我对此非常陌生,对我来说看起来非常有趣。有没有办法根据高程限制在pointA和pointB之间创建路由。我试图将它用于飞机,所以不需要遵循任何道路:)

IE: 海拔限制:200米

pointA:38°44'50“N,090°21'41”W - 圣路易斯机场

pointB:39°02'56“N,084°40'04”W - 辛辛那提机场

如何在不超出海拔限制的情况下绘制从pointA到pointB的路线?

提前致谢...

$(document).ready(function() {
 var path = [
      {lat: 38.74722222, lng: -90.36138889},  // St Louis
      {lat: 39.04888889, lng: -84.66777778}];  // Cincinnati

  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 6,
    maxZoom: 8,
    minZoom: 1,
    streetViewControl: false,
    center: path[1],
    mapTypeId: google.maps.MapTypeId.ROADMAP
  });
  
var flightPath = new google.maps.Polyline({
          path: path,
          geodesic: true,
          strokeColor: '#FF0000',
          strokeOpacity: 1.0,
          strokeWeight: 2
        });

        flightPath.setMap(map);
 
});
html,
body,
#map {
  height: 100%;
  width: 100%;
  padding: 0px;
  margin: 0px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map"></div>

1 个答案:

答案 0 :(得分:1)

到目前为止,无法让Google地图计算出不超过指定海拔限制的路线。

这适用于:

  • &#34; Google Maps API&#34; /&#34; Google Maps Elevation API&#34;
  • 以及常规最终用户界面(https://www.google.de/maps)。

现在可用的是请求指定位置的高程数据以及给定分辨率中此指定位置旁边的高程数据(例如,当指定2个位置时,samples=3将导致两个高程数据终点和中途点。)

理论上可以

  1. 使用&#34;大量样本计算路线&#34;,
  2. 评估针对海拔限制的响应,
  3. 如果超过一个点的高程限制,则更改路线
  4. 并反复启动程序,直到海拔限制不再超过。
  5. 这可能是一项昂贵的任务,具体取决于海拔限制本身和距离。

    参考: https://developers.google.com/maps/documentation/elevation/intro

      

    Google Maps Elevation API会以尽可能高的准确度返回单点查询的数据。涉及多个位置的批量查询可能会以较低的准确度返回数据,尤其是当位置分散时,因为会发生一些数据平滑   [...]
      抽样路径请求
       - path(必需)定义地球上要返回高程数据的路径。此参数定义一组两个或多个有序{纬度,经度}对,用于定义沿地球表面的路径。此参数必须与下面描述的samples参数一起使用。有关更多信息,请参阅下面的指定路径    - samples(required)指定沿返回高程数据的路径的采样点数。 samples参数将给定路径划分为沿路径的等距点的有序集合。


    脚注/提示

    我建议看看其他API(例如OpenStreetMap)。也许有一个API可以根据高程提供路线计算。

    如果在前端需要谷歌地图用户界面,检索到的路线可能会转移到谷歌地图(这将是最简单的部分)。