如何在显示后启用/禁用kmllayer中的可点击

时间:2015-06-05 15:24:26

标签: javascript google-maps

我有一个有kml图层的谷歌地图

kmlLayer = new google.maps.KmlLayer(url, {
    suppressInfoWindows: false, 
    preserveViewport: true,
    map:map,
    zindex: 0
});

我已经知道通过将clickable: false添加到选项列表中,我可以使图层不可点击。

你能做到这一点"事后"?

这里是场景。 我在谷歌地图上有一个可点击的kml。它有一系列多边形。我想点击一个多边形,在其中将禁用" clickable"设置kml,并在第一个上面覆盖第二个kml。然后可以点击第二个kml。

感谢。

1 个答案:

答案 0 :(得分:0)

clickable选项设置为false,请调用kmlLayer.setOptions({clickable:false});

proof of concept fiddle

代码段

var geocoder;
var map;
var georssLayer

function initialize() {
  var map = new google.maps.Map(
    document.getElementById("map_canvas"), {
      center: new google.maps.LatLng(37.4419, -122.1419),
      zoom: 13,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

  georssLayer = new google.maps.KmlLayer({
    url: 'http://mapsengine.google.com/map/kml?mid=zrvhKWbQZI6E.kyr3RvQ9DprE&lid=zrvhKWbQZI6E.kNpsmD-YyCYc'
  });
  georssLayer.setMap(map);
  google.maps.event.addListener(georssLayer, 'status_changed', function() {
    document.getElementById('info').innerHTML = georssLayer.getStatus();
  });


}
google.maps.event.addDomListener(window, "load", initialize);
html,
body,
#map_canvas {
  height: 500px;
  width: 500px;
  margin: 0px;
  padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map_canvas" style="border: 2px solid #3872ac;"></div>
<div id="info"></div>
<input type="button" onclick="georssLayer.setOptions({clickable:false});" value="clickable:false" />