Google地图中的浮点缩放和setZoom

时间:2015-07-28 06:27:47

标签: javascript google-maps google-maps-api-3

Google Maps documentation表示.zoom和setZoom()需要数字。一切似乎都指向这些数字是整数。但是,今天我给了后者一个浮点值,它的工作......有点像。

var MAP;

function initialize() {
    MAP = new google.maps.Map(document.getElementById('map-canvas'), 
    {
        zoom : 5,
        center : new google.maps.LatLng(-25.610111, 134.354806), 
        mapTypeId : google.maps.MapTypeId.ROADMAP
    });
}

使用上面的代码,我可以让调试器访问MAP对象。

现在在澳大利亚大陆的情况下,如果我的缩放为4,我会得到一片东南亚,巴布亚新几内亚和新西兰,以及中南部的大南部土地。如果我有一个5的变焦我得到大陆但没有塔斯马尼亚 - 绝对是一个“坏事”。以交互方式使用MAP.setZoom()发现的最佳缩放是4.3。这很棒,除了没有其他功能可以用于缩放。当我尝试绘制多边形或热图时,Maps会抛出类似

的错误
GET https://khms0.google.com/kh?v=178&hl=en-US&x=0&y=0&z=0.2999999999999998&token=77820 404 (OK)

我认为上面的'z'值是造成404的原因 - khms0.google.com不期望浮点'z'值。

那么我如何获得更适合缩放的家园,包括多边形,标记,热图,KML图层以及你有什么?

顺便说一句,我确实尝试过使用fitBounds()但是除了将地图围绕一个新的中心移动之外,它并没有改变视口的可见内容。

var se = new google.maps.LatLng(-44.999315, 156.971343); // Tasman Sea
var nw = new google.maps.LatLng(-9.063496, 106.346343); // Indian Ocean
var bs = new google.maps.LatLngBounds(nw,se);
MAP.fitBounds(bs);

1 个答案:

答案 0 :(得分:2)

缩放级别必须是整数(至少目前为止)。它曾经有过记录,但我没有在任何地方看到它。

如果整数缩放级别对您不起作用,请更改显示地图的<div>的大小,或制作具有不同比例的自定义图块。