Как работает обратное геокодирование?

Думаю, я не могу спрашивать, как Google выполняет обратное геокодирование, поскольку никто, кроме Google, этого не знает. Но как открытый исходный код, такой как OSM (OpenStreetMap), преобразует координаты GPS в место?

Я понимаю, что в OSM (и Google Maps) каждый адрес считается местом (или точкой) с назначенной координатой GPS. И обратное геокодирование на самом деле возвращает не точную точку с той же координатой, а ближайшую точку. Так это все, что нужно сделать? Пройтись по всем известным точкам в базе данных и вернуть ближайшую точку? Или все гораздо сложнее? Кроме того, как он узнает, к какому городу/стране принадлежит каждая точка?

Заранее спасибо.


person baekacaek    schedule 06.02.2014    source источник
comment
Какую именно деталь вы хотите знать? * en.wikipedia.org/wiki/Geocoding * postgis.net/docs/Geocode.html И вы говорите об общих идеях/решениях или ориентированных на OSM? * wiki.openstreetmap.org/wiki/Nominatim   -  person MaM    schedule 07.02.2014
comment
Повторяющийся вопрос: помощь. openstreetmap.org/questions/30512/   -  person scai    schedule 07.02.2014


Ответы (1)


Обратное геокодирование — это задача пространственного поиска. У вас есть сегменты дороги или данные об участках, и вы должны найти объект, ближайший к вам по широте и долготе. Как только вы обнаружите, что можете извлечь из него атрибуты и вернуть пользователю. Существует множество инструментов OpenSource, способных выполнять пространственный поиск, таких как PostgreSQL/PostGIS или mapserver.org.

person Stephen Woodbridge    schedule 08.02.2014
comment
Данные US Census Tiger помещают диапазоны адресов в сегменты улиц, поэтому, если вы ищете ближайший сегмент улицы, вы можете провести нормаль к улице, а затем линейно интерполировать, чтобы вычислить приблизительный адрес вдоль улицы, предполагая, что дома равномерно расположены вдоль улицы. сегмент улицы. - person Stephen Woodbridge; 08.02.2014