Динамически изменить точку / маркер по клику Openlayers 5 - PullRequest
0 голосов
/ 09 апреля 2019

У меня возникают проблемы при попытке реализовать динамический маркер в моем виджете 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 голосов
/ 09 апреля 2019

Если ваш маркер является точечным объектом, что-то подобное должно сделать это

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