你不需要填充
根据您的需要更改地图点X和Y值,您可以在任何时候调用此函数!可能要在onLocationChanged
内调用,例如changeOffsetCenter(location.getLatitude(),location.getLongitude());
public void changeOffsetCenter(double latitude,double longitude) {
Point mappoint = mGoogleMap.getProjection().toScreenLocation(new LatLng(latitude, longitude));
mappoint.set(mappoint.x, mappoint.y-100); // change these values as you need , just hard coded a value if you want you can give it based on a ratio like using DisplayMetrics as well
mGoogleMap.animateCamera(CameraUpdateFactory.newLatLng(mGoogleMap.getProjection().fromScreenLocation(mappoint)));
}
输出:
Point.offset(xOffset, yOffset)
来为点添加偏移量,而不是使用Point.set()
来设置一个新值。 - Arūnas Bedžinskas接受的答案可能是使用 "animateCamera" 函数。它使 "旋转震动" 几乎看不见。所以更容易使用
mMap.setPadding(leftPx, topPx, rightPx, bottomPx)
与 mMap.animateCamera 或两次 mMap.moveCamera(在更改方向时)一起使用。第一次 moveCamera 以设备中心为旋转中心,第二次 moveCamera 根据填充设置正确的中心点。
这是一种 hack 方法,因为 Google 还没有考虑 setPadding 的旋转问题。