координаты — Проверьте, находится ли точка внутри геометрии в PostGIS из Переполнения стека

Я определил тип геометрии, и в него были введены как многоугольники, так и окружности. Полигон был введен с использованием запроса следующего типа:

ST_GeomFromText('POLYGON$polygon')

где $ polygon содержит точки.

И я ввел круг в той же колонке, что и:

ST_Buffer((ST_GeomFromText('POINT($longitude $latitude)')), $radius)

Теперь мне нужно проверить, находится ли заданная точка внутри и геометрии.

Кто-нибудь может мне помочь?

Я пытался использовать этот запрос:

ST_CONTAINS(shape,ST_GeomFromText('POINT($longitude $latitude)'))

где форма — это имя моего столбца типа Geometry. Но это всегда дает мне верность для кругов, даже если они находятся вне круга.

0

Решение

Глядя на комментарии, вы используете геометрические типы с пространственной системой отсчета, которая использует единицы измерения в градусах (SRID = 4326). Создание круга с радиусом 5000 градусов — это массивный круг, который будет содержать все на земле.

Вы можете либо использовать проекционную систему пространственной привязки с единицами метров, либо рассмотреть возможность использования типа географии. Вы также можете буферизовать круг, используя тип географии, а затем преобразовать его обратно в тип геометрии.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]