2017-08-10 61 views

回答

0

自定义控件基本上只是具有事件处理程序的DOM元素,所以您只需创建一个元素并应用一点CSS即可。

customControl = function(opt_options) { 
    var element = document.createElement('div'); 
    element.className = 'custom-control ol-unselectable ol-control'; 
    ol.control.Control.call(this, { 
     element: element 
    }); 
    }; 
    ol.inherits(customControl, ol.control.Control); 

    var map = new ol.Map({ 
    layers: [new ol.layer.Tile({source: new ol.source.OSM()})], 
    controls: [new customControl], 
    target: 'map', 
    view: new ol.View({ 
     center: [-11000000, 4600000], 
     zoom: 4 
    }) 
    }); 

CSS:

.custom-control { 
    top: 20px; 
    right: 20px; 
    width: 70px; 
    height: 70px; 
    background: no-repeat url('http://openlayers.org/en/latest/examples/resources/logo-70x70.png') 
} 
+0

它的工作原理,但默认打开图层控制dissapear ... – anabellag7

+0

看看您在最初如何通过追加控制到“标准”的控制问题所列举的例子调用ol.controls.defaults.extend()。 –

+0

很好的答案!完美的作品! – anabellag7

相关问题