iphone phonegap 谷歌地图内存警告
Posted
技术标签:
【中文标题】iphone phonegap 谷歌地图内存警告【英文标题】:iphone phonegap google maps memory warning 【发布时间】:2013-02-18 08:18:43 【问题描述】:我有一个用 Cordova (Phonegap) 2.3.0 编写的应用程序。 我使用 Jquery 1.8.2 和 jquerymobile 1.2.0 和谷歌地图 v3。 XCode 4.6 版
在一个页面上,我加载了一堆坐标并创建了不同的折线添加到地图中。 地图中添加了 37 条折线,每条折线包含 20 到 200 个坐标。地图上总共有大约 1700 个坐标。 我也有大约 20 个标记。
该应用程序从一开始就运行良好,我可以放大和缩小地图并且地图响应良好,但是如果我重新加载地图,我有时会开始在 XCode 中收到诸如“收到内存警告”之类的消息,并且地图不会再更新并且有时应用程序崩溃。
这是我在添加更新数据之前调用的明确例程: 函数 clearOverlays()
try
if (polyLinesArray != null)
for (var i = 0; i < polyLinesArray.length; i++)
polyLinesArray[i].setMap(null);
polyLinesArray[i] = null;
polyLinesArray.length = 0;
catch(e)
handleError(e, "clearOverlays");
polyLinesArray 是一个数组,在将所有折线添加到地图后,我会将它们推送到其中。
所以问题是,我怎样才能以一种好的方式清除地图以防止内存警告(和泄漏?)?
我在折线上也有鼠标点击监听器,我是否需要在更新前也清除它们?
当我导航到应用程序中的另一个 html 页面时,也会发生同样的情况。前后几次后,地图将不再更新。在我导航到其他页面之前,我先调用我的清晰例程。
另一个简单的测试完成: 我只是加载地图,添加我的折线和其他一些标记。放大和缩小几次,然后出现“收到内存警告”。我没有做其他任何事情,只是让谷歌地图处理缩放和平移。
问候 亨里克
【问题讨论】:
我也有类似的问题,你找到解决办法了吗? 【参考方案1】:我遇到了同样的问题,发现这与 Google Maps API 绘制叠加层的方式有关。由于某种原因,这从 API 3.7 及更高版本开始变得过于占用内存。幸运的是,在 3.12(当前的实验版本)中,这似乎再次得到解决。至少在我的情况下。
如果您在 URL 中使用 &v=3.exp 调用 maps api,您的问题也可能会得到解决。
【讨论】:
以上是关于iphone phonegap 谷歌地图内存警告的主要内容,如果未能解决你的问题,请参考以下文章
iphone上禁用wifi时,Phonegap Sencha应用谷歌地图API未加载