我正在为社区项目构建谷歌地图,而且每次重新打开图层时,我都会遇到麻烦,弄清楚为什么我的地图重新居中(并且显然会重新加载)。任何关于为什么会发生这种情况的见解都非常感激。
在此处查看地图:http://www.northerntechnomics.com/lmantzel/googlemap/maptest12.html
如果你打开侧栏并取消选中一个图层,然后移动地图并再次检查图层,你会看到我的意思。
我如何显示图层:
HTML(检查或取消选中触发器check()函数)
<ul>
<li><a href='#'><label><input type="checkbox" id="Trail" checked="checked" onclick="check()" />Hub Trail</label></a></li>
<li><a href='#'><label><input type="checkbox" id="Markers" checked="checked" onclick="check()" />Markers</label></a></li>
<li class='last'><a href='#'><label><input type="checkbox" id="Slider" checked="checked" onclick="check()" />Image Slider</label></a></li>
</ul>
的Javascript
function check()
{
if(document.getElementById('Trail').checked)
{TrailLayer.setMap(map);}
else
{TrailLayer.setMap(null);}
if(document.getElementById('Markers').checked)
{
MarkerVisibility = true;
for (var i = 0; i < gmarkers.length; i++)
{
gmarkers[i].setVisible(true);
}
}
else
{
MarkerVisibility = false;
for (var i = 0; i < gmarkers.length; i++)
{
gmarkers[i].setVisible(false);
}
if (infowindow) infowindow.close();
}
if(document.getElementById('Slider').checked)
{
document.getElementById('imageSlider').style.display = 'block';
}
else
{
document.getElementById('imageSlider').style.display = 'none';
}
}
取消选中并检查任何图层会导致地图在检查或取消选中时重新加载。没有重新启动地图的代码。我知道其他人已经能够在没有这些问题的情况下进行分层,请在我重新编码之前帮助我!
*通过查看页面来源可以看到完整代码。
答案 0 :(得分:1)
你的&#39;层&#34;是google.maps.KmlLayer个对象。
var TrailLayer = new google.maps.KmlLayer({
url: 'http://www.northerntechnomics.com/lmantzel/googlemap/Trail5.kml'
});
如果您不希望它们自动缩放并居中显示内容,请使用preserveViewport:true option。