2016-07-13 6 views
0

私は、情報を表示する外部データから構築された一連のオーバーレイを持つマップを持っています。オーバーレイを設定してマップコントロールの上に描画しないようにする方法があるのだろうかと疑問に思っていましたか?マップコントロールの下にオーバーレイを表示することは可能でしょうか?

デフォルトでは、コントロールが重なったときにコントロールを覆い隠します。 enter image description here

答えて

0

デフォルトでは、コントロールの下にオーバーレイが予想どおりに表示されるように見えます。

私のケースでは、オーバーレイデータを含むdivがコントロールよりも高いZインデックススタイルを受け取っていました。

-1

これは、コントロールがマップに追加される方法と関係があります。 ズームイン/アウトボタンはデフォルトのol.control.Zoomであるため、地図上に追加された最初のコントロールです。その後、カスタムコントロールが追加され、ズームコントロールがオーバーラップします。

、それを克服するので、同様にマップの初期化時にデフォルトのズームコントロールを無効にする:それは、ズームコントロールを追加する場合

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

は、その上に、その後、カスタムコントロールを追加します。すべて一緒に は次のようになります。ここでは

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 
    }) 
}); 

がオーバーレイの際に、オーバーレイに対処するためにUPDATEがオーバーレイが下に表示されるので、insertFirst:trueを設定するにinitアクションでそれを見るためにfiddleですコントロール。 here

+0

私はオーバーレイについて話しています。それが問題なのは、オーバレイ上のコンテンツが固有のオーバーレイの問題ではなく、上に自分自身を強制することであると思われ始めています。 – Saurbaum

+0

オーバーレイ初期の間に 'insertFirst:true'を設定するとオーバーレイがcontrolsの下に表示されます。api docを確認してください - > http://openlayers.org/en/v3.17.1/apidoc/ol.Overlay.html – pavlos

関連する問題