Импорт слоя KMZ в карты Google - Vue 2 - PullRequest
0 голосов
/ 20 марта 2019

Использование пакета vue google maps: https://github.com/xkjyeah/vue-google-maps

В mounted() я пытаюсь установить слой:

mounted() {
  this.$refs.gmap.$mapPromise.then((map) => {
    let options = {
      url: 'https://beeline.kg/ru/binaries/content/assets/kmz-files/3g-v2.kmz'
    }
    let kml = new google.maps.KmlLayer(options)
    kml.setMap(this.$refs.gmap)
  })
},

Однако я получаю в консоли: «InvalidValueError: setMap: не экземпляр Map»

this.$refs.gmap является ссылкой на компонент карт Google:

<GmapMap
  ref="gmap"
  :center="{lat: lat, lng: lng}"
  :zoom="5"
  map-type-id="roadmap"
  style="width: 100%; height: 500px"
  :options="{
    mapTypeControl: false
  }"
>
</GmapMap>

Проблема здесь, я думаю:

let kml = new google.maps.KmlLayer(options)

Как правильно вызвать новый экземпляр карт Google в случае использования этого пакета?

1 Ответ

0 голосов
/ 21 марта 2019

Это было не так сложно на самом деле. Просто удивительно, никто не знает, как это сделать.

mounted() {
  this.$refs.gmap.$mapPromise.then((map) => {
    let options = {
      map: map,
      url: `https://example.com/filename.kmz?dummy=` + (new Date()).getTime()
    }
    let kml = new google.maps.KmlLayer(options)
  })
}

Пустые параметры, чтобы избежать кеширования карт Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...