我想计算两个地理位置点之间的距离,现在在我的学校和我的房子之间。距离应该接近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