2014-09-03 141 views
-1

这是我第一次在这里发布。我是使用JavaScript或Google Maps API的新手。我有一个包含一个KML图层的地图,并且我想创建一个复选框,可以在单击时打开或关闭图层。我在网上看到了很多例子,但在我的应用程序中似乎没有任何效果。下面是代码:打开/关闭KML图层的功能

(function() { 
window.onload = function() { 

    var options = { 
     center: new google.maps.LatLng(44.65, 22.64), 
     zoom: 10, 
     mapTypeId: google.maps.MapTypeId.TERRAIN, 
     mapTypeControl: true, 
     mapTypeControlOptions: { 
      mapTypeIds: [ 
       google.maps.MapTypeId.HYBRID, 
       google.maps.MapTypeId.SATELLITE, 
       google.maps.MapTypeId.TERRAIN 
      ]  
     }, 
     streetViewControl: false 
    }; 

    var map = new google.maps.Map(document.getElementById('map'), options); 

    var kmlUrl = 'http://googledrive.com/host/0B55_4P6vMjhITEU4Ym9iVG8yZUU/trasee.kml'; 
     var kmlOptions = { 
     suppressInfoWindows: false, 
     preserveViewport: false, 
    }; 

    var trasee = new google.maps.KmlLayer(kmlUrl, kmlOptions).setMap(map); 

} 
})(); 

我不知道创造来切换图层的可见性,altough我创建的HTML文件中的复选框什么功能:

<input type="checkbox" id="straturi" onClick="togglefunction()" /> 

可不可以给我有什么建议?

最好的问候, 亚历

+0

可能重复http://stackoverflow.com/questions/17409598/toggle-multiple -kml-kml-layers-in-google-maps-api-v3) – geocodezip 2014-09-03 15:57:29

回答

0

的切换功能应该是这样的

var toggleKml=function(layer) { 
    if(layer.getMap()===null) { 
     layer.setMap(map) 
    } else { 
     layer.setMap(null) 
    } 
}; 

而且也需要在相同的上下文中的地图和trasee进行定义,否则将无法看到这些对象。在你的情况,你会用trasee称其为参数

toggleKml(trasee); 
[在谷歌地图API V3切换多个KML/KML层(的
+0

谢谢,我已经设法做到了 – 2014-09-05 13:31:28

+0

你的意思是,我的答案奏效了,或者你找到了另一种方式? – amenadiel 2014-09-05 16:30:03

+0

是的,我已经使用你的功能。 – 2014-09-05 17:33:13