我们正在谷歌地图上开发一个GIS应用程序(使用谷歌地图API v3),但是应用程序要求用户放大,因为一些地图对象很小(低至约1米),并且需要图形编辑。
在Google Map API中扩展缩放范围的最佳方法是什么,可能缩放到30级?我们可以实现一个在Googles tileserver达到限制时“接管”的磁贴服务器吗?或者让谷歌地图API使用图形放大来缩放水平超出它的数据?还有其他可能的方法吗?
使用Hybrit或卫星地图时,这个问题尤其麻烦,因为它们的缩放级别较浅(我们的位置似乎大约为18)。
下图显示了最深的缩放以及它的不足之处:
/马格努斯
答案 0 :(得分:0)
扩展缩放范围的方法是创建自定义MapType
。然后,您可以指定minZoom
和maxZoom
。如果你的地图图块是普通图像,你可以使用ImageMapType
来为你做一些簿记。或者,如果有必要,您可以选择完整的自定义MapType
。
这是example of an ImageMapType
,具有自定义缩放级别和图像切片。
答案 1 :(得分:0)
以下是我最终解决的问题。不是一个完美的解决方案,但足以满足我的目的:
最大的问题是确定地图是否处于最大缩放状态(MaxZoomService仅适用于卫星图像)。我最终得到了一个非常丑陋的解决方案:在变焦控制中检查zoon-handle的位置: - )
答案 2 :(得分:0)
这可能比用于查看滚动条的代码更好,因为在可能不同的小屏幕上。
如果变焦没有变化,则表示谷歌处于最大变焦状态。
var wheelEvent = function() {
console.log('zoom before', map.getZoom());
setTimeout(function() {
return console.log('zoom after', map.getZoom());
}, 0);
};
})(this);
$('#map-canvas')[0].addEventListener('mousewheel', wheelEvent, true);
$('#map-canvas')[0].addEventListener('DOMMouseScroll', wheelEvent, true);