Warum wird GPX Datei nicht angezeigt?

Hallo Ihr,

ich habe eine GPX-Linie als Layer auf eine OSM-Karte gelegt. Die GPX-Linie (Umrisse BRD) wird aber seltsamerweise nur dann angezeigt, wenn ich die html-Datei auf meinem Rechner lokal mit dem Konqueror aufrufe. Sonst bleibt die Linie stets verborgen.

http://www.christopherstark.de/EnerRegeo/images/OSM/marker-osm-var1.htm

Könntet Ihr mir sagen, ob etwas mit dem Quellcode nicht stimmt?

Viele Grüße desputin

PS Off topic: aber warum wird im Popup-Fenster des Markers UTF8/die Sonderzeichen nicht anerkannt, welches im header festgeschrieben ist?

Hast Du’s schon mit einer relativen URL, also nur “brd1.gpx”, versucht (nur so 'ne Idee)?

Hm, scheint nicht zu klappen. Habe das jetzt so geändert:

var lgpx = new OpenLayers.Layer.GML(“BRD-GPX”, “brd1.gpx”, {

Geht aber nach wie vor nicht

Das hat was mit den Sicherheitseinstellungen moderner Browser zu tun.
GPX-Dateien werden als XML erkannt und können prinzipiell “böse” sein. Deshalb werden die nur dann verarbeitet, wenn sie an einem vertrauenswürdigen Ort (lokale Platte oder gleiche Domain) liegen.
Hängt auch vom Betriebssystem und verwendeten Browser ab. Gibts bei dir sowas wie ne js-Fehlerkonsole im Browser?

Vor langer Zeit hatten wir dazu hier schon mal was festgestellt. Mir fällt nur grad kein passendes Suchstichwort ein.

Gruß,
ajoessen

Hallo,

hm, also die Fehlerkonsole von Firefox zeigt an:

Error: gpx is not defined
Source File: javascript:%20gpx

glaub ich nicht. Ich kann mit meinen Rechner mein eigenes Beispiel sehen, seins aber nicht. Witzig ist, dass ich scheinbar das gleiche Code-Beispiel kopiert habe wie er. Trotzdem gehts nicht.

Versuch mal folgendes. Nenne Deine index.html (oder wie auch immer) in index.php um und ändere das hier



                        var lgpx = new OpenLayers.Layer.GML("GPX", "http://deine.doain.org/file.gpx<?echo "?".rand()?>", {
                                format: OpenLayers.Format.GPX,
                                style: {strokeColor: "red", strokeWidth: 1, strokeOpacity: 1.0},
                                projection: new OpenLayers.Projection("EPSG:4326")
                        });

Das Stichwort wäre Cross-Site-Scripting (XSS). Da die Datei aber auf dem Server im selben Verzeichnis liegt und auch eine relative URL nur mit Dateiname nicht funktioniert, ist das hier nicht das Problem.

Die Fehlerkonsole liefert aber dennoch den Hinweis auf das Problem:
“Warnung: Farbe erwartet, aber ‘dark-blue’ gefunden. Fehler beim Verarbeiten des Wertes für ‘stroke’. Deklaration ignoriert.”

Zumindest Firefox mag das strokeColor: “dark-blue” nicht, mit “blue” funktionierts.

Es gibt da auch übrigens noch nen weiteren Fehler, da die entsprechenden css/js Dateien nicht vorhanden sind:
“Fehler: $(”.lightbox").lightbox is not a function"

bei mir zeigt sie an:

Fehler: $(“.lightbox”).lightbox is not a function
Quelldatei: http://www.christopherstark.de/EnerRegeo/images/OSM/marker-osm-var1.htm
Zeile: 273

blue statt dark-blue hat funktioniert. Danke!

@SunCobalt: Kannst Du mir sagen, warum lightbox nicht mit OSM-Popup-Boxen kompatibel zu sein scheint? (wenn ich eine Bilddatei innerhalb des Popups habe, funktioniert lightbox nicht mit dem gewollten effekt)

@alle: Könnt Ihr mir sagen, weshalb die Umlaute in den Popup-Boxen trotz UTF8 nicht richtig angezeigt werden?

Beim Blick in den seitenquelltext kommt bei mir:
The requested URL /EnerRegeo/images/OSM/grafik/lightbox.css was not found on this server.
The requested URL /EnerRegeo/images/OSM/grafik/jquery.lightbox.js was not found on this server.

Gruß,
ajoessen

@ajoessen: ich hatte schon aufgegeben. Ich hab die Dateien jetzt noch mal dort reinkopiert, aber es geht nicht:
http://www.christopherstark.de/EnerRegeo/images/OSM/marker-osm-var5.htm

Ich vermute, das muss in den script Tags nochmal extra angegeben werden. Laut “Google” mit dem Attribut charset=“utf-8”.

@ikonor: Danke das hat jetzt geklappt:

u.s.w.