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

How to enable/disable clickable in kmllayer after display

本文关键字:kmllayer 禁用 显示 启用      更新时间:2023-09-26

我有一个谷歌地图,它有一个kml图层

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

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

你能"事后"做这件事吗?

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

谢谢。

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

概念验证

代码片段:

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" />