Google Matrix API расстояния дает невероятно короткие результаты duration_in_traffic, а также результаты, отличные от Google Maps
Я обращаюсь к API Матрицы расстояний Карт Google, чтобы получить данные duration_in_traffic для сегодняшнего дня между двумя точками - Бешикташем и Босфорским мостом - в Стамбуле, и я установил время отправления 17:00:00 6 марта 2018 года. возвращает мне, что это занимает 5 минут, и это буквально невозможно, это должно было быть не менее 20 минут. Также результаты в Google Maps разные.
Вот URL, который я использовал: https://maps.googleapis.com/maps/api/distancematrix/json?&departure_time=1520301600000&traffic_model=pessimistic&origins=41.045524,29.007519&destinations=41.050044,29.029765&key=MYKEY
и вот ответ JSON:
{
"destination_addresses" : [
"Ortaköy Mh., İstanbul Çevre Yolu, 34347 Beşiktaş/İstanbul, Turkey"
],
"origin_addresses" : [
"Cihannüma Mahallesi, Barbaros Blv. No:76, 34353 Beşiktaş/İstanbul, Turkey"
],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "3.1 km",
"value" : 3052
},
"duration" : {
"text" : "4 mins",
"value" : 217
},
"duration_in_traffic" : {
"text" : "5 mins",
"value" : 295
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
Вот скриншот Google Maps для указанного времени и пункта назначения
Я не знаю, что вызывает это, но я был бы признателен, если бы вы могли помочь.
1 ответ
Ваше время отправления в миллисекундах, а не секундах, что и занимает API-интерфейс матрицы расстояний
https://developers.google.com/maps/documentation/distance-matrix/intro
Время отправления - желаемое время отправления. Вы можете указать время как целое число в секундах с полуночи 1 января 1970 года по Гринвичу. Кроме того, вы можете указать значение now, которое устанавливает время отправления на текущее время (с точностью до секунды).
Кроме того, после преобразования этого времени отправления в секунды, 1520301600, дата на самом деле 6 марта 2018 года, 02:00 UTC, то есть 5 утра по местному времени, а не 5 вечера. Используя 1520517600, что соответствует 8 марта 2018 года 17:00 по местному времени, duration_in_traffic составляет 18 минут:
{
"destination_addresses" : [
"Ortaköy Mh., İstanbul Çevre Yolu, 34347 Beşiktaş/İstanbul, Turkey"
],
"origin_addresses" : [
"Cihannüma Mahallesi, Barbaros Blv. No:76, 34353 Beşiktaş/İstanbul, Turkey"
],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "3.1 km",
"value" : 3052
},
"duration" : {
"text" : "4 mins",
"value" : 217
},
"duration_in_traffic" : {
"text" : "18 mins",
"value" : 1081
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}