信息窗口是从地图中绘制出来的,因此我决定在地图中添加填充。当我点击标记但是使用moveCamera功能无法达到相同效果时,相机根据填充位置很好。似乎moveCamera函数没有考虑填充或我做错了吗?请指教。谢谢。
mGoogleMap.setPadding(0,140,0,0);
Marker marker = mGoogleMap.addMarker(new MarkerOptions()
.position(latLng)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pointer))
.title("Crime happened here!")
.snippet("(" + roundFourDecimals(latLng.latitude) + "," + roundFourDecimals(latLng.longitude) + ")"));
marker.showInfoWindow();
mGoogleMap.moveCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition.Builder().target(latLng).zoom(17).build()));
答案 0 :(得分:0)
我通过将相机移动到您想要的LatLng来改变代码,然后使用VisibleRegion和LatLngBounds来获得可见区域的中心。像魅力一样工作。
请务必在onMapLoadedCallback中执行此操作以防止nullpointerexception,因为它需要地图片段的高度和宽度
mGoogleMap.setPadding(0,140,0,0);
Marker marker = mGoogleMap.addMarker(new MarkerOptions()
.position(latLng)
.icon(BitmapDescriptorFactory.fromResource(getCrimeIcon(crimeType)))
.title("Crime happened here!")
.snippet("(" + roundFourDecimals(latLng.latitude) + "," + roundFourDecimals(latLng.longitude) + ")"));
marker.showInfoWindow();
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng,17));
VisibleRegion visibleRegion = mGoogleMap.getProjection().getVisibleRegion();
LatLngBounds mapLatLngBound = visibleRegion.latLngBounds;
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(mapLatLngBound.getCenter()));