我们正在开发一个混合应用程序,并在我们的应用程序中使用谷歌地图 API。当我们尝试在 map 中加载 2000 个数据标记时,它崩溃了。 map 在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);
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
});
}
});
如果您的 map 使用标签、自定义图标和簇,则使用较少数量的标记可能会导致崩溃。
关于google-maps - 谷歌地图在 iOS7 中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18759401/