МНОГОУГОЛЬНИК
Синтаксис
Polygon(ls1,ls2,...)
Описание
Создаёт значение WKB Многоугольника из ряда аргументов WKB Линейных полилиний. Если какой-либо аргумент не представляет собой WKB линейного кольца (то есть не является замкнутой и простой линейной полилинией), возвращаемое значение равно NULL.
Обратите внимание, что согласно стандарту OpenGIS, многоугольник должен иметь ровно одну Внешнюю границу, а все остальные кольца должны лежать внутри этой Внешней границы и, таким образом, быть Внутренними границами. Однако на практике некоторые системы, включая MariaDB, допускают, чтобы у многоугольников было несколько «Внешних границ». В случае наличия нескольких непересекающихся внешних границ ST_NUMINTERIORRINGS() вернёт 1.
Примеры
SET @g = ST_GEOMFROMTEXT('POLYGON((1 1,1 5,4 9,6 9,9 3,7 2,1 1))');
CREATE TABLE gis_polygon (g POLYGON);
INSERT INTO gis_polygon VALUES
(PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),
(PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')),
(PolyFromWKB(AsWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0))))));
Непересекающийся «многоугольник»:
SELECT ST_NumInteriorRings(ST_PolyFromText('POLYGON((0 0,10 0,10 10,0 10,0 0),
(-1 -1,-5 -1,-5 -5,-1 -5,-1 -1))')) AS NumInteriorRings;
+------------------+
| NumInteriorRings |
+------------------+
| 1 |
+------------------+
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/polygon/