2011-04-19 5 views
1

Googleマップには、場所やショップのアプリを開発しており、DBから500点以上のマーカーを取得しています。500以上のマーカーを追加すると、アプリがぶら下がる

私は場所の2種類と、このようなお店の1種類追加:これはうまく動作し、すべてのマーカーが(ただし:-)デフォルトではお店ではない)に示され

Cursor places = db.getAllPlaces(); 
    this.placeMarker0 = new ItemizedMarker(this.getResources().getDrawable(
      R.drawable.place0), this); 
    this.placeMarker1 = new ItemizedMarker(this.getResources().getDrawable(
      R.drawable.place1), this); 
    this.shopMarker = new ItemizedMarker(this.getResources().getDrawable(
      R.drawable.shop), this); 
    if (places.moveToFirst()) { 
     do { 
      String[] coordinates = places.getString(11).split(","); 
      if (coordinates.length > 0) { 
       GeoPoint point = new GeoPoint((int) (Double 
         .parseDouble(coordinates[0]) * 1E6), (int) (Double 
         .parseDouble(coordinates[1]) * 1E6)); 
       OverlayItem overlayitem = new OverlayItem(point, places 
         .getString(1), Integer.toString(places.getInt(0))); 
       if (places.getInt(12) == 0) { 
        placeMarker0.addMarker(overlayitem); 
       } else if (places.getInt(12) == 1) { 
        placeMarker1.addMarker(overlayitem); 
       } else { 
        shopMarker.addMarker(overlayitem); 
       } 
      } else { 
       Log.w("GMaps", "Place not located - " + places.getString(1)); 
      } 
     } while (places.moveToNext()); 
     this.placeMarker0.populateNow(); 
     this.mapOverlays.add(placeMarker0); 
     this.placeMarker1.populateNow(); 
     this.mapOverlays.add(placeMarker1); 
     this.shopMarker.populateNow(); 
    } 

問題は、すべてのマーカーを追加した後、アプリがフリーズすることが多く、マーカーをクリックしたり、しばらくの間地図をピンチズーム/移動することができないことです。私はZoomControlsを追加して、彼らは動作しますが、マップと直接対話しません。

AndroidのGoogleマップAPIは多くのマーカーを処理できないのでしょうか、別の方法を使用する必要がありますか?

詳細が必要な場合は、今すぐお送りください!

答えて

0

500 +個のマーカーを作成する代わりに、Marker Clustersを使用したことがありますか?パフォーマンスのオーバーヘッドに加えて、現在の設定がユーザーを圧倒する可能性があります。

+0

クールなライブラリーのようです。ありがとう!私は近いうちにそれを試してみよう! – Smet

関連する問題