1

geography データ型に読み込まれた地理データがあります。非常に具体的な目的のために、これをジオメトリとして保存する必要があります。ただし、このようなクエリを実行する必要があります。

DECLARE @radius INT -- e.g. 3000 metres

DECLARE @geo geometry -- my starting shape

SET @geo = @geo.STBuffer(@radius) -- this obviously doesnt work.. 

SELECT Geo FROM GeometryTable 
WHERE Geo.STWithin (@geo) = 1
4

2 に答える 2

0

誰かがこの手法を検証するか、より良い代替手段を提供できる場合、このトリックはうまくいく可能性があります。

基本的に、地理の STBuffer を使用して、地理的な形状の周囲に正しい半径をメートル単位で適用し、ジオメトリに変換できると考えています。形状は地理として最初に読み込まれたため、すべてのポイントは同じです。このシェイプ フリップにより、結果のジオメトリが得られ、その周囲にかなり正確なバッファが作成されます。

DECLARE @radius INT -- e.g. 3000 metres

DECLARE @geo geometry -- my starting shape

SET @geo = GEOMETRY::STGeomFromWKB(GEOGRAPHY::STGeomFromWKB(@geo.STAsBinary(),
           4326).STBuffer(@radius).STAsBinary(),4326)

SELECT Geo FROM GeometryTable 
WHERE Geo.STWithin (@geo) = 1
于 2010-06-23T07:11:46.117 に答える
0

メートルは長さの尺度ですが、ラジアンは角度の尺度なので、できないと思います。

円弧の長さを計算しようとしていますか?

以下のリンクをご覧ください。

于 2010-06-22T15:14:20.847 に答える