В конце концов я сам ответил на вопрос, добавив вызов к getMapCenter
в методе рисования оверлея.
public MyOverlay(TextView lblCoords) {
super();
coordinateLabel = lblCoords;
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
super.draw(canvas, mapView, shadow);
currentCenter = mapView.getMapCenter();
latitude = currentCenter.getLatitudeE6() / 1E6;
longitude = currentCenter.getLatitudeE6() / 1E6;
coordinateLabel.setText("lat: " + latitude + " long: " + longitude);
}
Вы также можете расширить класс MapView
и поместить код координат в метод onInterceptTouchEvent
, чтобы он обновлялся только тогда, когда пользователь перемещает экран. Это было бы более эффективно, чем помещать его в оверлеи onDraw, потому что onDraw вызывается постоянно.