谷歌地图-画布自定义覆盖缩放
Google Maps - canvas custom overlay zoom
如您所见:http://rolls.mit.edu/
我正在做以下事情:
-
创建地图
map = new google.maps.Map(mapContainer, options);
-
添加叠加
overlay = new google.maps.OverlayView(); overlay.draw = function() {}; overlay.setMap(map);
-
添加画布以覆盖
overlay.getPanes().overlayLayer.appendChild(canvas);
一切都很好,只是当我缩放时,画布保持不变。放大/缩小时是否可以缩放画布?有什么例子吗?
您需要收听google.maps.Map zoom_changed事件,从地图中获取新的缩放级别(使用Map.getZoom()),然后适当地调整或修改画布元素的大小。
如果你只想画一条线,可以看看google.maps.Polyline覆盖,它内置了缩放功能。
您几乎必须为您想要支持的任何谷歌缩放级别渲染一个新的画布。我解决这个问题的方法是在映射的"空闲"事件上设置一个侦听器。一旦缩放或平移后地图变为空闲状态,就会触发此项。然后,您可以确定缩放级别是否发生了更改,并采取相应的行动。
var map = new google.maps.Map(mapContainer, options);
var zoomLevel = 6; //some defaut
var handleBoundsChanged = function(){
var oldZoom = zoomLevel;
var zoomLevel = map.getZoom();
if( zoomLevel != oldZoom){
rebuildOverlayForZoom(zoomLevel)
}
}
google.maps.event.addListener (map, 'idle', handleBoundsChanged);
相关文章:
- 更改高贴图的缩放级别
- 在不阻止默认行为的情况下检测IE10中的缩放
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 缩放Raphael/SVG容器以适应所有内容
- 传单缩放控制位置错误
- 在不移动内部文本的情况下缩放元素的效果
- 调整缩放窗口高度提升缩放
- 计算CSS3缩放框在另一个框中的最高位置
- D3.JS向rect添加缩放和列表项
- 当我在节点上拖动鼠标时,我如何防止使用d3.ehavior.zoom().on(“缩放”,重绘)
- 谷歌地图覆盖在缩放时闪烁
- 有没有办法覆盖谷歌路线服务缩放值
- 缩放OpenLayers3贴图以覆盖多个矢量层
- 谷歌地图watchposition {setzoom()}覆盖用户缩放
- 如何设置地图的缩放以覆盖所有可见的标记
- 悬停缩放效果,而使用对象适合:覆盖
- HTML图像与矢量覆盖,允许缩放和平移与图像
- 当用户浏览器缩放时,如何处理覆盖
- 如何缩放图像以覆盖整个父分区
- 谷歌地图-画布自定义覆盖缩放