Creare, Costruire e Istanze geografiche di QueryCreate, Construct, and Query geography Instances

Il tipo di dati spaziali geografici, geography, rappresenta i dati in un sistema di coordinate terrestri.The geography spatial data type, geography, represents data in a round-earth coordinate system. In SQL ServerSQL Serverè implementato come tipo di dati CLR (Common Language Runtime) .NET.This type is implemented as a .NET common language runtime (CLR) data type in SQL ServerSQL Server. Il tipo di dati SQL ServerSQL Server geography data type stores ellipsoidal (round-earth) data, such as GPS latitude and longitude coordinates.The SQL ServerSQL Server geography data type stores ellipsoidal (round-earth) data, such as GPS latitude and longitude coordinates.

Il tipo geography è predefinito e disponibile in ogni database.The geography type is predefined and available in each database. È possibile creare colonne di tabella di tipo geography e usare dati geography nello stesso modo in cui vengono usati gli altri tipi forniti dal sistema.You can create table columns of type geography and operate on geography data in the same manner as you would use other system-supplied types.

Creazione o costruzione di una nuova istanza geografica Creating or constructing a new geography instance

Creazione di una nuova istanza geografica da un'istanza esistente Creating a New geography Instance from an Existing Instance

Il tipo di dati geography offre molti metodi predefiniti che è possibile usare per creare nuove istanze di geography in base a quelle esistenti.The geography data type provides numerous built-in methods you can use to create new geography instances based on existing instances.

Per creare un buffer relativo a una geografiaTo create a buffer around a geography
STBuffer (tipo di dati geography) STBuffer (geography Data Type)

Per creare un buffer relativo a una geografia, consentendo una certa tolleranzaTo create a buffer around a geography, allowing for a tolerance
BufferWithTolerance (tipo di dati geography) BufferWithTolerance (geography Data Type)

Per creare una geografia dall'intersezione di due istanze di geografiaTo create a geography from the intersection of two geography instances
STIntersection (tipo di dati geography) STIntersection (geography Data Type)

Per creare una geografia dall'unione di due istanze di geografiaTo create a geography from the union of two geography instances
STUnion (tipo di dati geography) STUnion (geography Data Type)

Per creare una geografia partendo dai punti in cui una non si sovrappone all'altraTo create a geography from the points where one geography does not overlap another
STDifference (tipo di dati geography) STDifference (geography Data Type)

Costruzione di un'istanza geografica dall'input WKT (well-known text) Constructing a geography Instance from Well-Known Text Input

Il tipo di dati geography fornisce molti metodi predefiniti che generano una geometria dalla rappresentazione WKT OGC (Open Geospatial Consortium).The geography data type provides several built-in methods that generate a geography from the Open Geospatial Consortium (OGC) WKT representation. Lo standard WKT è una stringa di testo che consente ai dati geografici di essere scambiati in formato testuale.The WKT standard is a text string that allows geography data to be exchanged in textual form.

Per costruire qualsiasi tipo di istanza geografica dall'input WKTTo construct any type of geography instance from WKT input
STGeomFromText (tipo di dati geography) STGeomFromText (geography Data Type)

Parse (tipo di dati geography)Parse (geography Data Type)

Per costruire un'istanza geografica Point dall'input WKTTo construct a geography Point instance from WKT input
STPointFromText (tipo di dati geography) STPointFromText (geography Data Type)

Per costruire un'istanza geografica MultiPoint dall'input WKTTo construct a geography MultiPoint instance from WKT input
STMPointFromText (tipo di dati geography) STMPointFromText (geography Data Type)

Per costruire un'istanza geografica LineString dall'input WKTTo construct a geography LineString instance from WKT input
STLineFromText (tipo di dati geography)STLineFromText (geography Data Type)

Per costruire un'istanza geografica MultiLineString dall'input WKTTo construct a geography MultiLineString instance from WKT input
STMLineFromText (tipo di dati geography) STMLineFromText (geography Data Type)

Per costruire un'istanza geografica Polygon dall'input WKTTo construct a geography Polygon instance from WKT input
STPolyFromText (tipo di dati geography) STPolyFromText (geography Data Type)

Per costruire un'istanza geografica MultiPolygon dall'input WKTTo construct a geography MultiPolygon instance from WKT input
STMPolyFromText (tipo di dati geography) STMPolyFromText (geography Data Type)

Per costruire un'istanza geografica GeometryCollection dall'input WKTTo construct a geography GeometryCollection instance from WKT input
STGeomCollFromText (tipo di dati geography) STGeomCollFromText (geography Data Type)

Costruzione di un'istanza geografica dall'input WKB (well-known binary) Constructing a geography Instance from Well-Known Binary Input

WKB è un formato binario definito da OGC che consente lo scambio di dati Geography tra un'applicazione client e un database SQL.WKB is a binary format specified by the OGC that permits Geography data to be exchanged between a client application and an SQL database. Le seguenti funzioni accettano l'input WKB per costruire le istanze geografiche:The following functions accept WKB input to construct geography instances:

Per costruire qualsiasi tipo di istanza geografica dall'input WKBTo construct any type of geography instance from WKB input
STGeomFromWKB (tipo di dati geography) STGeomFromWKB (geography Data Type)

Per costruire un'istanza geografica Point dall'input WKBTo construct a geography Point instance from WKB input
STPointFromWKB (tipo di dati geography) STPointFromWKB (geography Data Type)

Per costruire un'istanza geografica MultiPoint dall'input WKBTo construct a geography MultiPoint instance from WKB input
STMPointFromWKB (tipo di dati geography) STMPointFromWKB (geography Data Type)

Per costruire un'istanza geografica LineString dall'input WKBTo construct a geography LineString instance from WKB input
STLineFromWKB (tipo di dati geography) STLineFromWKB (geography Data Type)

Per costruire un'istanza geografica MultiLineString dall'input WKBTo construct a geography MultiLineString instance from WKB input
STMLineFromWKB (tipo di dati geography) STMLineFromWKB (geography Data Type)

Per costruire un'istanza geografica Polygon dall'input WKBTo construct a geography Polygon instance from WKB input
STPolyFromWKB (tipo di dati geography) STPolyFromWKB (geography Data Type)

Per costruire un'istanza geografica MultiPolygon dall'input WKBTo construct a geography MultiPolygon instance from WKB input
STMPolyFromWKB (tipo di dati geography) STMPolyFromWKB (geography Data Type)

Per costruire un'istanza geografica GeometryCollection dall'input WKBTo construct a geography GeometryCollection instance from WKB input
STGeomCollFromWKB (tipo di dati geography)STGeomCollFromWKB (tipo di dati geography) STGeomCollFromWKB (geography Data Type)STGeomCollFromWKB (geography Data Type)

Costruzione di un'istanza geografica dall'input di testo GML Constructing a geography Instance from GML Text Input

Il tipo di dati geography include un metodo che genera un'istanza geography da GML, una rappresentazione XML di un'istanza geography .The geography data type provides a method that generates a geography instance from GML, an XML representation of a geography instance. SQL ServerSQL Server supporta un subset di GML. supports a subset of GML.

Per altre informazioni su Geography Markup Language (GML), vedere la specifica OGC OGC Specifications, Geography Markup Language(Specifiche OGC, Geography Markup Language).For more information on Geography Markup Language, see the OGC Specification: OGC Specifications, Geography Markup Language.

Per costruire qualsiasi tipo di istanza geografica dall'input GMLTo construct any type of geography instance from GML input
GeomFromGML (tipo di dati geography) GeomFromGML (geography Data Type)

Restituzione di WKT e WKB da un'istanza geografica Returning Well-Known Text and Well-Known Binary from a geography Instance

È possibile usare i metodi seguenti per restituire il formato WKT o WKB di un'istanza geography :You can use the following methods to return either the WKT or WKB format of a geography instance:

Per restituire la rappresentazione WKT di un'istanza di geografiaTo return the WKT representation of a geography instance
STAsText (tipo di dati geography) STAsText (geography Data Type)

ToString (tipo di dati geography)ToString (geography Data Type)

Per restituire la rappresentazione WKT di un'istanza di geografia, con qualsiasi valore Z e M.To return the WKT representation of a geography instance including any Z and M values
AsTextZM (tipo di dati geography) AsTextZM (geography Data Type)

Per restituire la rappresentazione WKB di un'istanza geograficaTo return the WKB representation of a geography instance
STAsBinary (tipo di dati geography) STAsBinary (geography Data Type)

Per restituire la rappresentazione GML di un'istanza geograficaTo return a GML representation of a geography instance
AsGml (tipo di dati geography) AsGml (geography Data Type)

Esecuzione di query sulle proprietà e i comportamenti delle istanze geografiche Querying the Properties and Behaviors of geography Instances

A tutte le istanze geography sono associate diverse proprietà che possono essere recuperate tramite metodi disponibili in SQL ServerSQL Server .All geography instances have a number of properties that can be retrieved through methods that SQL ServerSQL Server provides. 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.The following topics define the properties and behaviors of geography types, and the methods for querying each one.

Informazioni sulla validità, sul tipo di istanza e su GeometryCollection Validity, Instance Type, and GeometryCollection Information

Dopo aver costruito un'istanza geography , è possibile usare i metodi seguenti per restituire il tipo di istanza o, se si tratta di un'istanza GeometryCollection , per restituire un'istanza geography .After a geography instance is constructed, you can use the following methods to return the instance type, or if it is a GeometryCollection instance, return a specific geography instance.

Per restituire il tipo di istanza di una geografiaTo return the instance type of a geography
STGeometryType (tipo di dati geography) STGeometryType (geography Data Type)

Per determinare se una geografia è un tipo di istanza specificatoTo determine if a geography is a given instance type
InstanceOf (tipo di dati geography) InstanceOf (geography Data Type)

Per determinare se il formato di un'istanza di geografia è corretto per il tipo di istanzaTo determine if a geography instance is well-formed for its instance type
STNumGeometries (tipo di dati geography) STNumGeometries (geography Data Type)

Per restituire una specifica geografia in un'istanza GeometryCollectionTo return a specific geography in a GeometryCollection instance
STGeometryN (tipo di dati geography)STGeometryN (tipo di dati geography) STGeometryN (geography Data Type)STGeometryN (geography Data Type)

Numero di punti Number of Points

Tutte le istanze geography non vuote sono costituite da punti.All nonempty geography instances are comprised of points. Questi punti rappresentano le coordinate di latitudine e longitudine terrestri sulle quali vengono tracciate le istanze geography .These points represent the latitude and longitude coordinates of the earth on which the geography instances are drawn. Il tipo di dati geography offre numerosi metodi predefiniti per l'esecuzione di query sui punti di un'istanza.The data type geography provides numerous built-in methods for querying the points of an instance.

Per restituire il numero di punti che comprendono un'istanzaTo return the number of points that comprise an instance
STNumPoints (tipo di dati geography) STNumPoints (geography Data Type)

Per restituire un punto specifico in un'istanzaTo return a specific point in an instance
STPointN (tipo di dati geometry) STPointN (geometry Data Type)

Per restituire il punto di inizio di un'istanzaTo return the start point of an instance
STStartPoint (tipo di dati geography) STStartPoint (geography Data Type)

Per restituire il punto di fine di un'istanzaTo return the end point of an instance
STEndpoint (tipo di dati geography) STEndpoint (geography Data Type)

Dimensione Dimension

Un'istanza geography non vuota può essere a 0, 1 o 2 dimensioni.A nonempty geography instance can be 0-, 1-, or 2-dimensional. Le istanze geography senza dimensioni, come Point e MultiPoint, non hanno lunghezza o area.Zero-dimensional geography instances, such as Point and MultiPoint, have no length or area. Gli oggetti unidimensionali come LineString, CircularString, CompoundCurvee MultiLineStringhanno una lunghezza.One-dimensional objects, such as LineString, CircularString, CompoundCurve, and MultiLineString, have length. Le istanze bidimensionali come Polygon, CurvePolygone MultiPolygon.Two-dimensional instances, such as Polygon, CurvePolygon, and MultiPolygon, have area and length. Le istanze vuote indicano una dimensione pari a -1 e GeometryCollection indica le dimensioni massime del contenuto.Empty instances report a dimension of -1, and a GeometryCollection reports the maximum dimension of its contents.

Per restituire la dimensione di un'istanzaTo return the dimension of an instance
STDimension (tipo di dati geography) STDimension (geography Data Type)

Per restituire la lunghezza di un'istanzaTo return the length of an instance
STLength (tipo di dati geography) STLength (geography Data Type)

Per restituire l'area di un'istanzaTo return the area of an instance
STArea (tipo di dati geography) STArea (geography Data Type)

Vuoto Empty

Un'istanza vuota di tipo geography non contiene punti.An emptygeography instance does not have any points. La lunghezza delle istanze LineString, CircularString, CompoundCurvee MultiLineString vuote è pari a 0.The length of empty LineString, CircularString, CompoundCurve, and MultiLineString instances is 0. L'area delle istanze Polygon, CurvePolygon e MultiPolygon vuote è pari a 0.The area of empty Polygon, CurvePolygon and MultiPolygon instances is 0.

Per determinare se un'istanza è vuotaTo determine if an instance is empty
STIsEmpty (tipo di dati geography) STIsEmpty (geography Data Type)

Chiusura Closure

Un'istanza geography chiusa è una figura i cui punti di inizio e di fine corrispondono.A closedgeography instance is a figure whose start points and end points are the same. Le istanzePolygon sono considerate chiuse.Polygon instances are considered closed. Le istanzePoint non sono considerate chiuse.Point instances are not closed.

Un anello è un'istanza LineString semplice chiusa.A ring is a simple, closed LineString instance.

Per determinare se un'istanza è chiusaTo determine if an instance is closed
STIsClosed (tipo di dati geography) STIsClosed (geography Data Type)

Per restituire il numero di anelli in un'istanza PolygonTo return the number of rings in a Polygon instance
NumRings (tipo di dati geography) NumRings (geography Data Type)

Per restituire un anello specificato di un'istanza di geografiaTo return a specified ring of a geography instance
RingN (tipo di dati geography) RingN (geography Data Type)

Identificatore SRID Spatial Reference ID (SRID)

L'identificatore SRID specifica in quale sistema di coordinate ellissoidale è rappresentata l'istanza geography .The spatial reference ID (SRID) is an identifier specifying which ellipsoidal coordinate system the geography instance is represented in. Non è possibile confrontare due istanze geography con identificatori SRID diversi.Two geography instances with different SRIDs cannot be compared.

Per impostare o restituire l'identificatore SRID di un'istanzaTo set or return the SRID of an instance
STSrid (tipo di dati geography) STSrid (geography Data Type)

Questa proprietà può essere modificata.This property can be modified.

Determinazione delle relazioni esistenti tra istanze geografiche Determining Relationships between geography Instances

Il tipo di dati geography offre molti metodi predefiniti che è possibile usare per determinare relazioni tra due istanze geography .The geography data type provides many built-in methods you can use to determine relationships between two geography instances.

Per determinare se due istanze includono lo stesso punto impostatoTo determine if two instances comprise the same point set
STEquals (tipo di dati geometry) STEquals (geometry Data Type)

Per determinare se due istanze sono disgiunteTo determine if two instances are disjoint
STDisjoint (tipo di dati geometry) STDisjoint (geometry Data Type)

Per determinare se due istanze si intersecanoTo determine if two instances intersect
STIntersects (tipo di dati geometry) STIntersects (geometry Data Type)

Per determinare il punto o i punti in cui due istanze si intersecanoTo determine the point or points where two instances intersect
STIntersection (tipo di dati geography) STIntersection (geography Data Type)

Per determinare la distanza più breve tra punti in due istanze di geografiaTo determine the shortest distance between points in two geography instances
STDistance (tipo di dati geometry) STDistance (geometry Data Type)

Per determinare la differenza in termini di punti tra due istanze di geografiaTo determine the difference in points between two geography instances
STDifference (tipo di dati geography) STDifference (geography Data Type)

Per dedurre la differenza simmetrica o i punti univoci di un'istanza geografica a confronto con un'altraTo derive the symmetric difference, or unique points, of one geography instance compared with another instance
STSymDifference (tipo di dati geography) STSymDifference (geography Data Type)

Le istanze geografiche devono utilizzare l'identificatore SRID supportato geography Instances Must Use Supported SRID

SQL ServerSQL Server supporta gli identificatori SRID basati sugli standard EPSG. supports SRIDs based on the EPSG standards. È necessario usare un identificatore SRID supportato da SQL ServerSQL Serverper le istanze geography se si eseguono calcoli o si usano metodi con dati spaziali geografici.A SQL ServerSQL Server-supported SRID for geography instances must be used when performing calculations or using methods with geography spatial data. L'identificatore SRID deve corrispondere a uno di quelli visualizzati nella vista del catalogo sys.spatial_reference_systemsThe SRID must match one of the SRIDs displayed in the sys.spatial_reference_systems catalog view. Come indicato in precedenza, quando si eseguono i calcoli sui dati spaziali usando il tipo di dati geography i risultati dipenderanno dal tipo di ellissoide usato nella creazione dei dati perché a ogni ellissoide è assegnato un identificatore SRID specifico.As mentioned previously, when you perform calculations on your spatial data using the geography data type, your results will depend on which ellipsoid was used in the creation of your data, as each ellipsoid is assigned a specific spatial reference identifier (SRID).

SQL ServerSQL Server usa l'identificatore predefinito SRID 4326, che esegue il mapping al sistema di riferimento spaziale WGS 84 quando si usano metodi nelle istanze geography . uses the default SRID of 4326, which maps to the WGS 84 spatial reference system, when using methods on geography instances. 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.If you use data from a spatial reference system other than WGS 84 (or SRID 4326), you will need to determine the specific SRID for your geography spatial data.

Esempi Examples

Negli esempi seguenti viene illustrato come aggiungere ed eseguire query su dati geography.The following examples show how to add and query geography data.

  • Nel primo esempio viene creata una tabella con una colonna di identità e una colonna geography``GeogCol1.The first example creates a table with an identity column and a geography column GeogCol1. Una terza colonna effettua il rendering della colonna geography nella rappresentazione Well-Known Text (WKT) OGC (Open Geospatial Consortium) e utilizza il metodo STAsText().A third column renders the geography column into its Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation, and uses the STAsText() method. Vengono quindi inserite due righe: in una riga è contenuta un'istanza LineString di geographye in una seconda è contenuta un'istanza Polygon .Two rows are then inserted: one row contains a LineString instance of geography, and one row contains a Polygon instance.

    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 istanze geography inserite in precedenza.The second example uses the STIntersection() method to return the points where the two previously inserted geography instances intersect.

    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 ancheSee Also

Dati spaziali (SQL Server)Spatial Data (SQL Server)