【问题标题】:calculate the distance of routes of two railway station in google map在谷歌地图中计算两个火车站的路线距离
【发布时间】:2013-03-01 12:14:18
【问题描述】:

我知道使用 Google API,可以计算两点之间的路线距离,但我看到的大多数示例是方向服务计算汽车/步行/自行车路线上的距离。

从代码中可以得到两个大城市在铁路上的距离(代码如下),但我也想得到16段的距离,它们是两个大城市之间的小站。怎么做?

 var directionsService = new google.maps.DirectionsService();
 var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
 directionsDisplay.setMap(map);

 var request = {
       origin: 'Chester', 
       destination: 'Liverpool',
       travelMode: google.maps.TravelMode.TRANSIT,
       unitSystem:google.maps.UnitSystem.METRIC
 };

 directionsService.route(request, function(response, status) {
   if (status == google.maps.DirectionsStatus.OK) {

   ////////////////////////////////////////////////////////////////////////////
     directionsDisplay.setDirections(response);
    var path = response.routes[0].overview_path;
    var legs = response.routes[0].legs;
    for (i=0;i<legs.length;i++) {
      var steps = legs[i].steps;
      for (j=0;j<steps.length;j++) {

        var transitMode = steps[j].travel_mode;

        if (transitMode == "TRANSIT") {
                var vehicle = steps[j].transit.line.vehicle.type;
                if (vehicle == "HEAVY_RAIL") {          
                  var nextSegment = steps[j].path;

          console.log('segment   '+nextSegment.length);
          for (k=0;k<nextSegment.length;k++) {
         console.log(nextSegment[k].hb+"     "+nextSegment[k].ib);
             route_polyline.getPath().push(nextSegment[k]);
          }

                  console.log('rail');                       
                }
        }
      }
    }
    route_polyline.setMap(map);
   }
 });

【问题讨论】:

    标签: google-maps google-maps-api-3 driving-directions


    【解决方案1】:

    您是否需要车站之间的最短距离而不是行驶距离?如果是这样,您需要一个火车站数据库并使用Haversine 公式来计算。我有一个Demo,它使用它来查找某个位置半径内的火车站。这可以修改以满足您的要求

    【讨论】:

    • 谢谢,大卫,我想得到的是两个车站之间的真实距离。比如从利物浦到查斯特,有16个小站,我要计算后站的距离。
    • 大卫使用数据库的答案(顺便说一句很棒的地图)与检查每一步以查看它是否在其中一个点的 50 米范围内的组合将为您提供那条腿的站点。此时,您可以获取每一步的距离,如果您不想要 David 建议的直线,则将它们加在一起以获得每个站点之间的总行驶距离。
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 2016-09-23
    • 2016-04-12
    • 1970-01-01
    相关资源
    最近更新 更多