如何在没有事件侦听器的情况下在OpenLayers中永久显示弹出窗口?

时间:2019-07-19 10:09:26

标签: javascript php html openlayers

我有一个JavaScript代码,当我将光标悬停在其上时会显示几个弹出窗口,并且我想显示该弹出窗口而不需要使用“ pointermove”功能,但是我还没有找到如何做的。

我已经尝试过更改或删除事件监听器,但是我没有找到想要的特定事件监听器。

有人可以帮助我吗?

var rasterLayer2 = new ol.layer.Tile({
    //source: new ol.source.MapQuest({layer: 'sat'})
    source: new ol.source.OSM()
});
// Creating map
var map2 = new ol.Map({
    layers: [rasterLayer2],
    target: document.getElementById('map2'),
    view: new ol.View({
        center: ol.proj.transform([Number(lon[Index]),Number(lat[Index])], 'EPSG:4326', 'EPSG:900913'),
        zoom: 13.3,
        extent : extent,
        scrollWheelZoom: false,
        //rotation: 2.8/Math.PI,
        permanent: true,
    })
});

// Recalling popup2
var element2 = document.getElementById('popup2');
var popup2 = new ol.Overlay({
    element: element2,
    positioning: 'bottom-center',
    stopEvent: false,
    panIntofView: true
});
map2.addOverlay(popup2);


// Setting popup2 displaying
map2.on('pointermove', function (evt2) {
    var feature2 = map2.forEachFeatureAtPixel(evt2.pixel,
    function (feature2, layer) {
        return feature2;
    });
    if (feature2) {
        var geometry2 = feature2.getGeometry();
        var coord2 = geometry2.getCoordinates();
        popup2.setPosition(coord2);
        $(element2).popover('destroy');
        $(element2).popover({
            'placement': 'right',
            'html': true,
            'content': "<b>" + feature2.get('namezone') + "</b>" + feature2.get('owner') 
       });
       $(element2).popover('show'); 
    }
});

0 个答案:

没有答案