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

PostgreSQL

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

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

04.01.2017, 08:14. Просмотров 240. Ответов 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):

Найти элементы, в записи которых содержится n - C++
Приношу извинения если такая тема уже была. Я правда-правда искал и не нашел ничего, что бы решило мою проблему.:cry: Итак, вот...

Для указанного года найти все даты, попадающие на воскресенье, и все месяцы, начинающиеся с понедельника - C (СИ)
Всем привет,нуждаюсь в помощи этой программы.Не понимаю как это сделать,спасибо откликнувшимся. Необходимо написать программу, которая бы...

Рекурсия. Найти максимальную цифру десятичной записи указанного числа - C#
Определить рекурсивную функцию, которая находит максимальную цифру десятичной записи указанного числа. Написать программу, использующую...

Как из таблицы удалить все записи, кроме тех, где колонка middlename не пустая? - MySQL
Привет! Подскажите пожалуйста,как из таблицы удалить все записи кроме тех где колонка middlename не пустая. Спасибо!

Программа должна выводить все числа кратные трём, в промежутке от указанного минимума до указанного максимума - C (СИ)
Всем доброе время суток! Задали задание, банальное, но есть одна проблема. Помогите найти решение для оптимизации этого алгоритма: if...

как вывести в запросе все года (записи) где рядом которого стоит цифра 1 ПО ГРУППАМ - MS Access
как вывести в запросе все года (записи) где рядом которого стоит цифра 1 ПО ГРУППАМ смотрите рисунок...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
grgdvo
550 / 486 / 138
Регистрация: 02.09.2012
Сообщений: 1,431
04.01.2017, 16:08 #2
функция ST_Within принимает на вход два аргумента с типами geometry, а не geography - это разные вещи. надо преобразовать
попробовать gis_centroid::geometry что ли??
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2017, 16:08
Привет! Вот еще темы с ответами:

Найти среднее арифметическое элементов последовательности, в записи значения которых содержится цифра 5 - C (СИ)
В чем ошибка? Вычислить среднее арифметическое элементов числовой последовательности, в записи значения которых содержится цифра 5....

Найти прямоугольную матрицу указанного размера, где элементы считаются по заданной формуле - C++
Есть векторы х и у, которые считаются по формуле Xi=1/i^2+1 ; Yi=1/i;. Найти матрицу А , размера N*M, где элементы считаются по формуле...

Как проверить, содержится ли цифра n в десятичной записи числа K? - Assembler
Подсчитать количество целых чисел из диапазона , в десятичной записи которых есть цифра 3. Как осуществить проверку находится ли в записи 3...

Найти участок памяти где содержится dll и прочитать данные которые хранятся в определенных адресах - C#
Подскажите у меня есть процесс но в нем еще есть подгружаемые dll мне нужно в процессе найти эту участок памяти где содержится dll и...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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