Доброго время суток ,
у меня есть таблица PostGis импортированная из shp файла , c улицами домами городами ...
Вопрос следующего плана: надо организовать поиск объекта по введённому адресу. Меня интеесует алгоритм нахождения этого объекта , ничего конкретного в инете не нашёл (вероятно не там искал).
Я предполагаю что алгоритм будет следующий:
Допустим если ввели улицу + дом , то надо искать наименьшее расстояние м-у объектами с названием этой улицы и номера дома , и город будет найден тоже из условия ближайшего рассположеия к улице.
Натолкните на правильный путь, заранее спасибо
Поиск объекта по введённому адресу
-
- Новоприбывший
- Сообщения: 1
- Зарегистрирован: 16 окт 2009, 19:29
- Репутация: 0
Поиск объекта по введённому адресу
Последний раз редактировалось Максим Дубинин 17 окт 2009, 02:09, всего редактировалось 1 раз.
Причина: изменен заголовок темы
Причина: изменен заголовок темы
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 13 мар 2009, 14:03
- Репутация: 0
Re: Поиск объекта по введённому адресу
У меня тоже такая проблема пока не знаю, как ее решить. А по поводу предложенному вами алгоритма я тоже думал но там есть небольшая проблема, если человек введет название улицы и номер дома который не существует на этой улице то он может просто найти дом на соседней улице.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Поиск объекта по введённому адресу
Если для каждого геометрического объекта есть поле "Улица" и "Номер дома", то введя необходимые данные и сформировав нужный SQL-запрос, вы получите множество объектов с указанными параметрами (возможно, пустое). Если же в базе дома представлены только своими номерами, а улицы названиями, тогда можно выполнить поиск всех домов, пересекающихся с буферной зоной выбранной улицы (какой именно буфер выбрать, решать вам).Magicus писал(а):У меня тоже такая проблема пока не знаю, как ее решить. А по поводу предложенному вами алгоритма я тоже думал но там есть небольшая проблема, если человек введет название улицы и номер дома который не существует на этой улице то он может просто найти дом на соседней улице.
Код: Выделить всё
SELECT * FROM Street, Houses WHERE Street.name='Пушкина' and Houses.number=55 and ST_Intersects(ST_Buffer(Street.geom,10),Houses.geom)
Код: Выделить всё
SELECT MIN(ST_Distance(Houses.geom,Street.geom)) AS minimum INTO TEMPORARY temptable FROM Houses, Street;
SELECT * FROM Street, Houses,temptable WHERE Street.name='Пушкина' and Houses.number=55 and ST_Distance(Street.geom,Houses.geom)=minimum
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Участник
- Сообщения: 53
- Зарегистрирован: 04 мар 2010, 11:30
- Репутация: 0
- Откуда: Комсомольск-на-Амуре
- Контактная информация:
Re: Поиск объекта по введённому адресу
Я бы посоветовал обратить внимание на возможности полнотекстового поиска в базе данных. С версии 8.3 эти функции интегрированы в PostgreSQL.
На сайте русской документации в статье http://postgresql.ru.net/docs/fullsearch.html описано как можно организовать этот поиск.
А дальше по результату поиска можно получить объект на карте и, соответственно, все его атрибуты.
По крайней мере, именно так я реализовывал поиск для себя. Для особо пытливых можно порекомендовать сделать поиск с учетом корреляции слов, чтобы искать даже в случае ошибки в строке поиска, ибо полнотекстовый поиск ищет только полное совпадение слов.
На сайте русской документации в статье http://postgresql.ru.net/docs/fullsearch.html описано как можно организовать этот поиск.
А дальше по результату поиска можно получить объект на карте и, соответственно, все его атрибуты.
По крайней мере, именно так я реализовывал поиск для себя. Для особо пытливых можно порекомендовать сделать поиск с учетом корреляции слов, чтобы искать даже в случае ошибки в строке поиска, ибо полнотекстовый поиск ищет только полное совпадение слов.
Чудес на свете не бывает, они просто случаются.
Знать - значит уметь использовать.
Интерактивная карта-схема Хабаровского края
Знать - значит уметь использовать.
Интерактивная карта-схема Хабаровского края
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 23 гостя