Könnte ich denn einfach einen komplett neuen Layer mit eigener js-Datei anlegen, in welchem auf eine andere Icondatei verwiesen wird`? Es wäre echt gut, wenn es möglich wäre, mehrere verschiedene Icons auf einer Seite anzuzeigen.
Für “layer1” gibts du bei dir “layer_local” ein. Falls du verschiedene Layer hast, gibt du immer den Namen des Layers ein, zu dem der entsprechende Marker gehören soll; für “lon1, lat1” jeweils die zum Marker gehörenden Koordinaten, für “popupContentHTML1” den dazugehörenden HTML-Text, und dann die dazu gehörende icon-Variable.
nee, diese Methode mit der txt-Datei möchte ich nicht verwenden, weil man da die Größe der Popupboxen nicht verändern kann und die Dinger keine Knöpfe zum schließen haben. Ich versuche das jetzt lieber mit der openlayers-Methode.
Ok, habe Deine vorgeschlagenen Änderungen durchgeführt, aber einen zweiten Layer bekomme ich gerade nicht hin. Ich habe zwar zum layer_local noch den layer-braun hinzugefügt:
und
Aber dennoch erscheint beim Kreuz oben in der Karte nicht der Braunkohle-Layer…
PS OK, der “Braunkohle” Layer wird zwar angezeigt, aber es tut sich nichts, wenn ich ihn ein- und ausschalte.
Hm, ich habe Markers1 jetzt in Markers geändert.
Es geht leider noch nicht richtig. Es wird ausschließlich die eine Sorte der Icons angezeigt (immerhin wird schon was angezeigt!)
Für “function addMarker(layer, lon, lat, popupContentHTML, icon)” fehlt in function createMarkers() wahrscheinlich der Aufrufparameter für icon:
addMarker(layer_local, 6.615796,51.03779,‘…’);
(Den Text für popupContentHTML habe ich wegen der Übersichtlichkeit einmal durch Punkte ersetzt.)
Sollte wohl so aussehen
für jedes Bild die Variable icon vorbesetzen:
var icon1 = makeIcon(‘/extern/steinkohle.png’, 32, 32);
var icon2 = makeIcon(‘/extern/braunkohle.png’, 32, 32);
alle addMarker- Aufrufe zum Schluss in iconX ergänzen:
addMarker(layer_local, 6.615796,51.03779,‘…’, icon1);
addMarker(layer_local, 6.615796,51.03779,‘…’, icon2);
layer_local = new OpenLayers.Layer.Markers("Kohlekraftwerke", { visibility: true });
map.addLayer(layer_local);
layer_braun = new OpenLayers.Layer.Markers("Braunkohle", { visibility: true });
map.addLayer(layer_braun);
createMarkers();
Außerdem sehe ich gerade, dass in der verwendeten utils.js die function addMarker(layer, lon, lat, popupContentHTML) ohne den letzten Übergabeparameter “icon” ist.