Ich habe folgendes Script erstellt das GPX Daten liest und ausgibt.
Das Porblem ist, das ich nur bestimmte Atribute auslesen möchte.
Das Script gibt aber alle an. Wo liegt hier der Fehler.
Ich benötige nur die Daten für das Datum, LON und LAT um damit Bilder Geotaggen zu können und dann eine Google Map erstellen zu lassen.
Mfg Maffy
Das Porblem ist, das ich nur bestimmte Atribute auslesen möchte.
Das Script gibt aber alle an. Wo liegt hier der Fehler.
Ich benötige nur die Daten für das Datum, LON und LAT um damit Bilder Geotaggen zu können und dann eine Google Map erstellen zu lassen.
PHP-Code:
#############################################################
# GPX Parser um GPX Files zu Parsen
# GPX File erstellt mit gpsbable | [url]http://www.gpsbabel.org[/url]
#############################################################
#<trkpt lat="50.284741667" lon="10.098406667">
#<ele>237.200000</ele>
#<time>2007-08-12T09:15:07Z</time>
#<course>90.900002</course>
#<speed>6.194445</speed>
#<fix>3d</fix>
#<sat>4</sat>
#<hdop>5.700000</hdop>
#<vdop>4.400000</vdop>
#<pdop>7.200000</pdop>
#</trkpt>
function startElement($parser, $element_name, $element_attribute) {
global $ausgabe;
$attr_array[] = array();
$attr_lat = $element_attribute['LAT']; // Latitude
$attr_lon = $element_attribute['LON']; // Longtidude
$attr_ele = $element_attribute['ELE']; // HÖHE
$attr_time = $element_attribute['TIME']; // Datum und Zeit
$attr_course = $element_attribute['COURSE']; //
$attr_speed = $element_attribute['SPEED']; //
$attr_fix = $element_attribute['FIX']; //
$attr_sat = $element_attribute['SAT']; //
$attr_hdop = $element_attribute['HDOP']; //
$attr_vdop = $element_attribute['VDOP']; //
$attr_pdop = $element_attribute['PDOP']; //
$result_array[] = '{$attr_lat}, {$attr_lon} ,{$attr_time} <br> ';
//Umwandeln in Kleinbuchstaben
$element_name = strtolower($element_name);
//Überprüfung des Elementnames <trkpt lat="50.284741667" lon="10.098406667">
if ($element_name=="trkpt") {
$ausgabe .= "<h3>Track Inhalt</h3> LON: {$attr_lon}, LAT: {$attr_lat}, ";
}
// Höhenmeter <ele>237.200000</ele>
if($element_name=="ele"){
$ausgabe .= "Höhe: {$attr_ele}";
}
// GPS Time <time>2007-08-12T09:15:07Z</time>
if($element_name=="time"){
$ausgabe .= "GPS Time: {$attr_ele}";
}
// GPS course <course>90.900002</course>
if($element_name=="course"){
#$ausgabe .= "GPS Course: {$attr_course}";
}
// GPS Geschwindeigkeit <speed>6.194445</speed>
if($element_name=="speed"){
#$ausgabe .= "GPS Speed: {$attr_speed}";
}
// GPS Geschwindeigkeit <fix>3d</fix>
if($element_name=="fix"){
#$ausgabe .= "GPS Fix: {$attr_fix}";
}
// GPS Satelitenempfang <sat>4</sat>
if($element_name=="sat"){
#$ausgabe .= "GPS Sat (Anzahl): {$attr_sat}";
}
// GPS Satelitenempfang <sat>4</sat>
if($element_name=="hdop"){
#$ausgabe .= "GPS hdop: {$attr_hdop}";
}
// GPS Satelitenempfang <sat>4</sat>
if($element_name=="vdop"){
#$ausgabe .= "GPS vdop: {$attr_vdop}";
}
// GPS Satelitenempfang <sat>4</sat>
if($element_name=="pdop"){
#$ausgabe .= "GPS pdop: {$attr_pdop}";
}
}
function endElement($parser, $element_name) {
global $ausgabe;
// in Kleinbuchstaben umwandeln
$element_name = strtolower($element_name);
// Überprüfung des Names eines Elementes
if ($element_name=="trkpt") {
$ausgabe .= " </p> <hr>";
}
if($element_name=="ele"){
$ausgabe .= "-";
}
// Höhenmeter
if($element_name=="time"){
$ausgabe .= "<br> ";
}
// Kurs
if($element_name=="course"){
#$ausgabe .= " | ";
}
// GPS Geschwindeigkeit
if($element_name=="speed"){
#$ausgabe .= " | ";
}
// GPS Geschwindeigkeit
if($element_name=="fix"){
#$ausgabe .= " | ";
}
// GPS Geschwindeigkeit
if($element_name=="sat"){
#$ausgabe .= " <br /> ";
}
// GPS Satelitenempfang <sat>4</sat>
if($element_name=="hdop"){
#$ausgabe .= " | ";
}
// GPS Satelitenempfang <sat>4</sat>
if($element_name=="vdop"){
#$ausgabe .= " | ";
}
// GPS Satelitenempfang <sat>4</sat>
if($element_name=="pdop"){
#$ausgabe .= "";
}
}
function cdata($parser, $element_inhalt) {
global $ausgabe;
// Der normale Text wird an $ausgabe angehängt
$ausgabe .= $element_inhalt;
}
$xmlFile = file("test.gpx");
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "cdata");
foreach($xmlFile as $elem)
{
xml_parse($parser, $elem);
}
xml_parser_free($parser);
print $ausgabe;
Kommentar