Iのような、Iは、所与の緯度/経度ペアのものの多くを計算しなければならないコア位置ドリブンアプリケーションを作っている:別の緯度/経度に測地緯度/経度座標の計算のためのライブラリまたはフレームワークはありますか?
距離
座標距離xをy方向に移動するときのターゲットの緯度/経度座標
オープンソースのものがありますか?
Iのような、Iは、所与の緯度/経度ペアのものの多くを計算しなければならないコア位置ドリブンアプリケーションを作っている:別の緯度/経度に測地緯度/経度座標の計算のためのライブラリまたはフレームワークはありますか?
距離
座標距離xをy方向に移動するときのターゲットの緯度/経度座標
オープンソースのものがありますか?
CoreLocationを使用しているので、CoreLocation's distanceFromLocationは@progrmrが指摘しているように使用できます。
一方、オープンソースを指定してオープンソースではないので、@MikeTの提案によれば、GeographicLibの実装を見ることができます。
(私のオリジナルの答えは、半正矢式を示唆し、@MikeTが指摘するように、半正矢式は球に対してのみ有効です。そして、地球は完全な球体ではありません。不備た。)
オリジナル、欠陥のある答え:
Haversineの式が必要なようです。
Wikipedia page for the Haversine formulaは、私がチェックしていませんが、私はそれらの少なくとも一部は、オープンソースプロジェクトであることを想像しなければならない。
at the bottom, under "External links")は、多くの実装へのリンクが含まれています(それが何であるかを説明します。
GeographicLibは、Javaを含むいくつかのプログラミング言語で実装されています。ライブラリは、回転楕円体(または回転楕円体)上の測地線の長さおよび関連する数学的特性を計算する。計算誤差は、一般に、マイクロメートルの範囲内である。
2つの座標間の距離を見つけるには:その後、
GeodesicData g = Geodesic.WGS84.Inverse(lat1, lon1, lat2, lon2,
GeodesicMask.DISTANCE);
2点間の距離のためg.s12
を取得します。
距離と方向が与えられた場所を投影するという質問の2番目の例は、Direct
の方法を使用しています。
Haversine式は、球上での計算にのみ適しています。問題は、通常、[回転楕円体](https://en.wikipedia.org/wiki/Geodesics_on_an_ellipsoid)に暗示されているジオデシスのライブラリを探しています。 –
良い点@MikeT。私はあなたのより良い提案を含めるために私の答えを更新し、私の元の答えの欠陥を言及する。 – Trott