- Registriert
- 19. Aug. 2008
- Beiträge
- 18.275
- Reaktionspunkte
- 4
- Punkte
- 0
Im Zuge meiner Spielereien mit geolocation habe ich einen Weg gesucht, um von verschiedenen Koordinaten den Mittelpunkt zu ermitteln. Das kann man brauchen um z.B. eine Karte über einem bestimmten Punkt zu zentrieren. Es ist PHP Code und setzt voraus, dass man zu einer liste von IPs bereits die Koordinaten ermittelt hat (die Koordinaten müssen in dezimaler Schreibweise übergeben werden). Diese Koordinaten dann in ein Array packen mit z.B.
und dann kann man dieses Array so verarbeiten
sollte euch den durchschnittlichen Längen-und Breitengrad in $long resp $lat berechnen. Wobei es sich um den geografischen Mittelpunkt handelt. Dieser kann an "unerwarteten" Orten liegen was daran liegt dass man eine Kugel auf eine Fläche projeziert. Das führt zu Verzerrungen, aber auf einem Globus stimmt es genau 
Code:
$koord[] = array('longitude'=>'wert','latitude'=>'wert1');
$koord[] = array('longitude'=>'wert2','latitude'=>'wert3');
PHP:
for($i=0;$i<count($koord);$i++){
$X += cos($koord[$i]['latitude']*(pi()/180)) * cos($koord[$i]['longitude']*(pi()/180));
$Y += cos($koord[$i]['latitude']*(pi()/180)) * sin($koord[$i]['longitude']*(pi()/180));
$Z += sin($koord[$i]['latitude']*(pi()/180));
}
$X = $X/$i;
$Y = $Y/$i;
$Z = $Z/$i;
$long = 180/pi() * atan2($Y,$X);
$t = sqrt($X * $X + $Y * $Y);
$lat = 180/pi() * atan2($Z,$t);
