У меня странная проблема с Google Maps DirectionsService. Он возвращает мне разные маршруты, если входные данные одинаковы. Вот пример моего кодаПочему Google Maps DirectionsService возвращает разные маршруты?
var path = [];
path.push(new google.maps.LatLng(51.10600101811778, 17.025117874145508));
path.push(new google.maps.LatLng(51.1047951799623,17.02278971672058));
path.push(new google.maps.LatLng(51.10456276619924, 17.02208161354065));
path.push(new google.maps.LatLng(51.10131895649719, 17.029248476028442));
path.push(new google.maps.LatLng(51.100331957810134, 17.033969163894653));
path.push(new google.maps.LatLng(51.10001867395775, 17.032413482666016));
for (var i = 0; i <path.length-1; i++) {
var request = {
origin: path[i],
destination: path[i+1],
travelMode: google.maps.DirectionsTravelMode.WALKING
}
directionsService.route(request, function(results, status) {
if (status == google.maps.DirectionsStatus.OK) {
selected_path = selected_path.concat(results.routes[0].overview_path);
poly.setPath(selected_path);
poly.setMap(map);
}
})
}
Первый раз после вызова, функция рисует странную ломаную линию, которая всегда соединяет начальную точку с конечной точкой:
Второй раз он называется функция работает хорошо и маршрут рисуется правильно:
Это только пример ввода статических данных. Обычно я работаю с динамическими данными по матричным и динамическим маркерам, но всегда то же самое происходит. Во-первых, начальная точка связана с конечной точкой + странным соединением между другими точками. Вторая функция вызова работает хорошо. Кто-нибудь из вас знает, как решить эту проблему?
Это действительно работает, отличный ответ! :) :) – Martus0
Я заметил, что иногда, когда я устанавливаю свои маркеры, google.maps.DirectionsStatus не в порядке, а полилиния не нарисована, возможно, она связана с ходячим режимом. Я проверю его с режимом движения. – Martus0
Режим вождения всегда в порядке. – Martus0