打开/关闭KML图层的功能

时间:2014-09-03 15:12:19

标签: javascript html google-maps-api-3

这是我第一次在这里发帖。我是使用Javascript或Google Maps API的新手。我有一个带有一个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);

}
})();

我不知道要创建什么功能来切换图层的可见性,尽管我在HTML文件中创建了一个复选框:

<input type="checkbox" id="straturi" onClick="togglefunction()" />
你可以给我任何建议吗?

祝你好运, 亚历

1 个答案:

答案 0 :(得分:0)

切换功能应该类似于

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

它需要在与map和trasee相同的上下文中定义,否则它将不会看到这些对象。在您的情况下,您将使用trasee作为参数

来调用它
toggleKml(trasee);