2011-10-20 11 views
1

私は自分のAndroidアプリケーションを持っていて、MapActivity 5 000 GeoPointsに表示したいと思います。私はMapActivityに入力しようとすると、私のMapActivityに千個のGeoPointを追加する方法

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); 
} 

しかし、私のアプリケーションのクラッシュ:このために は、私は次のコードを使用します。

何千ものジオポイントを追加する方法を知っているかもしれませんか?

+0

クラッシュのスタックトレースを送信して、何が起こっているかを知ることができますか? – Bobbake4

答えて

0

解決策は、スクリーン座標(右上と左下)に従って50個以下の店舗を送信する追加のサーバー側サービスを作成することです。したがって、ユーザーがマップビューをズームアウトまたはズームインすると、Androidアプリケーションはサーバー側に新しいリクエストを送信します。どのような方法でも、ユーザーは画面上の5000点をすべて見ることができず、ユーザーはそれを必要としません。

1

マップに追加しているオーバーレイの数が多いため、メモリ不足例外が発生する可能性があります。その場合、回避策を見つける必要があります。あなたが見てからの提案を得るために、これについてのインターネット上の多くの異なるスレッドがあります( 'アンドロイドマップのメモリの例外'を検索してください)。

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

幸運:ここでは一例です!