简体   繁体   English

如何更改默认标记 OPENLAYERS 5

[英]how to change the default marker OPENLAYERS 5

I am trying to display some markers on the OSM.我正在尝试在 OSM 上显示一些标记。 This works so far, but i just wanted to change the default marker against another one from a local path, but i didnt know how to add this to my code, i have tried the setStyle but i didnt know how to apply it correctly.到目前为止,这有效,但我只是想将默认标记更改为本地路径中的另一个标记,但我不知道如何将其添加到我的代码中,我尝试了setStyle但我不知道如何正确应用它。 It would be also nice if am able to style the icon too.如果我也能够为图标设置样式,那也很好。 I also want markers to be dynamically displayed, because i am doing this manually each time through我还希望动态显示标记,因为我每次都手动执行此操作

var layer = new ol.layer.Vector({source: new ol.source.Vector({
    features: [
        new ol.Feature({
            geometry: new ol.geom.Point(ol.proj.fromLonLat([4.35247, 50.84673]))
         }),
        new ol.Feature({
            geometry: new ol.geom.Point(ol.proj.fromLonLat([4.35247, 52.84673]))
         }),
    ]
}); 

Here is a snippet of the full code that i use这是我使用的完整代码的片段

/* open street map newest version */
var map = new ol.Map({
    target: 'map', // the div id
    layers: [
        new ol.layer.Tile({
        source: new ol.source.OSM()
        })
    ],
    view: new ol.View({ 
        center: ol.proj.fromLonLat([4.35247, 52.520008]),
        zoom: 4
    })
});
// add a marker to the map
var layer = new ol.layer.Vector({
    source: new ol.source.Vector({
        features: [
            new ol.Feature({
                geometry: new ol.geom.Point(ol.proj.fromLonLat([4.35247, 50.84673]))
            }),
            new ol.Feature({
                geometry: new ol.geom.Point(ol.proj.fromLonLat([4.35247, 52.84673]))
            })
        ]
    })
});
map.addLayer(layer);
//initialize the popup
var container = document.getElementById('popup');
var content = document.getElementById('popup-content');
var overlay = new ol.Overlay({
    element: container,
    autoPan: true,
    autoPanAnimation: {
        duration: 250
    }
});
map.addOverlay(overlay);
//display the pop with on mouse over
map.on('pointermove', function (event) {
    if (map.hasFeatureAtPixel(event.pixel) === true) {
        var coordinate = event.coordinate;
        content.innerHTML = '<b>Hello world!</b><br />I am a popup.';
        overlay.setPosition(coordinate);
    }
    else {
        overlay.setPosition(undefined);
        closer.blur();
    }
});

Fixed this, the issue was from the local path.解决了这个问题,问题来自本地路径。 If this may help anyone i added this to my code如果这可以帮助任何人,我将其添加到我的代码中

layer.setStyle(new ol.style.Style({
    image: new ol.style.Icon({
        src: 'https://wiki.openstreetmap.org/w/images/0/0c/Hgv.png'
    })
}));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM