我想要在卫星视图基本地图上显示一些非常高分辨率的航拍图像。我的图像非常适合生成高达23级的图像。但是,谷歌的卫星视图只允许放大到20级。我知道一旦用户放大,我就可以手动将地图类型切换到我的自定义叠加层到20级(所以只显示我的地图类型),但是我丢失了谷歌图像以获得完整的缩放级别。
我的问题是,一旦缩放达到20级,有没有办法注册一个事件,客户端正试图进一步放大但不能?如果没有,是否有其他想法如何在不丢失20级Google图像的情况下启用进一步缩放?
我能想到的唯一其他解决方案是创建第二个自定义磁贴服务器,它只是将请求转发到标准Google磁贴网址,但它提供了不同的最小/最大缩放。如果这个想法是要走的路,我也希望得到确认。感谢。
答案 0 :(得分:9)
我确定最简单的解决方案是使用以下令人难以置信的hacky代码重置缩放范围发生变化的函数:
var zoomRangeModifier = googleMap.__proto__.__proto__.__proto__;
var originalSetFunc = zoomRangeModifier.set;
var hijackedSetFunc = function(a, b) {
if (a === 'zoomRange') {
b.max = 23;
}
originalSetFunc.call(this, a, b);
};
zoomRangeModifier.set = hijackedSetFunc;