Angular-google-maps: ν΄λŸ¬μŠ€ν„°κ°€ λ²”μš© 앱을 κΉ¨κ³  μžˆμŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2017λ…„ 11μ›” 22일  Β·  30μ½”λ©˜νŠΈ  Β·  좜처: SebastianM/angular-google-maps

문제 μ„€λͺ…

ν΄λŸ¬μŠ€ν„° λͺ¨λ“ˆμ„ κ°€μ Έμ˜€κΈ°λ§Œ ν•˜λ©΄ 앱이 μ€‘λ‹¨λ©λ‹ˆλ‹€.

문제 μž¬ν˜„ 단계 및 μ΅œμ†Œν•œμ˜ 데λͺ¨

λͺ¨λ“  λ§ˆμ»€κ°€ ν΄λŸ¬μŠ€ν„° μ•„λž˜μ— μžˆλŠ” 지도가 μžˆμŠ΅λ‹ˆλ‹€. 맡은 μ‘°κ±΄λΆ€λ‘œ λž˜ν•‘λ˜μ–΄ μ•Œλ €μ§„ λ¬Έμ œκ°€ 있기 λ•Œλ¬Έμ— ν΄λΌμ΄μ–ΈνŠΈμ—μ„œλ§Œ(μ„œλ²„κ°€ μ•„λ‹˜) λ Œλ”λ§λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ–΄λŠ μ‹œμ μ—μ„œ window 에 μ•‘μ„ΈμŠ€ν•˜λ €κ³  ν•˜κΈ° λ•Œλ¬Έμ— μ—¬μ „νžˆ μ„œλ²„ μΈ‘ λ Œλ”λ§μ΄ μ€‘λ‹¨λ©λ‹ˆλ‹€. 이것은 ꡬ성 μš”μ†Œ μžμ²΄κ°€ μΈμŠ€ν„΄μŠ€ν™”λ˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— λͺ¨λ“ˆ μ΄ˆκΈ°ν™” 쀑에 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν˜„μž¬ 행동

ν΄λŸ¬μŠ€ν„°λ₯Ό μ‚¬μš©ν•˜λŠ” 앱은 μ„œλ²„ μΈ‘ μ•±μ—μ„œ μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

μ˜ˆμƒ/μ›ν•˜λŠ” 행동

앱이 μ€‘λ‹¨λ˜μ–΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€.

angular & angular-google-maps 버전

  • @angular/* 5.0.0
  • @agm/core at 1.0.0-beta.2

기타 정보

ν•΄κ²° 방법 ATM을 μ°Ύκ³  μžˆμ§€λ§Œ λ¬Όλ‘  Universal 앱이 μžˆλŠ” μ‚¬μš©μžκ°€ 아무 것도 ν•  ν•„μš”κ°€ μ—†λ‹€λ©΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€. μš°λ¦¬λŠ” 적어도 λͺ¨λ“  μ½”λ“œλ₯Ό isPlatformBrowser 감싸야 ν•˜κ³ , κ°€λŠ₯ν•˜λ‹€λ©΄ μ„œλ²„μ—μ„œ 지도λ₯Ό λ Œλ”λ§ν•˜λŠ” 방법을 μ•Œμ•„λ‚Ό λ•ŒκΉŒμ§€ μ§€κΈˆμ€ 주의 μ‚¬ν•­μœΌλ‘œ λ‚˜μ—΄ν•΄μ•Ό ν•©λ‹ˆλ‹€.

stale

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

js-marker-clusterer ν”„λ‘œμ νŠΈλ₯Ό ν¬ν¬ν•˜κ³  μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€. μœˆλ„μš°κ°€ μ •μ˜λ˜μ§€ μ•Šμ€ 경우(μ„œλ²„ μΈ‘ λ Œλ”λ§μ—μ„œ) μ΄ˆκΈ°ν™” MarkerClusterer λ°©μ§€ν•©λ‹ˆλ‹€. λ”°λΌμ„œ 마컀 ν΄λŸ¬μŠ€ν„°λŸ¬λŠ” 이제 두 경우 λͺ¨λ‘μ—μ„œ μ˜¬λ°”λ₯΄κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.

npm에 κ²Œμ‹œλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. https://www.npmjs.com/package/js-marker-clusterer-universal

js-marker-clusterer 쒅속성을 js-marker-clusterer-universal 둜 λ°”κΏ”μ•Ό μ μš©λ©λ‹ˆλ‹€.

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

@lazarljubenovic 예 λž©ν•‘μ΄ ν˜„μž¬λ‘œμ„œλŠ” 쒋은 μ†”λ£¨μ…˜μ΄ 될 κ²ƒμž…λ‹ˆλ‹€.
cc @jigfox

λ‚˜λŠ” 이것을 쑰사할 것이닀

@lazarljubenovic μ €λŠ” λ²”μš© 앱에 λŒ€ν•œ κ²½ν—˜μ΄ μ—†κ³  isPlatformBrowser μ˜¬λ°”λ₯΄κ²Œ μ‚¬μš©ν•˜λŠ” 방법을 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. 쑰언을 μ’€ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

@jigfox λ¬Όλ‘ μž…λ‹ˆλ‹€! λ‹€μŒκ³Ό 같이 PLATFORM_ID 토큰을 ꡬ성 μš”μ†Œμ— μ£Όμž…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

constructor(@Inject(PLATFORM_ID) private platformId: any) {
}

그런 λ‹€μŒ isPlatformBrowser λ˜λŠ” isPlatformServer 와 같은 Angular ν•¨μˆ˜ λ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • ν”Œλž«νΌμ—μ„œλ§Œ νŠΉμ • μ½”λ“œλ₯Ό μ‘°κ±΄λΆ€λ‘œ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

constructor(@Inject(PLATFORM_ID) private platformId: any) {
  if (isPlatformBrowser(this.platformId)) {
    console.log('This code runs only in browser')
  }
}

이것을 어디에 λ‘˜μ§€ 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. window λŒ€ν•œ ν˜ΈμΆœμ€ js-marker-clustererμ—μ„œ μ œκ³΅ν•˜λŠ” μ½”λ“œμ— μžˆμŠ΅λ‹ˆλ‹€.

markerclusterer.js#L698 및 markerclusterer.js#L1270 λ”°λΌμ„œ cluster-manager.ts#L3 을 λž˜ν•‘ν•΄μ•Ό ν•©λ‹ˆκΉŒ?

λΈŒλΌμš°μ € ν”Œλž«νΌμ΄ μ•„λ‹Œ 경우 전체 ν΄λŸ¬μŠ€ν„° ν”ŒλŸ¬κ·ΈμΈμ„ λΉ„ν™œμ„±ν™”ν•΄μ•Ό ν•©λ‹ˆκΉŒ? ν•˜μ§€λ§Œ window μ°Έμ‘° 없이 λ‹€μ‹œ μž‘μ„±ν•  수 있기 λ•Œλ¬Έμ— markerclusterer.js λ‹€μ‹œ μž‘μ„±μ΄ 도움이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

μ•„, 타사 lib의 μ½”λ“œμž…λ‹ˆλ‹€. 이런. λ‹€μŒκ³Ό 같은 말을 ν•˜λŠ” 것이 도움이 λ˜λŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€.

const oldWindow = window || {}
window = {
  setTimeout: oldWindow.setTimeout
}
import 'js-marker-clusterer'
window = oldWindow

κ·ΈλŸ¬λ‚˜ λ³€μˆ˜κ°€ μΈμŠ€ν„΄μŠ€ν™”λ˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— μ„œλ²„κ°€ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” λ™μ•ˆ window λ₯Ό μ°ΎλŠ” κ²ƒμ—μ„œ 쀑단될 것이라고 μƒκ°ν•©λ‹ˆλ‹€. λ”°λΌμ„œ 쒋은 생각일지라도 그것도 쀑단될 κ²ƒμž…λ‹ˆλ‹€.

import 파일의 μ‹œμž‘ 뢀뢄이 μ•„λ‹ˆλΌ ꡬ성 μš”μ†Œ λ‚΄λΆ€μ—μ„œ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? 그게 무슨 μ†Œμš©μ΄κ² μŠ΅λ‹ˆκΉŒ?

그건 κ·Έλ ‡κ³ , κ·Έ Google지도 μ €μž₯μ†Œμ— λ‹€μŒκ³Ό 같이 λ§ν•©λ‹ˆλ‹€.

μ°Έκ³ : 이 λ¦¬ν¬μ§€ν† λ¦¬λŠ” ν˜„μž¬ μœ μ§€ κ΄€λ¦¬λ˜μ§€ μ•ŠμœΌλ©° 역사적 λͺ©μ μœΌλ‘œλ§Œ λ³΄κ΄€λ©λ‹ˆλ‹€.

κ·Έλ ‡λ‹€λ©΄ 우리 슀슀둜 그것을 ν¬ν¬ν•˜λŠ” 것은 μ–΄λ–»μŠ΅λ‹ˆκΉŒ? 그것은 역사적인 repo이기 λ•Œλ¬Έμ— window λ₯Ό μ „ν˜€ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 자체 μ‘°μ • 버전을 μ‚¬μš©ν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œλ„ λ¬Έμ œκ°€ μ—†λ‹€λŠ” 것을 μ˜λ―Έν•˜λŠ” λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ•„, 그리고 이것에 κ΄€ν•΄μ„œ:

κ·ΈλŸ¬λ‚˜ λ³€μˆ˜κ°€ μΈμŠ€ν„΄μŠ€ν™”λ˜μ§€ μ•Šμ•˜μœΌλ―€λ‘œ μ„œλ²„κ°€ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” λ™μ•ˆ 창을 μ°ΎλŠ” κ²ƒμ—μ„œ 쀑단될 것이라고 μƒκ°ν•©λ‹ˆλ‹€. λ”°λΌμ„œ 쒋은 생각일지라도 그것도 쀑단될 κ²ƒμž…λ‹ˆλ‹€.

이것은 맀우 기본적인 κ²ƒμ²˜λŸΌ λ³΄μ΄μ§€λ§Œ λ‚˜λŠ” 이것을 λ©°μΉ  전에 λ°°μ› μŠ΅λ‹ˆλ‹€.

if (window == null) λ˜λŠ” 이와 μœ μ‚¬ν•œ μž‘μ—…μ„ μ‹œλ„ν•˜κ³  window κ°€ λ°©λ¬Έν•œ λ²”μœ„μ— λ³€μˆ˜λ‘œ μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©΄ μ½”λ“œκ°€ ReferenceError μ€‘λ‹¨λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ if (typeof window == 'undefined' λ₯Ό μˆ˜ν–‰ν•˜λ©΄ window κ°€ μ„ μ–Έλœ 적이 μ—†λŠ” κ²½μš°μ—λ„ μ™„λ²½ν•˜κ²Œ μž‘λ™ν•˜κ³  μ˜ˆμƒν•œ κ²°κ³Όλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€(μ΄λŠ” μ„œλ²„ λ¬Έμ œμž„).

ν΄λŸ¬μŠ€ν„° λ¦¬ν¬μ§€ν† λ¦¬μ˜ 자체 버전을 가지고 놀고 이λ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ˜ν–‰ν•  수 μžˆλŠ” μž‘μ—…μ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒ μ ‘κ·Ό 방식을 μ‚¬μš©ν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν•˜λ €κ³  ν–ˆμŠ΅λ‹ˆλ‹€.

http://ideasintosoftware.com/typescript-conditional-imports/

κ·ΈλŸ¬λ‚˜ AOT μ»΄νŒŒμΌλŸ¬κ°€ μ§€μ‹œλ¬Έμ„ 더 이상 찾을 수 μ—†λ‹€κ³  λΆˆν‰ν•˜κΈ° μ‹œμž‘ν•  것이기 λ•Œλ¬Έμ— 운이 μ—†μ—ˆμŠ΅λ‹ˆλ‹€.

예, AOT μ»΄νŒŒμΌλŸ¬λŠ” μ½”λ“œλ₯Ό μ •μ μœΌλ‘œ λΆ„μ„ν•˜λ―€λ‘œ 동적 κ°€μ Έμ˜€κΈ°
ν™•μ‹€νžˆ Angularμ—μ„œλŠ” λΆˆκ°€λŠ₯ν•œ κ²ƒμ²˜λŸΌ λ“€λ¦½λ‹ˆλ‹€.

리포지토리λ₯Ό λΆ„κΈ°ν•˜κ³  μ•‘μ„ΈμŠ€ κΆŒν•œμ„ μ œκ±°ν•˜λŠ” 데 μ‹œκ°„μ΄ μžˆμ—ˆμŠ΅λ‹ˆκΉŒ?
window ? μ‰½κ²Œ ν•  수 μžˆλŠ” λͺ‡ κ΅°λ°μ—μ„œλ§Œ μ‚¬μš©λ˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.
ν”Όν•œλ‹€.

2017λ…„ 12μ›” 27일 18:06에 "cmddavid" [email protected]이 μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒ μ ‘κ·Ό 방식을 μ‚¬μš©ν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν•˜λ €κ³  ν–ˆμŠ΅λ‹ˆλ‹€.

http://ideasintosoftware.com/typescript-conditional-imports/

κ·ΈλŸ¬λ‚˜ AOT μ»΄νŒŒμΌλŸ¬κ°€ μ§€μ‹œλ¬Έμ— λŒ€ν•΄ λΆˆν‰ν•˜κΈ° μ‹œμž‘ν•  것이기 λ•Œλ¬Έμ— 운이 μ—†μ—ˆμŠ΅λ‹ˆλ‹€.
더 이상 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

β€”
당신이 μ–ΈκΈ‰λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/SebastianM/angular-google-maps/issues/1241#issuecomment-354144018 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/AHTnkXZ85QbMrFT7timh9MPWDeL5piYiks5tEnkmgaJpZM4QmwTi
.

μ•„μ§κΉŒμ§€λŠ” μ•„λ‹ˆμ§€λ§Œ 이번 μ£Ό ν›„λ°˜μ— μ‹œλ„ν•΄ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. μ €λŠ” μ†ŒμŠ€ μ €μž₯μ†Œλ₯Ό λ³€κ²½ν•˜λŠ” 것을 μ’‹μ•„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 비둝 ν˜„μž¬ μœ μ§€λ˜κ³  μžˆμ§€λŠ” μ•Šμ§€λ§Œ λ‚˜μ€‘μ— 될 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μš°λ¦¬μ—κ²ŒλŠ” λ‹€λ₯Έ 선택지가 μ—†λŠ” 것 κ°™μ•„μš”. κ°€λŠ₯ν•˜λ‹€λ©΄ μ°½ μ°Έμ‘°λ₯Ό μ™„μ „νžˆ μ œκ±°ν•˜λΌλŠ” μ œμ•ˆμ΄ λ§ˆμŒμ— λ“­λ‹ˆλ‹€.

κΈ€μŽ„μš”, λ§ˆμ§€λ§‰ μ—…λ°μ΄νŠΈ μ΄ν›„λ‘œ 2년이 μ§€λ‚¬μœΌλ‹ˆ μ œκ°€ μƒκ°ν•˜λŠ” μ΄μœ λŠ”
이 νŠΉλ³„ν•œ κ²½μš°μ— μ΅œμ†Œν•œ μž„μ‹œ ν•΄κ²°μ±…μœΌλ‘œ λΆ„κΈ°ν•©λ‹ˆλ‹€.
λ„ˆλ¬΄ λ‚˜μ˜μ§€ μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€.

2017λ…„ 12μ›” 28일 λͺ©μš”일 μ˜€μ „ 1μ‹œ 4뢄에 cmddavid [email protected]μ—μ„œ λ‹€μŒκ³Ό 같이 μΌμŠ΅λ‹ˆλ‹€.

μ•„μ§κΉŒμ§€λŠ” μ•„λ‹ˆμ§€λ§Œ 이번 μ£Ό ν›„λ°˜μ— μ‹œλ„ν•΄ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” λ³€ν™”μ˜ 팬이 μ•„λ‹ˆλ‹€
μ†ŒμŠ€ λ ˆν¬λŠ” 비둝 ν˜„μž¬ μœ μ§€λ˜κ³  μžˆμ§€λŠ” μ•Šμ§€λ§Œ,
λ‚˜μ€‘μ— 될 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μš°λ¦¬μ—κ²ŒλŠ” λ‹€λ₯Έ 선택지가 μ—†λŠ” 것 κ°™μ•„μš”. λ‚˜λŠ” μ’‹μ•„ν•œλ‹€
μ°½ μ°Έμ‘°λ₯Ό μ™„μ „νžˆ μ œκ±°ν•˜λŠ” μ œμ•ˆ
κ°€λŠ₯ν•©λ‹ˆλ‹€.

β€”
당신이 μ–ΈκΈ‰λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/SebastianM/angular-google-maps/issues/1241#issuecomment-354198599 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/AHTnkfZdUcmrInBzlNL41wJ6znRzWVCoks5tEtsHgaJpZM4QmwTi
.

js-marker-clusterer ν”„λ‘œμ νŠΈλ₯Ό ν¬ν¬ν•˜κ³  μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€. μœˆλ„μš°κ°€ μ •μ˜λ˜μ§€ μ•Šμ€ 경우(μ„œλ²„ μΈ‘ λ Œλ”λ§μ—μ„œ) μ΄ˆκΈ°ν™” MarkerClusterer λ°©μ§€ν•©λ‹ˆλ‹€. λ”°λΌμ„œ 마컀 ν΄λŸ¬μŠ€ν„°λŸ¬λŠ” 이제 두 경우 λͺ¨λ‘μ—μ„œ μ˜¬λ°”λ₯΄κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.

npm에 κ²Œμ‹œλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. https://www.npmjs.com/package/js-marker-clusterer-universal

js-marker-clusterer 쒅속성을 js-marker-clusterer-universal 둜 λ°”κΏ”μ•Ό μ μš©λ©λ‹ˆλ‹€.

@mbrezovsky 쒋은 일, μ €μ—κ²Œ 잘 μž‘λ™ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κ°€μ Έμ˜€κΈ°λ₯Ό μ‚¬μš©ν•˜μ—¬ @agm/js-marker-clusterer 와 κ΄€λ ¨λœ ν•˜λ‚˜μ˜ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” 아직 Node.js/Firebase μΈ‘μ—μ„œ ν—ˆμš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ Anthony Nahasκ°€ 여기에 μ œμ•ˆν•œ μ†”λ£¨μ…˜μ„ μ‚¬μš©ν•˜μ—¬ μ½”λ“œλ₯Ό ES2015둜 λ³€ν™˜ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. https: //github.com/SebastianM/angular-google-maps/issues/1052#issuecomment -331150772

이 λ¬Έμ œμ— λŒ€ν•œ μ—…λ°μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

@AoschkA 이전 μ˜κ²¬μ—μ„œ μ–ΈκΈ‰ν•œ ν•΄κ²° 방법을 μ—¬μ „νžˆ μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ λ‚΄ 예λ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€. https://github.com/cmddavid/js-marker-clusterer.git

@cmddavid κ·€ν•˜μ˜ readmeλŠ” agm/js-marker-clustererλ₯Ό μ„€μΉ˜ν•˜λŠ” 방법을 μ„€λͺ…ν•©λ‹ˆλ‹€. 이것을 우리 μžμ‹ μ˜ ν”„λ‘œμ νŠΈμ— μ–΄λ–»κ²Œ ν†΅ν•©ν•©λ‹ˆκΉŒ?

@AoschkA , repoλŠ” 컴파일된 좜λ ₯일 뿐이며, μ§€μ‹œ 사항이 μ—†μŠ΅λ‹ˆλ‹€. λ‹€μŒκ³Ό 같이 package.json에 μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

"@agm/js-marker-clusterer": "git+https://github.com/cmddavid/js-marker-clusterer.git"

μ„€μΉ˜ν•˜λ©΄ js-marker-clusterer without window is undefined 였λ₯˜κ°€ λ°œμƒν•˜κ³  ES2015둜 μ»΄νŒŒμΌλ˜μ–΄ Firebase와 같은 μ„œλΉ„μŠ€μ™€ ν˜Έν™˜λ©λ‹ˆλ‹€.

μž‘λ™ν•©λ‹ˆλ‹€. 이것이 AGMμ—μ„œ κ΅¬ν˜„λ  수 μžˆλ‹€λ©΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ†”λ£¨μ…˜ @cmddavid에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€!

@cmddavid λ§μ”€ν•˜μ‹ λŒ€λ‘œ λ§Œλ“€μ—ˆλŠ”λ° ./node_modules/@agm/js-marker-clusterer/services/managers/cluster-manager.js에 였λ₯˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.
λͺ¨λ“ˆμ„ 찾을 수 μ—†μŒ: 였λ₯˜: '.\node_modules\@agmjs-marker-clusterer\services\managers'μ—μ„œ 'js-marker-clusterer-universal'을 확인할 수 μ—†μŠ΅λ‹ˆλ‹€.

@maksimbykov js-marker-clusterer-universal 이 node_modules 폴더에 μžˆλŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆκΉŒ? npm i --save js-marker-clusterer-universal μ‹€ν–‰ν•  수 μžˆλŠ” 경우λ₯Ό λŒ€λΉ„ν•˜μ—¬ μ™„μ „νžˆ μ„€μΉ˜λ˜μ§€ μ•Šμ•˜μ„ 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ 파일 κ²½λ‘œμ— μ΄μƒν•œ 일이 μΌμ–΄λ‚˜κ³  μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 첫 번째 ν•­λͺ©μ—λŠ” 이쀑 μŠ¬λž˜μ‹œ // 있고 두 번째 ν•­λͺ©μ—λŠ” node_modules 와 @agm 사이에 λ°±μŠ¬λž˜μ‹œ \ κ°€ μ—†μŠ΅λ‹ˆλ‹€.

λ˜ν•œ νŒ¨ν‚€μ§€κ°€ μ—¬μ „νžˆ angular 6μ—μ„œ μž‘λ™ν•˜λŠ”μ§€ ν™•μΈν•˜μ§€ μ•Šμ•˜λ‹€λŠ” 점도 μ–ΈκΈ‰ν•  κ°€μΉ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.

@cmddavid 정말 κ°μ‚¬ν•©λ‹ˆλ‹€! μ•„λ§ˆλ„ μ–΄μ œ λ‚˜λŠ” ν”Όκ³€ν•˜κ³  λΆ€μ£Όμ˜ν–ˆμ„ κ²ƒμž…λ‹ˆλ‹€

이 λ¬Έμ œλŠ” 졜근 ν™œλ™μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μžλ™μœΌλ‘œ 였래된 κ²ƒμœΌλ‘œ ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 더 이상 ν™œλ™μ΄ μ—†μœΌλ©΄ νμ‡„λ©λ‹ˆλ‹€. κ·€ν•˜μ˜ 기여에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

"@agm/js-marker-clusterer": "git+ https://github.com/cmddavid/js-marker-clusterer.git " μ£„μ†‘ν•˜μ§€λ§Œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(아무것도 μ„€μΉ˜ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€)

js-marker-clusterer ν”„λ‘œμ νŠΈλ₯Ό ν¬ν¬ν•˜κ³  μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€. μœˆλ„μš°κ°€ μ •μ˜λ˜μ§€ μ•Šμ€ 경우(μ„œλ²„ μΈ‘ λ Œλ”λ§μ—μ„œ) μ΄ˆκΈ°ν™” MarkerClusterer λ°©μ§€ν•©λ‹ˆλ‹€. λ”°λΌμ„œ 마컀 ν΄λŸ¬μŠ€ν„°λŸ¬λŠ” 이제 두 경우 λͺ¨λ‘μ—μ„œ μ˜¬λ°”λ₯΄κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.

npm에 κ²Œμ‹œλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. https://www.npmjs.com/package/js-marker-clusterer-universal

js-marker-clusterer 쒅속성을 js-marker-clusterer-universal 둜 λ°”κΏ”μ•Ό μ μš©λ©λ‹ˆλ‹€.

정말 κ³ λ§ˆμ›Œμš”, 당신은 방금 μ €λ₯Ό κ΅¬ν–ˆμŠ΅λ‹ˆλ‹€ ... λͺ…μ˜ˆ :)

μ—¬μ „νžˆ 이 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. μ™œ νμ‡„λœ κ²ƒμœΌλ‘œ ν‘œμ‹œλ˜λ‚˜μš”?

당신은 그것이 μ™œ νμ‡„λ˜μ—ˆλŠ”μ§€μ— λŒ€ν•œ μ„€λͺ…을 말 κ·ΈλŒ€λ‘œ λ°˜λŒ€ν–ˆμŠ΅λ‹ˆλ‹€. μ™œ 문을 λ‹«μ•˜λŠ”μ§€ λ³΄μ…¨κ΅°μš”.

@lazarljubenovic μ–΄μ¨Œλ“  https://github.com/googlemaps/v3-utility-library/tree/master/packages/markerclustererplus 둜 μ΄λ™ν•©λ‹ˆλ‹€.

당신은 그것이 μ™œ νμ‡„λ˜μ—ˆλŠ”μ§€μ— λŒ€ν•œ μ„€λͺ…을 말 κ·ΈλŒ€λ‘œ λ°˜λŒ€ν–ˆμŠ΅λ‹ˆλ‹€. μ™œ 문을 λ‹«μ•˜λŠ”μ§€ λ³΄μ…¨κ΅°μš”.

이제 λ‹€μ‹œ μ—΄ 수 μžˆμŠ΅λ‹ˆλ‹€.λŒ„μ„œ:

μ–΄μ¨Œλ“  라이브러리 λ‚΄λΆ€μ—μ„œ js-marker-clustererλ₯Ό κ°€μ Έμ™€μ„œ 내보낼 수 μžˆλŠ” λͺ¨λ“ˆμ„ λ§Œλ“œλŠ” 것이 더 κ°„λ‹¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆκΉŒ?

λ‚˜λŠ” 이것을 λ‚΄ κ²ƒμœΌλ‘œ ν–ˆλ‹€:

https://github.com/alexnoise79/js-marker-clusterer (src/markerclusterer.js μ°Έμ‘°)

그리고 λ‚˜μ„œ:
node_modules/@agm/js-marker-clusterer/fesm2015/agm-js-marker-clusterer.js

λ‚˜λŠ” μ„ μ–Έ Markerclustererλ₯Ό λ‹€μŒμœΌλ‘œ λŒ€μ²΄ν–ˆμŠ΅λ‹ˆλ‹€.

'js-marker-clusterer'μ—μ„œ *λ₯Ό MarkerClusterer둜 κ°€μ Έμ˜΅λ‹ˆλ‹€.

그것은 μž‘λ™ν•˜κ³  ssr을 100% μ»΄νŒŒμΌν•©λ‹ˆλ‹€.

μœ„μ˜ @mbrezovsky 주석 에 λŒ€ν•œ λ‚΄ μ†”λ£¨μ…˜ 기반 - κ·Έλž˜μ„œ

"install:clusterer-universal": "npm i js-marker-clusterer-universal && rm -rf node_modules/js-marker-clusterer && mv node_modules/js-marker-clusterer-universal node_modules/js-marker-clusterer",
"postbuild": "npm run install:clusterer-universal"

그리고 그것은 κ²°κ΅­ μ„€μΉ˜λ˜κ³  ꡐ체될 κ²ƒμž…λ‹ˆλ‹€.
그리고 SSR이 μž‘λ™ν•©λ‹ˆλ‹€! :)

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