Как я могу получить расстояние "значение" из Google Maps API расстояния матрицы?
Я автоматически заполняю поле ввода приведенным ниже значением, которое дает мне значение distance.text, выраженное в км, но я хотел бы получить значение distance.teue для точного расстояния.
function getdistance(address){
var dest_address = address; // Address enter by user
var origin_address = document.getElementById('hall').value ; // Address where you need to calculate distance.
var distanceService = new google.maps.DistanceMatrixService(); // store Google Distance Service method
// Call distance matrix services.
// default parameters
distanceService.getDistanceMatrix({
origins: [dest_address],
destinations: [origin_address],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
durationInTraffic: true,
avoidHighways: false,
avoidTolls: false
},
function (response, status) {
// check status from google service call
if (status !== google.maps.DistanceMatrixStatus.OK) {
console.log('Error:', status);
} else {
// Response contain JSON.
var error = response.rows[0].elements[0].status;
$('#error').html(error);
var distance = response.rows[0].elements[0].distance.value;
document.getElementById("distance").value = distance;
}
});
}
Я пытался изменить
var distance = response.rows[0].elements[0].distance.text;
в
var distance = response.rows[0].elements[0].distance.value;
но все еще только получая "текстовое" значение. Пожалуйста помоги
1 ответ
Решение
На самом деле, извините! изменив строку на...
var distance = response.rows[0].elements[0].distance.value;
...работает. Мне просто нужно очистить кэш для изменения файла.js, чтобы начать. =/ =/ =/
Используйте сервис матрицы расстояний напрямую через JavaScript, как показано ниже
function getDistance()
{
//Find the distance
var distanceService = new google.maps.DistanceMatrixService();
distanceService.getDistanceMatrix({
origins: [$("#autocompleteDeparture").val()],
destinations: [$("#autocompleteArrival").val()],
travelMode: google.maps.TravelMode.WALKING,
unitSystem: google.maps.UnitSystem.METRIC,
durationInTraffic: true,
avoidHighways: false,
avoidTolls: false
},
function (response, status) {
if (status !== google.maps.DistanceMatrixStatus.OK) {
console.log('Error:', status);
} else {
console.log(response);
$("#distance").text(response.rows[0].elements[0].distance.text).show();
$("#duration").text(response.rows[0].elements[0].duration.text).show();
}
});
}