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 的零偏移量。
问候