我正在使用谷歌地图方向服务如下:
directionsDisplay = new google.maps.DirectionsRenderer();
var directionsService = new google.maps.DirectionsService();
var start = arrObjLatLngs[0];
var end = arrObjLatLngs[arrObjLatLngs.length - 1];
arrObjWaypoints = [];
// Get waypoints
if (arrObjLatLngs.length > 2) {
for (var i = 0; i < arrObjLatLngs.length; i++) {
arrObjWaypoints.push({
location:arrObjLatLngs[i],
stopover:true}
);
}
}
var request = {
origin:start,
destination:end,
travelMode: google.maps.DirectionsTravelMode.DRIVING,
unitSystem: google.maps.DirectionsUnitSystem.METRIC,
provideRouteAlternatives: false,
waypoints: arrObjWaypoints
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
if (boolShowMap) {
directionsDisplay.setMap(MapObject);
$('#cp-div-map').dialog('open');
google.maps.event.trigger(MapObject, 'resize');
directionsDisplay.setDirections(response);
} else {
var total_distance = 0;
// Add up distance of all available legs
for (var i = 0; i < response.routes[0].legs.length; i++) {
total_distance += parseInt(response.routes[0].legs[i].distance.value);
}
callBack(total_distance);
}
}
});
start
基本上,第一位可以得到和之间的距离end
......但是,我还需要一个单独的值来计算和之间的距离base
和start
第三个距离之间base
的距离end
。
我试过这个: -
var directionsServicePickup = new google.maps.DirectionsService();
var base = "52.781048888889, -1.2110222222222546";
var request2 = {
origin:base,
destination:start,
travelMode: google.maps.DirectionsTravelMode.DRIVING,
unitSystem: google.maps.DirectionsUnitSystem.METRIC,
provideRouteAlternatives: false,
waypoints: arrObjWaypoints
};
directionsServicePickup.route(request2, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
var total_pickup_distance = 0;
// Add up distance of all available legs
for (var i = 0; i < response.routes[0].legs.length; i++) {
total_pickup_distance += parseInt(response.routes[0].legs[i].distance.value);
}
var km = parseInt(total_pickup_distance) / 1000;
// Convert KM into Miles
var pickup_distance = parseInt((km / 8) * 5);
alert('Pickup='+pickup_distance);
var runin_pickup = 1200;
// Send to our checkRuninTariff function
checkRuninTariff(runin_pickup);
}
});
但这似乎覆盖了我发送的第一个请求。我对这个 API 不太熟悉,所以对此的任何帮助将不胜感激!