2009-08-10 11 views
88

kmの値をlatまたはlon floatに追加して検索の境界ボックスを計算できるようにする簡単な計算はありますか?それは完全に正確である必要はありません。lat/lon + km距離で作業するための簡単な計算は?

たとえば、イギリスのロンドン(51.5001524、-0.1262362)の緯度/経度を指定した場合、その点から東西方向に25km、緯度は北25km /その点の南、25キロを小数点に変換して上記の値に加算するためには、私は何をする必要がありますか?

私はつまり、一般的な経験則を探しています:1キロ== +/- 0.XXX

編集: "緯度経度" のdidn」の

私の元の検索をtがこの結果を返す:

How to calculate the bounding box for a given lat/lng location?

受け入れ答えは私の要件に適しているようです。

答えて

171

近似変換は、次のとおり

  • 緯度:1゜= 110.574キロ
  • 経度1度= 111.320 * cos(緯度)km

地球の極平面化を完全に修正してください.WGS84基準楕円体(GPSに使用されるモデル)を使用するより複雑な式が必要になることがあります。しかし、このエラーはおそらくあなたの目的にはごくわずかです。

出典:http://en.wikipedia.org/wiki/Latitude

注意:(?すべての)ほとんどの言語でcos機能は、一般的にラジアンを受け入れながら、LatLongブログ座標は度で表されていることを注意してください、それゆえdegree to radians conversionが必要とされています。

+0

第2の式では、cos(経度)を意味しますか? – Odys

+1

これはどうやって思いついたのですか?私は何かが欠けている、経度の計算を詳しく教えてもらえますか? Ty – Odys

+4

@Odys:同じ経度(北/南)にある2つの点を比較している場合、それらは大きな円の上にあり、換算係数は地球の極周をちょうど360度で割ったものです。しかし、東西測定では、(赤道を除いて)「大円」に沿って測定していないので、指定された緯度での「円周」は小さくなります。そして補正係数は緯度の余弦であることが分かります。 –

3

は、Java、JavaScriptやPHPを使用している場合は、その後、いくつか面白いことに複雑な(しかしまだ速い)三角法使用して、正確にこれらの計算を行いますライブラリがあります:

http://www.jstott.me.uk/jcoord/

+0

サイトにはライブラリがあります。 – midfield99

0

http://www.jstott.me.uk/jcoord/を - これを使用しますライブラリ

  LatLng lld1 = new LatLng(40.718119, -73.995667); 
      LatLng lld2 = new LatLng(51.499981, -0.125313); 
      Double distance = lld1.distance(lld2); 
      Log.d(TAG, "Distance in kilometers " + distance); 
関連する問題