2016-12-12 6 views
1

У меня возник вопрос: есть ли способ связать данные местоположения GPS с ранее загруженным маршрутом из API указаний google? Я знаю, что есть API Snap-to-road, но я хочу заставить его связать точку с конкретным маршрутом, к тому же привязка к дорогам не имеет режима «ходьбы». Любые идеи о том, как это сделать? С уважениемСвязанный сенсорный GPS-прием по пути от направления API

+1

Я нашел способ, чтобы найти ближайшую точку к полилинии и проекцию точки на этой ломаной линии в http://stackoverflow.com/questions/36104809/find- the-closeest-point-on-polygon-to-user-location (спасибо снова всемогущему antonio), но мне все равно хотелось бы узнать ваше мнение о наилучших способах сопоставления этого типа карт. – Poider12

+1

Я использую метод, который я предложил в решении для исправления ошибок, связанных с точностью GPS (ошибки GPS очень коррелированы во времени, поэтому данный путь все больше и больше не остается таким же, как и время), поэтому я считаю, что это лучший вариант, если вы не хотите использовать функцию Snap to Roads из API Google Maps Roads – antonio

+0

Большое спасибо @antonio! Еще одна вещь: есть ли у вас функция, которая вместо того, чтобы получать путь, происхождение, расстояние (например, предоставленную экстраполяцию), получает путь, происхождение и точку в этом маршруте и выводит расстояние? – Poider12

ответ

0

Путь простой полилинии (набор сегментов). Вам просто нужно найти ближайшую точку полилинии. Это означает, что один из двух вариантов ближайшего конца сегмента или ближайшая точка проекции к любому из сегментов. Затем вам потребуется некоторый порог (как правило, основанный на точности приемника GPS-приемника). Для расчетов определенно вам следует искать некоторую геопространственную библиотеку, работающую с java и Android. Для небольших площадей (допустим, если минимальный ограничивающий прямоугольник маршрута меньше 100 х 100 миль), то вместо геодезических можно использовать вычисления евклидова. Не забудьте увеличить длину одной градуса долготы (одна градус широты всегда равна 60 Нм).

0

Отказ: Я работаю для Pathsense.

У нас есть и продолжайте работать с провайдером местоположения, чтобы предоставить в реальном времени (или немного задерживается, в зависимости от того, как вы его настроили), сопоставленные с картами обновления местоположения для Android. Однако:

  • Он использует GPS и датчики для обеспечения он остается в правильном пути, так что он может использовать немного больше энергии, чем GPS, если не управлять должным образом (как и любой поставщик местоположения).

  • Хотя установка его на 0 по-прежнему улучшает работу при сопоставлении карт, чем GPS, если пользователь работает в области с большим количеством высотных зданий, обновление местоположения по-прежнему может пойти по неверной дороге на короткое время , Функция задержки важна, если вам не требуется немедленное обновление, так как она дает библиотеке больше времени для определения правильной дороги, на которой пользователь включен.

Pathsense демо репо:
https://github.com/pathsense/pathsense-samples-android/tree/master/pathsense-invehiclelocationdemo-app

Однако, если вам просто нужно иметь карту согласованный путь, который не в реальном времени или близко к нему, а также оснастку Google на дороге вам не подходит , Я нашел эту классную библиотеку, которая может быть полезна. Я еще не пробовал это сам, поэтому не могу сказать, как хорошо это работает, но может быть интересным для изучения.

GraphHopper библиотека репо:
https://github.com/graphhopper/graphhopper