Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Planar uzamsal veri türü olan geometri, SQL Server'da ortak dil çalışma zamanı (CLR) veri türü olarak uygulanır. Bu tür, Öklid (düz) koordinat sistemindeki verileri temsil eder.
SQL Server , geometri uzamsal veri türü için bir dizi yöntemi destekler. Bu yöntemler, Open Geospatial Consortium (OGC) standardı tarafından tanımlanan geometri yöntemlerini ve bu standart için bir dizi Microsoft uzantısını içerir.
Geometri yöntemleri için hata toleransı 1,0e-7 * uzantılar kadar büyük olabilir. Kapsamlar , geometri nesnesinin noktaları arasındaki yaklaşık maksimum uzaklığı ifade eder.
Geometri Türünü Kaydetme
Geometri türü önceden tanımlanmıştır ve her veritabanında kullanılabilir. Geometri türünde tablo sütunları oluşturabilir ve geometri verileri üzerinde diğer CLR türlerini kullandığınız gibi çalışabilirsiniz. Kalıcı ve kalıcı olmayan hesaplanmış sütunlarda kullanılabilir.
Remarks
Microsoft Fabric'teki SQL veritabanında coğrafya ve geometri veri türleri desteklenir ancak Fabric OneLake'e yansıtılamaz.
Examples
A. Geometri verilerinin nasıl ekleneceğini ve sorguleneceğini gösterme
Aşağıdaki iki örnekte geometri verilerinin nasıl ekleneceği ve sorguleneceği gösterilmektedir. İlk örnek, kimlik sütunu ve sütunu olan bir geometryGeomCol1tablo oluşturur. Üçüncü sütun, sütunu Open Geospatial Consortium (OGC) Well-Known Text (WKT) gösterimine geometry dönüştürür STAsText() ve yöntemini kullanır. Ardından iki satır eklenir: bir satır bir LineString örneğini geometry, bir satır da bir Polygon örneği içerir.
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
B. İki geometri örneğinin kesişimini döndürme
İkinci örnek, daha önce eklenen STIntersection() iki örneğin kesiştiği noktaları döndürmek için yöntemini kullanırgeometry.
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();
C. Hesaplanan sütunda geometri kullanma
Aşağıdaki örnek , geometri türü kullanarak kalıcı hesaplanan sütuna sahip bir tablo oluşturur.
IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL
DROP TABLE dbo.SpatialTable;
GO
CREATE TABLE SpatialTable
(
locationId int IDENTITY(1,1),
location geometry,
deliveryArea as location.STBuffer(10) persisted
)