Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Entfernung von zwei Orten ermitteln





Frage

Hallo, ich bastel gerade an einem PHP Script, indem ich die Entfernungen von verschiedenen Orten brauche. Da es sehr mühsam ist die Entfernungen einzugeben und bei mehreren Orten glatt ein Ding der unmöglichkeit ist, jede Entfernung einzugeben. Jetzt dachte ich, dass man die Entfernung irgendwie über die Koordinaten der Orte ermitteln kann, leider fehlt mir da der Ansatz, dachte schonmal an Pytagoras, aber irgendwie will das nicht recht klappen. Wäre klasse, wenn einer ne idee hat MFG Fragenfruger

Antwort 1 von disco

moin

das ist aber ziemlich vage, was du da erzählst. was sind das für orte/punkte? stehen dir die koordinaten zur verfügung? ansonsten, brauch man ja gar nicht weiter in die richtung zu denken....

bin zwar schon länger aus der schule raus, aber tatsächlich müsste man in einem koordinatensystem die direkte entfernung von 2 punkten sehr leicht berechnen können, indem man sie über einen 90Grad winkel verbindet.
und wenn mich nicht alles täuscht ist das a^2+b^2=c^2 doch von pytagoras.
also solltest du dein problem mal etwas besser verdeutlichen, damit man dir helfen kann.

g,
disco

Antwort 2 von anonym

Falls das Orte auf der Erde sind, funktioniert Pythargoras nicht besonders gut (bzw. garnicht.). Das liegt daran, dass die Erde eine Kugel ist, und zumindest das muss man berücksichtigen (auch wenn man sich "Unebenheiten" egal sein lässt :), wie ich in Computergrafikvorlesungen in der Uni und dazugehörigen Übungen gelernt habe.
Man muss also, wenn man die Koordinaten hat, die Bogenlänge zwischen den Punkten auf der Kugel berechnen. Frag jetzt nicht nach Details - einmal gemacht und wieder vergessen - kriegt man aber mit internet oder guten mathebüchern raus.

Grüße

Antwort 3 von Pausenfueller

Hallo,
wenn es um Enfernungen zwischen Orten in Deutschland geht, dann nimm einfach einen Routenplaner. In KlickRoute wird z.B. neben der Länge der Fahrstrecke auch die geographische Entfernung (Luftlinie) angezeigt.
Gruß
Pausenfüller

Antwort 4 von Nessus

Hi,

das was du suchst gibt es bei http://opengeodb.hoppe-media.com/

HTH

Nessus

Antwort 5 von ClemBra

Wenn du die Daten schon in einer Tabelle hast, guck dir mal den "MapMod" für phpBB2 an. Da steht so eine Funktion drin.
Ach, bevor du lange suchst, ich habs ja hier:

function geo_distance ($longitude_1, $latitude_1, $longitude_2, $latitude_2)
{
	$earth_radius = 6378137.0;

	$long1 = deg2rad ($longitude_1);
	$long2 = deg2rad ($longitude_2);
	$lat1 = deg2rad ($latitude_1);
	$lat2 = deg2rad ($latitude_2);

    $dlon = $long2 - $long1;
    $dlat = $lat2 - $lat1;
    $a = pow( sin($dlat / 2), 2) + cos($lat1) * cos($lat2) * pow(sin($dlon / 2), 2);
    $d = 2 * atan2(sqrt($a), sqrt(1 - $a));

    return $earth_radius * $d;
}

Die Funktion funktioniert zumindest fürs nord-östliche Viertel der Erde (also Europa/Asien), mit negativen Zahlen hab ichs noch nicht getestet.
Ob das Ergebnis Meter oder Kilometer sind wirst du wohl dann sehen ;-)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: