1

私は、ユーザーが位置を記録してから車の位置を特定する必要があるアプリを開発しています。彼が車の位置を特定するオプションを選択すると、駐車している車が表示されます。距離を計算しますが、距離は常に0メートルを示します。人と駐車中の車との距離を地図上に表示する方法を教えてください...駐車中の車を地図上に表示したい

4

3 に答える 3

0

駐車した車の位置を保存しましたか?あなたはその人の実際の位置を持っていますか?したがって、差を計算して、少なくとも距離を取得できるはずです(少なくとも見通し内の線の)...

于 2012-07-04T14:22:31.827 に答える
0

実際の距離を計算するこの関数を使用します。

public static double distFrom (double lat1, double lng1, double lat2, double lng2 ) 
{
    double earthRadius = 3958.75;
    double dLat = Math.toRadians(lat2-lat1);
    double dLng = 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(dLng/2) * Math.sin(dLng/2);
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
    double dist = earthRadius * c;

    int meterConversion = 1609;

    return new Double(dist * meterConversion).doubleValue();
}

次のように使用します。

double distance = 0;
distance=distFrom(latA,lngA,latB,lngB);

double を integer に変換する場合は、次を使用します。

int distance=0;
distance=(int) distFrom(latA,lngA,latB,lngB);
于 2012-07-05T16:46:40.260 に答える
0

USERと駐車中の車の位置が分かれば…

その後、これは動作するはずです

Location locationA = new Location("USER");  

locationA.setLatitude(latA);  
locationA.setLongitude(lngA);  

Location locationB = new Location("Parked Car");  

locationB.setLatitude(latB);  
LocationB.setLongitude(lngB);  

distance = locationA.distanceTo(locationB); 
于 2012-07-04T14:27:43.430 に答える