我想将相机移动到适合LatLngBounds
的位置以适应标记高度。到目前为止,我能够使用以下代码拟合标记的锚点:
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (Marker marker : markerList) {
builder.include(marker.getPosition());
}
LatLngBounds bounds = builder.build();
int padding = getActivity().getResources().getDimensionPixelSize(R.dimen.home_map_padding); // offset from edges of the map in pixels
cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, padding);
mGoogleMap.animateCamera(cameraUpdate);
它产生如下输出:
如您所见,底部有空白区域(这是
int padding
)。 我想让填充像这样:
答案 0 :(得分:4)
您的问题类似于此处发布的问题:
Defining a CameraUpdate with LatLngBounds with different padding values
解决方案是将实际GoogleMap
的顶部填充设置为标记图标的高度。
这样的事情会:
Drawable drawable = <YOUR DRAWABLE HERE>;
final int padding = drawable.getIntrinsicHeight();
map.setPadding(0, padding, 0, 0);
使用我的自定义标记图像(为比较插入标尺)看起来像这样:
答案 1 :(得分:0)
除非您使用自定义标记,否则我不相信有任何方法可以获得标记的高度。但是,如果标记保持相同的大小,您可以将摄像机视图向上滚动一定量。
你需要玩一下滚动多少但是一旦你得到了值,你可以根据屏幕密度进行缩放。