#wordpress #openlayers #openlayers-5
#wordpress #openlayers #openlayers-5
Вопрос:
У меня возникли проблемы при попытке реализовать динамический маркер в моем виджете карты OpenLayer. Я бы хотел, чтобы маркер / точка была размещена на карте «onclick». Вместо того, чтобы размещать новую точку / маркер при каждом щелчке мыши, я бы хотел, чтобы маркер обновлялся в новой позиции. Я пытался найти некоторую документацию по слоям / векторам и испытывал трудности с пониманием того, как обновить / заменить слой…
Вот мой текущий старый код для моей карты, который обновляет два входных параметра широтой и долготой при щелчке мыши:
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:
Если ваш маркер является точечным элементом, что-то вроде этого должно это сделать
map.on('click', function(evt){
myMarker.getGeometry().setCoordinates(evt.coordinates);
});