У меня определена следующая таблица, в которой используется география PostGIS.
CREATE TABLE test_geog (
id SERIAL PRIMARY KEY,
boundary GEOGRAPHY(Polygon)
);
Я добавил следующий тестовый полигон в таблицу:
INSERT INTO test_geog VALUES (ST_GeographyFromText('SRID=4326;POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'));
Я пытаюсь определить, является лиТочка лежит в любом из многоугольников в этой таблице.У меня есть этот запрос:
SELECT ST_ContainsProperly(ST_GeographyFromText('Point(2 2)'), area)
FROM (SELECT boundary FROM test_geog) AS area;
Это приводит к следующей ошибке:
ERROR: function st_containsproperly(geography, record) does not exist
LINE 1: SELECT ST_ContainsProperly(ST_GeographyFromText('Point(2 2)'...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Как мне преобразовать эту "запись" в POLYGON
?Я в замешательстве, потому что кажется, что в столбце уже объявлено, что он содержит только POLYGON
типов, но по какой-то причине это не то, что я извлекаю из базы данных.
Я попытался разыграть записьна POLYGON
вот так:
SELECT ST_ContainsProperly(ST_GeographyFromText('Point(2 2)'), CAST (boundary AS POLYGON))
FROM (SELECT boundary FROM source_imagery) AS nitf_area;
Но это дает мне эту ошибку:
ERROR: cannot cast type record to polygon
LINE 1: ...tainsProperly(ST_GeographyFromText('Point(2 2)'), CAST (boun...
Что я здесь не понимаю?