2

私がやりたいことは、Google mapView に GeoPoints を追加することです。これは私のコードが今のように見えるものです:

    public ArrayList getLocations() {
        ArrayList<OverlayItem> locations = new ArrayList<OverlayItem>();
        /* open SQLite database aanmaken als deze al dan niet bestaat */ 

    SQLiteDatabase myDB = openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null); 
    SharedPreferences preferences = getSharedPreferences("data", 0);
    String route_id = String.valueOf( preferences.getInt("route_id", 0));

    String[] resultColumns = new String[] { "_id", "route_id","naam", "lng", "lat" };
    String whereClause = "route_id=?";
    String[] whereArgs = new String[] {route_id};

        Cursor cursor = myDB.query(DATABASE_TABLE_LOCATIES, resultColumns, whereClause,
                whereArgs, null, null, null, null);

        cursor.moveToFirst();
        do {
            String naam = cursor.getString(2);
            Double lat = cursor.getDouble(4);
            Double lon = cursor.getDouble(3);
            GeoPoint point = new GeoPoint((int) (lat * 1E6),(int) (lon * 1E6));
            locations.add(new OverlayItem(point, naam,naam));
        } while (cursor.moveToNext());



   return locations;
    }

public void onCreate(Bundle savedInstanceState) {
  InterestingLocations funPlaces = new InterestingLocations(marker);
  mapView.getOverlays().add(getLocations);
}

このコードは、すべてのポインターを mapView に一度に配置しています。各ポインターをマップに配置するときに、少し遅れてほしいです。どうすればこれを行うことができますか?

前もって感謝します

4

1 に答える 1

2

最初にグローバル変数を定義し、

private Timer myTimer;

onCreate()これをメソッド内に追加します。

myTimer = new Timer();
    myTimer.schedule(new TimerTask() {
        @Override
        public void run() {
            TimerMethod();
        }

    }, 0, 1000);

}

この関数をクラスに追加します。

private void TimerMethod()
{
    this.runOnUiThread(Timer_Tick);
}

これをグローバル変数として定義します。

private Runnable Timer_Tick = new Runnable() {
public void run() {

    //here is your job, instead of writing this [mapView.getOverlays().add(getLocations);]

    //you have to create a loop for the list returned by getLocations() to add them in the timer one by one
}
};
于 2012-04-16T13:31:10.320 に答える