Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Förhandsversion av Microsoft Fabric
Geografisk spatial datatyp, geografi, representerar data i ett jorden runt koordinatsystem. Den här typen implementeras som en .NET COMMON Language Runtime-datatyp (CLR) i SQL Server. Datatypen SQL Server geography lagrar ellipsoidala data (jorden runt), till exempel GPS-latitud och longitudkoordinater.
Geografitypen är fördefinierad och tillgänglig i varje databas. Du kan skapa tabellkolumner av typen geografi och arbeta med geografidata på samma sätt som du använder andra typer av system som tillhandahålls.
Skapa eller konstruera en ny geografiinstans
Skapa en ny geografiinstans från en befintlig instans
Geografidatatypen innehåller många inbyggda metoder som du kan använda för att skapa nya geografiinstanser baserat på befintliga instanser.
Skapa en buffert runt ett geografiskt område
STBuffer (geografidatatyp)
Skapa en buffert runt ett geografiskt område, vilket möjliggör en tolerans
BufferWithTolerance (geografidatatyp)
Skapa ett geografiskt område från skärningspunkten mellan två geografiska instanser
STIntersection (Geografidatatyp)
Så här skapar du ett geografiskt område från en union av två geografiska instanser
STUnion (geografidatatyp)
Skapa ett geografiskt område från de punkter där ett geografiskt område inte överlappar en annan
STDifference (geografiskt datatyp)
Skapa en geografi-instans från Well-Known Text-inmatning
Geografidatatypen innehåller flera inbyggda metoder som genererar ett geografiskt område från WKT-representationen Open Geospatial Consortium (OGC). WKT-standarden är en textsträng som gör att geografidata kan utbytas i textformat.
Så här konstruerar du valfri typ av geografiinstans från WKT-indata
STGeomFromText (geografidatatyp)
Så här skapar du en geografipunktsinstans från WKT-indata
STPointFromText (geografidatatyp)
Skapa en geografisk MultiPoint-instans från WKT-indata
STMPointFromText (geografidatatyp)
Så här konstruerar du en LineString-instans för geografi från WKT-indata
STLineFromText (geografidatatyp)
Så här skapar du en geografisk MultiLineString-instans från WKT-indata
STMLineFromText (geografisk datatyp)
Skapa en geografisk Polygon-instans från WKT-indata
STPolyFromText (geografidatatyp)
Skapa en geografisk MultiPolygon-instans från WKT-indata
STMPolyFromText (Geografidatatyp)
Så här konstruerar du en GeometryCollection-instans för geografi från WKT-indata
STGeomCollFromText (geografidatatyp)
Skapa en geografiinstans från Well-Known Binary-indata
WKB är ett binärt format som anges av OGC som tillåter att geografidata utbyts mellan ett klientprogram och en SQL-databas. Följande funktioner accepterar WKB-indata för att skapa geografiska instanser:
Så här konstruerar du valfri typ av geografiinstans från WKB-indata
STGeomFromWKB (geografidatatyp)
Så här skapar du en geografipunktsinstans från WKB-indata
STPointFromWKB (geografidatatyp)
Skapa en geografisk MultiPoint-instans från WKB-indata
STMPointFromWKB (geografidatatyp)
Så här konstruerar du en LineString-instans för geografi från WKB-indata
STLineFromWKB (geografisk datatyp)
Så här skapar du en geografisk MultiLineString-instans från WKB-indata
STMLineFromWKB (geografidatatyp)
Skapa en geografisk Polygon-instans från WKB-indata
STPolyFromWKB (geografidatatyp)
Skapa en geografisk MultiPolygon-instans från WKB-indata
STMPolyFromWKB (geografisk datatyp)
Så här konstruerar du en GeometryCollection-instans för geografi från WKB-indata
STGeomCollFromWKB (geografidatatyp) STGeomCollFromWKB (geografidatatyp)
Skapa en geografiinstans från GML-textindata
Datatypen geografi tillhandahåller en metod som genererar en geografiinstans från GML, en XML-representation av en geografiinstans . SQL Server stöder en delmängd av GML.
Mer information om geografimarkeringsspråk finns i OGC-specifikationen: OGC-specifikationer, geografimarkeringsspråk.
Så här konstruerar du alla typer av geografiinstanser från GML-indata
GeomFromGML (geografidatatyp)
Returnerar Well-Known Text och Well-Known Binary från en geografiinstans
Du kan använda följande metoder för att returnera WKT- eller WKB-formatet för en geografisk instans:
Så här returnerar du WKT-representationen av en geografiinstans
STAsText (geografidatatyp)
Så här returnerar du WKT-representationen av en geografisk instans, inklusive Z- och M-värden
AsTextZM (geografidatatyp)
Så här returnerar du WKB-representationen av en geografiinstans
STAsBinary (geografidatatyp)
Så här returnerar du en GML-representation av en geografiinstans
AsGml – geografidatatyp
Fråga efter egenskaper och beteenden för geografiska instanser
Alla geografiska instanser har ett antal egenskaper som kan hämtas via metoder som SQL Server tillhandahåller. Följande avsnitt definierar egenskaper och beteenden för geografityper och metoderna för att fråga var och en.
Information om giltighet, instanstyp och GeometryCollection
När en geografiinstans har konstruerats kan du använda följande metoder för att returnera instanstypen, eller om det är en GeometryCollection-instans , returnerar du en specifik geografiinstans .
Så här returnerar du instanstypen för ett geografiskt område
STGeometryType (geografisk datatyp)
Så här avgör du om ett geografiskt område är en viss instanstyp
InstanceOf (geografidatatyp)
För att avgöra om en geografiinstans är väl utformad för sin instanstyp
STNumGeometries (geografidatatyp)
Så här returnerar du ett visst geografiskt område i en GeometryCollection-instans
STGeometryN (geografidatatyp) STGeometryN (geografidatatyp)
Antal punkter
Alla icke-tomma geografi instanser består av punkter. Dessa punkter representerar latitud- och longitudkoordinaterna för jorden där geografiinstanserna ritas. Geografin för datatyp innehåller flera inbyggda metoder för att fråga efter punkter i en instans.
Så här returnerar du antalet punkter som utgör en instans
STNumPoints (Geografidatatyp)
Så här returnerar du en specifik punkt i en instans
STPointN (geometridatatyp)
Så här returnerar du startpunkten för en instans
STStartPoint (geografidatatyp)
Så här returnerar du slutpunkten för en instans
STEndPoint (geografidatatyp)
Dimension
En ej tom geografiinstans kan vara 0, 1 eller 2-dimensionell. Nolldimensionella geografiska instanser, till exempel Point och MultiPoint, har ingen längd eller yta. Endimensionella objekt, till exempel LineString, CircularString, CompoundCurve och MultiLineString, har längd. Tvådimensionella instanser, till exempel Polygon, CurvePolygon och MultiPolygon, har yta och längd. Tomma instanser rapporterar en dimension på -1, och en GeometryCollection rapporterar den maximala dimensionen av innehållet.
Så här returnerar du dimensionen för en instans
STDimension (geografidatatyp)
Så här returnerar du längden på en instans
STLength (geografisk datatyp)
Så här returnerar du området för en instans
STArea (geografidatatyp)
Empty
En tomgeografiinstans har inga punkter. Längden på tomma LineString-, CircularString-, CompoundCurve- och MultiLineString-instanser är 0. Området för tomma Polygon-, CurvePolygon - och MultiPolygon-instanser är 0.
Så här avgör du om en instans är tom
STIsEmpty (geografidatatyp)
Closure
En stängdgeografiinstans är en siffra vars startpunkter och slutpunkter är desamma. Polygon-instans anses vara sluten. Punktinstanser är inte stängda.
En ring är en enkel, stängd LineString-instans .
Så här avgör du om en instans är stängd
STIsClosed (geografidatatyp)
Så här returnerar du antalet ringar i en polygoninstans
NumRings (Geografidatatyp)
Så här returnerar du en angiven ring för en geografiinstans
RingN (geografisk datatyp)
Rumsreferens-ID (SRID)
SRID (Spatial Reference ID) är en identifierare som anger vilket ellipsoidalt koordinatsystem som geografiinstansen representeras i. Två geografiska instanser med olika SRID kan inte jämföras.
Ange eller returnera SRID för en instans
STSrid (geografidatatyp)
Den här egenskapen kan ändras.
Fastställa relationer mellan geografiska instanser
Geografidatatypen innehåller många inbyggda metoder som du kan använda för att fastställa relationer mellan två geografiska instanser.
För att avgöra om två instanser består av samma punktuppsättning
STEquals (geometridatatyp)
Så här avgör du om två instanser är uppdelade
STDisjoint (datatyp för geometri)
Så här avgör du om två instanser korsar varandra
STIntersects (geometridatatyp)
För att fastställa den punkt eller punkt där två instanser korsar varandra
STIntersection (geografidatatyp)
Fastställa det kortaste avståndet mellan punkter i två geografiska instanser
STDistance (datatyp för geometri)
Så här avgör du skillnaden i punkter mellan två geografiska instanser
STDifference (geografidatatyp)
För att beräkna symmetrisk skillnadsmängd, eller unika punkter, för en geografisk instans i jämförelse med en annan instans
STSymDifference (geography Data Type)
geografiinstanser måste använda SRID som stöds
SQL Server stöder SRID baserat på EPSG-standarder. Ett SQL Server-SRID som stöds för geografiska instanser måste användas när du utför beräkningar eller använder metoder med geografiska rumsliga data. SRID måste matcha ett av de SRID:er som visas i sys.spatial_reference_systems katalogvyn. Som tidigare nämnts, när du utför beräkningar på dina rumsliga data med hjälp av geografidatatypen , beror dina resultat på vilken ellipsoid som användes vid skapandet av dina data, eftersom varje ellipsoid tilldelas en specifik spatial referensidentifierare (SRID).
SQL Server använder standard-SRID på 4326, som mappar till det rumsliga referenssystemet WGS 84 när du använder metoder på geografiska instanser. Om du använder data från ett annat rumsligt referenssystem än WGS 84 (eller SRID 4326) måste du fastställa det specifika SRID för dina geografiska rumsliga data.
Remarks
Geometri - och geografityper kan inte användas som tabellkolumner i SQL-analysslutpunkten i Microsoft Fabric eller
Warehouse i Microsoft Fabric.
Examples
I följande exempel visas hur du lägger till och frågar efter geografidata.
Example A.
I det här exemplet skapas en tabell med en identitetskolumn och en geography kolumn GeogCol1. En tredje kolumn renderar geography kolumnen i dess WKT-återgivning (Open Geospatial Consortium) (OGC) Well-Known Text (WKT) och använder STAsText() metoden. Två rader infogas sedan: en rad innehåller en LineString instans av geographyoch en rad innehåller en Polygon instans.
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
Example B.
I det STIntersection() här exemplet används metoden för att returnera de punkter där de två tidigare infogade geography instanserna korsar varandra.
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();