удаление предыдущего маркера перед добавлением нового маркера в Mapbox - PullRequest
0 голосов
/ 25 марта 2019

Ниже приведен код для отображения маркеров в том месте, когда карта загружается через данные 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
    };
  }

Текущий поток:

Нагрузки на страницу -> Нагрузки на карту -> Маркеры появляются ->Применить фильтры -> Добавлены новые маркеры -> Предыдущие маркеры Все еще присутствует

Требуемый поток:

Загрузка страниц -> Загрузка карт -> Маркеры появляются -> Применить фильтры ->Добавлены новые маркеры -> Предыдущие маркеры Исчезают

1 Ответ

0 голосов
/ 25 марта 2019

Я просто предполагаю, что вы используете карты Google.Вы проверяли этот URL?

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);
    }
...