Метод ngOnInit
выполняется сразу после загрузки компонента, что происходит перед вводом любой координаты во входных данных, поэтому введенные координаты не отражаются на карте. Попробуйте сделать что-то вроде этого, например:
Добавить (click)="updateMap()"
к кнопке:
<button pButton type="button" label="Display Map" class="ui-button-raised" (click)="updateMap()"></button>
Добавить #gmap (onMapReady)="setMap($event)"
к элементу карты:
<p-gmap #gmap (onMapReady)="setMap($event)"
[options]="options"
[overlays]="overlays"
[style]="{ width: '100%', height: '420px' }"
></p-gmap>
Добавить Функции map: google.maps.Map;
, setMap
и updateMap
для AppComponent:
export class AppComponent implements OnInit {
name = "Primeng Gmap component";
latitude;
longitude;
options: any;
overlays: any[];
receivedLatLong;
map: google.maps.Map;
setMap(event) {
this.map = event.map;
}
updateMap() {
if (this.latitude && this.longitude) {
this.map.setCenter({
lat: Number(this.latitude),
lng: Number(this.longitude)
});
}
}
ngOnInit() {
this.options = {
center: {
lat: -37.6878,
lng: 176.1651
},
zoom: 11,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
console.log(555, +this.latitude, +this.longitude);
console.log(666, this.options);
this.overlays = [
new google.maps.Circle({
center: {
lat: -35.131889,
// lat: this.latitude,
lng: 173.438361
// lng: this.longitude,
},
fillColor: "#FFA726",
fillOpacity: 0.35,
strokeWeight: 1,
radius: 1500
})
];
}
}
Теперь, если вы введете некоторые координаты и нажмете синюю кнопку, центр карты изменится на центр выбранных координат. .
Надеюсь, это поможет!