Iは、2つのGPS位置、latitute値と経度値とそれぞれの間の距離を計算します。近距離結果の計算は正確でなければなりません。例えば。 < 300m。 Google Earthを使用している場合(コード内のcoordを参照)、距離は〜136mです。私は、物品が提供するソリューションを使用する場合 :http://www.movable-type.co.uk/scripts/latlong.html(半正矢式)の結果は、その近くには何もありません。私はそれはいくつかのマイナーな変更する必要があります確信しているが、私はそれを見ることができないGPS距離算出
public void GpsCalc(){
double d = getDistance(51.342299,4.371359, 51.342490,4.371997);
Log.e("GpsCalc", String.valueOf(d));
}
public static double getDistance(double lat1, double lng1, double lat2, double lng2){
double R = 6371; // earth’s radius (mean radius = 6,371km)
double dLat = Math.toRadians(lat2-lat1);
double dLon = Math.toRadians(lng2-lng1);
double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
Math.sin(dLon/2) * Math.sin(dLon/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double dr1 = R * c;//in radians
Log.e("getDistance-dr1", String.valueOf(dr1));
return dr1;
}
:
は、コードを使用していました。
Googleが 'アンドロイドのGPS distance'のための答えの多くを提供します。たとえば:http://www.tutorials-android.com/learn/How_to_calculate_the_distance_between_two_GPS_coordinates.rhtml –
...あなたが<300メートル期待していることを述べたが、それはあなたが取得している正確に何ですか?そのページに座標を入れたり、コードを実行したりすると、0.049km = 49mになります。あなたの問題は、Google Earthにもっと近いものを期待していますか? – kabuko
かぶこ、それはまさに私の問題です。 GoogleEarthはより現実的な136mを返します。私は10m未満の小さな偏差は気にしませんが、136と49の違いは大きすぎます。 –