Google Distance Matrix, Как рассчитать время и расстояния от массива (без отображения карт) - PullRequest
0 голосов
/ 13 февраля 2019

Надеюсь, что кто-то может помочь с этим: мне нужно написать сценарий, чтобы рассчитать расстояния и время в пути между различными местами.Локации должны быть переданы через массив, и результат будет храниться в БД (нет необходимости показывать карты)

Я нашел пример, который работает один раз, когда сценарий инициализируется, но я не могу контролироватьвыполнение сценария de, потому что оно всегда начинается в начале сценария, и мне нужно выполнить вычисление по требованию.Я действительно хотел бы получить любую помощь с этим

Это сценарий, который я упоминал ранее

<body>
  <div id="output"></div>

<script>
  function initMap() {

    var origin1 = {lat: -33.4395365, lng: -70.65086309999998};
                    var destination1 = {lat: -33.4303118, lng: -70.5788414};
                    var service = new google.maps.DistanceMatrixService;

                    service.getDistanceMatrix({
                        origins: [origin1],
                        destinations: [destination1],
                        travelMode: 'TRANSIT',
                        unitSystem: google.maps.UnitSystem.METRIC,
                        avoidHighways: false,
                        avoidTolls: false
                    }, function(response, status) {

                        if (status !== 'OK') {
                            alert('Error was: ' + status);
                        } else {

                            var originList = response.originAddresses;
                            var destinationList = response.destinationAddresses;
                            var outputDiv = document.getElementById('output');
                            outputDiv.innerHTML = '';

                            for (var i = 0; i < originList.length; i++) {
                                var results = response.rows[i].elements;

                                for (var j = 0; j < results.length; j++) {

                                    outputDiv.innerHTML += originList[i] + ' to ' + destinationList[j] +
                                    ': ' + results[j].distance.text + ' in ' +
                                    results[j].duration.text + '<br>';
                                }
                            }
                        }
                    });

  }

</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>

...