import ScriptLoader from '@operato/utils/script-loader.js'

export default class GoogleMapLoader {
  static loaded = false
  static markerClustererLoaded = false

  static async load() {
    if (GoogleMapLoader.loaded) {
      return
    }
    var key = 'AIzaSyBgQZb-SFqjQBC_XTxNiz0XapejNwV9PgA'

    await ScriptLoader.load(
      'https://maps.googleapis.com/maps/api/js' + (key ? '?key=' + key : '') + '&libraries=places'
    )
    GoogleMapLoader.loaded = true
  }

  static async loadMarkerClusterer() {
    if (GoogleMapLoader.markerClustererLoaded) {
      return
    }

    // Google Maps 공식 MarkerClusterer 라이브러리 로드
    await ScriptLoader.load('https://unpkg.com/@googlemaps/markerclusterer/dist/index.min.js')

    GoogleMapLoader.markerClustererLoaded = true
  }
}
