在Mapbox中添加新标记之前删除上一个标记

问题描述 投票:0回答:1

当地图通过GeoJson数据加载时,我有以下代码在地方显示标记。它工作得很好,我想在添加新标记时删除以前的地图标记。在哪里我应该做出改变才能完美地工作。

这是完整的功能

prepareGeoJsonData(data) {
    let features = [];
    let counter = 0;

    for (let val of data) {
      features.push({
        type: "Feature",
        geometry: val.address.geometry.border,
        center: val.address.geometry.center,
        properties: {
          center: val.address.geometry.center.coordinates,
          landUnitId: val.memberOf.parcel[0]
        },
        id: counter++,
      });
      //
code for marker customization
//
        let marker = new mapboxgl.Marker(el)
          .setLngLat(cords)
          // .setPopup(popup)
          .addTo(this._mapRef);
        this.markers.push(marker);
      }
    };
    return {
      type: "FeatureCollection",
      features: features
    };
  }

当前流程:

页面载荷 - >地图载荷 - >标记出现 - >应用滤镜 - >添加新标记 - >以前的标记仍然存在

所需流程:

页面载荷 - >地图载荷 - >标记出现 - >应用过滤器 - >添加新标记 - >以前的标记消失

angular typescript web mapbox-gl-js mapbox-marker
1个回答
0
投票

我只是假设你正在使用谷歌地图。你检查过这个网址了吗?

https://developers.google.com/maps/documentation/javascript/examples/marker-remove

TLDR;

    for (var i = 0; i < this.markers.length; i++) {
      this.markers[i].setMap(null);
    }
© www.soinside.com 2019 - 2024. All rights reserved.