我在尝试在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;
});
谢谢!
答案 0 :(得分:0)
如果您的标记是点要素,则应执行类似操作
map.on('click', function(evt){
myMarker.getGeometry().setCoordinates(evt.coordinates);
});