2012-01-16 6 views
3

80km×80kmの都市のポリゴンのグループを作成したいと思います。緯度と経度が始まると、その点に80kmを追加できるので、ポリゴンを作成するのに4点を得ることができます。特定のサイズのSQL Server Geographyポリゴンを作成するにはどうすればよいですか?

(X、Y) - >(X + 80キロ、Y) - >(X + 80キロ、80キロ+ Y) - >(X、Y + 80キロ) - >(x、y)は

私はポイント+80kmを計算する方法を見つけることが難しいです。私はSQL Server Spatial Toolsを見つけたと機能

SqlGeography LocateAlongGeog(SqlGeography g, double distance) 

しかし、これまでのところ、私はそれを使用する方法を見つけ出すことができていないがあります。私はこれを続けていくつもりですが、私が取ることができる他のアプローチがある場合、または誰かがこの機能を適切に使用する方法を知っていれば、私は感謝します。

+0

感覚のいくつかの並べ替えを行いますが、それは遠い: - ラジアンない度はそれほどSQLであなたの余弦はする必要があります。些細なことから。 Haversine式をT-SQLで実装しました。これにはいくつかの回避策があります。今日、CLRストアドプロシージャでこれを行うことができます。とにかく、これは容易ではない。なぜなら、あなたが極に近づくにつれて経度の度合いが小さくなるからです。がんばろう。 –

+1

これはhttp://www.zodiacal.com/tools/lat_table.phpに役立つかもしれません。 – Aprillion

+0

@deathApril - リンクありがとうございます。あなたが赤道から南北に行くかどうかにかかわらず、距離が同じであることは興味深いことです。 – brianestey

答えて

3

経度は、地球の周りに特定の経度を表す円を描くと、常に地球の中心を中心とした円です - 地球を一定の経度で周回させるには、あなたは常に同じ距離を移動:

2 * PI * 6378 /* 6378 is the radius of the Earth in km */ 

ので、(同じ経度に沿って進行すなわち)北朝鮮を動かす80キロはであなたの緯度を増加します:

360 * 80/(2 * PI * 6378) 

緯度は、距離のcosトリッキーであるとき旅samで地球を周回するあなたは、あなたが緯度LATであり、80キロ東に移動した場合、http://www.newton.dep.anl.gov/askasci/env99/env086.htm

2 * PI * 6378 * COS(LAT) /* where LAT is your Latitude */ 

ので:しかし、式は簡単で、私がそれを見上げ:あなたが旅行しているれる緯度に応じて、電子の緯度変化注意すべき事柄の

360 * 80/(2 * PI * 6378 * COS(LAT)) 

カップル:によってあなたの経度を増加しますあなたの2つの北の点の間で a)の6378は、最寄りキロ Bにのみ正確である)東/西は正確に80キロではありません - ない大幅緯度は北緯80度から南緯80度の間で異なります。私は80キロのベース測定で推測している高精度のピンポイント精度を探しています。それはちょうどうまくいくでしょう(そして、BingやGoogleでポイントニコルを言います)。 c)SQLは三角関数を使って三角関数を計算します。 COS(PI * LAT/180)

HTHを、私は半径検索のために同様のことを行っている

+0

私はこれに似た何かをやりました。入力いただきありがとうございます。 – brianestey

関連する問題