Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 切换KML层,信息窗口不工作_Google Maps_Kml - Fatal编程技术网

Google maps 切换KML层,信息窗口不工作

Google maps 切换KML层,信息窗口不工作,google-maps,kml,Google Maps,Kml,我有这个代码,我试图切换一些kml层。问题是,当我单击标记时,它不会显示信息窗口 也许有人能告诉我我的错误 代码如下: <!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> html { height: 100%

我有这个代码,我试图切换一些kml层。问题是,当我单击标记时,它不会显示信息窗口

也许有人能告诉我我的错误

代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map_canvas { height: 100% }
    </style>
    <script type="text/javascript"
      src="http://maps.googleapis.com/maps/api/js?key=IzaSyAvj6XNNPO8YPFbkVR8KcTl5LK1ByRHG1E&sensor=false">
    </script>
    <script type="text/javascript">

var map;

// lets define some vars to make things easier later

var kml = {
    a: {
        name: "Productores",
        url: "https://maps.google.hn/maps/ms?authuser=0&vps=2&hl=es&ie=UTF8&msa=0&output=kml&msid=200984447026903306654.0004c934a224eca7c3ad4"
    }

// keep adding more if you like 
};

// initialize our goo

function initializeMap() {
    var options = {
        center: new google.maps.LatLng(13.324182,-87.080071),
        zoom: 8,
        mapTypeId: google.maps.MapTypeId.TERRAIN
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), options);

    createTogglers();
};


google.maps.event.addDomListener(window, 'load', initializeMap);



// the important function... kml[id].xxxxx refers back to the top 
function toggleKML(checked, id) {



 if (checked) {

        var layer = new google.maps.KmlLayer(kml[id].url, {
            preserveViewport: true,
            suppressInfoWindows: true 
        });
        // store kml as obj
        kml[id].obj = layer;
        kml[id].obj.setMap(map);
    }
    else {
        kml[id].obj.setMap(null);
        delete kml[id].obj;
    }

};

// create the controls dynamically because it's easier, really
function createTogglers() {

    var html = "<form><ul>";
    for (var prop in kml) {
        html += "<li id=\"selector-" + prop + "\"><input type='checkbox' id='" + prop + "'" +
        " onclick='highlight(this,\"selector-" + prop + "\"); toggleKML(this.checked, this.id)' \/>" +
        kml[prop].name + "<\/li>";
    }
    html += "<li class='control'><a href='#' onclick='removeAll();return false;'>" +
    "Remove all layers<\/a><\/li>" + 
    "<\/ul><\/form>";

    document.getElementById("toggle_box").innerHTML = html;
};


function removeAll() {
    for (var prop in kml) {
        if (kml[prop].obj) {
            kml[prop].obj.setMap(null);
            delete kml[prop].obj;
        }

    }
};


// Append Class on Select

function highlight(box, listitem) {
    var selected = 'selected';
    var normal = 'normal';
    document.getElementById(listitem).className = (box.checked ? selected: normal);
};

</script>

<style type="text/css">
.selected { font-weight: bold; }
</style>

</head>
<body>
<div id="map_canvas" style="width: 50%; height: 200px;"></div>
<div id="toggle_box" style="position: absolute; top: 200px; right: 1000px; padding: 20px; background: #fff; z-index: 5; "></div>
</body>
</html>

html{高度:100%}
正文{高度:100%;边距:0;填充:0}
#地图画布{高度:100%}
var映射;
//让我们定义一些变量以使以后的工作更容易
var kml={
a:{
名称:“生产商”,
url:“https://maps.google.hn/maps/ms?authuser=0&vps=2&hl=es&ie=UTF8&msa=0&output=kml&msid=200984447026903306654.0004c934a224eca7c3ad4"
}
//如果您愿意,请继续添加更多
};
//初始化我们的goo
函数初始化映射(){
变量选项={
中心:新google.maps.LatLng(13.324182,-87.080071),
缩放:8,
mapTypeId:google.maps.mapTypeId.TERRAIN
}
map=new google.maps.map(document.getElementById(“map_canvas”),选项);
createTogglers();
};
google.maps.event.addDomListener(窗口'load',initializeMap);
//重要的功能。。。kml[id].xxxxx返回到顶部
功能切换KML(选中,id){
如果(选中){
var layer=new google.maps.KmlLayer(kml[id].url{
对,,
suppressInfoWindows:true
});
//将kml存储为obj
kml[id].obj=图层;
kml[id].obj.setMap(map);
}
否则{
kml[id].obj.setMap(null);
删除kml[id].obj;
}
};
//动态创建控件,因为这样更容易,真的
函数createTogglers(){
var html=“
    ”; 用于(以kml为单位的var prop){ html+=“
  • ”+ kml[prop]。名称+“”; } html+=“
  • ”+ “删除所有层”+ ""; document.getElementById(“切换框”).innerHTML=html; }; 函数removeAll(){ 用于(以kml为单位的var prop){ 如果(kml[prop].obj){ kml[prop].obj.setMap(null); 删除kml[prop].obj; } } }; //在Select上追加类 功能突出显示(框,列表项){ var selected=‘selected’; var normal=‘normal’; document.getElementById(listitem).className=(box.checked?selected:正常); }; .所选{字体大小:粗体;}
KMLAYER构造函数中KMLAYER选项中的导致信息窗口被抑制