根据视图隐藏/显示定制谷歌地图上的kml图层

时间:2014-02-28 02:57:55

标签: javascript google-maps-api-3 hide kml layer

有没有办法只在Google地球视图图层上显示kml图层?我使用的是Google API V3

这是我所拥有的链接:http://www.virtualbc.ca/knoxmountain/index2.php

在Google地球视图上,如果我选择了卫星视图,我想删除或隐藏kml图层。我实际上在除地球视图之外的所有Google视图中使用了一组图块。

1 个答案:

答案 0 :(得分:3)

您可以在Google.Map对象上使用maptypeid_changed事件。当它发生变化时,您可以使用setMap()将kml图层设置为显示或隐藏。 例如:

function initialize() {

  var map = new google.maps.Map(document.getElementById('map-div'), {
         center: new google.maps.LatLng(40.3,-111.65),
         zoom: 13   
  });

  var kmlLayer = new google.maps.KmlLayer('http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml');
  kmlLayer.setMap(map);
  google.maps.event.addListener(map, 'maptypeid_changed', function() {
        if(map.mapTypeId == 'hybrid') {
            kmlLayer.setMap(null);  
        } 
  });

}

google.maps.event.addDomListener(window, 'load', initialize);

只需确保将地图类型设置回另一个地图类型时,您将kml图层重新设置为地图。当你想隐藏某些东西时,你只需要调用setMap(null)。