Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
EVOSandru6
3 / 3 / 0
Регистрация: 23.05.2012
Сообщений: 442
04.01.2017, 08:14     Как в posgis найти все записи, где геокоордината содержится в рамках указанного полигона? #1
Добрый день,

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

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

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

SQL
1
2
3
4
5
6
7
8
9
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

SQL
1
2
3
4
5
6
7
8
9
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 exis

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

Помогите пожалуйста с запросом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2017, 08:14     Как в posgis найти все записи, где геокоордината содержится в рамках указанного полигона?
Посмотрите здесь:

PostgreSQL с чего начать и где это что-то найти
Запрос на удаление записи PostgreSQL
Подскажите где ошибка? PostgreSQL
PostgreSQL Как отловить записи с NOTICE триггера?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grgdvo
500 / 441 / 119
Регистрация: 02.09.2012
Сообщений: 1,283
04.01.2017, 16:08     Как в posgis найти все записи, где геокоордината содержится в рамках указанного полигона? #2
функция ST_Within принимает на вход два аргумента с типами geometry, а не geography - это разные вещи. надо преобразовать
попробовать gis_centroid::geometry что ли??
Yandex
Объявления
04.01.2017, 16:08     Как в posgis найти все записи, где геокоордината содержится в рамках указанного полигона?
Ответ Создать тему

Метки
posgis, postgresql
Опции темы

Текущее время: 23:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru