javascript - 如何在谷歌地图中显示和忽略kml图层

标签 javascript google-maps google-maps-api-3 kml

我有一个谷歌地图,我可以点击 map 并出现标记:

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图层,“十字准线”就消失了,我无法再点击 map 了。 kmlLayer 中是否有一个设置可以设置为“忽略”该图层,同时仍显示该图层?

谢谢。

最佳答案

将您的 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/您可以单击 map 和 KML 上方的标记

关键是 KML 图层选项上的 clickable = false 属性

关于javascript - 如何在谷歌地图中显示和忽略kml图层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28103395/

相关文章:

javascript - 禁用谷歌地图的 "zoom in"功能

javascript - 无法动态添加/删除元素到jstree

algorithm - 使用 Google map 解决旅行商问题的实用方法是什么?

android - 如何获取 map 上一定半径内的点

javascript - 在脚本源 Google Map API 中添加变量

google-maps-api-3 - Google Maps V3 API -- 几何库使用的是什么距离测量?

javascript - 如何从服务器获取和设置表单的默认值

javascript - 我可以控制 ES6 中类的创建方式吗?

javascript - 如何在 JavaScript 中使用另一个函数中的变量而不将该变量设置为全局变量?

javascript - 如何使用 Google Maps API 避免调用服务器获取重复数据