我需要在我显示的地图上的标记周围添加额外的填充。
到目前为止,这是代码,但顶部和底部或西部和东部标记位于屏幕的边缘。
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (int i = 0; i < arrayList.size(); i++) {
options.position(latlngs.get(i));
options.title(arrayList.get(i).getArea().toString());
options.snippet(arrayList.get(i).getRegion().toString());
mMap.addMarker(options);
builder.include(latlngs.get(i));
}
LatLngBounds bounds = builder.build();
int padding = 0;
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, padding);
mMap.moveCamera(cameraUpdate); }
});
}
答案 0 :(得分:4)
设置paddind值&gt; 0
示例:强>
int padding = 50;
答案 1 :(得分:3)
您的代码中已经有填充值。
只需将int padding = 0;
的值增加到更高的值(例如int padding = 100;
)
答案 2 :(得分:1)
我还建议通过@Zumry Mohamed从线程Android map v2 zoom to show all the markers中找到解决方案,这对我来说最有效:
log4j.xml
答案 3 :(得分:0)
这是用于将填充设置为地图。在下面的方法中,您可以制作地图以将相机聚焦在latlngbounds上,并从侧面为您提供填充。
CameraUpdateFactory.newLatLngBounds(LatLngBounds bounds, int padding)
可用于在特定方向上指定填充的第二种方法:
GoogleMap.setPadding( 10, 20, 20, 50);
此处的参数位于pixel(Int),左,上,右,下。 我以以下方式使用了上述两种方法。
fun moveCameraToPolyLine(polyline: Polyline, googleMap: GoogleMap?) {
val builder = moveCameraToPolyline(polyline)
builder.let {builder->
googleMap?.let {googleMap ->
googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(builder!!.build(), 300))
setDirectionalPaddingToGoogleMap(300,300,300,600)
}
}
}
//left,top,right,bottom in pixels
fun setDirectionalPaddingToGoogleMap(googleMap: GoogleMap?,left :Int,top : Int, right : Int, bottom : Int){
googleMap?.setPadding(left,top,right,bottom)
}