Ce face Polygon()
Un poligon este o suprafață: un cartier, o parcelă, o zonă de livrare. Polygon() primește conturul exterior ca LineString închis (primul punct este egal cu ultimul). Inelele următoare, opționale, sunt „găuri” în interiorul poligonului.
Dacă un inel nu este închis, serverul MySQL actual dă eroarea „Invalid GIS data provided to function polygon”.
Parametri
| Parametru | Descriere |
|---|---|
inel_exterior |
Conturul, ca LineString închis. |
inel_interior |
Opțional: găuri în poligon, tot ca LineString închise. |
Ce returnează
O valoare POLYGON.
Exemple
Exemplul 1: Un pătrat de 4 x 4 km și aria lui
SET @centru = Polygon(LineString(Point(0, 0), Point(4, 0), Point(4, 4), Point(0, 4), Point(0, 0)));
SELECT ST_AsText(@centru) AS poligon, ST_Area(@centru) AS arie_km2;
Rezultat
+--------------------------------+----------+
| poligon | arie_km2 |
+--------------------------------+----------+
| POLYGON((0 0,4 0,4 4,0 4,0 0)) | 16 |
+--------------------------------+----------+
Exemplul 2: Poligon cu o gaură (un parc cu un lac)
SET @parc = Polygon(
LineString(Point(0, 0), Point(10, 0), Point(10, 10), Point(0, 10), Point(0, 0)),
LineString(Point(4, 4), Point(6, 4), Point(6, 6), Point(4, 6), Point(4, 4))
);
SELECT ST_AsText(@parc) AS parc,
ST_Area(@parc) AS arie_fara_lac,
ST_NumInteriorRings(@parc) AS goluri;
Rezultat
+----------------------------------------------------------+---------------+--------+
| parc | arie_fara_lac | goluri |
+----------------------------------------------------------+---------------+--------+
| POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,6 4,6 6,4 6,4 4)) | 96 | 1 |
+----------------------------------------------------------+---------------+--------+
Greșeli frecvente
- Uiți să repeți primul punct la final. Inelul nu este închis și primești eroare; ultimul punct trebuie să fie identic cu primul.
Comenzi înrudite
LineString(): Construiește o linie frântă (LINESTRING) din două sau mai multe puncte.ST_Area(): Returnează aria unui poligon sau a unui MULTIPOLYGON; pentru SRID 4326, în metri pătrați.ST_ExteriorRing(): Returnează conturul exterior al unui poligon, ca LINESTRING închis.