2014-09-03 184 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