23 EYLÜL 2008, Salı
Ne kadar mesafe ölçmek ve bir sınırlayıcı kutu Java'da iki enlem ve boylam noktalarına göre oluşturabilir miyim?
İki farklı nokta arasındaki mesafeyi bulmak istiyorum. Biliyorum bu büyük daire mesafesi ile gerçekleştirilebilir. http://www.meridianworlddata.com/Distance-calculation.asp
Bir kez yapılır, bir noktası ve mesafe ile nokta etrafında bir kutu oluşturmak için Kuzey mesafe ve mesafe Doğu olan nokta bulmak istiyorum.
CEVAP
23 EYLÜL 2008, Salı
Burada Haversine formülün bir Java uygulaması. Enlem/uzun-kilometre arasındaki mesafeyi hesaplamak için bir projede bunu kullanacağım.
public static double distFrom(double lat1, double lng1, double lat2, double lng2) {
double earthRadius = 3958.75; // miles (or 6371.0 kilometers)
double dLat = Math.toRadians(lat2-lat1);
double dLng = Math.toRadians(lng2-lng1);
double sindLat = Math.sin(dLat / 2);
double sindLng = Math.sin(dLng / 2);
double a = Math.pow(sindLat, 2) Math.pow(sindLng, 2)
* Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2));
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double dist = earthRadius * c;
return dist;
}
Bunu Paylaş: