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

PostgreSQL

Войти
Регистрация
Восстановить пароль
 
EVOSandru6
3 / 3 / 0
Регистрация: 23.05.2012
Сообщений: 445
#1

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

04.01.2017, 08:14. Просмотров 220. Ответов 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 Как отловить записи с NOTICE триггера?
Найти элементы, в записи которых содержится n C++
C (СИ) Для указанного года найти все даты, попадающие на воскресенье, и все месяцы, начинающиеся с понедельника
C# Рекурсия. Найти максимальную цифру десятичной записи указанного числа
MySQL Как из таблицы удалить все записи, кроме тех, где колонка middlename не пустая?
Программа должна выводить все числа кратные трём, в промежутке от указанного минимума до указанного максимума C (СИ)
MS Access как вывести в запросе все года (записи) где рядом которого стоит цифра 1 ПО ГРУППАМ
Найти среднее арифметическое элементов последовательности, в записи значения которых содержится цифра 5 C (СИ)
C++ Найти прямоугольную матрицу указанного размера, где элементы считаются по заданной формуле
Assembler Как проверить, содержится ли цифра n в десятичной записи числа K?
Найти участок памяти где содержится dll и прочитать данные которые хранятся в определенных адресах C#

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

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

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