Javascript 如何修复谷歌地图中的重叠标记错误
我有一个谷歌“我的地图”地图,包含5层。我已经将每个层导出为一个.kmz文件,并使用Google Maps javascript API将这些层导入到一个自定义的.html文件中 代码如下。我试图解决的问题是共享相同lat/long的重叠标记。每个位置最多可以有5个重叠标记(我的地图的每个图层1个) 我已经看到一些关于添加“spiderfy”库来解决这个问题的参考资料。但是,我找不到任何例子表明它可以处理KML图层数据 spiderfy可以处理.kml文件吗?我曾尝试在spiderfy github站点上的“基本演示”中实现代码,但它没有蜘蛛化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
函数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;i G:'+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