Я использовал гео-адрес Google, и использование lat/long получило адрес. Как определить, нет ли я на дороге? В основном хит-тест для дороги? В настоящее время я использую диспетчер местоположений для lat/long, а GeoAddress - тот же, что и на дороге и рядом с дорогой.
Как определить, будут ли длинные координаты lat на дороге с API Карт Google v2
Ответ 1
Окончательное решение
Используйте обратное геокодирование через API геокодирования Google.
Термин геокодирование обычно относится к переводу удобочитаемого человека адрес в местоположение на карте. Процесс выполнения обратного, перевод местоположения на карте в удобочитаемый для человека адрес, известный как обратное геокодирование.
API геокодирования поддерживает обратное геокодирование непосредственно с помощью latlng параметр. Например, следующий запрос содержит значение широты/долготы для местоположения в Бруклине:
http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true_or_false
В документах объясняется, как интерпретировать результаты json, но StackOverflow имеет различные ответы, в которых рассматриваются более эффективные способы анализа данных.
Возможные решения
-
Получение ближайших уличных/дорожных координат в android - ответ на этот вопрос может указывать на вас в правильном направлении.
Вы можете напрямую использовать направления api: http://maps.googleapis.com/maps/api/directions/json?origin=51,19&destination=51,19&sensor=false
Не могли бы вы использовать API для поиска маршрутов, которые затем обеспечили бы ближайшую дорогу?
- Придерживайте позицию на карте Android v2
- GPSLocator - приложение для поиска текущего (ближайшего) местоположения с использованием GPS - возможно, полезно; не так уверен в этом.
- Snap to Roads Android - Точный же вопрос
Результаты быстрого поиска
- Привязать к ближайшей улице
- Блог API Карт, используя GDirections.loadFromWaypoints
- Поиск ближайшей улицы с учетом длинного местоположения
- Проезд от моего местоположения до места назначения в Google Maps Android API V2
Неразрешенные подобные вопросы
Ответ 2
Это проще сделать с помощью OSRM (ближайшего) webservice. Сделайте запрос GET, например:
const url = '//router.project-osrm.org/nearest/v1/driving/';
fetch(url + coord.lon + ',' + coord.lat).then(function(response) {
return response.json();
}).then(function(json) {
if (json.code === 'Ok') {
console.info(json.waypoints[0].location);
}
});
Это координата дороги/улицы.
Ссылки — Project-OSRM