Есть ли способ типизации полигонов для мультиполигонов?
Например, я создал круг, используя ST_Buffer () для точки. Тип возврата этой функции - тип Polygon. Проблема в том, что на столбце геометрии есть ограничение, ограничивающее его типом Multipolygon. Итак, я не могу вставить простой многоугольник.
Я использовал функцию ST_MPolyFromText (), но, как обычно, она возвращает ноль для этого, а ST_Dump () не дает правильного вывода.
Ограничение:
CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) = 'MULTIPOLYGON'::text OR geom IS NULL),
st_geometryn(geom, 1)
.Ответы:
ST_Multi - возвращает геометрию в виде геометрии MULTI *. Если геометрия уже MULTI *, она возвращается без изменений.
Пример:
источник