これは私のコードです:
function trainRoute(startPoint, endPoint) {
var polyline = new google.maps.Polyline({ strokeColor: '#af1a1a', strokeWeight: 2 });
var directionsService = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer({ polylineOptions: polyline, suppressMarkers: true });
directionsDisplay.setMap(map);
var request = {
origin: startPoint,
destination: endPoint,
travelMode: google.maps.DirectionsTravelMode.TRANSIT
};
directionsService.route(request, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
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 nextSegment = steps[j].path;
for (k = 0; k < nextSegment.length; k++) {
polyline.getPath().push(nextSegment[k]);
//bounds.extend(nextSegment[k]);
}
}
}
}
});
}
を使用するtravelMode: google.maps.DirectionsTravelMode.WALKING
と、行が表示されますが、探しているものではありません。.TRANSIT
のように、さらにいくつかのオプションが必要だと思いますVehicleType.RAIL
。
やり方がわからない!Googleで検索してみましたが、何も見つかりませんでした!
これはこれを行う正しい方法だと思います:
var request = {
origin: puntoPartenza,
destination: puntoArrivo,
travelMode: google.maps.TravelMode.TRANSIT
};
directionsService.route(request, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
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;
for (k = 0; k < nextSegment.length; k++) {
polyline.getPath().push(nextSegment[k]);
}
}
}
}
}
}
});
しかし :
1) なぜルートの一部だけを描くのですか?
2) 返された DirectionsStatus の JSON オブジェクトには、徒歩や TRANSIT に関する情報もあります。travelMode: google.maps.DirectionsTravelMode.TRANSIT
では、 ?!?!?の意味は何ですか?
しかし、私は得るTypeError: google.maps.TransitVehicle is undefined