Javascript 如何修复谷歌地图中的重叠标记错误

Javascript 如何修复谷歌地图中的重叠标记错误,javascript,google-maps,google-maps-api-3,markerspiderfier,Javascript,Google Maps,Google Maps Api 3,Markerspiderfier,我有一个谷歌“我的地图”地图,包含5层。我已经将每个层导出为一个.kmz文件,并使用Google Maps javascript API将这些层导入到一个自定义的.html文件中 代码如下。我试图解决的问题是共享相同lat/long的重叠标记。每个位置最多可以有5个重叠标记(我的地图的每个图层1个) 我已经看到一些关于添加“spiderfy”库来解决这个问题的参考资料。但是,我找不到任何例子表明它可以处理KML图层数据 spiderfy可以处理.kml文件吗?我曾尝试在spiderfy gith

我有一个谷歌“我的地图”地图,包含5层。我已经将每个层导出为一个.kmz文件,并使用Google Maps javascript API将这些层导入到一个自定义的.html文件中

代码如下。我试图解决的问题是共享相同lat/long的重叠标记。每个位置最多可以有5个重叠标记(我的地图的每个图层1个)

我已经看到一些关于添加“spiderfy”库来解决这个问题的参考资料。但是,我找不到任何例子表明它可以处理KML图层数据

spiderfy可以处理.kml文件吗?我曾尝试在spiderfy github站点上的“基本演示”中实现代码,但它没有蜘蛛化

函数initMap(){
var map=new google.maps.map(document.getElementById('map'){
缩放:11,
中心:{
拉脱维亚:41.876,
液化天然气:-87.624
}
});
/*富博电视台*/
var ctaLayer=new google.maps.KmlLayer({
网址:'http://streambuzz.net/wp-content/uploads/fubo-data.kmz',
地图:地图
});
/*PLAYSTATION VUE*/
var ctaLayer=new google.maps.KmlLayer({
网址:'http://streambuzz.net/wp-content/uploads/psvue-data.kmz',
地图:地图
});
/*葫芦*/
var ctaLayer=new google.maps.KmlLayer({
网址:'http://streambuzz.net/wp-content/uploads/hulu-data.kmz',
地图:地图
});
/*直接电视*/
var ctaLayer=new google.maps.KmlLayer({
网址:'http://streambuzz.net/wp-content/uploads/dtvnow-data.kmz',
地图:地图
});
/*YOUTUBE电视*/
var ctaLayer=new google.maps.KmlLayer({
网址:'http://streambuzz.net/wp-content/uploads/yttv-data.kmz',
地图:地图
});
}
#地图{
身高:100%;
}
html,
身体{
身高:100%;
保证金:0;
填充:0;
}

检查。
演示。
它处理谷歌地图JS API v3中的重叠标记,谷歌地球风格


花式演示-重叠标记蜘蛛侠
html,正文{高度:自动;字体:14px'Helvetica Neue',Arial',无衬线;}
p{margin:0.75em0;}
ul{margin:0;padding:0;}
{游标:指针;}
#映射元素{位置:绝对;底部:0;左侧:0;右侧:0;顶部:0;}
#图例{位置:绝对;右侧:20px;顶部:20px;背景:rgba(0,0,0,0.5);颜色:#fff;}
#图例ul{填充:10px 20px 10px 10px;边距:0 20px;}
  • 移动标记:单击并拖动
  • 添加标记:在地图上单击鼠标右键
  • 删除/隐藏标记:在标记上单击鼠标右键
var-isIE=false; //注释 //此示例演示了所有功能: //每个标记都有自己的颜色,因此格式化是通过标记级别的侦听器完成的 //标记可以移动(通过拖动)、添加(通过在地图上单击鼠标右键)和 //已删除或暂时隐藏(通过右键单击标记) var mapLibsReady=0; 函数mapLibReadyHandler(){ 如果(++mapLibsReady<2)返回; var mapeelement=document.getElementById('map_元素'); var map=new google.maps.map(mapement,{center:{lat:52,lng:-1},zoom:7}); var iw=new google.maps.InfoWindow(); 函数iwClose(){iw.close();} google.maps.event.addListener(映射,'click',iwClose); var oms=新重叠标记器(map); var-white={r:255,g:255,b:255}; 对于(var i=0,len=window.mapData.length;iG:'+markerData.rgb.G+'
B:'+markerData.rgb.B); iw.打开(地图、标记); }); 函数makeLink(文本、处理程序){ var a=document.createElement('a'); a、 appendChild(document.createTextNode(text)); a、 addEventListener(“单击”,处理程序); var li=document.createElement('li'); 李.儿童(a); 返回李; } google.maps.event.addListener(标记“右键单击”,函数(e){ var ul=document.createElement('ul'); ul.appendChild(makeLink('Remove',function()){ oms.移除标记(标记); iwClose(); })); ul.appendChild(makeLink('Hide for 2s',function()){ marker.setVisible(假); setTimeout(函数(){marker.setVisible(true);},2000); iwClose(); })); 设定内容(ul); iw.打开(地图、标记); }); } window.map=map;//用于控制台中的调试/探索性使用 window.oms=oms;//同上 } var iconwithcolors=(函数(){ //为具有指定颜色和可选“+”图案的SVG标记生成data:URI //我想这可以追溯到IE9 函数processTemplate(str){ var template=str.split('`'); 对于(var i=0,len=template.length;i