Применить прослушиватель событий к нескольким слоям KML в Картах Google - PullRequest
1 голос
/ 22 октября 2011

Я хочу применить слушатель событий к нескольким слоям (то есть: пронумерованный уровень от 1 до 8), попытался создать массив и не работает.KMLlayers срабатывают только когда вы их включаете, поэтому, возможно, массив не правильный путь, но не уверен, как иначе.

if (document.mapControlBox.checkbox1.checked) { 

    /* Load the layer */
    var layer1 = new google.maps.KmlLayer('theURL', {suppressInfoWindows: true});
    layer1.setMap(map); 
    layer1.set('preserveViewport', true); 

};

    /* repeat, repeat... */

     /* try to select all layers */
for (var i = 1; i < layer.length; i++) {
    var layers = layer[i];
 google.maps.event.addListener(layers, 'click', function(kmlEvent) {
    var text = kmlEvent.featureData.description;
    showContentWindow(text);
  });
}

        /*default function from Gmap example */ 
  function showContentWindow(text) {
    var sidediv = document.getElementById('content_window');
    sidediv.innerHTML = text;
  };

Соответствующий HTML:

    <form name="mapControlBox">
    <ul>

        <li>
            <input type="checkbox" name="checkbox1" value="checkbox1" onclick="displayMaps();" />
          <label class="mapoption">Checkbox1<label>
        </li>
                  /*etc etc*/
          </ul>  

1 Ответ

1 голос
/ 26 октября 2011

Не берите в голову, я решил пойти с этим сценарием: http://www.wolfpil.de/v3/kml-shapes.html

Но, тем не менее, моя проблема с моей версией заключалась в том, что мне пришлось вызывать переменные глобально.

...