Entfernung und Richtung zwischen 2 Standorten

Ninox Profile

“Berechnung der Entfernung zwischen zwei geographischen Punkten”;
“”;
“sourceLat: Latitude Startpunkt”;
“sourceLon: Longitude Startpunkt”;
“destLat: Latitude Zielpunkt”;
“destLon: Longitude Zielpunkt”;
“”;
“Rückgabewert: Entfernung in Kilometer”;
“”;
function calculateDistance(sourceLat : number,sourceLon : number,destLat : number,destLon : number) do
    let PI := 3.14159265359;
    let R := 6371;
    “”;
    let sourceLatRad := sourceLat * PI / 180;
    let sourceLonRad := sourceLon * PI / 180;
    let destLatRad := destLat * PI / 180;
    let destLonRad := destLon * PI / 180;
    “”;
    let x := (destLonRad - sourceLonRad) * cos((sourceLatRad + destLatRad) / 2);
    let y := destLatRad - sourceLatRad;
    sqrt(x * x + y * y) * R
end;
“*************************************************************************************************”;
“Berechnung des Winkels (Vollkreis 0-360 rechtslaufend - 0 = Norden) - Startpunkt -> Zielpunkt”;
“”;
“sourceLat: Latitude Startpunkt”;
“sourceLon: Longitude Zielpunkt”;
“destLat: Latitude Zielpunkt”;
“destLon: Longitude Zielpunkt”;
“”;
“Rückgabewert: Winkel in Grad”;
“”;
function calculateCircleDegrees(sourceLat : number,sourceLon : number,destLat : number,destLon : number) do
    let PI := 3.14159265359;
    “”;
    let sourceLatRad := sourceLat * PI / 180;
    let sourceLonRad := sourceLon * PI / 180;
    let destLatRad := destLat * PI / 180;
    let destLonRad := destLon * PI / 180;
    “”;
    let alpha := atan2(destLonRad - sourceLonRad, destLatRad - sourceLatRad) * 180 / PI;
    if alpha < 0 then 360 + alpha else alpha end
end

 

Antworten