Как я могу получить расстояние "значение" из 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();
        }
    });
  }
Другие вопросы по тегам