2015-08-28 5 views
0

У меня есть проект с использованием OSMDroid. Существует петля, которая рисует маркеры, заканчивается после этого, я должен сопоставить карту центра с определенным маркером. Мой код:OSMDroid: центрирование маркера

//I have on open Cursor c 
Marker switchTo = null; 
do { 
    Marker mr = new Marker(mapView); 
    GeoPoint gp = new GeoPoint(c.getDouble(iLat), c.getDouble(iLng)); 
    mr.setPosition(gp); 
    //some actions: set anchor, drawable etc 
    int id = c.getInt(iId); 
    if (MainActivity.switchToId != -1 && id == MainActivity.switchToId) { 
     switchTo = mr; //if I have to switch to exactly this marker 
     MainActivity.switchToId = -1; //cleanup 
    } 
    mPoiMarkers.add(mr); //add to cluster 
} while (c.moveToNext()); //next marker 
mapView.getOverlays().add(mPoiMarkers); //add cluster to map 
Log.d(TAG, "Markers redrawed."); 

if (switchTo != null) { //go to marker 
    mapView.getController().setCenter(switchTo.getPosition()); 
    mapView.getController().setZoom(14); 
} 

Проблема: карта устанавливает центр не маркером, а в нескольких километрах от него. Я не знаю, что происходит. Маркер стоит в своем обычном месте ...

ответ

1

Настоящим способом является установка центра после настройка зума.

mapView.getController().setZoom(15); 
mapView.getController().setCenter(sw);