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.
Şunun için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'teki SQL veritabanı
Coğrafya uzamsal veri türü olan coğrafya, SQL Server'da .NET ortak dil çalışma zamanı (CLR) veri türü olarak uygulanır. Bu tür, yuvarlak dünya koordinat sistemindeki verileri temsil eder. SQL Server coğrafya veri türü, GPS enlemi ve boylam koordinatları gibi üç noktalı (yuvarlak dünya) verileri depolar.
Note
Fabric SQL veritabanında Uzamsal Türler sütunlarının kullanılmasına izin verilir, ancak Fabric OneLake'e yansıtılmaz.
SQL Server , coğrafya uzamsal veri türü için bir dizi yöntemi destekler. Buna Open Geospatial Consortium (OGC) standardı tarafından tanımlanan coğrafya yöntemleri ve bu standart için bir dizi Microsoft uzantısı dahildir.
Coğrafya yöntemleri için hataya dayanıklılık 1,0e-7 * uzantılar kadar büyük olabilir. Kapsamlar , coğrafya nesnesinin noktaları arasındaki yaklaşık maksimum uzaklığı ifade eder.
Coğrafya türünü kaydet
Coğrafya türü önceden tanımlanmıştır ve her veritabanında kullanılabilir. Coğrafya türünde tablo sütunları oluşturabilir ve coğrafya verileri üzerinde sistem tarafından sağlanan diğer türleri kullandığınız gibi çalışabilirsiniz. Bu tip, süreli ve sürekli olmayan hesaplanan sütunlarda kullanılabilir.
Conversion
Coğrafyadanikili, varbinary, char, varchar, nchar ve nvarchar'a dönüşüm açıkça yapılmalıdır.
CAST veya CONVERT kullanın.
İkili, varbinary, char, varchar, nchar ve nvarchar'dancoğrafyaya dönüşüm örtük veya açık olabilir.
Coğrafya ile diğer tüm veri türleri arasında dönüşüm yasaktır. Bu, coğrafya ile geometri arasında dönüşümü de içerir. Bu iki tür arasında veri taşımak için Well-Known Binary (WKB) veya İyi Bilinen Metin (WKT) yöntemlerini kullanın, örneğin STAsBinary() .STGeomFromWKB()
Bir dizi tipinden coğrafyaya dönüştürme, aynı kuralları kullanır.geography::Parse() Dizinin Well-Known Metin olması gerekir. Sonucun SRID'si 4326'dır.
Coğrafya ile ikili veya varbinar geçiş, Well-Known ikili değil, SQL Server yerel serileştirme formatını kullanır. Well-Known İkili değer hata oluşturur. Well-Known İkili STAsBinary() Kartına dönüştürmek için ve STGeomFromWKB()kullanın.
Hedef dizi veya ikili tip coğrafya değeri için çok kısa, hata oluşur. Değer kesilmez.
Remarks
Microsoft Fabric'teki SQL veritabanında coğrafya ve geometri veri türleri desteklenir ancak Fabric OneLake'e yansıtılamaz.
Examples
A. Coğrafya verisini nasıl ekleyip sorgulayacağınızı gösterin
Aşağıdaki örneklerde coğrafya verilerinin nasıl ekleneceği ve sorguleneceği gösterilmektedir. İlk örnek, kimlik sütunu ve sütunu olan bir geographyGeogCol1tablo oluşturur. Üçüncü bir sütun, geography sütununu Open Geospatial Consortium (OGC) İyi Bilinen Metin (WKT) temsiline dönüştürür ve STAsText() yöntemini kullanır. Ardından iki satır eklenir: bir satır bir LineString örneğini geography, 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),
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
B. İki coğrafya örneğinin kesişimini geri getirin
Aşağıdaki örnek, daha önce eklenen STIntersection() iki örneğin kesiştiği noktaları döndürmek için yöntemini kullanırgeography.
DECLARE @geog1 AS geography;
DECLARE @geog2 AS geography;
DECLARE @result AS 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();
C. Hesaplamalı bir sütunda coğrafyayı kullanın
Aşağıdaki örnek, coğrafya türü kullanarak kalıcı bir 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 geography,
deliveryArea AS location.STBuffer(10) PERSISTED
);