Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a lap további információkat tartalmaz a térbeli adatok Microsoft SQL Server-adatbázis-szolgáltatóval való használatáról. A térbeli adatok EF Core-ban való használatával kapcsolatos általános információkért tekintse meg a térbeli adatok fő dokumentációját.
Földrajzi hely vagy geometria
Alapértelmezés szerint a térbeli tulajdonságok az SQL Server oszlopaihoz geography vannak leképezve. A geometry használatához konfigurálja az oszloptípust a modellben.
Földrajzi sokszögkarikák
Az oszloptípus használatakor az geography SQL Server további követelményeket ír elő a külső gyűrűre (vagy héjra) és a belső gyűrűkre (vagy lyukakra). A külső gyűrűnek az óramutató járásával ellentétes irányban kell lennie, a belső gyűrűknek pedig az óramutató járásával megegyező irányban kell lenniük.
A NetTopologySuite (NTS) ezt ellenőrzi, mielőtt értékeket küld az adatbázisba.
FullGlobe
Az SQL Server nem szabványos geometriai típussal rendelkezik, amely az oszloptípus használatakor a teljes földgömböt ábrázolja geography . Arra is van mód, hogy sokszögeket reprezentáljon a teljes glóbusz alapján, külső gyűrűk nélkül. Ezek közül egyiket sem támogatja az NTS.
Figyelmeztetés
Az NTS nem támogatja a FullGlobe-t és az azon alapuló sokszögeket.
Görbék
A fő téradat-dokumentációban leírtak szerint az NTS jelenleg nem képes görbéket jelölni. Ez azt jelenti, hogy az EF Core-ban való használat előtt át kell alakítania a CircularString, a CompoundCurve és a CurePolygon értékeket az STCurveToLine metódussal.
Figyelmeztetés
Az NTS nem támogatja a CircularString, a CompoundCurve és a CurePolygon szolgáltatást.
Térbeli függvényleképezések
Ez a táblázat azt mutatja be, hogy mely NTS-tagok lesznek lefordítva az SQL-függvényekre. Vegye figyelembe, hogy a fordítások attól függően változnak, hogy az oszlop típusa földrajzi vagy geometriai.
| .NET | SQL (földrajzi hely) | SQL (geometria) | Hozzáadva |
|---|---|---|---|
| EF. Functions.CurveToLine(geometria) | @geometry.STCurveToLine() | @geometry.STCurveToLine() | EF Core 7.0 |
| Geometria. Terület | @geometry.STArea() | @geometry.STArea() | |
| geometry.AsBinary() | @geometry.STAsBinary() | @geometry.STAsBinary() | |
| geometry.AsText() | @geometry.AsTextZM() | @geometry.AsTextZM() | |
| geometria.Határ | @geometry.STBoundary() | ||
| Geometria. Puffer(távolság) | @geometry.STBuffer(@distance) | @geometry.STBuffer(@distance) | |
| Geometria. Centroid | @geometry.STCentroid() | ||
| Geometria. Tartalmazza(g) | @geometry.STContains(@g) | @geometry.STContains(@g) | |
| Geometria. ConvexHull() | @geometry.STConvexHull() | @geometry.STConvexHull() | |
| Geometria. Kereszt(g) | @geometry.STCrosses(@g) | ||
| Geometria. Különbség(egyéb) | @geometry.STDifference(@other) | @geometry.STDifference(@other) | |
| Geometria.Dimenzió | @geometry.STDimension() | @geometry.STDimension() | |
| Geometria. Szétválasztás(g) | @geometry.STDisjoint(@g) | @geometry.STDisjoint(@g) | |
| Geometria. Távolság(g) | @geometry.STDistance(@g) | @geometry.STDistance(@g) | |
| Geometria. Boríték | @geometry.STEnvelope() | ||
| Geometria. EqualsTopologically(g) | @geometry.STEquals(@g) | @geometry.STEquals(@g) | |
| Geometria.GeometriaTípus | @geometry.STGeometryType() | @geometry.STGeometryType() | |
| Geometria.GetGeometryN(n) | @geometry.STGeometryN(@n + 1) | @geometry.STGeometryN(@n + 1) | |
| Geometria. InteriorPoint | @geometry.STPointOnSurface() | ||
| Geometria. Metszet(egyéb) | @geometry.STIntersection(@other) | @geometry.STIntersection(@other) | |
| Geometria. Metszet(g) | @geometry.STIntersects(@g) | @geometry.STIntersects(@g) | |
| Geometria. IsEmpty | @geometry.STIsEmpty() | @geometry.STIsEmpty() | |
| geometry.IsSimple | @geometry.STIsSimple() | ||
| Geometria. IsValid | @geometry.STIsValid() | @geometry.STIsValid() | |
| Geometria. IsWithinDistance(geom, távolság) | @geometry.STDistance(@geom) <= @distance | @geometry.STDistance(@geom) <= @distance | |
| GeometriaHossz | @geometry.STLength() | @geometry.STLength() | |
| Geometria. NumGeometries | @geometry.STNumGeometries() | @geometry.STNumGeometries() | |
| Geometria. NumPoints | @geometry.STNumPoints() | @geometry.STNumPoints() | |
| Geometria OgcGeometryType | CASE @geometry.STGeometryType() WHEN N'Point' THEN 1 ... END | CASE @geometry.STGeometryType() WHEN N'Point' THEN 1 ... END | |
| Geometria. Átfedések(g) | @geometry.STOverlaps(@g) | @geometry.STOverlaps(@g) | |
| Geometria. PointOnSurface | @geometry.STPointOnSurface() | ||
| Geometria.Kapcsolat(g, metszetMinta) | @geometry.STRelate(@g, @intersectionPattern) | ||
| Geometria. SRID | @geometry.STSrid | @geometry.STSrid | |
| Geometria.SzimmetrikusDifferencia(másik) | @geometry.STSymDifference(@other) | @geometry.STSymDifference(@other) | |
| geometry.ToBinary() | @geometry.STAsBinary() | @geometry.STAsBinary() | |
| geometry.ToText() | @geometry.AsTextZM() | @geometry.AsTextZM() | |
| Geometria. Érintések(g) | @geometry.STTouches(@g) | ||
| Geometria. Union(egyéb) | @geometry.STUnion(@other) | @geometry.STUnion(@other) | |
| Geometria. Belső(g) | @geometry.STWithin(@g) | @geometry.STWithin(@g) | |
| geometryCollection[i] | @geometryCollection.STGeometryN(@i + 1) | @geometryCollection.STGeometryN(@i + 1) | |
| geometryCollection.Count | @geometryCollection.STNumGeometries() | @geometryCollection.STNumGeometries() | |
| lineString.Count | @lineString.STNumPoints() | @lineString.STNumPoints() | |
| lineString.EndPoint | @lineString.STEndPoint() | @lineString.STEndPoint() | |
| lineString.GetPointN(n) | @lineString.STPointN(@n + 1) | @lineString.STPointN(@n + 1) | |
| lineString.IsClosed | @lineString.STIsClosed() | @lineString.STIsClosed() | |
| lineString.IsRing | @lineString.IsRing() | ||
| lineString.StartPoint | @lineString.STStartPoint() | @lineString.STStartPoint() | |
| multiLineString.IsClosed | @multiLineString.STIsClosed() | @multiLineString.STIsClosed() | |
| Pont. M | @point.M | @point.M | |
| Pont. X | @point.Long | @point.STX | |
| pont Y | @point.Lat | @point.STY | |
| Pont Z | @point.Z | @point.Z | |
| Sokszög. Külső gyűrű | @polygon.RingN(1) | @polygon.STExteriorRing() | |
| Sokszög.GetInteriorRingN(n) | @polygon.RingN(@n + 2) | @polygon.STInteriorRingN(@n + 1) | |
| Sokszög.NumInteriorRings (belső gyűrűk száma) | @polygon.NumRings() - 1 | @polygon.STNumInteriorRing() |
Összesítő függvények
| .NET | SQL | Hozzáadva |
|---|---|---|
| GeometryCombiner.Combine(group.Select(x => x.Property)) | CollectionAggregate(Tulajdonság) | EF Core 7.0 |
| ConvexHull.Create(csoport.Select(x => x.Property)) | ConvexHullAggregate(tulajdonság) | EF Core 7.0 |
| UnaryUnionOp.Union(csoport.Select(x => x.Property)) | UnionAggregate(Tulajdonság) | EF Core 7.0 |
| EnvelopeCombiner.CombineAsGeometry(group.Select(x => x.Property)) | EnvelopeAggregate(tulajdonság) | EF Core 7.0 |