2

緯度と経度のある場所があり、その場所から d 度の角度で x メートルの距離にある新しい場所を取得したいと考えています。これは Location.distanceBetween() の逆になります。それを行うための Android API はありますか。そのような機能を自分でプログラムできることは知っていますが、そのための API が既にあるのだろうかと思います。

4

4 に答える 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 に答える