编辑:解决:
var opt = { minZoom: 6, maxZoom: 9 };
map.setOptions(opt);
我是一个剪切和粘贴的编码器,虽然我打算更好地学习语法,但我现在正处于截止日期,所以我正在寻求帮助。我已广泛搜索,虽然我的问题有解决方案,但我找不到适合我的方法。我的KML文件托管在Google云端硬盘上,因此不是文件网址,而是存在driveFileId。
如果要保留Viewport,通常只需将其添加到图层对象并将其设置为“true”即可。但是我的KML文件不会让我覆盖它的默认缩放级别,无论我怎么写它,边界都适合屏幕。有人可以帮忙吗?这是工作对象:
var layer = new google.maps.KmlLayer({
driveFileId: "0Bexampleg"});
layer.setMap(map);
编辑:这是整个事情。也许你可以看出是否存在导致这种情况的冗余或矛盾。
<!DOCTYPE html>
<html<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?key=Aexamplekey0&sensor=true"></script>
<style>
#map {
width: 310px;
height: 410px;
}
</style>
<script>
window.onload = function () {
var latlng = new google.maps.LatLng(53.385873, -1.471471);
var styles = [
{
//whatever
}
]
var myOptions = {
zoom: 15,
disableDefaultUI: false,
styles: styles
},
map = new google.maps.Map(document.getElementById('map'), myOptions);
var layer = new google.maps.KmlLayer({
driveFileId: "0Bexampleg"});
layer.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>
答案 0 :(得分:4)
基于current release API documentation,您应该能够在实例化的对象中设置preserveViewport选项:
var layer = new google.maps.KmlLayer({
driveFileId: "0Bexampleg",
preserveViewport: true});
layer.setMap(map);
如果没有进一步的信息,例如您的KML数据的网址,有关地图中心和缩放的信息,就没有更多的信息可以说了。
答案 1 :(得分:1)
GOT IT!
这是:
var opt = { minZoom: 11, maxZoom: 15 };
map.setOptions(opt);
然后在myOptions对象中设置默认缩放。解决方案在此处找到:Google Maps v3 - limit viewable area and zoom level 感谢@ChrisV。我不知道为什么,但KML图层不允许原始的preserveViewport代码的任何排列。