I made the Getting Started AGM tutorial: https://angular-maps.com/guides/getting-started/
I installed:
"@angular/core": "~10.0.0"
and
"@agm/core": "^3.0.0-beta.0"
In app.component.html I added:
In app.component.ts I added:
export class AppComponent {
title = 'gbis';
lat = 51.678418;
lng = 7.809007;
mapClick(e) {
console.log(e);
}
}
In app.component.css I added:
agm-map {
height: 300px;
}
When I run this app the map is working but if I click on the map in TS file function mapClick(e) I receive e="c". No coordinates recieved from parameter e.
please help!
ETA on this fix? or workaround?
I encountered exactly the same issue.
Could anybody fix this issue?
same issue, have to use an older version to workaround this?
Could anybody fix this issue?
Could anybody fix this issue?
i suggest to use an older version for now, since this bug is critical, negating basic interaction with the map
Could anybody fix this issue?
i suggest to use an older version for now, since this bug is critical, negating basic interaction with the map
Yes, the previous version 1.1.0 (8 months ago) works fine.
simple fix at #1847, waiting for a review from @SebastianM
I am encountering the same problem. $event in mapClick returns a string "c". Any idea when this will be fixed? Any solution other than shifting to an older version?
As workaround you can add listener to the google map instance
<agm-map [latitude]="position.lat"
[longitude]="position.lng"
[zoom]="zoom"
(mapReady)="mapReadyHandler($event)">
</agm-map>
public mapReadyHandler(map: google.maps.Map): void {
this.map = map;
this.mapClickListener = this.map.addListener('click', (e: google.maps.MouseEvent) => {
this.zone.run(() => {
// Here we can get correct event
console.log(e.latLng.lat(), e.latLng.lng());
});
});
}
public ngOnDestroy(): void {
if (this.mapClickListener) {
this.mapClickListener.remove();
}
}
驴Alguien podr铆a solucionar este problema?
sugiero usar una versi贸n anterior por ahora, ya que este error es cr铆tico, negando la interacci贸n b谩sica con el mapa
S铆, la versi贸n anterior 1.1.0 (hace 8 meses) funciona bien.
Si funciona con la versi贸n 1.1.0, usar el comando npm i @agm/[email protected]
When will this be released?
Having the same issue on "@agm/core": "^3.0.0-beta.0"
@egorkel-da14 I am trying your workaround but getting this message:
Uncaught TypeError: Cannot read property 'run' of undefined
when calling this.zone.run(...)
Am I missing something here?
update: It seems that I can get the coordinates when omitting that line:
public mapReadyHandler(map: google.maps.Map): void {
this.map = map;
this.mapClickListener = this.map.addListener('click', (e: google.maps.MouseEvent) => {
console.log(e.latLng.lat(), e.latLng.lng());
});
}
@egorkel-da14 I am trying your workaround but getting this message:
Uncaught TypeError: Cannot read property 'run' of undefined
when callingthis.zone.run(...)Am I missing something here?
update: It seems that I can get the coordinates when omitting that line:
public mapReadyHandler(map: google.maps.Map): void { this.map = map; this.mapClickListener = this.map.addListener('click', (e: google.maps.MouseEvent) => { console.log(e.latLng.lat(), e.latLng.lng()); }); }
Yes :)
you need to inject NgZone service to the constructor
constructor(private zone: NgZone) {}
You need this line for proper work of Angular change detection (for proper view update)
@paishin
call event.latLng.lat() working
markerDragEnd($event: any) {
console.log($event.latLng.lat(), $event.latLng.lng());
}
I have the same issue with addPin function, but I need to use version 3.0.0 to have translation for maps according user locale. So I need to know is version with translation and add pin functionality was published earlier or not? (because in version 1.1.0 translate still not available)
驴Alguien podr铆a solucionar este problema?
sugiero usar una versi贸n anterior por ahora, ya que este error es cr铆tico, negando la interacci贸n b谩sica con el mapa
S铆, la versi贸n anterior 1.1.0 (hace 8 meses) funciona bien.
Si funciona con la versi贸n 1.1.0, usar el comando npm i @agm/[email protected]
With Angular 10 ?
As workaround you can add listener to the google map instance
<agm-map [latitude]="position.lat" [longitude]="position.lng" [zoom]="zoom" (mapReady)="mapReadyHandler($event)"> </agm-map>public mapReadyHandler(map: google.maps.Map): void { this.map = map; this.mapClickListener = this.map.addListener('click', (e: google.maps.MouseEvent) => { this.zone.run(() => { // Here we can get correct event console.log(e.latLng.lat(), e.latLng.lng()); }); }); } public ngOnDestroy(): void { if (this.mapClickListener) { this.mapClickListener.remove(); } }
Thank you so much for this code, it's verry helpful, have great day
Most helpful comment
As workaround you can add listener to the google map instance