Событие клика по региону KML на карте Google - PullRequest
0 голосов
/ 04 июня 2018

У меня есть карта Google, созданная с помощью Fusion Tables , в которой отображается очень большое количество полигонов KML.Когда вы нажимаете на одну из них, загружается обычное «информационное окно» Google.Тем не менее, это занимает много времени, поэтому я хочу добавить экран загрузки.Чтобы сделать это, Мне нужно обнаружить щелчок по области KML на карте с помощью javascript. Возможно ли это?

Это не моя карта, но очень похожа на нее: Пример

Вот что я пробовал:

layer = new google.maps.FusionTablesLayer({
        map: map,
        heatmap: { enabled: false },
        query: {
            // query is being placed properly here
        }
    });

    // this doesn't work below
    google.maps.event.addListener(layer, 'kmlClickEvent', function() {
        console.log('KML Clicked');
    });

1 Ответ

0 голосов
/ 04 июня 2018

Имя события не kmlClickEvent (то есть возвращаемый объект), событие click.

Это работает для меня:

google.maps.event.addListener(layer, 'click', function() {
    console.log('KML Clicked');
});

подтверждение концепции скрипта

фрагмент кода:

function initMap() {
  var map = new google.maps.Map(document.getElementById('map'), {
    center: {
      lat: 41.850033,
      lng: -87.6500523
    },
    zoom: 11
  });

  var layer = new google.maps.FusionTablesLayer({
    query: {
      select: '\'Geocodable address\'',
      from: '1mZ53Z70NsChnBMm-qEYmSDOvLXgrreLTkQUvvg'
    }
  });
  layer.setMap(map);
  google.maps.event.addListener(layer, 'click', function() {
    console.log('KML Clicked');
  });
}
html,
body,
#map {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
}
<div id="map"></div>
<script async defer src="https://maps.googleapis.com/maps/api/js?callback=initMap">
</script>
...