🌎 Не могу понять почему у меня маркер 🚘 прыгает рядом с маршрутом 😧
Создал маршрут в Google Earth, загрузил файл KML в эмулятор, маршрут отрисовало корректно.
Потом подписываюсь на стрим:
location.onLocationChanged
или
Geolocator.getPositionStream(locationSettings: locationSettings)
*пробовал два пакета Location и Geolocator
В результате мой маркер иногда попадает на дорогу, иногда не попадает. Как сделать чтобы маркер был на дороге или с минимальным отклонением?
На реальном устройстве тоже тестил. 😡 Такая же фигня 😡
Сделай задержку меньше ,когда считыватель позицию Сделай меньше радиус ,или чё там И самое главное ,живи в идеальном мире где у тебя нет преград для сигнала со спутника
В эмуляторе нет преград ))) Понятно что если будет помеха то будет прыгать. Тут хотя бы лабораторных условиях для начала сделать чтобы корректно работало
Там есть параметр типа alacrity или чё т такое
Для этого есть гугл роадс сервис он платный
С этим сложно, сейчас тоже мучаюсь с тем что точность определения местонпхожденич в Андроиде низкая. Соответственно стоимость на месте, а текущая метка скачет. Единственное экспериментировать с distansefilter((
В ходе дискуссий появилась идея отображать маркер не в точке которую получил из Geolocator, а в ближайшей из массива полилиний, но тут уперлись в вопрос как получить больше точек? 🤔 Есть Direction API, которое позволяет получить полилинии для построения маршрута и в основном все люди используют поле "overview_polyline" (все библиотеки полилиний для Flutter тоже парсят только этот краткий список, пришлось форкнуть flutter_polyline_points и немного подправить 🤪) В нашем тестовом маршруте "overview_polyline" - это всего 10 точек, Но можно распарсить поля "legs" и "steps" и получить немного больше точек. В нашем маршруте это уже 24 точки. 🤞 Есть Roads API, которое позволяет получить более точные линии и с большим количеством точек, то есть 38 точек. 💪 Итого по данному маршруту в Direction API я получаю 10 точек, в расширенном варианте 24 точки, а в Roads API - 38 точек. 🔥 НО. Получить запросом полилинии в Roads API только указав начальную точку и конечную я не могу, это не реализовано в API и указано в официальной документации Google. Соответсвенно мне надо сначала получить 24 точки в Direction API и если я хочу больше, передать их в Roads API и я получу 38 точек. 😢 Технически в этом нет проблемы, главное чтобы все это потом не тормозило, НО, количество платных запросов увеличивается в два раза. 🙀 Можно конечно разрабатывать свой навигатор и писать формулы для расчета точек, это тоже возможно, но там все немного сложнее, я тут сегодня начитался про методы Havesine и Vincenty, делать конечно все можно, но это все будет не так быстро как хочется. 🤪 Вот такая история с этой навигацией
А маркер едет по этому маршруту когда двигается?
Потому что это показывали баг
Едет Маркер где надо
Обсуждают сегодня