Floating point zoom and setZoom in Google Maps
Google Maps文档说.zoom和setZoom()需要数字。一切似乎都指向这些数字是整数。但是,今天我给了后者一个浮点值,它的工作原理是……。
1 2 3 4 5 6 7 8 9 10 | 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。很棒,除了该缩放没有其他作用。当我尝试绘制多边形或热图时,地图会抛出诸如
1 | 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(),但是除了将地图围绕新的中心移动之外,它对于视口的可见内容没有任何更改。
1 2 3 4 | 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); |
缩放级别必须是整数(至少目前是这样)。 它曾经被记录在案,但我看不到它在任何地方都有明确说明。
如果整数缩放级别对您不起作用,请更改显示地图的