ジオメトリフィールドからSRIDを取得する方法


15

GeometryフィールドからSRIDを取得するための関数は何ですか。

ジオメトリフィールドが定義されたSQL Serverテーブルにシェープファイルを挿入しました。シェープファイルの投影がSwreff99_1800(EPSG:3011)であることは知っています。

今、私の質問は、ジオメトリフィールドのOGCメソッドを使用してこのSRID:3011を取得する方法ですか?


あなたが何を必要としているかははっきりしません。SQL ServerのSRID 3011の定義が必要ですか?適切なSRIDが設定されたデータを既に挿入しているようですね。
チャドクーパー

回答:


30

これはあなたが探しているものですか?

select distinct SP_GEOMETRY.STSrid from dbo.MYTABLE

これにより、テーブルdbo.MYTABLEで使用されているさまざまなSRIDのテーブルが作成されます。


ありがとう!。2番目の質問は、SRID 3011がsys.spatial_reference_systemsテーブルで定義されていないことです。そして、ジオメトリをSRID 3011からSRID 4326に変換する必要があります。
user1899

1
私の知る限り、SQL Server 2008は、異なる座標系間でジオメトリデータを変換することはできません。すべてのジオメトリデータを数学的な座標系に保存されていると見なします。
ピーターホースボルモーラー

3

運のない上記を試した後、私は以下の方法を試しました:

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

これにより、テーブル内のすべてのレコードのSRID値が得られます。すべてのレコードは同じSRIDを持つ必要があるため、1つのレコードの値を取得したい場合は、テーブル全体のSRIDを通知すると想定します。

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

使用しているMS SQL Serverのバージョンと、Distinctの使用がサポートされない新しいバージョンに変更があったかどうか疑問に思っていますか?または、Geometry列の名前がSP_GEOMETRYではないというだけですか?ジオメトリが類似の座標系を参照しているにもかかわらず、異なるSRIDで格納されたいくつかのケースを見てきました。
ピーターホースボルモーラー

1
@PeterHorsbøllMøllerがこれをもう一度見て、彼のSP_GEOMETRYの使用がジオメトリ列名を参照しているとは思わなかったので、私の答えは受け入れられたものとほとんど同じです。
DPSSpatial16年

0

この時点で使用する番号は、srid 4619またはsrid 4977がSQLサーバーであると考えています。

これらは両方ともEPSG 3011と同等です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.