formule voor reverse wherigo geocache berekening
Weet er iemand de formule om de coordinaten te berekenen van een reverse wherigo als de 3 getallen deze zijn
304141
418698
131437
De coordinaten zijn de volgende, maar hoe bereken je dat ???
49.143317
17.644383
Blijkbaar weet AI daar ook geen raad mee .???
Hier zitten waarschijnlijk nog slimmere dan AI
Dank bij voorbaat
neen, heb op google ook gezocht
https://forums.geocaching.com/GC/index.php?/topic/361350-mathlogic-behind-reverse-wherigologic/
Er wordt onder meer gerefereerd aan de Haversine-formule. En je kan kijken of je de werking kan achterhalen op andere sites, mits het cliënt-side wordt gedaan.
Heb je dit ook al gevonden? Er wordt onder meer gerefereerd aan de Haversine-formule. En je kan kijken of je de werking kan achterhalen op andere sites, mits het cliënt-side wordt gedaan.
de code hieronder met deze formule is totaal verkeerd.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
// Functie om de nieuwe coördinaten te berekenen
function calculateCoordinates($key1, $key2, $key3) {
// Referentiepunt (bijvoorbeeld 0°N, 0°E of een ander punt)
$lat1 = deg2rad(0); // 0° latitude in radialen
$lon1 = deg2rad(0); // 0° longitude in radialen
// Omrekeningen van de keys naar bruikbare waarden
$bearing = $key1 % 360; // Key1 is de richting (in graden)
$distance = $key2 / 1000; // Key2 is de afstand (omrekeningen naar kilometers)
$offset = $key3 / 1000000; // Key3 is een offset (kleine correctie)
// Omrekeningen van graden naar radialen
$bearingRad = deg2rad($bearing);
// Straal van de aarde in kilometers
$earthRadius = 6371;
// Bereken de nieuwe latitude (?2)
$lat2 = asin(sin($lat1) * cos($distance / $earthRadius) +
cos($lat1) * sin($distance / $earthRadius) * cos($bearingRad));
// Bereken de nieuwe longitude (?2)
$lon2 = $lon1 + atan2(sin($bearingRad) * sin($distance / $earthRadius) * cos($lat1),
cos($distance / $earthRadius) - sin($lat1) * sin($lat2));
// Converteer de resultaten terug naar graden
$newLatitude = rad2deg($lat2) + $offset; // Voeg eventueel een kleine offset toe
$newLongitude = rad2deg($lon2) + $offset;
return array('latitude' => $newLatitude, 'longitude' => $newLongitude);
}
// Voorbeeld van invoerwaarden (deze moeten dynamisch worden ingevoerd)
$key1 = 304141; // Richting (bearing)
$key2 = 418698; // Afstand (in meters)
$key3 = 131437; // Offset
// Bereken de coördinaten
$result = calculateCoordinates($key1, $key2, $key3);
// Toon de berekende coördinaten
echo "Berekende coördinaten:\n";
echo "Latitude: " . $result['latitude'] . "\n";
echo "Longitude: " . $result['longitude'] . "\n";
?>
// Functie om de nieuwe coördinaten te berekenen
function calculateCoordinates($key1, $key2, $key3) {
// Referentiepunt (bijvoorbeeld 0°N, 0°E of een ander punt)
$lat1 = deg2rad(0); // 0° latitude in radialen
$lon1 = deg2rad(0); // 0° longitude in radialen
// Omrekeningen van de keys naar bruikbare waarden
$bearing = $key1 % 360; // Key1 is de richting (in graden)
$distance = $key2 / 1000; // Key2 is de afstand (omrekeningen naar kilometers)
$offset = $key3 / 1000000; // Key3 is een offset (kleine correctie)
// Omrekeningen van graden naar radialen
$bearingRad = deg2rad($bearing);
// Straal van de aarde in kilometers
$earthRadius = 6371;
// Bereken de nieuwe latitude (?2)
$lat2 = asin(sin($lat1) * cos($distance / $earthRadius) +
cos($lat1) * sin($distance / $earthRadius) * cos($bearingRad));
// Bereken de nieuwe longitude (?2)
$lon2 = $lon1 + atan2(sin($bearingRad) * sin($distance / $earthRadius) * cos($lat1),
cos($distance / $earthRadius) - sin($lat1) * sin($lat2));
// Converteer de resultaten terug naar graden
$newLatitude = rad2deg($lat2) + $offset; // Voeg eventueel een kleine offset toe
$newLongitude = rad2deg($lon2) + $offset;
return array('latitude' => $newLatitude, 'longitude' => $newLongitude);
}
// Voorbeeld van invoerwaarden (deze moeten dynamisch worden ingevoerd)
$key1 = 304141; // Richting (bearing)
$key2 = 418698; // Afstand (in meters)
$key3 = 131437; // Offset
// Bereken de coördinaten
$result = calculateCoordinates($key1, $key2, $key3);
// Toon de berekende coördinaten
echo "Berekende coördinaten:\n";
echo "Latitude: " . $result['latitude'] . "\n";
echo "Longitude: " . $result['longitude'] . "\n";
?>
Hartelijk dank ik heb het inderdaad gevonden , het zijn java scripts, mijn php is ondertussen al aangepast en werkt perfect.
Mvg
Dat is totaal wat anders. ;-)