Ce face ST_Buffer_Strategy()
Rezultatul este un șir binar, care are sens doar ca argument pentru ST_Buffer(). Strategiile pentru puncte sunt 'point_circle' (cerc, implicit) și 'point_square' (pătrat). Pentru colțurile liniilor și poligoanelor: 'join_round' (rotunjite, implicit) și 'join_miter' (ascuțite). Pentru capetele liniilor: 'end_round' (rotunde, implicit) și 'end_flat' (drepte).
'point_circle', 'join_round', 'join_miter' și 'end_round' cer al doilea argument, numărul de puncte pe cerc (implicit 32 în ST_Buffer()). 'point_square' și 'end_flat' nu acceptă al doilea argument. La ST_Buffer() se poate da cel mult o strategie de fiecare tip.
Parametri
| Parametru | Descriere |
|---|---|
strategie |
Unul dintre textele 'point_circle', 'point_square', 'join_round', 'join_miter', 'end_round', 'end_flat'. |
puncte_pe_cerc |
Numărul de puncte folosite pentru un cerc complet (pentru strategiile rotunde și join_miter). |
Ce returnează
Un șir binar, folosit ca argument în ST_Buffer().
Exemple
Exemplul 1: Cerc mai grosier, cu 8 puncte
SET @cerc8 = ST_Buffer(Point(0, 0), 1, ST_Buffer_Strategy('point_circle', 8));
SELECT ST_NumPoints(ST_ExteriorRing(@cerc8)) AS puncte_contur,
ROUND(ST_Area(@cerc8), 4) AS arie;
Rezultat
+---------------+--------+
| puncte_contur | arie |
+---------------+--------+
| 9 | 2.8284 |
+---------------+--------+
Exemplul 2: Culoar de 1 km de-a lungul unui drum, cu capete drepte
SET @drum = ST_GeomFromText('LINESTRING(0 0,0 5,5 5)');
SELECT ST_AsText(ST_Buffer(@drum, 1,
ST_Buffer_Strategy('end_flat'),
ST_Buffer_Strategy('join_miter', 4))) AS culoar;
Rezultat
+---------------------------------------------------+
| culoar |
+---------------------------------------------------+
| POLYGON((1 4,5 4,5 6,0 6,-1 6,-1 5,-1 0,1 0,1 4)) |
+---------------------------------------------------+
Greșeli frecvente
- Dai două strategii de același tip (de exemplu
end_flatșiend_round) sau o strategie pentru puncte la o linie. Primești eroare de argumente greșite.
Comenzi înrudite
ST_Buffer(): Returnează zona formată din toate punctele aflate la cel mult o distanță dată de o geometrie (o „zonă tampon”).