В 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"})
];
}
}