Vandaag weer getest, en het wil nog steeds niet goed werken.
Klopt de berekening wel die ik uit mijn formule krijg denken jullie ?
Ik krijg als hoek de waardes: 164,6727 en 164,4901.
Code:
// Hoek vanaf huidige GPS locatie naar een op te geven GPS locatie berekenen:
Hoek := InitialBearing(LocationSensor1.Sensor.Latitude,
LocationSensor1.Sensor.Longitude, Locatie_Lat, Locatie_Long); // in graden start point, end point, hoek
function modulo(x, y: Extended): Extended;
var
d: Extended;
begin
d := x / y;
Result := (d - floor(d)) * y;
end;
function degrees(Rads: Extended): Extended;
begin
Result := Rads * (180 / Pi);
end;
function sgn(a: extended): extended;
begin
if a < 0 then sgn := -1
else sgn := 1;
end;
function atan2(y, x: extended): extended;
begin
if x > 0 then atan2 := arctan(y / x)
else if x < 0 then atan2 := arctan(y / x) + pi
else atan2 := pi / 2 * sgn(y);
end;
function InitialBearing(lat1, lon1, lat2, lon2: double): double; // in graden
begin
Result := modulo(degrees(atan2( sin(lon2 - lon1) * cos(lat2),
cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(lon2 - lon1))), 360);
end;
Als ik dit bereken op: http://www.stapeltellen.nl/afstandhoek
Dan krijg ik als waardes: 119,9 en 119,6
Wie kan hier iets over vertellen ?
Bookmarks