Использование TransitOptions Literal в API GoogleMaps DistanceMatrix - PullRequest
0 голосов
/ 24 января 2020

Добрый день!

Я очень новичок в JavaScript и пришел к нему, так как думаю, что это может помочь автоматизировать проект, над которым я работаю. По сути, я делаю карту двух бразильских городов (Витория и Флорианаполис) и ищу время прохождения между множеством точек. ГИС-инструменты подходят для проезда расстояния / времени, но в этих городах нет вариантов транзита (платформа TravelTime пока не работает в Бразилии).

То, что я могу сделать, - это использовать API Карт Google JavaScript и Службу дистанционной матрицы для создания массива пар отправления / назначения (O / D). И я думаю, что я сделал эту часть с некоторым вводным обучением и с помощью примера Google Maps. Мой план состоит в том, чтобы расширить как переменные Origin, так и Destination с нужными мне цифрами, как только я разберусь с этим элементом.

Где я хотел бы go, следующим будет использование литерала TransitOptions, чтобы всегда иметь время отправления установлено на 8 утра (т.е. ru sh час). Я не хочу, чтобы данные менялись в зависимости от того, в какое время дня я запускаю сценарий.

К этому моменту я приложил информацию, но уверен на 99%, что неправильно использую TransitOptions:

<code>      <body>
    <div id="right-panel">
      <div id="inputs">
        <pre>
var origin1 = {lat: -27.524, lng: -48.642};
var destinationA = {lat: -27.594, lng: -48.554};
        
Результаты
let flightwindow = new Date ('2020-03-10T08: 00: 00') function initMap () {var bounds = new google.maps.LatLngBounds; var markersArray = []; var origin1 = {lat: -27.524, lng: -48.642}; var destinationA = {lat: -27.594, lng: -48.554}; var destinationIcon = 'https://chart.googleapis.com/chart?' + 'chst = d_map_pin_letter & chld = D | FF0000 | 000000'; var originIcon = 'https://chart.googleapis.com/chart?' + 'chst = d_map_pin_letter & chld = O | FFFF00 | 000000'; var map = new google.maps.Map (document.getElementById ('map'), {center: {lat: -27.50, lng: -48.5}, zoom: 10}); var geocoder = new google.maps.Geocoder; var service = new google.maps.DistanceMatrixService; service.getDistanceMatrix ({происхождение: [origin1], места назначения: [destinationA], travelMode: 'TRANSIT', unitSystem: google.maps.UnitSystem.METRI C, avoHighways: 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.inner HTML = ''; deleteMarkers (markersArray); var showGeocodedAddressOnMap = function (asDestination) {var icon = asDestination? destinationIcon: originIcon; вернуть функцию (результаты, состояние) {if ( status === 'OK') {map.fitBounds (bounds.extend (results [0] .geometry.location)); markersArray.pu sh (new google.maps.Marker ({map: map, position: results) [0] .geometry.location, icon: icon}));} else {alert ('Геокод не был успешным из-за:' + status);}};}; для (var i = 0; i '; }}}}); } function deleteMarkers (markersArray) {for (var i = 0; i

1 Ответ

2 голосов
/ 28 января 2020

departureTime: должно быть полем в TransitOptions литерал объекта, а не поле в DistanceMatrixRequest литерал объекта.

var transitOptions = {departureTime: departurewindow};

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

Вот пример кода из приведенного выше фрагмента.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...