google 地图 api 标记缩放仅适用于 1 个听众

google maps api markers zoom works in only 1 listener

我试图缩小我所做的任何标记,为此我做了一个方法,我用自己的 setOnMarkerClickListener 创建所有标记,事情是当我 运行应用程序它只缩放到迈阿密而不是其他人,我不知道我错过了什么

private float zoomLevel = 15;

public void Veterinarias (GoogleMap googleMap){
        rMap = googleMap;


       final LatLng bvillia = new LatLng(-31.4223465,-64.1829377);
       final LatLng shangai = new LatLng(31.2071315,121.2287258);
        final LatLng miami = new LatLng(25.7959734,-80.3209081);

        rMap.addMarker(new MarkerOptions().position(bvillia).title("Bv arturo illia"));
        rMap.addMarker(new MarkerOptions().position(shangai).title("Shangai"));
        rMap.addMarker(new MarkerOptions().position(miami).title("Miami"));

        rMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker) {
                String name= marker.getTitle();

                if(name.equalsIgnoreCase("Bv arturo illia")){

                    rMap.moveCamera(CameraUpdateFactory.newLatLngZoom(bvillia, zoomLevel));


                }

                return false;
            }
        });


        rMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker) {
                String name= marker.getTitle();

                if(name.equalsIgnoreCase("Shangai")){

                    rMap.moveCamera(CameraUpdateFactory.newLatLngZoom(shangai, zoomLevel));


                }


                return false;
            }
        });

        rMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker) {
                String name= marker.getTitle();

                if(name.equalsIgnoreCase("Miami")){

                    rMap.moveCamera(CameraUpdateFactory.newLatLngZoom(miami, zoomLevel));


                }



                return false;
            }
        });



    }




}

pd:有没有一种方法可以逐行放大而不是一次性放大?

标记侦听器已在地图上设置,因此您只需用您设置的最后一个侦听器覆盖之前的侦听器。如果将条件全部移至一个侦听器,它应该可以正常工作。

rMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {
            String name= marker.getTitle();

            if(name.equalsIgnoreCase("Bv arturo illia")){
                rMap.moveCamera(CameraUpdateFactory.newLatLngZoom(bvillia, zoomLevel));

            }else if(name.equalsIgnoreCase("Shangai")){
                rMap.moveCamera(CameraUpdateFactory.newLatLngZoom(shangai, zoomLevel));

            }else if(name.equalsIgnoreCase("Miami")){
                rMap.moveCamera(CameraUpdateFactory.newLatLngZoom(miami, zoomLevel));
            }

            return false;
        }
    });