You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2012-06-10 20:45:00

hupe
Member
Registered: 2012-06-05
Posts: 6

Anzeige in LayerSwitcher abschalten

Mit OpenLayers lasse ich mir meine Startpunkte der Tracks (teilweise in mehreren MarkerLayers) anzeigen. Das klappt auch alles.
Ich kann zwischen verschiedenen Karten (BaseLayers) bzw. zwischen 1 bis n MarkerLayers(OverlayLayers) umschalten.
Allerdings möchte ich, wenn nur ein MarkerLayer vorhanden ist, dessen Anzeige im LayerSwitcher ausblenden:

  if (anz_karten + 1 == map.layers.length) {  // Bedingung für nur ein MarkerLayer
    map.layers[anz_karten].displayInLayerSwitcher=false;
    ......redraw();  //??? Welche Funktion muss hier stehen?
  }

Das funktioniert aber nicht wie gewollt. Beim ersten Aufruf wird mir die eine MarkerLayer im LayerSwitcher angezeigt. Erst wenn ich die Karten (BaseLayer) umschalte, verschwindet die Anzeige für Overlay im LayerSwitcher.

Mit welchem Code erreiche ich was ich möchte?

Danke. Petra

Last edited by hupe (2012-06-10 20:51:13)

Offline

#2 2012-06-11 10:08:54

hupe
Member
Registered: 2012-06-05
Posts: 6

Re: Anzeige in LayerSwitcher abschalten

Habe die Lösung gefunden:

Der LayerSwitcher ist wie folgt definiert:

    var switcherControl = new OpenLayers.Control.LayerSwitcher();
    map.addControl(switcherControl);
    switcherControl.maximizeControl();

Dann muss der Code so aussehen:

if (anz_karten + 1 == map.layers.length) {
    map.layers[anz_karten].displayInLayerSwitcher=false;
    switcherControl.layerStates=[];
    switcherControl.redraw();
}

Nun funktioniert es.

Offline

Board footer

Powered by FluxBB