2014-09-26 115 views
5

根据Google Map documentation。在iPhone中缩放谷歌地图api 3 [ios]

缩放是通过双指捏合完成的。

所以,当我点击屏幕上的我的手指和移动然后地图四处放大但在那之后,当我从屏幕上移开手指,然后放大,我看到之前的地图重新加载比呈现实际变焦多很多。

目前,我IPhone 5 4S测试上IOS 7.1.2IPhone与IOS 8

我在我的应用程序使用jQuery Mobile的框架和生成地图动态。 (当我创建具有固定值的地图,那么它工作正常)

我创建了一个小提琴,你可以看到同样的问题。 Link

我的问题 第一张地图的一些图片打开

first

第二张图当我试图缩小我的地图手指捏。

second picture

第三张照片时,我松开了我的手指从屏幕上。

third picture

因此,它不能维持其缩放级别,显示在第二张照片。如何解决这个问题

+0

捏缩放不返回实际缩放级别,因为瓦片没有变焦动作过程中加载。如果你使用'console.log(mapClass.map.getZoom());'你将在缩放结束后得到缩放级别。仅在'webapp'的情况下有 – Omar 2014-10-02 21:28:53

+0

吗?因为在已经安装在“iPhone”中的地图应用中,它以这种方式工作。 – Blu 2014-10-03 06:56:59

+0

您的示例正在根据Google文档正确缩放。看起来,您只想简化地图图像,而不是在最终缩放级别加载新的图块。也许某种视口缩放会起作用? – 2014-10-04 01:08:05

回答

1

请尝试更换:

google.maps.event.addListener(mapClass.map, 'zoom_changed', function() { 
    mapClass.map.panTo(myLatlng); 
}); 

有:

google.maps.event.addListener(mapClass.map, 'zoom_changed', function() { 
    mapClass.map.panTo(mapClass.map.center); 
}); 

希望它能帮助。

+0

没有任何变化。同样的问题存在 – Blu 2014-10-09 05:34:05

+0

哎呀!很酷,我会再看一遍 – 2014-10-09 11:48:45

0

我解决了这个问题(或者可能是一个非常相似的问题)购买节流我在zoom_changed听众做的工作。我用lodash throttle

替换此

google.maps.event.addListener(mapClass.map, 'zoom_changed', myFunction); 

有了这个

google.maps.event.addListener(mapClass.map, 'zoom_changed', _.throttle(myFunction,100));