我想計算兩個地理位置點之間的距離,現在在我的學校和我的房子之間。距離應該接近1200米。用2個地理位置點計算距離
我得到這些值是沒有道理的。
104.247784180256
35.017200205306295 (if I reverse lat and lon)
谷歌地圖說:
51.987957 is N
5.911305 is O
爲51.987957緯度或經度?根據我從哪裏得到GPS信號的文檔應該是緯度,但我對此抱有懷疑。
float R = 6371; // km
// 104.247784180256
float lat1 = 5.894213; // school
float lon1 = 51.98381; // school
float lat2 = 5.909912; // keuken
float lon2 = 51.988781; // keuken
// switched > distance = 35.017200205306295
/*
float lon1 = 5.894213; // school
float lat1 = 51.98381; // school
float lon2 = 5.909912; // keuken
float lat2 = 51.988781; // keuken
*/
void setup() {
double d = calculateDistance(lon1, lat1, lon2, lat2);
println(d);
}
double calculateDistance(float lon1, float lat1, float lon2, float lat2) {
double d = Math.acos(Math.sin(lat1)*Math.sin(lat2) +
Math.cos(lat1)*Math.cos(lat2) *
Math.cos(lon2-lon1)) * R;
return d;
}
關於第二個查詢,您可以選擇想要的文本部分作爲代碼,然後單擊文本區域上方提供的{}選項,並使用其他選項(如粗體等)。 – Nik 2011-12-21 10:09:18
您可以通過選擇全部並按窗口頂部的{}按鈕,您可以在此輸入^ _^ – Manuel 2011-12-21 10:10:13