Google изменил свой API карты для Android и представил API V2. Предыдущие коды для пути отрисовки не работают с API V2.
Мне удалось проложить путь с помощью API V2. Я много искал решение, но не нашел ответа. Так что делюсь своим ответом.
Google изменил свой API карты для Android и представил API V2. Предыдущие коды для пути отрисовки не работают с API V2.
Мне удалось проложить путь с помощью API V2. Я много искал решение, но не нашел ответа. Так что делюсь своим ответом.
Ответы:
Прежде всего, мы получим исходную и конечную точки, между которыми нам нужно провести маршрут. Затем мы передадим эти атрибуты в функцию ниже.
Эта функция сделает URL-адрес, который мы отправим, для получения ответа API направления. Затем мы проанализируем этот ответ. Класс парсера
Этот парсер вернет нам строку. Мы назовем это так.
Теперь мы отправим эту строку в нашу функцию drawpath. Функция drawpath
Приведенный выше код нарисует путь на mMap. Код decodePoly:
Поскольку вызов направления может занять время, мы сделаем все это в асинхронной задаче. Моя асинхронная задача была
Надеюсь, это поможет.
источник
PolylineOptions options = new PolylineOptions().width(5).color(Color.BLUE).geodesic(true); for (int z = 0; z < list.size(); z++) { LatLng point = list.get(z); options.add(point); } line = myMap.addPolyline(options);
Requests to this API must be over SSL
, сменитеhttp
наhttps
key
параметр вmakeURL
функцию, иначе я получилThis IP, site or mobile application is not authorized to use this API key
. Кроме того, измените URL-адрес наhttps
вместоhttp
упомянутого AlvaroSantisteban.Не знаю, следует ли мне поставить это в качестве ответа или нет ...
Я использовал решение @ Zeeshan0026 для рисования пути ... и проблема заключалась в том, что если я нарисую путь один раз, а затем я попытаюсь нарисовать путь еще раз, оба пути отображаются, и это продолжается ... пути отображаются, даже когда маркеры удалено ... в то время как в идеале старых путей не должно быть, когда новый путь нарисован / маркеры удалены ..
задавая другой вопрос по SO, у меня было следующее решение
Я добавляю следующую функцию в класс Зишана
в моей деятельности на карте, прежде чем рисовать путь, я вызвал эту функцию. Пример использования в моем приложении
вы можете использовать
rt.clearRoute();
в соответствии с вашими требованиями .. Надеясь, что это сэкономит несколько минут кому-то еще и поможет новичку в решении этой проблемы ..Полный код класса
посмотреть на github
Изменить: вот часть кода из mainactivity ..
Редактировать 2 согласно комментариям
Применение :
источник
в приведенном ниже коде midpointsList - это ArrayList путевых точек
Затем скопируйте и вставьте этот URL-адрес в свой браузер, чтобы проверить. Код ниже предназначен для анализа URL-адреса.
А затем передайте результат в метод drawPath
Функция decode poly предназначена для декодирования точек (широты и долготы), предоставляемых API Directions, в закодированной форме
источник
Попробуйте нижеприведенное решение, чтобы нарисовать путь с анимацией, а также получить время и расстояние между двумя точками.
DirectionHelper.java
GetPathFromLocation.java
DirectionPointListener
Теперь нарисуйте путь, используя приведенный ниже код в своей деятельности
Вывод
Я надеюсь это тебе поможет!
Благодарю вас.
источник