Geometri alanından SRID'yi nasıl alabilirim


17

Geometri alanından SRID alma işlevi nedir?

Tanımlanan bir Geometri alanı ile SQL Server tablosuna bir shapefile ekledim. Shapefile projeksiyonunun Swreff99_1800 (EPSG: 3011) olduğunu biliyorum.

Şimdi sorum şu SRID: 3011 geometri alanının bazı OGC yöntemini kullanarak nasıl?


Neye ihtiyacın olduğu konusunda net değilim. SQL Server'dan SRID 3011 tanımına mı ihtiyacınız var? Verileri uygun SRID ayarıyla önceden eklediğiniz anlaşılıyor, değil mi?
Chad Cooper

Yanıtlar:


32

Aradığınız bu mu?

select distinct SP_GEOMETRY.STSrid from dbo.MYTABLE

Bu, dbo tablosunda kullanılan farklı SRID'lere sahip bir tablo verecektir.


Teşekkürler!. İkinci sorum SRID 3011'in sys.spatial_reference_systems tablosunda tanımlanmadığı. Ve geometriyi SRID 3011'den SRID 4326'ya dönüştürmem gerekiyor. Sonra ne yapacağım?
user1899

1
Bildiğim kadarıyla, SQL Server 2008 geometri verilerinizi farklı koordinat sistemlerinden dönüştüremez - tüm geometri verilerini matematiksel bir koordinat sisteminde saklandığı gibi görür.
Peter Horsbøll Møller

4

Şanssız yukarıdakileri denedikten sonra, aşağıdaki yöntemi denedim:

select [geomColumnName].STSrid
from [schema].[tableName]

Bu, tablodaki tüm kayıtlar için SRID değeri verir. Tüm kayıtların aynı SRID'ye sahip olması gerektiğinden, yalnızca bir kayıt için değer almak istiyorsanız, tüm tablo için SRID'yi söyleyeceğini varsayıyorum:

select top 1 [geomColumnName].STSrid
from [schema].[tableName]

Hangi MS SQL Server sürümünü kullandığınızı ve sonraki sürümlerde Distinct kullanımını desteklemeyecek herhangi bir değişiklik olup olmadığını merak ediyorum? Yoksa Geometry sütun adınız SP_GEOMETRY değil mi? Benzer koordinat sistemlerine atıfta bulunmalarına rağmen Geometrinin farklı SRID'lerle depolandığı birkaç vaka gördüm.
Peter Horsbøll Møller

1
@ PeterHorsbøllMøller buna tekrar bakarak, SP_GEOMETRY kullanımının geometri sütun ismine atıfta bulunduğunu görmedim, bu yüzden cevabım neredeyse kabul
edilenle

0

Bu noktada kullanmak istediğiniz sayının 4619 srid veya 4977 srid SQL sunucusu olacağına inanıyorum.

Her ikisi de EPSG 3011'e eşdeğerdir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.