Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric Preview
Het ruimtelijke gegevenstype planar, geometrie, vertegenwoordigt gegevens in een Euclidean (plat) coördinaatsysteem. Dit type wordt geïmplementeerd als een CLR-gegevenstype (Common Language Runtime) in SQL Server.
Het geometrietype is vooraf gedefinieerd en beschikbaar in elke database. U kunt tabelkolommen van typegeometrie maken en op geometriegegevens werken op dezelfde manier als andere CLR-typen.
Het geometriegegevenstype (planar) dat wordt ondersteund door SQL Server, voldoet aan de Eenvoudige functies van het Open Georuimteal Consortium (OGC) voor VERSIE 1.1.0 van SQL-specificatie.
Zie het volgende voor meer informatie over OGC-specificaties:
OGC-specificaties, Simple Feature Access Deel 1 - gemeenschappelijke architectuur
OGC-specificaties, Eenvoudige Functie-toegang Deel 2 - SQL-opties
SQL Server ondersteunt een subset van de bestaande GML 3.1-standaard die is gedefinieerd in het volgende schema: https://schemas.microsoft.com/sqlserver/profiles/gml/SpatialGML.xsd
Een nieuw geometrie-exemplaar maken of construeren
Een nieuw geometrie-exemplaar maken op basis van een bestaand exemplaar
Het gegevenstype geometrie biedt tal van ingebouwde methoden die u kunt gebruiken om nieuwe geometrie-exemplaren te maken op basis van bestaande exemplaren.
              Een buffer rond een geometrie maken
              STBuffer (geometriegegevenstype)
BufferWithTolerance (geometriegegevenstype)
              Een vereenvoudigde versie van een geometrie maken
              Reduce (geometriegegevenstype)
              De convex omhulling van een geometrie maken
              STConvexHull (geometriegegevenstype)
              Een geometrie maken op basis van het snijpunt van twee geometrieën
              STIntersection (geometriegegevenstype)
              Een geometrie maken op basis van de samenvoeging van twee geometrieën
              STUnion (geometriegegevenstype)
              Een geometrie maken op basis van de punten waar de ene geometrie geen andere overlapt
              STDifference (geometriegegevenstype)
              Een geometrie maken op basis van de punten waar twee geometrieën elkaar niet overlappen
              STSymDifference (geometriegegevenstype)
              Om een willekeurige Punt instantie te maken die op een bestaande geometrie ligt
              STPointOnSurface (geometriegegevenstype)
Een geometrie-exemplaar maken op basis van Well-Known Tekstinvoer
Het gegevenstype geometrie biedt verschillende ingebouwde methoden waarmee een geometrie wordt gegenereerd op basis van de OPEN Geospatial Consortium (OGC) WKT-weergave. De WKT-standaard is een tekenreeks waarmee geometriegegevens in tekstvorm kunnen worden uitgewisseld.
              Elk type geometrie-exemplaar maken op basis van WKT-invoer
              STGeomFromText (geometriegegevenstype)
Parseren (geometriegegevenstype)
              Een geometriepuntexemplaar uit WKT-invoer maken
              STPointFromText (geometriegegevenstype)
              Een geometrie MultiPoint-exemplaar maken op basis van WKT-invoer
              STMPointFromText (geometriegegevenstype)
              Een LineString-geometrie-exemplaar maken vanuit WKT-invoer
              STLineFromText (geometriegegevenstype)
              Een geometrie MultiLineString-exemplaar maken op basis van WKT-invoer
              STMLineFromText (geometriegegevenstype)
              Een geometrie Polygon-exemplaar construeren op basis van WKT-invoer
              STPolyFromText (geometriegegevenstype)
              Een geometrie-multipolygonexemplaar construeren op basis van WKT-invoer
              STMPolyFromText (geometriegegevenstype)
              Een geometry GeometryCollection-exemplaar maken op basis van WKT-invoer
              STGeomCollFromText (geometriegegevenstype)
Een geometrie-exemplaar maken op basis van Well-Known Binaire invoer
WKB is een binaire indeling die is opgegeven door het Open Georuimteal Consortium (OGC) waarmee geometriegegevens kunnen worden uitgewisseld tussen een clienttoepassing en een SQL-database. De volgende functies accepteren WKB-invoer om geometrieën te bouwen:
              Elk type geometrie-exemplaar maken op basis van WKB-invoer
              STGeomFromWKB (geometriegegevenstype)
              Een geometriepuntexemplaren maken op basis van WKB-invoer
              STPointFromWKB (geometriegegevenstype)
              Een geometrie MultiPoint-exemplaar maken vanuit WKB-invoer
              STMPointFromWKB (geometriegegevenstype)
              Een geometrie LineString-exemplaar maken op basis van WKB-invoer
              STLineFromWKB (geometriegegevenstype)
              Een geometrie MultiLineString-exemplaar maken op basis van WKB-invoer
              STMLineFromWKB (geometriegegevenstype)
Om een geometrie-polygoonexemplaar te construeren op basis van WKB-invoer
              STPolyFromWKB (geometriegegevenstype)
              Een geometrie MultiPolygon-exemplaar construeren uit WKB-invoer
              STMPolyFromWKB (geometriegegevenstype)
              Een geometry GeometryCollection-exemplaar maken op basis van WKB-invoer
              STGeomCollFromWKB (geometriegegevenstype)
Een geometrie-exemplaar maken van GML-tekstinvoer
Het gegevenstype geometrie biedt een methode waarmee een geometrie-exemplaar van GML wordt gegenereerd, een XML-weergave van geometrische objecten. SQL Server ondersteunt een subset van GML.
              Elk type geometrie-exemplaar maken op basis van GML-invoer
              GeomFromGml (geometriegegevenstype)
Geef Bekende Tekst en Bekende Binaire Weergave terug vanuit een geometrie-instantie
U kunt de volgende methoden gebruiken om de WKT- of WKB-indeling van een geometrie-exemplaar te retourneren:
              Om de WKT-weergave van een geometrie-exemplaar te retourneren
              STAsText (geometriegegevenstype)
ToString (geometriegegevenstype)
              Om de WKT-weergave van een geometrie-exemplaar, inclusief Z- en M-waarden, te retourneren
              AsTextZM (geometriegegevenstype)
              De WKB-weergave van een geometrie-exemplaar retourneren
              STAsBinary (geometriegegevenstype)
              Een GML-weergave van een geometrie-exemplaar retourneren
              AsGml (geometriegegevenstype)
Query's uitvoeren op de eigenschappen en het gedrag van geometrie-exemplaren
Alle geometrie-exemplaren hebben een aantal eigenschappen die kunnen worden opgehaald via methoden die SQL Server biedt. In de volgende onderwerpen worden de eigenschappen en het gedrag van geometrietypen en de methoden voor het uitvoeren van query's op elk type gedefinieerd.
Informatie over geldigheid, instantietype en GeometryCollection
Zodra een geometrie-exemplaar is samengesteld, kunt u de volgende methoden gebruiken om te bepalen of deze goed is gevormd, het exemplaartype retourneert of, als het een verzamelingsexemplaren is, een specifiek geometrie-exemplaar retourneert .
              Het exemplaartype van een geometrie retourneren
              STGeometryType (geometriegegevenstype)
              Bepalen of een geometrie een bepaald exemplaartype is
              InstanceOf (geometriegegevenstype)
              Bepalen of een geometrie-exemplaar goed is gevormd voor het exemplaartype
              STIsValid (geometriegegevenstype)
              Een geometrie-exemplaar converteren naar een correct gevormd geometrie-exemplaar met een exemplaartype
              MakeValid (geometriegegevenstype)
              Het aantal geometrieën in een instantie van de geometrieverzameling retourneren
              STNumGeometries (geometriegegevenstype)
Een specifieke geometrie retourneren in een instantie van de geometrieverzameling
              STGeometryN (Geometriegegevenstype) STGeometryN (Geometriegegevenstype)
Aantal punten
Alle niet-lege geometrie-exemplaren bestaan uit punten. Deze punten vertegenwoordigen de X- en Y-coördinaten van het vlak waarop de geometrieën worden getekend. geometrie biedt talloze ingebouwde methoden voor het uitvoeren van query's op de punten van een exemplaar.
              Geef het aantal punten dat een exemplaar vormen terug
              STNumPoints (geometriegegevenstype)
              Een specifiek punt in een exemplaar teruggeven
              STPointN (geometriegegevenstype)
              Een willekeurig punt retourneren dat zich op een instantie bevindt
              STPointOnSurface (geometriegegevenstype)
              Het beginpunt van een instantie retourneren
              STStartPoint (geometriegegevenstype)
              Het eindpunt van een exemplaar retourneren
              STEndpoint (geometriegegevenstype)
              X-coördinaat van een Point-instantie retourneren
              STX- (geometriegegevenstype)
              Retourneer de Y-coördinaat van een Point-instantie
              
               STY (geometriegegevenstype)
              Het geometrische middelpunt van een polygon-, CurvePolygon- of MultiPolygon-exemplaar retourneren
              STCentroid (geometriegegevenstype)
Dimension
Een instantie van een niet-lege geometrie kan 0-, 1- of 2-dimensionaal zijn. Nuldimensionale geometrieën, zoals Punt en MultiPoint, hebben geen lengte of vlak. Eendimensionale objecten, zoals LineString, CircularString, CompoundCurve en MultiLineString, hebben lengte. Tweedimensionale exemplaren, zoals Veelhoek, CurvePolygon en MultiPolygon, hebben gebied en lengte. Lege exemplaren rapporteren een dimensie van -1 en een GeometryCollection rapporteert een gebied dat afhankelijk is van de typen inhoud.
              De dimensie van een instantie retourneren
              STDimension (geometriegegevenstype)
              De lengte van een object retourneren
              STLength (geometriegegevenstype)
              De oppervlakte van een exemplaar retourneren
              STArea (geometriegegevenstype)
Empty
Een leeggeometrie-exemplaar heeft geen punten. De lengte van lege LineString- en CircularString-exemplaren, van CompoundCurve en van MultiLineString is nul. Het gebied van lege polygoon-, CurvePolygon- en MultiPolygon-exemplaren is 0.
              Bepalen of een exemplaar leeg is
              STIsEmpty (geometriegegevenstype).
Simple
Om een geometrie van het exemplaar eenvoudig te maken, moet deze voldoen aan beide vereisten:
Elke figuur van het object mag zichzelf niet kruisen, behalve op de eindpunten.
Er kunnen geen twee figuren van het voorbeeld elkaar kruisen op een punt dat zich niet in beide van hun grenzen bevindt.
Note
Lege geometrieën zijn altijd eenvoudig.
              Bepalen of een exemplaar eenvoudig is
              STIsSimple (geometriegegevenstype).
Grens, interieur en buitenkant
Het interieur van een geometrie-exemplaar is de door het exemplaar bezette ruimte, en de buitenkant is de ruimte die niet bezet is.
Grens wordt als volgt gedefinieerd door de OGC:
Punt - en MultiPoint-exemplaren hebben geen grens.
LineString- en MultiLineString-grenzen worden gevormd door de begin- en eindpunten waarbij diegene die een even aantal keren voorkomen worden verwijderd.
DECLARE @g geometry;  
SET @g = geometry::Parse('MULTILINESTRING((0 1, 0 0, 1 0, 0 1), (1 1, 1 0))');  
SELECT @g.STBoundary().ToString();  
De grens van een polygoon of multipolygon exemplaar is de verzameling van zijn ringen.
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();  
              De begrenzing van een instantie ophalen
              STBoundary (geometriegegevenstype)
Envelope
De envelop van een geometrie-exemplaar , ook wel bekend als het begrenzingsvak, is de rechthoek met de as uitgelijnde rechthoek die wordt gevormd door de minimum- en maximumcoördinaten (X,Y) van het exemplaar.
              De envelop van een instantie retourneren
              STEnvelope (geometriegegevenstype)
Closure
Een geslotengeometrie-exemplaar is een afbeelding waarvan de beginpunten en eindpunten hetzelfde zijn. Veelhoekobjecten worden als gesloten beschouwd. Point-exemplaren zijn niet afgesloten.
Een ring is een eenvoudig, gesloten LineString-exemplaar .
              Bepalen of een exemplaar is gesloten
              STIsClosed (geometriegegevenstype)
              Bepalen of een exemplaar een ring is
              STIsRing (geometriegegevenstype)
              Om de buitenring van een Polygon instantie te retourneren
              STExteriorRing (geometriegegevenstype)
              Het aantal binnenste ringen in een veelhoek teruggeven
              STNumInteriorRing (geometriegegevenstype)
              Een opgegeven binnenring van een veelhoek retourneren
              STInteriorRingN (geometriegegevenstype)
Ruimtelijke referentie-id (SRID)
De ruimtelijke referentie-id (SRID) is een id die aangeeft in welk coördinaatsysteem het geometrie-exemplaar wordt weergegeven. Twee exemplaren met verschillende SRID's kunnen niet worden gecompareerd.
              De SRID van een exemplaar instellen of retourneren
              STSrid (geometriegegevenstype)
Note
Deze eigenschap kan worden gewijzigd.
Relaties tussen geometrie-exemplaren bepalen
Het gegevenstype geometrie biedt veel ingebouwde methoden die u kunt gebruiken om relaties tussen twee geometrie-exemplaren te bepalen.
              Bepalen of twee exemplaren dezelfde puntenset vormen
              STEquals (geometriegegevenstype)
              Bepalen of twee instanties niet overlappen
              STDisjoint (geometriegegevenstype)
              Bepalen of twee exemplaren elkaar kruisen
              STIntersects (geometriegegevenstype)
              Bepalen of twee exemplaren aanraken
              STTouches (geometriegegevenstype)
              Bepalen of twee exemplaren elkaar overlappen
              STOverlaps (geometriegegevenstype)
              Bepalen of twee exemplaren elkaar kruisen
              STCrosses (geometriegegevenstype)
              Bepalen of het ene exemplaar zich in een ander exemplaar bevindt
              STWithin (geometriegegevenstype)
              Bepalen of het ene exemplaar een ander exemplaar bevat
              STContains (geometriegegevenstype)
              Bepalen of het ene instantie de andere overlapt
              STOverlaps (geometriegegevenstype)
              Bepalen of twee exemplaren ruimtelijk gerelateerd zijn
              STRelate (geometriegegevenstype)
              De kortste afstand tussen punten in twee geometrieën bepalen
              STDistance (geometriegegevenstype)
** Geometrie-instanties standaard ingesteld op SRID nul
De standaard-SRID voor geometrie-exemplaren in SQL Server is 0. Met ruimtelijke geometriegegevens is de specifieke SRID van het ruimtelijke exemplaar niet vereist om berekeningen uit te voeren; Instanties kunnen zich dus in niet-gedefinieerde planaire ruimte bevinden. De SQL Server-database-engine maakt gebruik van SRID om niet-gedefinieerde planaire ruimte in de berekeningen van 0 aan te geven.
Remarks
              Geometrie - en geografietypen kunnen niet worden gebruikt als tabelkolommen in het SQL Analytics-eindpunt in Microsoft Fabric of 
Warehouse in Microsoft Fabric.
Examples
In de volgende twee voorbeelden ziet u hoe u geometriegegevens toevoegt en opvraagt.
Example A.
In dit voorbeeld wordt een tabel gemaakt met een identiteitskolom en een geometry kolom GeomCol1. In een derde kolom wordt de geometry kolom weergegeven in de WEERGAVE OPEN Georuimteal Consortium (OGC) Well-Known Text (WKT) en wordt de STAsText() methode gebruikt. Er worden vervolgens twee rijen ingevoegd: één rij bevat een LineString exemplaar van geometryen één rij bevat een Polygon exemplaar.
IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL   
DROP TABLE dbo.SpatialTable;  
GO  
CREATE TABLE SpatialTable   
  ( id int IDENTITY (1,1),  
    GeomCol1 geometry,   
    GeomCol2 AS GeomCol1.STAsText() 
  );  
GO  
INSERT INTO SpatialTable (GeomCol1)  
VALUES (geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0));  
INSERT INTO SpatialTable (GeomCol1)  
VALUES (geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0));  
GO  
Example B.
In dit voorbeeld wordt de STIntersection() methode gebruikt om de punten te retourneren waarin de twee eerder ingevoegde geometry exemplaren elkaar kruisen.
DECLARE @geom1 geometry;  
DECLARE @geom2 geometry;  
DECLARE @result geometry;  
SELECT @geom1 = GeomCol1 FROM SpatialTable WHERE id = 1;  
SELECT @geom2 = GeomCol1 FROM SpatialTable WHERE id = 2;  
SELECT @result = @geom1.STIntersection(@geom2);  
SELECT @result.STAsText();