Страница 1 из 1
запросы к POSTGIS
Добавлено: 08 апр 2009, 19:29
n0ip
Имеется связка POSTGIS+OpenLayers+MapServer.
Задача: выбираю последовательно дом на карте, ввожу его адрес, записываю в БД.
Проблема в том, что карта большая, а когда я обхожу ее обычным SQL-запросом SELECT, то объекты выбираются в разных уголках карты. Как можно составить запрос, чтобы выбирать объекты последовательно из одной области, например.
Re: запросы к POSTGIS
Добавлено: 09 апр 2009, 11:02
KolesovDmitry
Не очень понятно, что означает процедура обхода карты запросом SELECT.
n0ip писал(а):
Проблема в том, что карта большая, а когда я обхожу ее обычным SQL-запросом SELECT, то объекты выбираются в разных уголках карты. Как можно составить запрос, чтобы выбирать объекты последовательно из одной области, например.
Я правильно понимаю, что это запрос следующего вида?
Если это действительно так, то можно:
1) Проиндексировать базу по пространственным объектам
2) Добавить в запрос выборку по охвату:
Код: Выделить всё
SELECT ... FROM dom WHERE (the_geom && bbox) AND (dom_id=ID)
где the_geom - имя поля, хранящего геометрию, bbox - геометрический объект, представляющий охват интересующей вас области.
Re: запросы к POSTGIS
Добавлено: 09 апр 2009, 13:56
n0ip
Большое спасибо за подсказку! =) Как домой доберусь - попробую и отпишусь по результатам.
И еще один маленький вопрос очень интересует: в openlayers у меня поле размерами (0,0,700,550). Есть возможность получить координату курсора (вроде как сам опенлайерс умеет ее возвращать в разных форматах). Как ее соотнести с данными в postgis?
Другими словами: я кликаю в дом, получаю (x,y) или (широту,долготу) в месте клика указателем. К примеру, (340,230). Как мне узнать попал ли я в какой либо геометрический объект из слоя, выведенного из postgis'a?..
Если не очень хорошо сформулировал - скажите =)