1

SQL Server 2008 の使用: 有効な geography オブジェクトgeog1があると仮定し、(同じ SRID を使用して)ジオメトリ インスタンスgeom1に変換し、それをオブジェクト geography geog2に変換すると、 geog1geog2の間に違いはありません。

ただし、ここで既に説明した問題により、元のデータから線ストリングを含む地理オブジェクトを作成できません。ジオメトリ オブジェクトで動作します。ただし、MakeValid()結果のジオメトリに対して を実行すると、地理オブジェクトを再度作成できます。問題は、この地理が、以前は受け入れられなかった元のラインストリングと比べて大きく異なるかどうかわからないことですgeography::STGeomFromText(). 特にオブジェクトの長さ ( STLength()) は興味深いものです。

ジオグラフィとジオメトリ タイプ間の変換が無損失であるかどうか、およびジオメトリのMakeValid()呼び出しがデータを変更するかどうか (特に長さに関して) を知っている人はいますか?

ありがとう

4

1 に答える 1

1

MakeValid() は、必要に応じて、ジオメトリ インスタンスの基になるデータを変更します。(変更を加えなかった場合、結果のジオメトリは元のジオメトリと同じように無効になります)。

多くの場合、唯一の変更は結果のジオメトリのタイプです (つまり、無効な自己交差線ストリングが有効な複数線ストリングになる場合があります) が、座標値が変更されることもあります。ただし、これらはジオメトリを検証するのに必要なごくわずかな量だけシフトするだけであり、長さに大きな違いはありません。

于 2010-01-16T17:24:28.130 に答える