Wie kann ich Openstreetmap in eine Website einbinden ?
Die Anleitung aus dem OpenStreetMap Wiki habe ich genau befolgt und hat leider nicht funktioniert. Es kommt immer nur eine Webiste mit Karte(Testversion).
Kannst Du uns einen Link setzen vom Testergebnis setzen? Ist sicherlich nur eine Kleinigkeit, den man im Code schneller sieht als man Fragen stellen kann.
Mit freundlichen Grüßen Georg V.
P.S. Willkommen im Forum.
mach mal den Firebug auf (F12 und reload) und dann kommt in Zeile 58: jumpTo not defined.
addMarker ist auch nicht definiert.
Gruss
walter
oder steht das in tom.js drin? jo, steht drin.
so, hab tom.js eingebaut, knallt immer noch. allerdings irgenwo in den Tiefen von OL. Würde mich mal an den Autor wenden, da ich keine Lust Zeit habe, mich um Scripte zu kümmern, die irgendwer irgendwann zusammengebaut hat und die angeblich 100% funktionieren sollen.
vielleicht hilft Dir das wenn ich Dir einfach meinen Code zur Selbstbedienung freigebe?
Hier ist eine Karte mit Markern: http://yapis.eu/?id=9&lang=de
Den Pfad zum OpenLayers und ein paar Kleinigkeiten musste natürlich anpassen.
wenn es um reine Karten mit ein paar Markern geht, empfehle ich immer Leaflet.Js (http://leafletjs.com/) .
Das kann zwar längst nicht soviel, wie OpenLayers, ist dafür aber auch schlanker im Download und etwas fixer in der Dartstellung.
Scripte hier aus dem OSM Wiki würde ich nicht mehr verwenden, weil man nicht weiß für welche Version von OpenLayers die Dinger mal gecodet wurden. OpenLayers wird ja auch weiterentwickelt.
Bitte beachte auch, dass externe Javascripts teilweise von Browser erst geladen werden, wenn die html Seite im HTTP Kontext liegt. Also im Browser die Adresse mit http:// beginnt und nicht mit file://
Also testweise mal auf deinen Webserver hochladen oder Lokal aufm Apache. Keine Ahnung wie bewandert du in dem Bereich bist.
EDIT: Hab grad im Screenshot gesehen, das du auf localhost unterwegs bist - sollte also nicht das Problem sein
Zum Code aus entstanden aus dem Wiki-Beispiel: Um die Karte selbst zu bekommen folgendes verändern:
jumpTo(lon, lat, zoom);
Ändern in:
map.setCenter(new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")), zoom);
Im Code wird zudem versucht, die Karte in das HTML-Element mit der ID “map” zu laden - das ist aber nicht vorhanden. Zudem scheint via CSS im vorgesehenen Element gar keine Größenangabe zu existieren… Daher den HTML-Code z.B. so ergänzen bzw. ändern:
Klar… Da muss man dann das Script etwas anpassen, aber es geht.
Wo kommen die Marker denn her? MySQL Datenbank? Ein PHP-Script?
Bewegen sich die Marker, oder willst du neue/weitere Marker nachladen, wenn die Karte bewegt wird?
Die HTML Seite mit der Map würde per AJAX/Json die Marker laden und in die Karte schreiben.
Ich würde die Marker jedoch vorher in eine eigene LayerGroup schieben: http://leafletjs.com/reference.html#layergroup
Die LayerGroup kann man mit der Methode clearLayers() leeren und dann neu befüllen.
Du brauchst also 2 Funktionen: initMap() und getMarkers().