Java 在CameraUpdateFactory.newLatLngBounds周围添加额外的填充

Java 在CameraUpdateFactory.newLatLngBounds周围添加额外的填充,java,android,google-maps,Java,Android,Google Maps,我需要在我显示的地图上的标记周围添加额外的填充 这是目前为止的代码,但顶部和底部或西部和东部标记位于屏幕边缘 @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; mMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() { @Override public void onMapL

我需要在我显示的地图上的标记周围添加额外的填充

这是目前为止的代码,但顶部和底部或西部和东部标记位于屏幕边缘

 @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);            }
    });

}
@覆盖
4月1日公开作废(谷歌地图谷歌地图){
mMap=谷歌地图;
setOnMapLoadedCallback(新的GoogleMap.OnMapLoadedCallback(){
@凌驾
加载时的公共无效(){
LatLngBounds.Builder=新的LatLngBounds.Builder();
对于(int i=0;i
以下是我得到的:

这就是我想要的:
那么,我如何添加一些填充,以便我可以看到所有的标记,但不让标记与地图的边缘对接?感谢您的输入。

您的代码中已经有了填充值


只需增加
int padding=0的值设置为更高的值(例如
int padding=100;

设置填充值>0
示例:

int padding=50

我还建议通过以下线程提出解决方案:,这对我最有效:

width = getResources().getDisplayMetrics().widthPixels;
height = getResources().getDisplayMetrics().heightPixels;
padding = (int) (width * 0.20); // offset from edges of the map - 20% of screen
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds,, width, height, padding);

这用于设置贴图的填充。在下面的方法中,您可以制作贴图,将相机聚焦在latlngbounds上,并且您提供的填充将从all for side开始

CameraUpdateFactory.newLatLngBounds(LatLngBounds bounds, int padding)
第二种方法可用于指定特定方向上的填充:

GoogleMap.setPadding(     10,      20,      20,     50);
这里的参数以像素(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)
}

50似乎很好用,我想我试了5次,但它不起作用,并且假设填充影响了地图的其他方面。很高兴能解决这个问题。非常感谢,非常感谢,因为我升级到kotlin,它现在坏了,我回去工作后需要修复它。