1

Google Map api V3で旅行モードとしてTRANSITを使用していたとき、DirectionsRequestで出発地、目的地、およびいくつかのウェイポイントを定義しました。ただし、DirectionsResultが戻ってきたとき、DirectionsLegは私の出発地で始まり、私の目的地で終わっただけで、すべてのウェイポイントをスキップしました。私のコードは以下のように表示されます誰かがここで同じ問題を抱えていますか?

function calcRoute(waypts, mode) {
var sites = [];
var mode;

//Add waypoints to array, the first and last one are not added in waypoints
for (var i = 1; i < waypts.length-2; i++) {
    sites.push({
        location:waypts[i],
        stopover:true}); //Set true to show that stop is required
}

var request = {
    origin: waypts[0], //Set the first one as origin
    destination:waypts[waypts.length-1],//Set the last one as destination
    waypoints:sites,//Set waypoints
    optimizeWaypoints:false,
    travelMode: google.maps.TravelMode[mode]
};

    //Send to Google
directionsService.route(request, function(response, status) {
  if (status == google.maps.DirectionsStatus.OK) {
    directionsDisplay.setDirections(response);
    var route = response.routes[0];
    var HTMLContent = "";

            //Get response and show on my HTML
    for(var i =0; i < route.legs.length; i++){
        HTMLContent = "From " + route.legs[i].start_address + "To " + route.legs[i].end_address + "<br>";
        HTMLContent =  HTMLContent + "Distance:" + route.legs[i].distance.text + "<br>";
    }       
    $("#route_Scroll").append(HTMLContent);
  }else{
      alert(status);
  }
});

}

4

2 に答える 2

1

TravelModeがTRANSITの場合、ウェイポイントを指定することはできません。

ドキュメント(現在)には次のように記載されています。

ウェイポイントはトランジットルートではサポートされていません。

その場合、Directionsサービスは常にINVALID_REQUESTを返します。

于 2012-10-27T14:09:13.593 に答える
1

うん、 https://developers.google.com/maps/documentation/javascript/directions#TransitOptions

「ルートリクエストで使用できるオプションは、旅行モードによって異なります。トランジットルートをリクエストする場合、avoidHighways、avoidTolls、waypoints []、optimizeWaypointsオプションは無視されます。TransitOptionsオブジェクトリテラルを使用して、トランジット固有のルーティングオプションを指定できます。」

それを使用したい場合は、リクエストを分割する必要があります。

于 2012-10-28T13:49:38.743 に答える