Openlayers: Как я могу удалить функцию?

1

Я пытаюсь запустить базу сценариев на Openlayers, когда пользователь нажимает на карту, добавляет указатель или маркер. Я уже сделал эту часть, но у меня здесь небольшая проблема.

когда пользователи нажимают на карту, старые указатели будут там ставить, но я хочу удалить весь указатель и попытаться сохранить только недавно щелкнув точку пользователя.

Пожалуйста, помогите мне с этой проблемой. и вот мой код: [openlayers 3]

<script>
    var
        vectorSource = new ol.source.Vector(),
        vectorLayer = new ol.layer.Vector({
            source: vectorSource
        }),
        olView = new ol.View({
            center: ol.proj.fromLonLat([48.4831, 36.6681]),
            zoom: 8,
            minZoom: 2,
            maxZoom: 20
        }),
        map = new ol.Map({
            target: document.getElementById('map'),
            view: olView,
            layers: [
                new ol.layer.Tile({
                    style: 'Aerial',
                    source: new ol.source.OSM()
                }),
                vectorLayer
            ]
        })
        ;

    var iconStyle = new ol.style.Style({
        image: new ol.style.Icon({
            anchor: [0.5, 46],
            anchorXUnits: 'fraction',
            anchorYUnits: 'pixels',
            opacity: 0.75,
            src: 'https://openlayers.org/en/v3.8.2/examples/data/icon.png'
        }),
        text: new ol.style.Text({
            font: '12px Calibri,sans-serif',
            fill: new ol.style.Fill({ color: '#000' }),
            stroke: new ol.style.Stroke({
                color: '#fff', width: 2
            }),
            text: 'Some text'
        })
    });
    map.on('click', function(evt){
        var feature = new ol.Feature(
            new ol.geom.Point(evt.coordinate)
        );

        var lon = ol.proj.toLonLat(evt.coordinate)[0];
        var lat = ol.proj.toLonLat(evt.coordinate)[1];

        console.info('longitude is: ' + lon + 'latitude is: ' + lat);

        feature.setStyle(iconStyle);
        vectorSource.addFeature(feature);
    });

</script>
Теги:
openlayers-3

1 ответ

2
Лучший ответ

Используйте vectorSource.clear(); перед добавлением функции:

vectorSource.clear();
vectorSource.addFeature(feature);
  • 0
    Спасибо чувак. это работает. :))))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню