Я хочу сделать запросы для адресов в базу данных postgis с данными из openstreetmap, проверить, существует ли такой адрес в базе данных, и если да, получите координаты. База данных была заполнена из файла .pbf с использованием осмоса. Это схема базы данных http://pastebin.com/Yigjt77f. У меня есть адреса в виде названия города, названия улицы и номера улицы. Самое главное для меня в этой таблице:postgis запрос для адресов (с данными osm)
CREATE TABLE node_tags (
node_id BIGINT NOT NULL,
k text NOT NULL,
v text NOT NULL
);
к колонке в виде тегов, один, что меня интересует, являются: addr:housenumber
, addr:street
, addr:city
и v имеет соответствующее значение. Сначала я ищу, если имя города соответствует одному в базе данных, чем в наборе результатов, который я ищу для улицы, а не для номера дома. Проблема в том, что я не знаю, как сделать SQL-запрос, который получит этот результат с запросом только один раз. Я могу сначала спросить только имя города, получить все node_id, которые соответствуют моему городу, и сохранить их в java-программе, чем делать запросы, запрашивающие каждый найденный (соответствующий моему городу) id_number (список из моей java-программы) для улицы и т. Д. , Этот способ действительно медленный, потому что, запрашивая более подробную информацию (город, чем улица, чем номер), я должен делать все больше и больше запросов, и более того, я должен проверять множество адресов. Как только у меня будет соответствие node_id, я могу легко найти координаты, так что это не проблема.
Пример этой таблицы:
node_id | k | v <br>
123 | addr:housenumber | 50
123 | addr:street | Kingsway
123 | addr:city | London
123 | (some other stuff) | .....
100 | addr:housenumber | 121
100 | addr:street | Edmund St
100 | addr:city | London
Я надеюсь, что я ясно объяснил, что это моя проблема.
Благодарим вас за ответ. Я знаю, что некоторые части адресов могут быть связаны с другими элементами, которые находятся в разных таблицах, и получение их может быть непростым. Мой вопрос заключался в том, как выполнить запрос (тот, который я описал), зная, что он не получит всех адресов. Это довольно временный ярлык, но сейчас мне это нужно. – katjet0