ich würde gerne eine Lösung wie hier: http://www.bergfex.at/sommer/going/wandern/1617/ auf Basis einer selbst gerenderten und selbst gehosteten Karte mit OSM Daten für ein größeres Projekt umsetzen. Wenn ihr da mal die Maus über dem Höhenprofil bewegt seht ihr, dass sich ein dynamischer POI auf der Karte den Track entlang bewegt.
Ich würde als Basis Tiles, die mit Mapnik gerendert wurden, einsetzen. Die Tracks werden mit OpenLayers auf die Karte gelegt.
Ich habe so ungefähr eine Vorstellung wie ich das Ganze selbst programmieren könnte und eben beim Bewegen der Maus die OpenLayers Features update. Bevor ich mir da aber selbst Gedanken mache, wollte ich fragen ob schon mal jemand Erfahrungen gesammelt hat, oder ob es gar schon Anleitungen gibt, wie solche Features mit OSM Karten realisiert werden könnten.
1.) es scheint im IE nicht möglich sein die gpx daten zu empfangen (Höheprofil wird nur im Firefox angezeigt).
code:
var http = null;
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
http.overrideMimeType(“text/xml”);
} else if (window.ActiveXObject) {
http = new ActiveXObject(“Microsoft.XMLHTTP”);
hab jetzt die gpx file in ein xml file umbenannt (Endung ausgebessert) und es ging auf einmal auch im Internetexplorer. kann sich das jemand erklären? Davor hat kann der IE das Objekt XMLHttpRequest aber das Objekt responseXML war leer.
Kann es evtl. sein, dass er über die .xml Endung den Content-Type ermitteln kann und sonst nicht? Das hieße, dass auch im IE Fall der Content-Type/MimeType explizit gesetzt werden muss?
Wenn es keinen speziellen Grund gibt, würde ich das XMLHttpRequest Handling nicht selbst machen, sondern OpenLayers.Request.GET verwenden, das wird intern im GML Layer verwendet und dort funktioniert es ja.
Ich konnte das bei mir lokal nachvollziehen. Mit der Endung .gpx ist nur responseText, nicht responseXML gesetzt. Da mich interessiert hat, wieso das beim Layer.GML funktioniert, hab ich mir den Source-Code angeschaut.
OpenLayers berücksichtigt das in folgendem Code und parst das XML nachträglich aus responseText:
OpenLayers\Layer\GML.js
requestSuccess:function(request) {
var doc = request.responseXML;
if (!doc || !doc.documentElement) {
doc = request.responseText;
}