Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance
Azure SQLKoncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Planární prostorový datový typ , geometrie, představuje data v euklidovském (plochém) souřadnicovém systému. Tento typ je implementován jako datový typ CLR (Common Language Runtime) v SQL Serveru.
Typ geometrie je předdefinovaný a dostupný v každé databázi. Sloupce tabulky s geometrií typu můžete vytvářet a pracovat s daty geometrie stejným způsobem jako jiné typy CLR.
Datový typ geometrie (planar) podporovaný SQL Serverem odpovídá jednoduchým funkcím Open Geospatial Consortium (OGC) pro specifikaci SQL verze 1.1.0.
Další informace o specifikacích OGC naleznete v následujících tématech:
specifikace OGC, jednoduchý přístup k funkcím – část 1 – společná architektura
specifikace OGC, Jednoduchý přístup k funkcím Část 2 – možnosti SQL
SQL Server podporuje podmnožinu existujícího standardu GML 3.1, který je definován v následujícím schématu: https://schemas.microsoft.com/sqlserver/profiles/gml/SpatialGML.xsd
Vytvoření nebo konstruování nové instanci geometrie
Vytvoření nové instance geometrie z existující instance
Datový typ geometrie poskytuje řadu předdefinovaných metod, které můžete použít k vytváření nových instancí geometrie na základě existujících instancí.
Vytvořit nárazník kolem geometrie
STBuffer (datový typ geometrie)
BufferWithTolerance (datový typ geometrie)
Vytvoření zjednodušené verze geometrie
Zjednodušení (datový typ geometrie)
Vytvořit konvexní obal geometrie
STConvexHull (datový typ geometrie)
Vytvoření geometrie z průsečíku dvou geometrií
STIntersection (datový typ geometrie)
Vytvoření geometrie ze sjednocení dvou geometrií
STUnion (datový typ geometrie)
Vytvoření geometrie z bodů, kde se jedna geometrie nepřekrývá
STDifference (geometrický datový typ)
Vytvoření geometrie z bodů, kde se dvě geometrie nepřekrývají
STSymDifference (datový typ geometrie)
Vytvoření libovolné instance bodu, která leží na existující geometrii
STPointOnSurface (datový typ geometrie)
Vytvoření instance geometrie ze Well-Known textového vstupu
Datový typ geometrie poskytuje několik předdefinovaných metod, které generují geometrii ze reprezentace WKT (Open Geospatial Consortium). Standard WKT je textový řetězec, který umožňuje výměnu dat geometrie v textové podobě.
Vytvoření libovolného typu instance geometrie ze vstupu WKT
STGeomFromText (datový typ geometrie)
Analýza (datový typ geometrie)
Vytvoření instance bodu geometrie ze vstupu WKT
STPointFromText (datový typ geometrie)
Jak vytvořit instanci geometrie MultiPoint ze vstupu WKT
STMPointFromText (datový typ geometrie)
K vytvoření instance geometrie LineString ze vstupu WKT
STLineFromText (datový typ geometrie)
Vytvoření instance geometrie MultiLineString ze vstupu WKT
STMLineFromText (datový typ geometrie)
Konstruovat instanci geometrického polygonu ze vstupu WKT
STPolyFromText (datový typ geometrie)
Vytvoření geometrie MultiPolygon instance ze vstupu WKT
STMPolyFromText (datový typ geometrie)
Vytvoření geometry GeometryCollection instance ze vstupu WKT
STGeomCollFromText (datový typ geometrie)
Vytvoření instance geometrie ze vstupu Well-Known Binary
WKB je binární formát určený Open Geospatial Consortium (OGC), který umožňuje výměnu geometrických dat mezi klientskou aplikací a databází SQL. Následující funkce přijímají vstup WKB k vytváření geometrií:
Vytvoření libovolného typu instance geometrie ze vstupu WKB
STGeomFromWKB (datový typ geometrie)
Vytvoření instance bodu geometrie ze vstupu WKB
STPointFromWKB (datový typ geometrie)
Vytvoření instance geometry MultiPoint ze vstupu WKB
STMPointFromWKB (Geometrický datový typ)
Postavit instanci geometrie LineString ze vstupu WKB
STLineFromWKB (datový typ geometrie)
Vytvořit instanci geometrie MultiLineString ze vstupu WKB
STMLineFromWKB (datový typ geometrie)
Vytvoření instance polygonu geometrie ze vstupu WKB
STPolyFromWKB (datový typ geometrie)
Konstrukce instance geometrie MultiPolygonu z vstupu WKB
STMPolyFromWKB (geometrický datový typ)
Vytvoření instance geometry GeometryCollection ze vstupu WKB
STGeomCollFromWKB (datový typ geometrie)
Vytvoření instance geometrie z textového vstupu GML
Datový typ geometrie poskytuje metodu, která generuje instanci geometrie z GML, reprezentaci XML geometrických objektů. SQL Server podporuje podmnožinu GML.
Vytvoření libovolného typu instance geometrie ze vstupu GML
GeomFromGml (datový typ geometrie)
Vrátit známý text a známý binární formát z instance geometrie
Následující metody můžete použít k vrácení formátu WKT nebo WKB instance geometrie :
Pro navrácení reprezentace WKT instance geometrie
STAsText (datový typ geometrie)
ToString (datový typ geometrie)
Vrácení reprezentace WKT instance geometrie včetně všech hodnot Z a M
AsTextZM (datový typ geometrie)
Vrácení reprezentace WKB instance geometrie
STAsBinary (datový typ geometrie)
Vrátit GML reprezentaci instance geometrie
AsGml (datový typ geometrie)
Dotazování na vlastnosti a chování instancí geometrie
Všechny instance geometrie mají řadu vlastností, které lze načíst pomocí metod, které SQL Server poskytuje. Následující témata definují vlastnosti a chování typů geometrie a metody pro dotazování jednotlivých typů.
Informace o platnosti, typu instance a sbírce geometrií
Jakmile je instance geometrie vytvořena, můžete pomocí následujících metod určit, zda je správně formátována, vrátit typ instance nebo, pokud se jedná o instanci kolekce, vrátit konkrétní instanci geometrie .
Vrácení typu instance geometrie
STGeometryType (datový typ geometrie)
Určení, zda je geometrie daným typem instance
InstanceOf (datový typ geometrie)
Určení, zda je instance geometrie pro její typ instance správně vytvořená
STIsValid (datový typ geometrie)
Převést instanci geometrie na dobře utvořenou instanci geometrie s typem instance
MakeValid (datový typ geometrie)
Vrácení počtu geometrických geometrií v instanci kolekce geometrie
STNumGeometries (datový typ geometrie)
Vrácení konkrétní geometrie v instanci kolekce geometrie
STGeometryN (datový typ geometrie) STGeometryN (datový typ geometrie)
Počet bodů
Všechny neprázdné instance geometrie se skládají z bodů. Tyto body představují souřadnice X a Y roviny, na které jsou nakresleny geometrie. geometrie poskytuje řadu předdefinovaných metod pro dotazování bodů instance.
Vrácení počtu bodů, které tvoří instanci
STNumPoints (datový typ geometrie)
Vrátit konkrétní bod v instanci
STPointN (datový typ geometrie)
Vrátit libovolný bod, který leží na instanci
STPointOnSurface (datový typ geometrie)
Vrácení počátečního bodu instance
STStartPoint (datový typ geometrie)
Vrácení koncového bodu instance
Vrátit souřadnici X instance bodu
STX (datový typ geometrie)
Vrácení souřadnice Y instance bodu
STY (datový typ geometrie)
Vrácení geometrického středového bodu polygonu, CurvePolygonu nebo instance MultiPolygon
STCentroid (datový typ geometrie)
Dimension
Neprázdná instance geometrie může být 0, 1 nebo 2rozměrná. Nedimenzionální geometrie, jako je bod a MultiPoint, nemají žádnou délku ani oblast. Jednorozměrné objekty, například LineString, CircularString, CompoundCurve a MultiLineString, mají délku. Dvojrozměrné instance, jako je Polygon, CurvePolygon a MultiPolygon, mají oblast a délku. Prázdné instance budou hlásit dimenzi -1 a GeometryCollection bude hlásit oblast závislá na typech jeho obsahu.
Vrácení dimenze instance
STDimension (datový typ geometrie)
Vrácení délky instance
Vrácení oblasti instance
STArea (datový typ geometrie)
Empty
Prázdná instance geometrie neobsahuje žádné body. Délka prázdných instancí LineString, CircularString, CompoundCurve a MultiLineString je nula. Oblast prázdných instancí Polygon, CurvePolygon a MultiPolygon je 0.
Určení, jestli je instance prázdná
STIsEmpty (datový typ geometrie).
Simple
Aby byla geometrie instance jednoduchá, musí splňovat obě tyto požadavky:
Každý útvar instance nesmí protínat sám sebe, s výjimkou koncových bodů.
Žádné dva útvary instance se nemohou vzájemně protínat v bodě, který není na hranici obou útvarů.
Note
Prázdné geometrie jsou vždy jednoduché.
Určení, jestli je instance jednoduchá
STIsSimple (datový typ geometrie).
Hranice, interiér a exteriér
Vnitřní prostor instance geometrie je prostor obsazený instancí a vnější prostor je prostor, který není obsazen.
Hranice je definována OGC takto:
Instance typu Point a MultiPoint nemají hranici.
Hranice LineString a MultiLineString jsou tvořeny počátečními a koncovými body, čímž se odeberou ty, které se vyskytují sudým počtem.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 1, 0 0, 1 0, 0 1), (1 1, 1 0))');
SELECT @g.STBoundary().ToString();
Hranice Polygonu nebo MultiPolygon instance je sada jeho kroužků.
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();
Vrácení hranice instance
STBoundary (datový typ geometrie)
Envelope
Obálka instance objektu geometrie, označovaná také jako ohraničující rámeček, je obdélník zarovnaný podél os tvořený minimálními a maximálními souřadnicemi (X,Y) instance.
Vrátit obálku instance
STEnvelope (datový typ geometrie)
Closure
Uzavřená instance geometrie je obrázek, jehož počáteční a koncové body jsou stejné. Mnohoúhelníky jsou považovány za uzavřené. Instance bodů nejsou uzavřeny.
Kruh je jednoduchá uzavřená instance LineString .
Určení, jestli je instance uzavřená
STIsClosed (datový typ geometrie)
Určení, jestli je instance okruhem
StIsRing (datový typ geometrie)
Vrácení vnějšího kroužku instance Polygonu
STExteriorRing (datový typ geometrie)
Vrácení počtu vnitřních kroužků v polygonu
STNumInteriorRing (datový typ geometrie)
Vrácení zadaného vnitřního kroužku mnohoúhelníku
STInteriorRingN (datový typ geometrie)
ID prostorového odkazu (SRID)
ID prostorového odkazu (SRID) je identifikátor určující, ve kterém souřadnicovém systému je instance geometrie reprezentována. Dvě instance s různými identifikátory SRID jsou nekompatibilní.
Nastavení nebo vrácení SRID instance
Note
Tuto vlastnost lze upravit.
Určení vztahů mezi instancemi geometrie
Datový typ geometrie poskytuje mnoho předdefinovaných metod, které můžete použít k určení relací mezi dvěma instancemi geometrie .
Určení, zda dvě instance tvoří stejnou množinu bodů
STEquals (datový typ geometrie)
Určení, jestli jsou dvě instance oddělené
STDisjoint (datový typ geometrie)
Určení, jestli se dvě instance protínají
STIntersects (datový typ geometrie)
Určení, zda se dvě instance dotýkají
STTouches (datový typ geometrie)
Určení, jestli se dvě instance překrývají
STOverlaps (datový typ geometrie)
Určit, zda se dvě instance překrývají
STCrosses (datový typ geometrie)
Zjistit, zda je jedna instance v druhé
STWithin (datový typ geometrie)
Určení, jestli jedna instance obsahuje jinou instanci
STContains (datový typ geometrie)
Určit, zda se jedna instance překrývá s jinou
STOverlaps (datový typ geometrie)
Určení, jestli jsou dvě instance prostorově související
STRelate (datový typ geometrie)
Určení nejkratší vzdálenosti mezi body ve dvou geometriích
STDistance (datový typ geometrie)
instance geometrie se ve výchozím nastavení nastavují na nulové SRID
Výchozí SRID pro instance geometrie v SYSTÉMU SQL Server je 0. U prostorových dat geometrie se ke výpočtům nevyžaduje konkrétní SRID prostorové instance; instance se tedy mohou nacházet v nedefinovaném planárním prostoru. K označení nedefinovaného rovinného prostoru při výpočtech metod datového typu geometrie používá databázový stroj SQL Serveru SRID 0.
Remarks
Geometrické a geografické typy nelze použít jako sloupce tabulky v koncovém bodu analýzy SQL v Microsoft Fabric nebo
Warehouse v Microsoft Fabric.
Examples
Následující dva příklady ukazují, jak přidat a dotazovat data geometrie.
Příklad A.
Tento příklad vytvoří tabulku se sloupcem identity a sloupcem geometryGeomCol1. Třetí sloupec vykreslí geometry sloupec do reprezentace Open Geospatial Consortium (OGC) Well-Known Text (WKT) a použije metodu STAsText() . Pak se vloží dva řádky: jeden řádek obsahuje LineString instanci geometrya jeden řádek obsahuje Polygon instanci.
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
Příklad B.
Tento příklad používá metodu STIntersection() k vrácení bodů, kde se obě dříve vložené geometry instance protínají.
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();