如何在MapActivity中添加千个GeoPoints

时间:2011-10-20 16:30:29

标签: android google-maps

我有我的Android应用程序,我想在我的MapActivity 5 000 GeoPoints上显示。 为此,我使用下一个代码:

for(BusinessUnitMapModel model : DeviceClientApplication.getInstance().getBusinessUnitList()){
            GeoPoint point = new GeoPoint((int)(Double.parseDouble(model.getLatitude())*1E6),(int)(Double.parseDouble(model.getLongitude())*1E6));
            OverlayItem overlayItem = new OverlayItem(point, "", "");
            itemizedOverlay.addOverlay(overlayItem);
}

但是当我尝试进入MapActivity时,我的应用程序崩溃了。

可能有人知道如何添加数千个GeoPoints?

2 个答案:

答案 0 :(得分:1)

由于您要添加到地图的大量叠加层,您很可能获得的是内存不足异常。如果是这种情况,您需要找到解决方法。互联网上有很多不同的线程(搜索'android mapactivity memory exception')供你查看并从中获取建议。这是一个例子:

http://code.google.com/p/android/issues/detail?id=2181

祝你好运!

答案 1 :(得分:0)

我发现解决方案是创建额外的服务器端服务,根据屏幕坐标(右上角和左下角)发送不超过50个商店。因此,如果用户缩小或放大地图视图,Android应用程序将向服务器端发送新请求。任何方式用户都无法在屏幕上看到所有5000点,用户也不需要。