如何在 google 地图中显示和忽略 kml 图层

how to display and ignore kml layer in google maps

我有一个 google 地图,我可以在其中单击地图并显示标记:

var myOptions = {
    zoom: 16,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.HYBRID,
    draggableCursor: 'crosshair',
    draggable: true,
    panControl: true,
    zoomControl: true,
    scaleControl: true,
    mapTypeControlOptions: {
        style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
    }
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

无论我点击哪里,都会调用一个函数来做一些工作(添加标记)。

我被要求添加一个 kml 图层:

    var url = window.location.protocol + "//" + window.location.host + "/data/polygon.cfm?TYPE=GEOID&VALUE=" + getUrlVars()["GEOID"] + "&LC=641400FF&LW=3&FC=14F11C2E&F=1&FO=1";

    var kmlLayer = new google.maps.KmlLayer(url, {
        suppressInfoWindows: true,
        preserveViewport: false,
        map: map
    });

现在,一旦添加了kml图层,"crosshair"就没有了,我不能再点击地图了。 kmlLayer 中是否有我可以设置 "ignores" 图层同时仍显示它的设置?

谢谢。

更改您的 KML 初始化代码:

var kmlLayer = new google.maps.KmlLayer(url, {
    suppressInfoWindows: true,
    preserveViewport: false,
    map: map
});

 var ctaLayer = new google.maps.KmlLayer(
{
   url: url,
   suppressInfoWindows: true,  
   map:map,
   zindex: 0,
   clickable : false
}); 

这是fiddle:http://jsfiddle.net/loanburger/jnrnmog4/您可以点击地图和KML上方的标记

关键是 KML 图层选项上的可点击 = false 属性