угловая agm-карта, как позволить пользователю удалить маркер

#angular #google-maps-api-3 #google-maps-markers #agm-map

Вопрос:

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

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

Я видел, что это решение в документе google api:

 function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 4,
      center: { lat: -25.363882, lng: 131.044922 },
    }
  );

  map.addListener("click", (e) => {
    placeMarkerAndPanTo(e.latLng, map);
  });
}

function placeMarkerAndPanTo(latLng: google.maps.LatLng, map: google.maps.Map) {
  new google.maps.Marker({
    position: latLng,
    map: map,
  });
  map.panTo(latLng);
}
 

но я, честно говоря, не знаю, как им пользоваться — в частности, где его разместить?

И мне интересно, совместимо ли это с agm-картой. В agm-карте я попытался найти что-то подобное и посмотрел директиву AgmMarker. Но я не уверен, как во всем этом разобраться. Мой код для карты в настоящее время выглядит следующим образом:

 <agm-map id="map" [styles]="aubergine" [zoom]="15" [maxZoom]="25" [minZoom]="12" [disableDefaultUI]="true"
                  style="display:block;" [latitude]="lat" [longitude]="lng">

                  <agm-marker-cluster
                    imagePath="https://raw.githubusercontent.com/googlemaps/v3-utility-library/master/markerclustererplus/images/m">

                    <agm-marker *ngFor="let m of markers; let i = index" (markerClick)="clickedMarker(m.label, i)"
                      [latitude]="m.lat" [longitude]="m.lng" [label]="m.label" [markerDraggable]="m.draggable"
                      (dragEnd)="markerDragEnd(m, $event)" [iconUrl]="{
                      url: './assets/img/marker.png',
                      scaledSize: {
                          width: 20,
                          height: 20
                      }
                  }">

                      <agm-info-window>
                        <strong>here is some info</strong>
                      </agm-info-window>

                    </agm-marker>
                  </agm-marker-cluster>
                </agm-map>
 

Не мог бы кто-нибудь, пожалуйста, помочь мне собрать все воедино?

Комментарии:

1. Проверьте метод mapClicked на этом стекблитце: stackblitz.com/edit/angular-google-maps-demo-animation

2. о, честное слово, это лучшая демо-версия на свете! Спасибо!!