2016-07-13 8 views

Antwort

0

Es scheint, dass standardmäßig Überlagerungen wie erwartet unter den Steuerelementen angezeigt werden.

Was in meinem Fall vor sich ging, war, dass das div, das die Overlay-Daten enthielt, einen Z-Index-Stil erhalten hatte, der es höher als die Steuerelemente zwang.

-1

Es hat damit zu tun, wie Steuerelemente zu Ihrer Karte hinzugefügt werden. Zoom-und Out-Tasten ist die Standardeinstellung ol.control.Zoom und so ist es die erste Kontrolle auf der Karte hinzugefügt. Dann wird Ihr benutzerdefiniertes Steuerelement nachträglich hinzugefügt und überlappt das Zoom-Steuerelement.

es zu überwinden, deaktivieren Sie die Zoom-Standardsteuerung während der Karte init wie so:

......new ol.Map({ 
    controls: ol.control.defaults({ 
    zoom:false//here is the disable 
    ........ 

Dann fügen Sie Ihre Steuer individuelle und dann auf, wenn es mit der Zoomsteuerung hinzuzufügen. sollten alle zusammen sein:

var map = new ol.Map({ 
    controls: ol.control.defaults({ 
    zoom:false 
    }).extend([ 
    new app.CustomControl(), 
    new ol.control.Zoom() 
    ]), 
    layers: [ 
    new ol.layer.Tile({ 
     source: new ol.source.OSM() 
    }) 
    ], 
    target: 'map', 
    view: new ol.View({ 
    center: [0, 0], 
    zoom: 2, 
    rotation: 1 
    }) 
}); 

hier ein fiddle ist es

UPDATE

in Aktion zu sehen, mit Overlays zu beschäftigen, während Overlay insertFirst:true init so eingestellt, dass das Overlay unterhalb der angezeigt wird Kontrollen. Überprüfen Sie das API-Dokument here

+0

Ich spreche nicht über eine Kontrolle Ich spreche von einem Overlay. So wie ich anfange zu vermuten, liegt das Problem darin, dass sich der Inhalt über den Overlays eher an die Spitze drängt als ein inhärentes Overlay-Problem. – Saurbaum

+0

dann während der Überlagerung init set 'insertFirst: true', so dass das Overlay unter den Steuerelementen angezeigt wird.Überprüfen Sie die API doc -> http://openlayers.org/en/v3.17.1/apidoc/ol.Overlay.html – pavlos