Hallo zusammen,
wiedermal schlage ich hier mit einem Problem auf.
Ich bin seit ein paar Tagen Member bei Passknacker.com (eine Kraftrad orientierte Seite, bei der es ein Spiel gibt in dem es darum geht möglichst viele Punkte durch Abfahren von Pässen und Wasserscheiden zu erringen.
Die Seite bietet den Download von GPX Dateien an, die sämtliche in die Wertung aufgenommenen Stellen enthält. Erreicht man eine solche, muss man sein Motorrad, eine markante Stelle, sowie ein Jahresschild auf einem Foto vereinen. Um mir die Suche der markanten Stelle zu erleichtern, möchte ich entsprechende Bilder zu den Wegpunkten hinzufügen und dann auf mein Navi übertragen. Manuell ist das kein Problem...aber man ist ja schliesslich faul.
Also hab ich mir eine Funktion geschrieben, welche mir zu jedem Wegpunkt in einer GPX Datei das passende Bild sucht und eine weitere, die mir den Link dazu in die GPX einfügt.
Die Funktion sieht wie folgt aus:
[src=php]
<?php
function fCreateFullGPX ($sourcegpx){
$xml = simplexml_load_file($sourcegpx);
foreach ($xml as $cache) {
if ($cache->name) {
$extended = $cache->children("http://www.topografix.com/GPX/1/1");
//$pic = fGetPic($cache->name); //Das ist die Funkionn die den Pfad zum Bild liefert
$pic = "F:\GPXTEST\Bilder\383.jpg"; //Das ist mal eine Dummy-Zuweisung
$link = $cache->addChild('link','');
$link->addAttribute('href', $pic);
}
}
$xml->asXML ( "tmp.gpx" );
}
?>
[/src]
Hier mal wie es manuell funktioniert:
Original-Datei:
[src=xml]<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="MapSource 6.16.3" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<metadata>
<link href="http://www.garmin.com">
<text>Garmin International</text>
</link>
<time>2015-06-15T14:57:57Z</time>
<bounds maxlat="47.627598904073238" maxlon="7.912530172616243" minlat="47.626328626647592" minlon="7.904925188049674"/>
</metadata>
<wpt lat="47.626328626647592" lon="7.904925188049674">
<time>2015-06-15T14:56:12Z</time>
<name>Rathause</name>
<cmt>Hauptstrasse 17</cmt>
<desc>Hauptstrasse 17</desc>
<sym>Flag, Blue</sym>
<extensions>
<gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
<gpxxisplayMode>SymbolAndName</gpxxisplayMode>
</gpxx:WaypointExtension>
</extensions>
</wpt>
</gpx>
[/src]
und so sieht sie manipuliert aus:
[src=xml]<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="MapSource 6.16.3" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<metadata>
<link href="http://www.garmin.com">
<text>Garmin International</text>
</link>
<time>2015-06-15T14:57:57Z</time>
<bounds maxlat="47.627598904073238" maxlon="7.912530172616243" minlat="47.626328626647592" minlon="7.904925188049674"/>
</metadata>
<wpt lat="47.626328626647592" lon="7.904925188049674">
<time>2015-06-15T14:56:12Z</time>
<name>Rathause</name>
<cmt>Hauptstrasse 17</cmt>
<desc>Hauptstrasse 17</desc>
<link href="C:/Users/HomePC/Documents/POI_Testing/gpx/Bilder/rathaus.jpg"/>
<sym>Flag, Blue</sym>
<extensions>
<gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
<gpxxisplayMode>SymbolAndName</gpxxisplayMode>
</gpxx:WaypointExtension>
</extensions>
</wpt>
</gpx>
[/src]
Wie Ihr seht, ist nur die Zeile
[src=xml]<link href="C:/Users/HomePC/Documents/POI_Testing/gpx/Bilder/rathaus.jpg"/>[/src]
hinzugefügt. Die Datei ist valide und wird von den entsprechenden Programmen (Garmin POI Loader, freeware) problemlos geschluckt.
Wenn ich nun mein Skript ranlasse wird aus
[src=xml]<?xml version="1.1" encoding="UTF-8"?>
<gpx creator="passknacker.com" version="1.1" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<metadata>
<link href="http://www.passknacker.com">
<text>passknacker.com</text>
</link>
<time>2015-06-14T23:59:59Z</time>
<bounds maxlat="47.2673950" maxlon="8.8643360" minlat="47.2490644" minlon="8.8374616" />
</metadata>
<wpt lat="47.5693848" lon="7.6993399">
<ele>500.0000001</ele>
<time>2015-06-14T08:20:24Z</time>
<name>Rührberg</name>
<cmt>Wasserscheide - 32.2 - Foto: Ortstafel - DEU</cmt>
<desc>Wasserscheide - 32.2 - Foto: Ortstafel - DEU</desc>
<sym>Flag, Blue</sym>
<extensions>
<gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
<gpxx:Proximity>1000.0000000</gpxx:Proximity>
<gpxxisplayMode>SymbolAndName</gpxxisplayMode>
</gpxx:WaypointExtension>
</extensions>
</wpt>
</gpx>
[/src]
plötzlich
[src=xml]<?xml version="1.1" encoding="UTF-8"?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" creator="passknacker.com" version="1.1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<metadata>
<link href="http://www.passknacker.com">
<text>passknacker.com</text>
</link>
<time>2015-06-14T23:59:59Z</time>
<bounds maxlat="47.2673950" maxlon="8.8643360" minlat="47.2490644" minlon="8.8374616"/>
</metadata>
<wpt lat="47.5693848" lon="7.6993399">
<ele>500.0000001</ele>
<time>2015-06-14T08:20:24Z</time>
<name>Rührberg</name>
<cmt>Wasserscheide - 32.2 - Foto: Ortstafel - DEU</cmt>
<desc>Wasserscheide - 32.2 - Foto: Ortstafel - DEU</desc>
<sym>Flag, Blue</sym>
<extensions>
<gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
<gpxx:Proximity>1000.0000000</gpxx:Proximity>
<gpxxisplayMode>SymbolAndName</gpxxisplayMode>
</gpxx:WaypointExtension>
</extensions>
<link href="F:\GPXTEST\Bilder\383.jpg"/></wpt>
</gpx>[/src]
Jage ich das Ergebnis durch den XMLValidator, bekomme ich folgenden Fehler angezeigt:
Natürlich hab ich erstmal im verlinkten NS nachgeschaut, und finde dort ein entsprechendes Item: http://www.topografix.com/GPX/1/1/#type_wptType
Hat irgend jemand von Euch eine Ahnung was ich falsch mache? Bin für jede Hilfe dankbar.
p.s.:Grad gesehen,dass ich den Text im Falschen Browser-Fenster eingegeben hab.... sollte eigentlich im Webmaster landen. Wäre prima, wenn ein Mod es entsprechend verfrachten könnte. THX
wiedermal schlage ich hier mit einem Problem auf.
Ich bin seit ein paar Tagen Member bei Passknacker.com (eine Kraftrad orientierte Seite, bei der es ein Spiel gibt in dem es darum geht möglichst viele Punkte durch Abfahren von Pässen und Wasserscheiden zu erringen.
Die Seite bietet den Download von GPX Dateien an, die sämtliche in die Wertung aufgenommenen Stellen enthält. Erreicht man eine solche, muss man sein Motorrad, eine markante Stelle, sowie ein Jahresschild auf einem Foto vereinen. Um mir die Suche der markanten Stelle zu erleichtern, möchte ich entsprechende Bilder zu den Wegpunkten hinzufügen und dann auf mein Navi übertragen. Manuell ist das kein Problem...aber man ist ja schliesslich faul.
Also hab ich mir eine Funktion geschrieben, welche mir zu jedem Wegpunkt in einer GPX Datei das passende Bild sucht und eine weitere, die mir den Link dazu in die GPX einfügt.
Die Funktion sieht wie folgt aus:
[src=php]
<?php
function fCreateFullGPX ($sourcegpx){
$xml = simplexml_load_file($sourcegpx);
foreach ($xml as $cache) {
if ($cache->name) {
$extended = $cache->children("http://www.topografix.com/GPX/1/1");
//$pic = fGetPic($cache->name); //Das ist die Funkionn die den Pfad zum Bild liefert
$pic = "F:\GPXTEST\Bilder\383.jpg"; //Das ist mal eine Dummy-Zuweisung
$link = $cache->addChild('link','');
$link->addAttribute('href', $pic);
}
}
$xml->asXML ( "tmp.gpx" );
}
?>
[/src]
Hier mal wie es manuell funktioniert:
Original-Datei:
[src=xml]<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="MapSource 6.16.3" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<metadata>
<link href="http://www.garmin.com">
<text>Garmin International</text>
</link>
<time>2015-06-15T14:57:57Z</time>
<bounds maxlat="47.627598904073238" maxlon="7.912530172616243" minlat="47.626328626647592" minlon="7.904925188049674"/>
</metadata>
<wpt lat="47.626328626647592" lon="7.904925188049674">
<time>2015-06-15T14:56:12Z</time>
<name>Rathause</name>
<cmt>Hauptstrasse 17</cmt>
<desc>Hauptstrasse 17</desc>
<sym>Flag, Blue</sym>
<extensions>
<gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
<gpxxisplayMode>SymbolAndName</gpxxisplayMode>
</gpxx:WaypointExtension>
</extensions>
</wpt>
</gpx>
[/src]
und so sieht sie manipuliert aus:
[src=xml]<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="MapSource 6.16.3" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<metadata>
<link href="http://www.garmin.com">
<text>Garmin International</text>
</link>
<time>2015-06-15T14:57:57Z</time>
<bounds maxlat="47.627598904073238" maxlon="7.912530172616243" minlat="47.626328626647592" minlon="7.904925188049674"/>
</metadata>
<wpt lat="47.626328626647592" lon="7.904925188049674">
<time>2015-06-15T14:56:12Z</time>
<name>Rathause</name>
<cmt>Hauptstrasse 17</cmt>
<desc>Hauptstrasse 17</desc>
<link href="C:/Users/HomePC/Documents/POI_Testing/gpx/Bilder/rathaus.jpg"/>
<sym>Flag, Blue</sym>
<extensions>
<gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
<gpxxisplayMode>SymbolAndName</gpxxisplayMode>
</gpxx:WaypointExtension>
</extensions>
</wpt>
</gpx>
[/src]
Wie Ihr seht, ist nur die Zeile
[src=xml]<link href="C:/Users/HomePC/Documents/POI_Testing/gpx/Bilder/rathaus.jpg"/>[/src]
hinzugefügt. Die Datei ist valide und wird von den entsprechenden Programmen (Garmin POI Loader, freeware) problemlos geschluckt.
Wenn ich nun mein Skript ranlasse wird aus
[src=xml]<?xml version="1.1" encoding="UTF-8"?>
<gpx creator="passknacker.com" version="1.1" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<metadata>
<link href="http://www.passknacker.com">
<text>passknacker.com</text>
</link>
<time>2015-06-14T23:59:59Z</time>
<bounds maxlat="47.2673950" maxlon="8.8643360" minlat="47.2490644" minlon="8.8374616" />
</metadata>
<wpt lat="47.5693848" lon="7.6993399">
<ele>500.0000001</ele>
<time>2015-06-14T08:20:24Z</time>
<name>Rührberg</name>
<cmt>Wasserscheide - 32.2 - Foto: Ortstafel - DEU</cmt>
<desc>Wasserscheide - 32.2 - Foto: Ortstafel - DEU</desc>
<sym>Flag, Blue</sym>
<extensions>
<gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
<gpxx:Proximity>1000.0000000</gpxx:Proximity>
<gpxxisplayMode>SymbolAndName</gpxxisplayMode>
</gpxx:WaypointExtension>
</extensions>
</wpt>
</gpx>
[/src]
plötzlich
[src=xml]<?xml version="1.1" encoding="UTF-8"?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" creator="passknacker.com" version="1.1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<metadata>
<link href="http://www.passknacker.com">
<text>passknacker.com</text>
</link>
<time>2015-06-14T23:59:59Z</time>
<bounds maxlat="47.2673950" maxlon="8.8643360" minlat="47.2490644" minlon="8.8374616"/>
</metadata>
<wpt lat="47.5693848" lon="7.6993399">
<ele>500.0000001</ele>
<time>2015-06-14T08:20:24Z</time>
<name>Rührberg</name>
<cmt>Wasserscheide - 32.2 - Foto: Ortstafel - DEU</cmt>
<desc>Wasserscheide - 32.2 - Foto: Ortstafel - DEU</desc>
<sym>Flag, Blue</sym>
<extensions>
<gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
<gpxx:Proximity>1000.0000000</gpxx:Proximity>
<gpxxisplayMode>SymbolAndName</gpxxisplayMode>
</gpxx:WaypointExtension>
</extensions>
<link href="F:\GPXTEST\Bilder\383.jpg"/></wpt>
</gpx>[/src]
Jage ich das Ergebnis durch den XMLValidator, bekomme ich folgenden Fehler angezeigt:
cvc-complex-type.2.4.d: Invalid content was found starting with element 'link'. No child element is expected at this point.
Natürlich hab ich erstmal im verlinkten NS nachgeschaut, und finde dort ein entsprechendes Item: http://www.topografix.com/GPX/1/1/#type_wptType
Hat irgend jemand von Euch eine Ahnung was ich falsch mache? Bin für jede Hilfe dankbar.
p.s.:Grad gesehen,dass ich den Text im Falschen Browser-Fenster eingegeben hab.... sollte eigentlich im Webmaster landen. Wäre prima, wenn ein Mod es entsprechend verfrachten könnte. THX
Zuletzt bearbeitet: