在单击Openlayers 5上动态更改点/标记

时间:2019-04-09 18:10:32

标签: wordpress openlayers openlayers-5

我在尝试在OpenLayer Map小部件中实现动态标记时遇到问题。我希望将标记/点放置在地图“ onclick”上。与其在每次鼠标单击时都没有放置新的标记/点,而是希望在新位置刷新标记。我一直在尝试找到有关图层/矢量的一些文档,并且在理解如何刷新/替换图层时遇到困难...

这是我当前的地图OL代码,可通过鼠标单击来更新两个输入的纬度和经度:

var map = new ol.Map({
    target: 'map',
    layers: [
    new ol.layer.Tile({
    source: new ol.source.OSM()
    }),
    ],
    view: new ol.View({
    center: ol.proj.fromLonLat([37.41, 8.82]),
    zoom: 4
    })
    });

map.on('click', function(evt){
    var lonlat = ol.proj.transform(evt.coordinate, 'EPSG:3857', 'EPSG:4326');
    var lon = lonlat[0];
    var lat = lonlat[1];
    document.getElementById("latitude").value = lat;
    document.getElementById("longitude").value = lon;
});

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的标记是点要素,则应执行类似操作

map.on('click', function(evt){
    myMarker.getGeometry().setCoordinates(evt.coordinates);
});