PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : per php auf dezimale Koordinaten umrechnen


Max003
16.06.2008, 12:10:20
Hallo!
Kann mir bitte jemand helfen bei folgendem Problem:

Ich lasse die Koordinaten folgendermassen aus einer csv-datei auslesen.

// Koordinaten (latitude/longitude) und Zoomfaktor
map.setCenter(new GLatLng(<?=$_REQUEST["lat"]?>,<?=$_REQUEST["long"]?>), 12);

In der csv stehen die Koordinaten jedoch in dieser Grad-Schreibweise:
"09E 20 33", "47N 14 58". Das Problem ist also, dass diese Koordinaten zuvor von Grad auf dezimal umgerechnet werden müssen.

Die Formel für die Umrechnung wäre so: Grad + Minute/60 + Sekunde/3600

Also, Grad = Grad (für Ost könnte "09" gleich übernommen werden)

Minute = 20 durch 60 = 0,33
Sekunde = 33 durch 3600 = 0,0092

Würde für Ost ergeben: 9,3392

Wie könnte man das automatisch per php berechnen lassen, bevor man die Werte in die googlemap übergibt? Vielen Dank, falls es dafür eine Antwort/Lösung geben sollte.

Domi
17.06.2008, 01:19:26
Nabend,

mit diversen Stringfunktionen (http://www.selfphp.info/funktionsuebersicht/string_funktionen.php) solltest du die Werte sauber rausbekommen. Um eine CSV auszulesen kannst du fgetcsv() (http://de.php.net/manual/de/function.fgetcsv.php) verwenden.

Probier das einfach mal aus, wenn du Schwierigkeiten hast, dann meld dich.

Domi

Gladder
25.06.2008, 17:51:16
Moin!

Ich habe irgendwann einmal eine Funktion gebastelt die genau das Gegenteil macht - das sollte Dich schnell zum Ziel bringen.


function dec2grad($val) {
$val = floatval($val);
$grad = floor($val);
$min = floor(($val - $grad) * 60);
$sec = (($val - $grad) * 60 * 60) - ($min * 60);
return($grad.'º '.$min.'\' '.substr(($sec*10),0,2).'\'\'');
}


Gruß,
Gladder