Как изменить маркер и положение кругов на картах Google после события OnDragEnd с помощью простых карт gmap? - PullRequest
0 голосов
/ 17 октября 2019

В gmap у меня есть маркер сброса вместе с синим кружком вокруг него. Пользователь может изменить положение маркера, щелкнув по другой позиции на карте или перетащив в это место. Изменение положения с помощью щелчка работает как шарм. Но когда я перетаскиваю, а затем опускаю, маркер и круг исчезаютЭто связано с тем, что событие, возвращаемое (onOverlayDragEnd), каким-то образом имеет неопределенное свойство latLng, поэтому Gmap не знает, где отобразить маркер + круг после окончания перетаскивания. У события перетаскивания есть другое свойство, которое я должен использовать, чтобы получить новые координаты? Вот мой код:

<p-gmap #gmap (onMapClick)="newMapPositionOnClick($event)"  (onOverlayDragEnd)="newMapPositionOnDragEnd($event)"    [options]="options" [overlays]="overlays" [style]="{'width':'100%','height':'500px'}"></p-gmap>

машинопись:

export class LocationSettingsComponent implements OnInit {

  options:any;
  overlays: any[];
  currentPosition:any;


  constructor() { }

  ngOnInit() {
    this.currentPosition = {lat: 53.221821, lng: 6.5765572};
    this.options = {
      center: this.currentPosition,
      zoom: 12,
      streetViewControl: false
    };
    this.createOverlays()
  }

  newMapPositionOnClick(event) {
    this.currentPosition = event.latLng;
    this.createOverlays();
  }

  newMapPositionOnDragEnd(event) {
    this.currentPosition = event.latLng;
    this.createOverlays();
  }

  createOverlays(){
    this.overlays = [
      new google.maps.Marker({position: this.currentPosition, draggable:true,  title:"Your position"}),
      new google.maps.Circle({center: this.currentPosition, fillColor: '#1976D2', fillOpacity: 0.35, strokeWeight: 0.05, radius: 1500, title:"Search area"})
    ];
  }

}
...