28

SQLServer2008の新しいgeography列とSTGeomFromText関数で遊んでいます。これが私のコードです(AdventureWorks2008で動作します)

DECLARE @region geography;
set @region = geography::STGeomFromText('POLYGON((
        -80.0 50.0, -90.0 50.0,
        -90.0 25.0, -80.0 25.0,
        -80.0 50.0))', 4326);

SELECT @region;

私の質問は、コードの4326についてです。空間参照IDであると想定されています。私がMSDNに行くとき、それはあまりありません。値を56に変更すると、値がsys.spatial_reference_systemsテーブルにある必要があるというエラーが表示されます。

次のコマンドを実行すると、そのテーブルを確認できます。

select * from sys.spatial_reference_systems 

そのテーブルにはwell_known_text列がありますが、あまりわかりません。4326の値は次のとおりです。

GEOGCS["WGS 84", DATUM["World Geodetic System 1984", ELLIPSOID["WGS 84", 6378137, 298.257223563]], PRIMEM["Greenwich", 0], UNIT["Degree", 0.0174532925199433]]

誰かがこの謎を私に説明できますか?SRIDとは何ですか?

4

5 に答える 5

26

それで、昨日、レーダー/マッピングの専門家だった元軍人と話をすることになりました。基本的に、彼はその番号 (4326) が何であるか、どこから来たのか、なぜそこにあるのかを正確に知っていました。

これは地理計算の業界標準です。問題は、地球が完全な球体ではない (中央が膨らんでいる) ことであり、SRID 4326 がそれを説明しています。

前述したように、テーブル sys.spatial_reference_systems にはすべてのコードとその内容が一覧表示されています。しかし、短いバージョンでは、別のものを使用する非常に明確な理由がない限り、実際には 4326 のみを使用することになります。

于 2008-12-18T19:33:06.777 に答える
17

SRID=空間参照識別子

座標を比較するには、同じSRIDを使用する必要があります。そうしないと、キロメートルとマイルを比較することになります。または同様のもの。

于 2008-12-17T13:03:17.080 に答える
17

地球をマッピングするシステムはたくさんあります。たとえば、米国のある州をマップしたいとします。最も南東のポイントを 0,0 として設定し、このポイントに従って他のすべての空間座標をマッピングできます。一方、マップ全体にまたがる空間データをマップしたい場合があります。いずれにせよ、あるポイントを 0,0 として選択する必要があります。さらに、何らかの測定単位を選択する必要があります: マイル/キロメートル/度/その他のより適切な魔法の単位。何年にもわたって、多くのそのようなシステムが開発されました。それぞれに独自のゼロ点、独自の座標、地球が平らかどうかに関する独自のルールがあります。SRID または SRS は、そのようなシステムの ID です。この ID を使用すると、あるシステムで表現されたポイントを別のシステムにマップできますが、かなり複雑な計算が必要になる場合があります。

そして約4326 SRID。「WGS 84」( http://en.wikipedia.org/wiki/World_Geodetic_System ) システムとも呼ばれます。球状の (平面ではない) 地球上の点を表す最も一般的なシステムです。度、分、秒の表記を使用し、その x 座標と y 座標は通常、緯度と経度と呼ばれます。

最も使用されている非球形地球図法は UTM と呼ばれます。ここでそれについて読むことができます: http://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system

いずれにせよ、あるシステムから別のシステムへの空間変換を行わない限り、データが使用するシステムはあまり気にしません。

于 2009-01-01T18:21:35.377 に答える
2

この Web サイトを見つけました: http://spatialreference.org/ref/epsg/4326/使用する SRID を理解するのに非常に役立ちます。便利なマップ、いくつかの境界ボックス情報、およびその他のリンクが提供されます。

他の SRID の場合は、URL の末尾の数字を目的の数字に変更するだけです。

于 2009-10-28T04:44:47.753 に答える
1

返される距離は、地理タイプに対して定義した「空間参照識別子 (SRID)」によって異なります。

以下の例では、デフォルトのSRID 4336 が使用されています。 STGeomFromTextの 2 番目の引数を参照してください。これは、返される距離がメートル単位であることを意味します。これは、カタログ ビューの spatial_reference_systems を照会することで確認できますselect srs.unit_of_measure from sys.spatial_reference_systems as srs where srs.spatial_reference_id = 4326

STGeomFromTextの代わりに、4326 のSRIDを想定するparseを使用できます。SRIDを明示的に指定する必要はありません。

2 点間の距離を計算するときは、両方の地理タイプに同じSRIDを使用する必要があります。そうしないと、エラーが発生します。例:

DECLARE @address1 GEOGRAPHY
DECLARE @address2 GEOGRAPHY
DECLARE @distance float
SET @address1 = GEOGRAPHY::STGeomFromText ('point(53.046908 -2.991673)',4326)
SET @address2 = GEOGRAPHY::STGeomFromText ('point(51.500152 -0.126236)',4326)
SET @distance = @address1.STDistance(@address2)
SELECT @distance --this is the distance in meters
于 2010-08-25T14:19:53.113 に答える