2

Google API を使用すると、2 地点間のルートの距離を計算できることはわかっていますが、私が目にするほとんどの例は、車/徒歩/自転車ルートの距離を計算するルート サービスです。

コードから、鉄道上の 2 つの大都市間の距離を取得することは可能ですが (以下のコード)、2 つの大都市間の小さな駅である 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);
   }
 });
4

1 に答える 1

3

移動距離ではなく、駅間の最短距離が必要ですか? その場合、鉄道駅のデータベースが必要であり、Haversine式を使用してこれを計算します。これを使用して、ある場所の半径内にある鉄道駅を見つけるデモがあります。これは、要件に合わせて変更できます

于 2013-03-01T17:05:22.663 に答える