Condividi tramite


Creare, costruire e interrogare le istanze di geografia

Il tipo di dati spaziali di geografia, geography, rappresenta i dati in un sistema di coordinate ellissoide terrestre. Questo tipo è implementato come un tipo di dati CLR (.NET Common Language Runtime) in SQL Server. Il tipo di dati DI SQL Server geography archivia dati ellissoidali (terra rotonda), ad esempio coordinate di latitudine e longitudine GPS.

Il geography tipo è predefinito e disponibile in ogni database. È possibile creare colonne di tabella di tipo geography e operare sui geography dati nello stesso modo in cui si userebbero altri tipi forniti dal sistema.

Creare o costruire una nuova istanza di geografia

Creazione di una nuova istanza di Geography da un'istanza esistente

Il geography tipo di dati fornisce numerosi metodi predefiniti che è possibile usare per creare nuove geography istanze in base alle istanze esistenti.

Per creare un buffer intorno a un'area geografica
STBuffer (tipo di dati geography)

Per creare un buffer intorno a un'area geografica, consentendo una tolleranza
BufferWithTolerance (tipo di dati geography)

Per creare una geografia dall'intersezione di due istanze geografiche
STIntersection (tipo di dati geografici)

Per creare una geografia dall'unione di due istanze geografiche
STUnion (Tipo di dati Geography)

Per creare una geografia dai punti in cui una geografia non si sovrappone a un'altra
STDifference (tipo di dati geography)

Costruzione di un'istanza geography da Well-Known input di testo

Il geography tipo di dati fornisce diversi metodi predefiniti che generano un'area geografica dalla rappresentazione WKT (OGC) Open Geospatial Consortium (OGC). Lo standard WKT è una stringa di testo che consente lo scambio di dati geography in formato testuale.

Per costruire qualsiasi tipo di istanza geografica dall'input WKT
STGeomFromText (tipo di dati geografia)

Analizza (tipo di dati geography)

Per costruire un'istanza geography 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 Geography LineString dall'input WKT
STLineFromText (tipo di dati geography)

Per costruire un'istanza di geography MultiLineString dall'input WKT
STMLineFromText (tipo di dati 'geography')

Per costruire un'istanza di poligono geografico da input WKT
STPolyFromText (tipo di dati geography)

Per costruire un'istanza di tipo MultiPolygon di geografia dall'input WKT
STMPolyFromText (tipo di dati geography)

Per costruire un'istanza di GeometryCollection di tipo geography dall'input WKT
STGeomCollFromText (tipo di dato geography)

Costruzione di un'istanza di geografia da input binario Well-Known

WKB è un formato binario specificato da OGC che consente lo scambio di Geography dati tra un'applicazione client e un database SQL. Le funzioni seguenti accettano l'input WKB per costruire istanze geography:

Per costruire qualsiasi tipo di istanza geografica dall'input WKB
STGeomFromWKB (Tipo di dati Geography)

Per costruire un'istanza geography 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 di tipo geografico LineString dall'input WKB
STLineFromWKB (tipo di dati geography)

Per costruire un'istanza geografica MultiLineString dall'input WKB
STMLineFromWKB (tipo di dati di geografia)

Per costruire un'istanza di geografia Polygon a partire dall'input WKB
STPolyFromWKB (Tipo di dati Geography)

Per costruire un'istanza di MultiPolygon geografico a partire dall'input WKB
STMPolyFromWKB (tipo di dati Geography)

Per costruire un'istanza della collezione di geometrie di geografia dall'input WKB
STGeomCollFromWKB (tipo di dati geografia)STGeomCollFromWKB (tipo di dati geografia)

Costruzione di un'istanza geography dall'input di testo GML

Il geography tipo di dati fornisce un metodo che genera un'istanza geography da GML, una rappresentazione XML di un'istanza geography . SQL Server supporta un subset di GML.

Per altre informazioni su Geography Markup Language, vedere la specifica OGC: Specifiche OGC, Geography Markup Language.

Per costruire qualsiasi tipo di istanza di geografia dall'input in formato GML
GeomFromGML (tipo di dati geography)

Restituzione di Well-Known testo e Well-Known binario da un'istanza di geografia

È possibile utilizzare i metodi seguenti per restituire il formato WKT o WKB di un'istanza geography :

Per restituire la rappresentazione WKT di un'istanza geografica
STAsText (tipo di dati 'geography')

ToString (tipo di dati geography)

Per restituire la rappresentazione WKT di un'istanza di geografia, inclusi i valori Z e M
AsTextZM (tipo di dati geography)

Per restituire la rappresentazione WKB di un'istanza geografica
STAsBinary (tipo di dati geography)

Per restituire una rappresentazione GML di un'istanza geography
AsGml (tipo di dati Geography)

Esecuzione di query sulle proprietà e sui comportamenti delle istanze geografiche

Tutte le geography istanze hanno una serie di proprietà che possono essere recuperate tramite metodi forniti da SQL Server. Gli argomenti seguenti definiscono le proprietà e i comportamenti dei tipi geography e i metodi per l'esecuzione di query su ognuno di essi.

Informazioni di Validità, Tipo di Istanza e Collezione Geometrica

Dopo la costruzione di un'istanza geography , è possibile utilizzare i metodi seguenti per restituire il tipo di istanza o, se si tratta di un'istanza GeometryCollection , restituire un'istanza specifica geography .

Per restituire il tipo di istanza di un'area geografica
STGeometryType (tipo di dati geografia)

Per determinare se un'area geografica è un tipo di istanza specificato
InstanceOf (tipo di dati geography)

Per determinare se un'istanza geografica è correttamente formata per il tipo di istanza
STNumGeometries (Tipo di dati Geography)

Per restituire un'area geografica specifica in un'istanza GeometryCollection
STGeometryN (tipo di dati geografia)STGeometryN (tipo di dati geografia)

Numero di punti

Tutte le istanze non vuote geography sono costituite da punti. Questi punti rappresentano le coordinate di latitudine e longitudine della terra su cui vengono disegnate le geography istanze. Il tipo di geography dati fornisce numerosi metodi predefiniti per l'esecuzione di query sui punti di un'istanza.

Per restituire il numero di punti che costituiscono un'istanza
STNumPoints (tipo di dati geografico)

Per restituire un punto specifico in un'istanza
STPointN (tipo di dati geometria)

Per restituire il punto iniziale di un'istanza
STStartPoint (tipo di dati geography)

Per restituire il punto finale di un'istanza
STEndpoint (Tipo di dati Geography)

Dimensione

Un'istanza nonempty geography può essere 0, 1 o 2 dimensionale. Le istanze zero-dimensionali geography , ad esempio Point e MultiPoint, non hanno lunghezza o area. Gli oggetti unidimensionali, ad esempio LineString, CircularString, CompoundCurvee MultiLineString, hanno lunghezza. Le istanze bidimensionali, ad esempio Polygon, CurvePolygon, e MultiPolygon, hanno area e lunghezza. Le istanze vuote segnalano una dimensione pari a -1 e una GeometryCollection indica la dimensione massima del relativo 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)

Vuoto

Un'istanza vuotageography non contiene punti. La lunghezza delle istanze vuote LineString, CircularString, CompoundCurvee MultiLineString è 0. L'area di istanze vuote Polygon, CurvePolygon e MultiPolygon è 0.

Per determinare se un'istanza è vuota
STIsEmpty ("tipo di dati geography")

Chiusura

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

Un anello è un'istanza semplice chiusa LineString.

Per determinare se un'istanza è chiusa
STIsClosed (tipo di dati geografia)

Per restituire il numero di anelli in un'istanza di Polygon
NumRings (tipo di dati geography)

Per restituire un anello specificato di un'istanza di geografia
RingN (tipo di dati geografici)

ID riferimento spaziale (SRID)

L'ID di riferimento spaziale (SRID) è un identificatore che specifica il sistema di coordinate ellissoidali in cui è rappresentata l'istanza geography . Non è possibile confrontare due geography istanze con identificatori SRID diversi.

Per impostare o restituire lo SRID di un'istanza
STSrid (tipo dati di geografia)

Questa proprietà può essere modificata.

Determinazione delle relazioni tra istanze geografiche

Il geography tipo di dati fornisce molti metodi predefiniti che è possibile usare per determinare le relazioni tra due geography istanze.

Per determinare se due istanze comprendono lo stesso set di punti
STEquals (tipo di dati geometry)

Per determinare se due istanze non sono contigue
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 i punti in due istanze geography
STDistance (tipo di dati geometry)

Per determinare la differenza in punti tra due istanze geography
STDifference (tipo di dati geography)

Per derivare la differenza simmetrica o i punti univoci di un'istanza geography rispetto a un'altra istanza
STSymDifference (tipo di dati geografia)

Le istanze geography devono usare srid supportati

SQL Server supporta gli identificatori SRID basati sugli standard EPSG. È necessario usare un SRID per le istanze geography supportato da SQL Server quando si eseguono calcoli o si usano metodi con dati spaziali geography. L'identificatore SRID deve corrispondere a uno degli SRID visualizzati nella vista del catalogo sys.spatial_reference_systems . Come accennato in precedenza, quando si eseguono calcoli sui dati spaziali usando il tipo di dati geography, i risultati dipenderanno da quale ellissoide è stato utilizzato nella creazione dei dati, poiché a ogni ellissoide viene assegnato un identificatore spaziale specifico (SRID).

SQL Server utilizza l'SRID predefinito 4326, mappato sul sistema di riferimento spaziale WGS 84, quando si usano i metodi sulle istanze geography. Se si usano dati di un sistema di riferimento spaziale diverso da WGS 84 (o SRID 4326), sarà necessario determinare lo SRID specifico per i dati spaziali geografici.

Esempi

I seguenti esempi mostrano come aggiungere e interrogare i dati di geografia.

  • Il primo esempio crea una tabella con una colonna Identity e una geography colonna GeogCol1. Una terza colonna esegue il rendering della colonna geography nella sua rappresentazione OGC (Open Geospatial Consortium) Well-Known Text (WKT) e usa il metodo STAsText(). Vengono quindi inserite due righe: una riga contiene un'istanza LineString di geographye una riga contiene un'istanza Polygon di .

    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  
    
  • Il secondo esempio usa il STIntersection() metodo per restituire i punti in cui le due istanze inserite geography in precedenza si intersecano.

    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();  
    

Vedere anche

Dati Spaziali (SQL Server)