2013-02-18 52 views
1

我有一个应用程序编写科尔多瓦(Phonegap)2.3.0。 我使用Jquery 1.8.2和jquerymobile 1.2.0和google maps v3。 XCode 4.6版iPhone手机谷歌地图内存警告

在一页上,我加载了一堆坐标并创建了添加到地图的不同多段线。 有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页面时会发生同样的情况。经过几次向前和向后的地图不会再更新。在我导航到其他页面之前,我首先调用我的清除例程。

另一个简单的测试: 我只是加载地图,添加我的折线和其他标记。放大和缩小几次,然后出现“接收到的内存警告”。我没有做任何其他事情,只是让谷歌地图处理缩放和平移周围。

问候 亨里克

+0

我有类似的问题,你找出解决方案吗? – 2013-04-24 16:16:49

回答

0

我有同样的问题,并发现它与谷歌地图API绘制覆盖的方式做。由于某些原因,API 3.7及更高版本的内存密集程度过高。幸运的是,在3.12(目前的实验版本)中,这似乎再次得到解决。至少在我的情况下。

如果您在URL中调用地图API为& v = 3.exp,那么您的问题也可能会得到解决。