Google地图在IOS7中崩溃 [英] Google Map crashes in IOS7

查看:105
本文介绍了Google地图在IOS7中崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在开发一款混合应用程序,并且在我们的应用程序中使用Google地图API。当我们试图在地图中加载2000个数据标记时,它崩溃了。地图不会在IOS6,IOS5中崩溃。它仅在IOS7中发生。是否有任何与ios7应用程序的内存相关的更改。

正如前面所说的,iOS7对内存使用情况更为严格。
在Chrome等其他浏览器中会出现此行为,因此当应用程序达到内存使用上限时,系统会显示崩溃。



我已经隔离了两个测试用例只有Gmaps javascript API和jQuery:

使用100个标记进行测试:一切正常

http://jsfiddle.net/edfFq/6/embedded/result



使用3000个标记进行测试:发生崩溃

http:// jsfiddle.net/edfFq/7/embedded/result/

  $(document).ready(function() {
var map;
var centerPosition = new google.maps.LatLng(40.747688,-74.004142);


var options = {
zoom: 2,
center:centerPosition,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map($('#map')[ 0],options);


(var i = 0; i&l t; 2800; i ++){
var position = new google.maps.LatLng(40 * Math.random(), - 74 * Math.random());
var marker = new google.maps.Marker({
position:position,
map:map
});
}
});

如果您的地图使用了标签,自定义图标和群集。

We are developing an Hybrid app and we are using google map API in our application. When we are trying to load 2000 data markers in the map, it got crashed. Map is not get crashed in IOS6, IOS5. It is happening only in IOS7. Is there any memory related change done for ios7 application.

解决方案

As said previously iOS7 is more strict with memory usage. This behavior occurs in other browsers like Chrome, so when an app reach upper limit in memory usage, the crash appears.

I have isolated two test cases using only Gmaps javascript API and jQuery:

Testing with 100 markers: Everything it's ok

http://jsfiddle.net/edfFq/6/embedded/result

Testing with 3000 markers: Crash occurs

http://jsfiddle.net/edfFq/7/embedded/result/

$(document).ready(function () {
    var map;
    var centerPosition = new google.maps.LatLng(40.747688, -74.004142);


    var options = {
        zoom: 2,
        center: centerPosition,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map($('#map')[0], options);


    for (var i=0;i<2800;i++){        
      var position = new google.maps.LatLng(40*Math.random(),-74*Math.random());
      var marker = new google.maps.Marker({
            position: position,
            map: map           
        });
    }
});

You can get the crash with a less number of markers if your map uses: labels, custom icons and clusters.

这篇关于Google地图在IOS7中崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆