Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il tipo di dati spaziali geografici, geography
, rappresenta i dati in un sistema di coordinate terrestri. Questo tipo viene implementato come tipo di dati CLR (Common Language Runtime) .NET in SQL Server. Il tipo di dati SQL Server geography
archivia dati con puntini di sospensione (arrotondamento) (arrotondamento) come le coordinate gps di latitudine e longitudine.
Il tipo geography
è predefinito e disponibile in ogni database. È possibile creare colonne di tabella di tipo geography
e utilizzare dati geography
nello stesso modo in cui verrebbero utilizzati gli altri tipi forniti dal sistema.
Creazione o costruzione di una nuova istanza geografica
Creazione di una nuova istanza geografica da un'istanza esistente
Il tipo di dati geography
offre molti metodi predefiniti che è possibile utilizzare per creare nuove istanze geography
in base a quelle esistenti.
Per creare un buffer relativo a una geografia
STBuffer (tipo di dati geography)
Per creare un buffer relativo a una geografia, consentendo una certa tolleranza
BufferWithTolerance (tipo di dati geography)
Per creare una geografia dall'intersezione di due istanze di geografia
STIntersection (tipo di dati geography)
Per creare una geografia dall'unione di due istanze di geografia
STUnion (tipo di dati geography)
Per creare una geografia partendo dai punti in cui una non si sovrappone all'altra
STDifference (tipo di dati geography)
Costruzione di un'istanza geografica dall'input WKT (well-known text)
Il tipo di dati geography
fornisce diversi metodi predefiniti che generano una geografia dalla rappresentazione WKT Open Geospatial Consortium (OGC). Lo standard WKT è una stringa di testo che consente ai dati geografici di essere scambiati in formato testuale.
Per costruire qualsiasi tipo di istanza geografica dall'input WKT
STGeomFromText (tipo di dati geography)
Parse (tipo di dati geography)
Per costruire un'istanza geografica Point dall'input WKT
STPointFromText (tipo di dati geography)
Per costruire un'istanza geografica MultiPoint dall'input WKT
STMPointFromText (tipo di dati geography)
Per costruire un'istanza geografica LineString dall'input WKT
STLineFromText (tipo di dati geography)
Per costruire un'istanza geografica MultiLineString dall'input WKT
STMLineFromText (tipo di dati geography)
Per costruire un'istanza geografica Polygon dall'input WKT
STPolyFromText (tipo di dati geography)
Per costruire un'istanza geografica MultiPolygon dall'input WKT
STMPolyFromText (tipo di dati geography)
Per costruire un'istanza geografica GeometryCollection dall'input WKT
STPGeomCollFromText (tipo di dati geography)
Costruzione di un'istanza geografica dall'input WKB (well-known binary)
WKB è un formato binario specificato da OGC che consente di scambiare dati Geography
tra un'applicazione client e un database SQL. Le seguenti funzioni accettano l'input WKB per costruire le istanze geografiche:
Per costruire qualsiasi tipo di istanza geografica dall'input WKB
STGeomFromWKB (tipo di dati geography)
Per costruire un'istanza geografica Point dall'input WKB
STPointFromWKB (tipo di dati geography)
Per costruire un'istanza geografica MultiPoint dall'input WKB
STMPointFromWKB (tipo di dati geography)
Per costruire un'istanza geografica LineString dall'input WKB
STLineFromWKB (tipo di dati geography)
Per costruire un'istanza geografica MultiLineString dall'input WKB
STMLineFromWKB (tipo di dati geography)
Per costruire un'istanza geografica Polygon dall'input WKB
STPolyFromWKB (tipo di dati geography)
Per costruire un'istanza geografica MultiPolygon dall'input WKB
STMPolyFromWKB (tipo di dati geography)
Per costruire un'istanza geografica GeometryCollection dall'input WKB
STGeomCollFromWKB (tipo di dati geography)STGeomCollFromWKB (tipo di dati geography)
Costruzione di un'istanza geografica dall'input di testo GML
Il tipo di dati fornisce un metodo che genera un'istanza geography
geography
da GML, una rappresentazione XML di un'istanza geography
. SQL Server supporta un subset di GML.
Per altre informazioni su Geography Markup Language (GML), vedere la specifica OGC OGC Specifications, Geography Markup Language(Specifiche OGC, Geography Markup Language).
Per costruire qualsiasi tipo di istanza geografica dall'input GML
GeomFromGML (tipo di dati geography)
Restituzione di WKT e WKB da un'istanza geografica
È possibile utilizzare i metodi seguenti per restituire il formato WKT o WKB di un'istanza geography
:
Per restituire la rappresentazione WKT di un'istanza di geografia
STAsText (tipo di dati geography)
ToString (tipo di dati geography)
Per restituire la rappresentazione WKT di un'istanza di geografia, con qualsiasi valore Z e M.
AsTextZM (tipo di dati geography)
Per restituire la rappresentazione WKB di un'istanza geografica
STAsBinary (tipo di dati geography)
Per restituire la rappresentazione GML di un'istanza geografica
AsGml (tipo di dati geography)
Esecuzione di query sulle proprietà e i comportamenti delle istanze geografiche
Tutte le geography
istanze hanno una serie di proprietà che possono essere recuperate tramite metodi che SQL Server fornisce. Negli argomenti seguenti vengono definite le proprietà e i comportamenti dei tipi di geografia, nonché i metodi per l'esecuzione di query per ognuno di essi.
Informazioni sulla validità, sul tipo di istanza e su GeometryCollection
Dopo aver costruito un'istanza geography
, è possibile utilizzare i seguenti metodi per restituire il tipo di istanza oppure, se si tratta di un'istanza GeometryCollection
, restituire un'istanza geography
specifica.
Per restituire il tipo di istanza di una geografia
STGeometryType (tipo di dati geography)
Per determinare se una geografia è un tipo di istanza specificato
InstanceOf (tipo di dati geography)
Per determinare se il formato di un'istanza di geografia è corretto per il tipo di istanza
STNumGeometries (tipo di dati geography)
Per restituire una specifica geografia in un'istanza GeometryCollection
STGeometryN (tipo di dati geography)STGeometryN (tipo di dati geography)
Numero di punti
Tutte le istanze non interrotte geography
sono costituite da punti. che rappresentano le coordinate di latitudine e longitudine terrestri sulle quali vengono tracciate le istanze geography
. Il tipo di dati geography
fornisce numerosi metodi predefiniti per l'esecuzione di query sui punti di un'istanza.
Per restituire il numero di punti che comprendono un'istanza
STNumPoints (tipo di dati geography)
Per restituire un punto specifico in un'istanza
STPointN (tipo di dati geometry)
Per restituire il punto di inizio di un'istanza
STStartPoint (tipo di dati geography)
Per restituire il punto di fine di un'istanza
STEndpoint (tipo di dati geography)
Dimensione
Un'istanza geography
non vuota può essere a 0, 1 o 2 dimensioni. Le istanze zerodimensionali geography
, ad esempio Point
e MultiPoint
, non hanno lunghezza o area. Gli oggetti unidimensionali, ad esempio LineString, CircularString
, CompoundCurve
e MultiLineString
, dispongono della lunghezza. Le istanze bidimensionali, ad esempio Polygon, CurvePolygon
e MultiPolygon
, dispongono di area e lunghezza. Le istanze vuote indicano una dimensione di -1 e GeometryCollection
indica le dimensioni massime del contenuto.
Per restituire la dimensione di un'istanza
STDimension (tipo di dati geography)
Per restituire la lunghezza di un'istanza
STLength (tipo di dati geography)
Per restituire l'area di un'istanza
STArea (tipo di dati geography)
Empty
Un'istanza vuotageography
non ha punti. La lunghezza delle istanze vuote LineString, CircularString
, CompoundCurve
e MultiLineString
è 0. L'area delle istanze vuote Polygon, CurvePolygon
and MultiPolygon
è 0.
Per determinare se un'istanza è vuota
STIsEmpty (tipo di dati geography)
Chiusura
Un'istanza chiusageography
è una figura i cui punti iniziali e punti finali sono uguali. Le istanze Polygon
sono considerate chiuse. Le istanze Point
non sono considerate chiuse.
Un anello è un'istanza LineString
semplice chiusa.
Per determinare se un'istanza è chiusa
STIsClosed (tipo di dati geography)
Per restituire il numero di anelli in un'istanza Polygon
NumRings (tipo di dati geography)
Per restituire un anello specificato di un'istanza di geografia
RingN (tipo di dati geography)
Identificatore SRID
L'identificatore SRID specifica in quale sistema di coordinate ellissoidali è rappresentata l'istanza geography
. Non è possibile confrontare due istanze geography
con identificatori SRID diversi.
Per impostare o restituire l'identificatore SRID di un'istanza
STSrid (tipo di dati geography)
Questa proprietà può essere modificata.
Determinazione delle relazioni esistenti tra istanze geografiche
Il tipo di dati geography
offre molti metodi predefiniti che è possibile utilizzare per determinare relazioni tra due istanze geography
.
Per determinare se due istanze includono lo stesso punto impostato
STEquals (tipo di dati geometry)
Per determinare se due istanze sono disgiunte
STDisjoint (tipo di dati geometry)
Per determinare se due istanze si intersecano
STIntersects (tipo di dati geometry)
Per determinare il punto o i punti in cui due istanze si intersecano
STIntersection (tipo di dati geography)
Per determinare la distanza più breve tra punti in due istanze di geografia
STDistance (tipo di dati geometry)
Per determinare la differenza in termini di punti tra due istanze di geografia
STDifference (tipo di dati geography)
Per dedurre la differenza simmetrica o i punti univoci di un'istanza geografica a confronto con un'altra
STSymDifference (tipo di dati geography)
Le istanze geografiche devono utilizzare l'identificatore SRID supportato
SQL Server supporta gli SRID basati sugli standard EPSG. È necessario usare un SQL Server SRID supportato per le istanze quando geography
si eseguono calcoli o si usano metodi con dati spaziali geography. L'identificatore SRID deve corrispondere a uno di quelli visualizzati nella vista del catalogo sys.spatial_reference_systems Come indicato in precedenza, quando si eseguono i calcoli sui dati spaziali utilizzando il tipo di dati geography
i risultati dipenderanno dal tipo di ellissoide utilizzato nella creazione dei dati, in quanto a ogni ellissoide è assegnato un identificatore SRID specifico.
SQL Server usa lo SRID predefinito 4326, che esegue il mapping al sistema di riferimento spaziale WGS 84, quando si usano i metodi nelle geography
istanze. Se si utilizzano dati da un sistema di riferimento spaziale diverso da WGS 84 (o SRID 4326), sarà necessario determinare lo specifico identificatore SRID per i dati spaziali geografici.
Esempio
Negli esempi seguenti viene illustrato come aggiungere ed eseguire query su dati geography.
Nel primo esempio viene creata una tabella con una colonna di identità e una colonna
geography
GeogCol1
. Una terza colonna effettua il rendering della colonnageography
nella rappresentazione Well-Known Text (WKT) OGC (Open Geospatial Consortium) e utilizza il metodoSTAsText()
. Vengono quindi inserite due righe: in una riga è contenuta un'istanzaLineString
digeography
e in una seconda è contenuta un'istanzaPolygon
.IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL DROP TABLE dbo.SpatialTable; GO CREATE TABLE SpatialTable ( id int IDENTITY (1,1), GeogCol1 geography, GeogCol2 AS GeogCol1.STAsText() ); GO INSERT INTO SpatialTable (GeogCol1) VALUES (geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326)); INSERT INTO SpatialTable (GeogCol1) VALUES (geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326)); GO
Nel secondo esempio viene utilizzato il metodo
STIntersection()
per restituire i punti in cui si intersecano le due istanzegeography
inserite in precedenza.DECLARE @geog1 geography; DECLARE @geog2 geography; DECLARE @result geography; SELECT @geog1 = GeogCol1 FROM SpatialTable WHERE id = 1; SELECT @geog2 = GeogCol1 FROM SpatialTable WHERE id = 2; SELECT @result = @geog1.STIntersection(@geog2); SELECT @result.STAsText();