javascript - 谷歌地图中的浮点缩放和setZoom

标签 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。这很好,除了那个缩放没有其他作用。当我尝试绘制多边形或热图时, map 会抛出类似

的错误
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(),但除了围绕新中心移动 map 外,它并没有改变视口(viewport)的可见内容。

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);

最佳答案

缩放级别必须是整数(至少目前是这样)。它曾经被记录在案,但我没有在任何地方看到它的具体说明。

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

关于javascript - 谷歌地图中的浮点缩放和setZoom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31668834/

相关文章:

php - 如何在 Google map API 标记上添加数字?

google-maps - 在 Google map 中标记街道

ios - 无法从Google距离矩阵API获得响应

javascript - 需要通过 javascript API 在 R 内 Shiny 的 Tableau 图表的 Hello world 示例

javascript - 如何在JS中的文本节点(document.createTextNode ('...'))中添加span元素?

java - MapView 不工作 [android]

javascript - 如何在 Google map 中添加新圈子之前自动删除先前的圈子

javascript - 谷歌地图建议。根据第一个输入过滤建议

javascript - 为什么 React 警告我不要将组件方法绑定(bind)到对象?

javascript - 内联元素的边框