Страница 1 из 1

Как в posgis найти все записи, где геокоордината содержится в рамках указанного полигона?

Добавлено: 2017.01.04, 08:12
EVOSandru6
Добрый день,

Мне нужно достать объекты, которые находятся в области экрана на карте.

Крайние координаты углов известны. В базе координата объекта ( поле gis_centroid ) имеет тип geography

Пробовал 2-мя вариантами:

Код: Выделить всё

select *
            FROM m_waypoints
            where 
              ST_Within( 
               gis_centroid, 
                ST_GeometryFromText(
                  'POLYGON((43.284500434723 76.93922996521, 43.293825032866 76.93922996521, 43.293825032866 76.965687274933, 43.284500434723 76.965687274933, 43.284500434723 76.93922996521))', 4326
                )
            ) 

Ловлю:

Код: Выделить всё

ERROR: function st_within(geography, geometry) does not exist

Код: Выделить всё

select *
            FROM m_waypoints
            where 
              ST_Within( 
                ST_GeometryFromText(gis_centroid), 
                ST_GeometryFromText(
                  'POLYGON((43.284500434723 76.93922996521, 43.293825032866 76.93922996521, 43.293825032866 76.965687274933, 43.284500434723 76.965687274933, 43.284500434723 76.93922996521))', 4326
                )
            ) 

Ловлю:

ERROR: function st_geometryfromtext(geography) does not exist

Не понял - зачем преобразовывать тип точки, если на вход - нет данных. Просто нужно найти все объекты в полигоне.

Помогите пожалуйста с запросом.

Re: Как в posgis найти все записи, где геокоордината содержится в рамках указанного полигона?

Добавлено: 2017.01.12, 19:40
rugabarbo
На SE искать надо (с префиксом [postgis]).

Простейший пример: http://gis.stackexchange.com/questions/ ... -a-polygon
Уверен, что и другие примеры там есть.

Re: Как в posgis найти все записи, где геокоордината содержится в рамках указанного полигона?

Добавлено: 2017.01.13, 06:32
EVOSandru6
Благодарю за ответ, в тех краях и был найдено решение)