緯度と経度のある場所があり、その場所から d 度の角度で x メートルの距離にある新しい場所を取得したいと考えています。これは Location.distanceBetween() の逆になります。それを行うための Android API はありますか。そのような機能を自分でプログラムできることは知っていますが、そのための API が既にあるのだろうかと思います。
4 に答える
3
このための式とサンプル コード (JavaScript) がいくつかあります: Movable Type Scripts。「始点からの距離と方位が与えられた目的地」を探します。
以下は、サイトからの JavaScript の抜粋です。
var lat2 = Math.asin( Math.sin(lat1)*Math.cos(d/R) +
Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng) );
var lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1),
Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2));
上記のコードで、d
は距離、brng
は度単位の方位、R
は地球の半径です。
これを Java に移植するのは簡単です。
于 2010-01-05T23:03:02.367 に答える
1
これは「最初の測地線」(または「主要な測地線」) 問題と呼ばれ、これを自分で実装する必要がある場合に、Google でアルゴリズムを見つけるのに役立つでしょう。
于 2010-01-05T22:52:17.993 に答える
0
今のところこれを自分で実装しますが、この関数がある時点で表示されることを期待してください。そのため、それに応じてコーディングします。独自の関数を作成し、いくつかの単体テストを追加します。
将来的には、関数に次を追加します。
def myFunc(args):
res = # compute stuff
#if(debug):
res2 = # make api call
assert(res = res2)
return res
そしてしばらくして:
def myFunc(args):
return # make api call
そしてしばらくしてから、関数を完全に削除します。
于 2010-01-05T22:49:24.433 に答える