Condividi tramite


Esecuzione di query sulle proprietà e comportamenti delle istanze di geometria

Tutte le istanze geometry hanno diverse proprietà che possono essere recuperate tramite metodi forniti da SQL Server. Negli argomenti seguenti vengono definite le proprietà e i comportamenti dei tipi di geometria, nonché i metodi per l'esecuzione di query per ognuno di essi.

Numero di punti

Tutte le istanze geometry non vuote sono costituite da punti. Questi punti rappresentano le coordinate X e Y del piano sul quale sono tracciate le geometrie. geometry fornisce diversi metodi predefiniti per l'esecuzione di una query sui punti di un'istanza.

Per restituire il numero di punti che comprendono un'istanza

Per restituire un punto specifico in un'istanza

Per restituire un punto arbitrario che si trova in un'istanza

Per restituire il punto di inizio di un'istanza

Per restituire il punto di fine di un'istanza

Per restituire la coordinata X di un'istanza Point

Per restituire la coordinata Y di un'istanza Point

STY

Per restituire il punto centrale geometrico di un'istanza Polygon o MultiPolygon

Dimensione

Un'istanza geometry non vuota può essere a 1 o 2 dimensioni o senza dimensioni. Per le istanze geometries senza dimensioni, ad esempio Point e MultiPoint non esiste la lunghezza o l'area. Per gli oggetti unidimensionali, ad esempio LineString e MultiLineString, non esiste la lunghezza. Per le istanze bidimensionali, come ad esempio Polygon e MultiPolygon, esistono l'area e la lunghezza. Le istanze vuote riporteranno una dimensione di -1 e un GeometryCollection riporterà un'area dipendente dai tipi del contenuto.

Per restituire la dimensione di un'istanza

Per restituire la lunghezza di un'istanza

Per restituire l'area di un'istanza

Vuota

Un'istanza vuotageometry non ha punti. La lunghezza delle istanze vuote LineStringMultiLineString è zero. L'area delle istanze vuote PolygonMultiPolygon è 0.

Per determinare se un'istanza è vuota

Semplice

Affinché una geometry dell'istanza sia semplice, deve soddisfare entrambi questi requisiti:

  • Ogni figura dell'istanza non deve intersecarsi, salvo agli endpoint.

  • Le figure dell'istanza non possono intersecarsi tra di loro in un punto non esistente in entrambi i loro limiti.

[!NOTA]

Le geometrie vuote sono sempre semplici.

Per determinare se un'istanza è semplice

Limite interno ed esterno

L'interno di un'istanza geometry è lo spazio occupato dall'istanza e l'esterno è lo spazio non occupato da essa.

Il limite è definito da OGC come segue:

  • Le istanze Point e MultiPoint non hanno un limite.

  • I limiti LineString e MultiLineString sono formati dai punti di inizio e di fine, rimuovendo quelli che si hanno per un numero di volte pari.

DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 1, 0 0, 1 0, 0 1), (1 1, 1 0))');
SELECT @g.STBoundary().ToString();

Il limite di un'istanza Polygon o MultiPolygon è l'insieme dei suoi anelli.

DECLARE @g geometry;
SET @g = geometry::Parse('POLYGON((0 0, 3 0, 3 3, 0 3, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1))');
SELECT @g.STBoundary().ToString();

Per restituire il limite di un'istanza

STBoundary

Envelope

L'envelope di un'istanza geometry , conosciuta anche come riquadro è il rettangolo allineato dall'asse formato dalle coordinate minime e massime (X, Y) dell'istanza.

Per restituire l'envelope di un'istanza

STEnvelope

Chiusura

Un'istanza geometrychiusa è una figura i cui punti di inizio e di fine sono gli stessi. Le istanze Polygon sono considerate chiuse. Le istanze Point non sono chiuse.

Un anello è un'istanza LineString semplice chiusa.

Per determinare se un'istanza è chiusa

STIsClosed

Per determinare se un'istanza è un anello

STIsRing

Per restituire l'anello esterno di un'istanza Polygon

STExteriorRing

Per restituire il numero di anelli interni in un'istanza Polygon

STNumInteriorRing

Per restituire un anello interno specificato di un'istanza Polygon

STInteriorRingN

Identificatore SRID

L'identificatore SRID specifica in quale sistema di coordinate è rappresentata l'istanza geometry . Due istanze con identificatori SRID diversi non possono essere confrontate.

Per impostare o restituire l'identificatore SRID di un'istanza

STSrid

Questa proprietà può essere modificata.