Мені поставили запитання, а як можна будувати маршрути по кліках на карті?
У цій замітці я відповідаю на нього.
З початку розглянемо роботу прикладу, а потім я поясню його код.
На карті, клікаючи лівою кнопкою миші, ми задаємо розташування точок маршруту від 2 до 9.
Потім, натискаємо на кнопку «Побудувати маршрут» і відбувається побудова маршруту через задані точки.
Якщо нам необхідно побудувати новий маршрут, ми натискаємо на кнопку «Очистити» і можемо повторювати дії для додавання іншого маршруту.
Розглянемо код прикладу:
На самому початку ми визначаємо глобальні змінні для карти - myMap, маршруту - route, лічильник для нумерації міток, масивів для міток markers і точок маршруту point.
Після цього визначаємо початкові параметри карти і додаємо на неї необхідні елементи управління.
Потім ми пишемо код для відстеження події кліка по карті.
При кожному кліці, ми додаємо мітку на карту і заносимо її в масив markers.
Перевіряємо загальну кількість міток, воно повинно бути менше 10.
Після натискання на кнопку «Побудувати маршрут», викликається функція calcRoute для побудови маршруту.
Коли ми натискаємо кнопку «Очистити», викликається функція reset в якій, видаляється маршрут з карти і мітки.
Також обнуляються масиви для зберігання міток і точок на карті.
Навігація по публікаціям
Проблемка: Кнопка «Очистити» видаляє тільки останній маршрут (з двох (як хв.) Маршрутів).
На карті можна малювати одночасно тільки один маршрут, а після натискати «Очистити».
На карті можна малювати одночасно тільки один маршрут, а після натискати «Очистити».
-------------
Тут, напевно, Євген, також як і я, зіткнувся з такою ситуацією:
Мітки розставлені і маршрут прокладений.
Ставимо ще мітки і натискаємо "Побудувати маршрут" і ще так кілька разів.
Відбувається побудова ще декількох маршрутів, але "Очистити" можна тільки результат з останніми встановленими мітками. Решта маршрути прибираються з карти тільки після перезавантаження сторінки.
------
Велике спасибі за статтю!
Я проблему з очищенням декількох маршрутів вирішив таким чином, додав після:
перед побудовою нового маршруту перевіряє чи були вже прокладені старі і видаляє якщо так
У мене питання наступного, додав до карти TrafficControl і тепер при натисканні на вулицю де відображається трафік не ставиться крапка, а показується стан цієї вулиці трафікконтролом (по суті він перехоплює подія). Як вирішити цю проблему? Ряд подій з трафікконтрола треба залишити (такі як «показувати дорожні події» і т.п.)
Доданий мною код:
Добридень! Дякую за хороший приклад. Підкажіть будь ласка як можна зберегти прокладений маршрут на сервісі Мої карти або на YMapsML xml файлі своєму?