Angular-google-maps: AGM mapClick ($ event)이 μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2020λ…„ 07μ›” 24일  Β·  20μ½”λ©˜νŠΈ  Β·  좜처: SebastianM/angular-google-maps

μ‹œμž‘ν•˜κΈ° AGM νŠœν† λ¦¬μ–Όμ„ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€ : https://angular-maps.com/guides/getting-started/

λ‚˜λŠ” μ„€μΉ˜ν–ˆλ‹€ :
"@ angular / core": "~ 10.0.0"
κ³Ό
"@ agm / core": "^ 3.0.0-beta.0"

app.component.htmlμ—μ„œ λ‹€μŒμ„ μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.


app.component.tsμ—μ„œ λ‹€μŒμ„ μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.
export class AppComponent {
제λͺ© = 'gbis';
μœ„λ„ = 51.678418;
lng = 7.809007;

mapClick(e) {
    console.log(e);
}

}

app.component.cssμ—μ„œ λ‹€μŒμ„ μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.
agm-map {
높이 : 300px;
}

이 앱을 μ‹€ν–‰ν•˜λ©΄μ§€λ„κ°€ μž‘λ™ν•˜μ§€λ§Œ TS 파일 ν•¨μˆ˜ mapClick (e)μ—μ„œμ§€λ„λ₯Ό ν΄λ¦­ν•˜λ©΄ e = "c"κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€. 맀개 λ³€μˆ˜ eμ—μ„œ μˆ˜μ‹  된 μ’Œν‘œκ°€ μ—†μŠ΅λ‹ˆλ‹€.

λ„μ™€μ£Όμ„Έμš”!

urgent bug

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

ν•΄κ²° λ°©λ²•μœΌλ‘œ Google지도 μΈμŠ€ν„΄μŠ€μ— λ¦¬μŠ€λ„ˆλ₯Ό μΆ”κ°€ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

<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();
  }
}

λͺ¨λ“  20 λŒ“κΈ€

이 μˆ˜μ •μ— λŒ€ν•œ ETA? λ˜λŠ” ν•΄κ²° 방법?

λ‚˜λŠ” λ˜‘κ°™μ€ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

아무도이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

이 문제λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ 이전 버전을 μ‚¬μš©ν•΄μ•Όν•©λ‹ˆκΉŒ?

아무도이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

아무도이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

이 λ²„κ·ΈλŠ” μ€‘μš”ν•˜λ―€λ‘œμ§€λ„μ™€μ˜ κΈ°λ³Έ μƒν˜Έ μž‘μš©μ„ λ¬΄νš¨ν™”ν•˜λ―€λ‘œ μ§€κΈˆμ€ 이전 버전을 μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

아무도이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

이 λ²„κ·ΈλŠ” μ€‘μš”ν•˜λ―€λ‘œμ§€λ„μ™€μ˜ κΈ°λ³Έ μƒν˜Έ μž‘μš©μ„ λ¬΄νš¨ν™”ν•˜λ―€λ‘œ μ§€κΈˆμ€ 이전 버전을 μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

예, 이전 버전 1.1.0 (8 κ°œμ›” μ „)이 μ •μƒμ μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€.

# 1847의 κ°„λ‹¨ν•œ μˆ˜μ •, @SebastianM 의 κ²€ν†  λŒ€κΈ°

같은 λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. mapClick의 $ eventλŠ” λ¬Έμžμ—΄ "c"λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 λ¬Έμ œκ°€ μ–Έμ œ μˆ˜μ • 될지 μ•„μ‹­λ‹ˆκΉŒ? 이전 λ²„μ „μœΌλ‘œ μ „ν™˜ν•˜λŠ” 것 외에 λ‹€λ₯Έ 해결책이 μžˆμŠ΅λ‹ˆκΉŒ?

ν•΄κ²° λ°©λ²•μœΌλ‘œ Google지도 μΈμŠ€ν„΄μŠ€μ— λ¦¬μŠ€λ„ˆλ₯Ό μΆ”κ°€ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

<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();
  }
}

λˆ„κ΅¬λ“ μ§€μ΄ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

μ§€κΈˆμ€ 이전 버전을 μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.이 λ²„κ·ΈλŠ” μ€‘μš”ν•˜λ―€λ‘œμ§€λ„μ™€μ˜ 기본적인 μƒν˜Έ μž‘μš©μ„ κ±°λΆ€ν•©λ‹ˆλ‹€.

예, 이전 버전 1.1.0 (8 κ°œμ›” μ „)이 μ •μƒμ μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€.

버전 1.1.0μ—μ„œ μž‘λ™ν•˜λŠ” 경우 npm i @ agm / [email protected] λͺ…령을 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

μ–Έμ œ μΆœμ‹œ λ˜λ‚˜μš”?

"@ agm / core"에 λ™μΌν•œ λ¬Έμ œκ°€ 있음 : "^ 3.0.0-beta.0"

@ egorkel-da14 ν•΄κ²° 방법을 μ‹œλ„ν•˜κ³  μžˆμ§€λ§Œμ΄ λ©”μ‹œμ§€κ°€ λ‚˜νƒ€λ‚©λ‹ˆλ‹€.
Uncaught TypeError: Cannot read property 'run' of undefined
this.zone.run(...) μ „ν™” ν•  λ•Œ

여기에 λ­”κ°€ λΉ μ‘Œλ‚˜μš”?

μ—…λ°μ΄νŠΈ : ν•΄λ‹Ή 라인을 μƒλž΅ν•˜λ©΄ μ’Œν‘œλ₯Ό 얻을 μˆ˜μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

    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 ν•΄κ²° 방법을 μ‹œλ„ν•˜κ³  μžˆμ§€λ§Œμ΄ λ©”μ‹œμ§€κ°€ λ‚˜νƒ€λ‚©λ‹ˆλ‹€.
Uncaught TypeError: Cannot read property 'run' of undefined
this.zone.run(...) μ „ν™” ν•  λ•Œ

여기에 λ­”κ°€ λΉ μ‘Œλ‚˜μš”?

μ—…λ°μ΄νŠΈ : ν•΄λ‹Ή 라인을 μƒλž΅ν•˜λ©΄ μ’Œν‘œλ₯Ό 얻을 μˆ˜μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

    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());
        });
    }

예 :)
μƒμ„±μžμ— NgZone μ„œλΉ„μŠ€λ₯Ό μ£Όμž…ν•΄μ•Όν•©λ‹ˆλ‹€.

constructor(private zone: NgZone) {}

각도 λ³€κ²½ κ°μ§€μ˜ μ μ ˆν•œ μž‘μ—…μ„ μœ„ν•΄μ΄ 쀄이 ν•„μš”ν•©λ‹ˆλ‹€ (μ μ ˆν•œ λ·° μ—…λ°μ΄νŠΈλ₯Ό μœ„ν•΄).
ν—‰

event.latLng.lat () 호좜 μž‘λ™
markerDragEnd ($ event : any) {
console.log ($ event.latLng.lat (), $ event.latLng.lng ());
}

addPin κΈ°λŠ₯κ³Ό λ™μΌν•œ λ¬Έμ œκ°€ μžˆμ§€λ§Œ μ‚¬μš©μž λ‘œμΌ€μΌμ— 따라지도λ₯Ό λ²ˆμ—­ν•˜λ €λ©΄ 버전 3.0.0을 μ‚¬μš©ν•΄μ•Όν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ λ²ˆμ—­μ΄μžˆλŠ” 버전이고 ν•€ μΆ”κ°€ κΈ°λŠ₯이 이전에 κ²Œμ‹œλ˜μ—ˆλŠ”μ§€ μ—¬λΆ€λ₯Ό μ•Œμ•„μ•Όν•©λ‹ˆλ‹€. (버전 1.1.0μ—μ„œλŠ” λ²ˆμ—­μ„ μ‚¬μš©ν•  수 μ—†κΈ° λ•Œλ¬Έμ—)

λˆ„κ΅¬λ“ μ§€μ΄ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

μ§€κΈˆμ€ 이전 버전을 μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.이 λ²„κ·ΈλŠ” μ€‘μš”ν•˜λ―€λ‘œμ§€λ„μ™€μ˜ 기본적인 μƒν˜Έ μž‘μš©μ„ κ±°λΆ€ν•©λ‹ˆλ‹€.

예, 이전 버전 1.1.0 (8 κ°œμ›” μ „)이 μ •μƒμ μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€.

버전 1.1.0μ—μ„œ μž‘λ™ν•˜λŠ” 경우 npm i @ agm / [email protected] λͺ…령을 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

Angular 10으둜?

ν•΄κ²° λ°©λ²•μœΌλ‘œ Google지도 μΈμŠ€ν„΄μŠ€μ— λ¦¬μŠ€λ„ˆλ₯Ό μΆ”κ°€ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

<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();
  }
}

이 μ½”λ“œμ— κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. 맀우 μœ μš©ν•©λ‹ˆλ‹€. 쒋은 ν•˜λ£¨ λ˜μ„Έμš”.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰