Я хочу посчитать расстояние между двумя географическими точками, а пока между моей школой и моим домом.Расстояние должно быть близко 1200 м.
Я получаю эти значения обратно, которые не имеют смысла.
104.247784180256
35.017200205306295 (if I reverse lat and lon)
Google maps говорит:
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;
}