我想使用Google Map API获取位置距离。
我有一个名为computeTotalDistance
的函数,我在其中传递距离值并将其转换为km。
function initMap() {
let panel = document.getElementById('right-panel')
panel.innerHTML = ''
let origin = getvalueForm()[0] ? getvalueForm()[0] : 'pt isiorder solusi indonesia,surabaya'
let destination = getvalueForm()[1] ? getvalueForm()[1] : 'kebun bibit,surabaya'
var map = new google.maps.Map(document.getElementById('map'),{
zoom: 11,center: {lat: -24.345,lng: 134.46} // Australia.
});
var directionsService = new google.maps.DirectionsService;
var directionsRenderer = new google.maps.DirectionsRenderer({
draggable: true,map: map,panel: panel
});
directionsRenderer.addListener('directions_changed',function() {
computeTotalDistance(directionsRenderer.getDirections());
});
displayRoute(origin,destination,directionsService,directionsRenderer);
}
function displayRoute(origin,service,display) {
service.route({
origin: origin,destination: destination,// waypoints: [{location: 'Adelaide,SA'},{location: 'Broken Hill,NSW'}],travelMode: 'DRIVING',avoidTolls: true,unitSystem: google.maps.UnitSystem.METRIC,},function(response,status) {
if (status === 'OK') {
display.setDirections(response);
console.log(response)
} else {
alert('Could not display directions due to: ' + status);
}
});
}
function computeTotalDistance(result) {
var total = 0;
var myroute = result.routes[0];
for (var i = 0; i < myroute.legs.length; i++) {
total += myroute.legs[i].distance.value;
}
total = total / 1000;
document.getElementById('total').innerHTML = total + ' km';
}