Mehrere Marker-Layer

Hallo zusammen,

erst einmal möchte ich mich sehr herzlich für dieses tolle Projekt bedanken. Ich kannte bisher nur die beiden großen Kartenanbieter. Weiter so!

Jetzt zu meiner Frage:

Ich habe mit dem OSM SlippyMap Generator ein paar Marker erstellt. Das ging sehr einfach.

Doch jetzt steh ich vor der Herausforderung mehrere Overlays anfertigen zu müssen. Sie sollen per Klick ein- und ausgeblendet werden können.

Ich hab mir gestern schon die Finger wundgegoogelt. Ohne Erfolg.

Habt Ihr einen Vorschlag für mich?

Vielen herzlichen Dank

Sascha

Moin Moin, Sasha

erst mal herrzlich willkommen im Forum - “hier werden Sie geholfen - ob Sie wollen oder nicht” :wink:

zur Frage:
Das ist “ganz einfach”: wenn du mehrere Overlays haben willst, musst du mehrere Overlays anlegen! That’s all.

Lege mit


var layer1= new OpenLayers.Layer.Vector("l1");
...
...
...

var layer2= new OpenLayers.Layer.Vector("ov1",null,{baselayer:false});
...
...
...
...

mehrere layer an. mit allem Drum und Dran. über die Option “baselayer:true” bzw “baselayer:false” kannst du steuern, ob das ein Base-Layer wird oder ein Overlay.

Gruss
walter

Ich bekomme es einfach nicht zum Laufen

So ist der Standardaufbau


// Layer hinzufügen

layer_markers = new OpenLayers.Layer.Markers("Marker", { projection: new OpenLayers.Projection("EPSG:4326"),visibility: true, displayInLayerSwitcher: true });
layer_vectors = new OpenLayers.Layer.Vector("Zeichnungen", { displayInLayerSwitcher: false } );map.addLayer(layer_vectors);map.addLayer(layer_markers)
layers = new Array();
layer_layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik");
map.addLayer(layer_layerMapnik)
layers.push(new Array(layer_layerMapnik,'layer_layerMapnik'));
setLayer(0);

// Benutzte Marker Icons hinzufügen..

icons = new Array();
icons[0] = new Array('http://openlayers.org/api/img/marker.png','21','25','0.5','1');

// Marker hinzufügen
addMarker(layer_markers,13.253588676452637,51.557008396861626,"<b>Blakeks</b><p />",false,0);

Ich hätte halt neben dem Overlay “Marker” gerne noch ein “Marker 2”

Ich bin versteh die Syntax einfach nicht.

dann musst du noch ein weiteres layer einfügen. ich sehe nur drei - du brauchst vier.

layer_markers2= new OpenLayers.Layer.Markers(“Marker2”, { projection: new OpenLayers.Projection(“EPSG:4326”),baselayer: false);
map.add_layer(layer_markers2);

bau das und nur das ein und schau dir den layer-swicher an.

die ganze Chausse mit layers.push versteht ich eh nicht - hab sowas nie gebraucht. eventuell kommt da die ganze Verwirrung her. such dir mal eine einfachere Vorlage.

abgesehen davon, dass OpenLayers.Layer.Markers out ist - man sollte alles mit Openlayers.Layer.Vector machen - auch Marker ; aber das ist ein anderes Thema.

Gruss
walter

Hallo Walter,

vielen Dank für Deine Antwort. Mit leichten Modifikationen hat es funktioniert.


layer_markers2= new OpenLayers.Layer.Markers("Marker2", { projection: new OpenLayers.Projection("EPSG:4326"),baselayer: false});
map.addLayer(layer_markers2)

addMarker(layer_markers2,11.28508854,50.56498048,"<b>Blakeks</b><p />",false,10);

(Eine geschweifte Klammer fehlte und ein Unterstrich war zu viel)

But now - it works!

Herzlichsten Dank!

sorry, war ein Schnellschuss und der Kaffee hatte wohl noch nicht gewirkt - es ging aber um’s Prinzip.
Tested Code gibt es bei mir erst ab 11:30 - aber nur wenn es regnet.

Gruss
walter