Ce face ST_InteriorRingN() și ST_NumInteriorRings()
Inelele interioare sunt golurile dintr-un poligon: un lac într-un parc, o curte interioară într-o clădire. ST_NumInteriorRings() le numără, iar ST_InteriorRingN() returnează unul anume, ca LINESTRING. Numerotarea începe de la 1.
ST_NumInteriorRing() (fără „s”) este sinonim pentru ST_NumInteriorRings().
Parametri
| Parametru | Descriere |
|---|---|
poligon |
Un POLYGON. |
n |
Numărul inelului interior, de la 1. |
Ce returnează
ST_InteriorRingN(): un LINESTRING; ST_NumInteriorRings(): un număr întreg.
Exemple
Exemplul 1: Un parc cu două lacuri
SET @parc = ST_GeomFromText(
'POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,3 1,3 3,1 3,1 1),(6 6,8 6,8 8,6 8,6 6))');
SELECT ST_NumInteriorRings(@parc) AS lacuri,
ST_NumInteriorRing(@parc) AS lacuri_sinonim,
ST_AsText(ST_InteriorRingN(@parc, 2)) AS al_doilea_lac,
ST_Area(@parc) AS arie_fara_lacuri;
Rezultat
+--------+----------------+---------------------------------+------------------+
| lacuri | lacuri_sinonim | al_doilea_lac | arie_fara_lacuri |
+--------+----------------+---------------------------------+------------------+
| 2 | 2 | LINESTRING(6 6,8 6,8 8,6 8,6 6) | 92 |
+--------+----------------+---------------------------------+------------------+
Greșeli frecvente
- Crezi că inelele interioare sunt incluse în arie.
ST_Area()le scade; pentru aria totală foloseșteST_Area(Polygon(ST_ExteriorRing(p))).
Comenzi înrudite
ST_ExteriorRing(): Returnează conturul exterior al unui poligon, ca LINESTRING închis.Polygon(): Construiește un poligon din unul sau mai multe inele (LineString-uri închise).ST_Area(): Returnează aria unui poligon sau a unui MULTIPOLYGON; pentru SRID 4326, în metri pătrați.