Поддерживает ли библиотека JavaScript Карт Google информацию о трафике? - PullRequest
0 голосов
/ 18 ноября 2018

Я хочу получать информацию о трафике в интерфейсе моего веб-приложения.На стороне сервера это может быть легко достигнуто с помощью следующего запроса GET: https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=...&destinations=...&key=...&travelMode=DRIVING&departure_time=1542600800

Однако при использовании клиентской библиотеки javascript для Google Maps и создании запроса, подобного этому:

service.getDistanceMatrix({
  origins: '...',
  destinations: '...',
  mode: 'driving',
  unitSystem: window.google.maps.UnitSystem.METRIC,
  avoidHighways: false,
  avoidTolls: false,
  transitOptions: {
    departureTime: new Date('2018-11-18T06:20:00.000'),
  },
}

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

destinationAddresses: ["..."]
originAddresses: ["..."]
    distance: {text: "27.3 km", value: 27256}
    duration: {text: "1 hour 1 min", value: 3689}
  • Тем не менее, он работает для общественного транспорта, но не на вождении.
  • В следующей статье упоминается только время прибытия, а не время отправления (https://issuetracker.google.com/issues/35829984)

Итак, мой вопрос: я что-то делаю неправильно или запрашивает информацию о движении транспорта, недоступную для библиотеки JS Google Maps ?

1 Ответ

0 голосов
/ 19 ноября 2018

Да, вы должны быть в состоянии получить продолжительность трафика с клиентской библиотекой. Я предполагаю, что вы вложили вылет времени в transportOptions , поэтому он будет игнорироваться при использовании travelMode: вождения. Из документации :

transitionOptions (необязательно) - параметры, которые применяются только к запросам, для которых значение travelMode равно TRANSIT.

Поскольку вы пытаетесь получить ответ для вождения, попробуйте вместо этого параметр нообразие вождения :

service.getDistanceMatrix({
    origins: '...',
    destinations: '...',
    travelMode: 'DRIVING',
    unitSystem: window.google.maps.UnitSystem.METRIC,
    avoidHighways: false,
    avoidTolls: false,
    drivingOptions: {
        departureTime: new Date()
    }
}

Поле длительности, по-видимому, не включает информацию о трафике, как это делает объект duration_in_traffic, который имеет следующие требования. Из Документации Google DistanceMatrix :

duration_in_traffic: продолжительность пути по этому маршруту с учетом текущих условий движения, выраженная в секундах (поле значения) и в виде текста. Текстовое значение форматируется в соответствии с unitSystem, указанной в запросе (или в метрике, если не было предоставлено никаких предпочтений). Duration_in_traffic возвращается только клиентам Премиум-плана API Карт Google, если доступны данные о трафике, установлен режим «Вождение», а вылет включен в запрос как часть поля distanceMatrixOptions.

...