【问题标题】:Floating point zoom and setZoom in Google MapsGoogle 地图中的浮点缩放和 setZoom
【发布时间】:2015-07-28 06:27:46
【问题描述】:

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。这很棒,除了没有其他东西适用于该缩放。当我尝试绘制多边形或热图时,地图会抛出类似

的错误
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);

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-01-11
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多