top-left
コーナーからマップ座標を取得bottom-right
し、それを画面サイズで割り、ピクセルあたりの値を取得することで、目的を達成できます。
次に、オフセットを掛けて元の中心に追加するだけです。
コード例:
private void centerMap(GeoPoint center, int offX, int offY){
GeoPoint tl = mapView.getProjection().fromPixels(0, 0);
GeoPoint br = mapView.getProjection().fromPixels(mapView.getWidth(), mapView.getHeight());
int newLon = offX * (br.getLongitudeE6() - tl.getLongitudeE6()) / mapView.getWidth() + center.getLongitudeE6();
int newLat = offY * (br.getLatitudeE6() - tl.getLatitudeE6()) / mapView.getHeight() + center.getLatitudeE6();
mapController.setCenter(new GeoPoint(newLat, newLon));
}
使用するには、元の中心と両方のオフセット (x と Y) を適用して上記のメソッドを呼び出します。
Note:
書かれているように、上記のコードはマップを正のオフセット値の場合は左に移動し、負のオフセット値の場合は右に移動します。質問の画面から、負のオフセットを使用してマップを左に移動し、Y のオフセットをゼロにする必要があります。
よろしく