You are not logged in.

#1 2020-10-06 11:51:34

akulin
Member
Registered: 2020-05-26
Posts: 10

Геокодинг, ПО для получения адреса по координатам

Существует ли такое ПО для геокодинга, чтобы можно было по координатам широты и долготы получать адрес? ПО аналогичное этому:
https://wiki.openstreetmap.org/wiki/Osmgeoref

То есть ПО также не должно быть особо требовательным к ресурсам (ЦП - armv7l), и оно не должно использовать систему баз данных. По сути ПО должно осуществлять поиск в файлах типа pbf, osm, o5m, ogb.

Если такого нет, какие есть альтернативы, учитывая, что всё должно будет работать на armv7l с 1 ГБ RAM?

Offline

#2 2020-10-06 12:49:35

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 8,884

Re: Геокодинг, ПО для получения адреса по координатам

Какой объем?
- планета
- континент (какой)
- страна (какая)
- облать
- город

Offline

#3 2020-10-06 12:51:12

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,707

Re: Геокодинг, ПО для получения адреса по координатам

Без базы с пространственными индексами или её аналога - никак.
Её можно строить в памяти при запуске, но это будет кушать память и сильно увеличивать время каждого запуска (пропорционально размеру файлов).

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

Last edited by Sergey Astakhov (2020-10-06 12:57:38)

Offline

#4 2020-10-06 13:05:23

akulin
Member
Registered: 2020-05-26
Posts: 10

Re: Геокодинг, ПО для получения адреса по координатам

wowik wrote:

Какой объем?
- планета
- континент (какой)
- страна (какая)
- облать
- город

Центральный федеральный регион:
https://download.geofabrik.de/russia/ce … trict.html

Только Россия. Москва и Московская область.

Offline

#5 2020-10-06 13:13:31

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 8,884

Re: Геокодинг, ПО для получения адреса по координатам

Чтобы сделать адрес (типа область/район/нп/улица/дом) всё одно надо сначала обработать файл типа pbf, osm, o5m, ...
Результат либо в базу, без чего тут многие не представляют программирования, либо в свои какие-то структуры данных в удобных для использования форматах.

Last edited by wowik (2020-10-06 13:14:31)

Offline

#6 2020-10-07 10:58:43

akulin
Member
Registered: 2020-05-26
Posts: 10

Re: Геокодинг, ПО для получения адреса по координатам

wowik wrote:

Чтобы сделать адрес (типа область/район/нп/улица/дом) всё одно надо сначала обработать файл типа pbf, osm, o5m, ...
Результат либо в базу, без чего тут многие не представляют программирования, либо в свои какие-то структуры данных в удобных для использования форматах.

Уже обработал через https://wiki.openstreetmap.org/wiki/Osmgeoref из большого pbf файла получил маленький ogb с городами МО, улицами, домами. Проблема в том, что через ту же утилиту osmposition нельзя получить обратное. То есть я ввожу город, улицу, дом и получаю координаты, а в обратную сторону так не работает. Переписать C-шный код в той же утилите не вариант big_smile

Offline

#7 2020-10-07 11:22:17

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,707

Re: Геокодинг, ПО для получения адреса по координатам

akulin wrote:

получил маленький ogb

Ну так это и есть примитивный аналог БД, заточенный под одно конкретное применение - прямой геокодинг (координаты из адреса). Обратный геокодинг (из координаты адрес), который вам нужен, из него простым способом не получить, т.к. для его эффективной работы нужна специальная дополнительная структура - пространственный индекс, которого тут нет, насколько я понял на беглый взгляд.
Вам нужно или допилить эту утилиту до необходимой функциональности или сделать с нуля свою, на том языке который вам ближе.

Offline

#8 2020-10-07 12:38:10

istepan
Member
Registered: 2014-11-11
Posts: 169

Re: Геокодинг, ПО для получения адреса по координатам

Что если заюзать osm2pgsql, и уже в psql делать запросы по координатам?

Offline

#9 2020-10-08 19:47:03

Mir76
Member
From: Екатеринбург
Registered: 2009-12-18
Posts: 1,439

Re: Геокодинг, ПО для получения адреса по координатам

istepan wrote:

и уже в psql делать запросы по координатам?

Если я правильно понял, то речь идет не о компьютере, а о дохлом устройстве, типа продвинутого mp3-плейера или самого начального уровня смартфоне. Там с готовыми sql-базами все грустно, даже  ОС на борту может не оказаться.

По сабжу - вам надо на (мощном) компьютере все пространство ЦФО нарезать на полигоны, по одному на каждый известный вам адрес. Это будут сотни тысяч полигонов.  Ну то есть полигон это адресная точка плюс все пространство вокруг, которое ближе к этой точке, чем к другим адресам, но не далее, скажем, 100 метров. 
А потом уже готовые полигоны хранить на устройстве в чем-то вроде квадродерева, позволяющем делать ненапряжный для ЦПУ поиск.

Offline

Board footer

Powered by FluxBB