【问题标题】:Function to turn KML layer on/off打开/关闭 KML 图层的功能
【发布时间】:2014-09-03 15:12:19
【问题描述】:

这是我第一次在这里发帖。我是使用 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()" />

你能给我什么建议吗?

最好的问候, 亚历山大

【问题讨论】:

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


【解决方案1】:

切换功能应该类似于

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

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

toggleKml(trasee);

【讨论】:

  • 您的意思是,我的回答有效还是您找到了其他方法?
  • 是的,我用过你的功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
  • 1970-01-01
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
  • 2019-06-14
相关资源
最近更新 更多