У меня есть код ниже, чтобы загрузить Angular Google Maps ( AGM ).Мне нужно загрузить маркеры на карте местами с помощью API PlacesService.
<agm-map
(mapReady)="mapReady($event)"
(mapClick)="close_window()"
[latitude]="lat"
[longitude]="lng"
[zoom]="zoom">
<agm-marker
*ngFor="let m of mapArrayList; let i = index"
(markerClick)="clickedMarker(infowindow);getDistanceMatrix(m.geometry.location.lat,m.geometry.location.lng)"
[latitude]="m.geometry.location.lat"
[longitude]="m.geometry.location.lng">
</agm-marker>
</agm-map>
В моем классе компонентов:
mapReady($event: any) {
var service = new google.maps.places.PlacesService(map);
service.nearbySearch({
location: {
lat: 29.9751765,
lng: 31.3087244
},
radius: 5000,
type: ['atm']
}, (results, status) => {
if (status === google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
this.mapArrayList = results;
// this.createMarker(results[i]);
}
}
});
var myplace = {
lat: 29.9751765,
lng: 31.3087244
};
}
Мне удалось добиться того же с помощью JavaScript.Но я хочу получить приведенный ниже код с помощью agm.
В шаблоне компонента:
<div #map id="map"></div>
В классе компонента
ngOnInit() {
map = new google.maps.Map(this.mapElement.nativeElement, {
center: {
lat: 29.9751765,
lng: 31.3087244
},
zoom: 13
});
var service = new google.maps.places.PlacesService(map);
service.nearbySearch({
location: {
lat: 29.9751765,
lng: 31.3087244
},
radius: 5000,
type: ['atm']
}, (results, status) => {
if (status === google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
this.createMarker(results[i]);
}
}
});
var myplace = {
lat: 29.9751765,
lng: 31.3087244
};
}