谷歌地图中的特定缩放

5

我有一个Gmap,需要逐步缩放。为了实现这一点,我需要将Google地图缩放级别格式化为“4.001”。我尝试通过将此值作为缩放级别简单添加来实现,但它并不起作用。

所以我的问题是如何使用多个小数实现Google地图缩放级别。这是否可能?如果不可能,我该如何实现缓慢而精确的缩放?

谢谢

4个回答

6
根据文档,缩放级别对应于将地球分成的瓷砖数量:
zoom = 1   =>   tiles = 2^1 * 2^1 = 2 * 2 = 4
zoom = 2   =>   tiles = 2^2 * 2^2 = 4 * 4 = 16
zoom = 3   =>   tiles = 2^3 * 2^3 = 8 * 8 = 64
etc

将缩放级别增加1会使细节水平翻倍。缩放级别是一个整数值,它对应于Google地图上滑块控件的离散值。


那么根据您的解释,我应该使用瓦片计算来增加缩放级别,例如0.01吗?您有任何如何在PHP中实现此操作的示例吗? - Sandor
变量zoomLevel = 4; zoomLevel是一个整数。map.setZoom(zoomLevel); 您不能使用例如4.5。您可以按1的步长增加zoomLevel,例如从4到5。 - Jiri Kriz
1
是的,我明白,但我该如何实现类似4.5这样的数字?通过瓷砖吗? - Sandor
假设你的地图缩放级别为4。现在你想略微增加缩放级别,比如说到4.1。提示信息是:你不能这样做,必须要增加到5。如果细节太多,你需要保持缩放级别为4。4和5之间没有中间级别。 - Jiri Kriz
有人知道如何实现小缩放级别吗?!?! - Sandor
显示剩余2条评论

3
当您想要一个缩放级别在4和5之间,例如4.2或4.3时,唯一的方法是使用聚类算法,因为地图是被4个部分划分的。聚类意味着当瓦片彼此非常接近时,显示它们就不再实用。例如,有一个标记管理器可以计算聚类,但它不适用于地图,因为将其划分为6或7个瓦片没有意义。

2
您可以逐渐将地图画布的CSS缩放从1逐渐增加到2,也许还可以用元素遮盖周围的内容。然后,在一次调用中,将CSS缩放更改回1,并将地图缩放减小一个单位。您会发现,在缩放过程中,街道、名称和线条会随着缩放而缩放,这是不必要的伪影,但它看起来比地图的缩放更平滑。
通过将地图缩放设置为4,将CSS缩放设置为1.5,可以实现4.5倍的缩放。
如果您不喜欢低分辨率的结果,可以做相反的操作:将CSS缩放设置为0.5,将地图缩放设置为5。两者在数据使用、像素密度和对象大小方面都有其优缺点。

0
在Chrome浏览器中,一个解决方法是在GMaps +和-之间交替缩放,并使用键盘上的"Ctrl -"和"Ctrl +"。后者的缩放是在Chrome内部进行的。 通过这两种方法,您可以获得更自定义的缩放级别。来回切换的一个好处是您可以同时优化文本大小。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接