各国のSQLServer2008に一連のデータがあります。
各国の陸地を表すジオメトリ値を追加したいので、TM_World_Borderシェープファイルを見つけて、それをdbにインポートしました。
問題は、既存のスキーマにアラスカとハワイが米国の他の地域とは別のエントリとして含まれているのに対し、シェープファイルには3つすべてを組み合わせたエントリが1つしかないことです。
アラスカとハワイをそれぞれのジオメトリ値に抽出する方法について教えてください
わかりました。関心のある領域を囲む2番目のポリゴンを作成し(クリッピングマスクを考えてください)、ポリゴンと元の地理値の交点を選択することで、問題を解決しました。
@BoundingGeographyを宣言する
@USAGeographyを宣言する
@ResultGeographyを宣言する
@USA = geog from dbo.country_10mを選択します。ここで、id = 238
select @Bounding = Geography :: STGeomFromText('POLYGON((-130 54、-130 23、-60 23、-60 54、-130 54))'、4326);
SELECT @Result = @USA.STIntersection(@Bounding)
fooを更新します
geog=@Resultを設定します
ここで、id = 2