0

我想实现适合所有标记点的缩放,这些标记点来自数据库,我制作了一个标记数组,但是当我运行应用程序只给我一个标记放大,我在这里错过了什么?缩放以适应地图上的所有标记谷歌地图v2 android

public class MapaViagem extends FragmentActivity { 

    private GoogleMap googleMap; 
    private String rm_IdViagem; 
    private List<ClienteModel> mClienteModel = new ArrayList<ClienteModel>(); 
    private ViagemModel mViagemModel = new ViagemModel(); 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 


     setContentView(R.layout.maps); 

     try { 

      Bundle parametros = getIntent().getExtras(); 
      rm_IdViagem = parametros.getString("id_viagem"); 

      Repositorio ca = new Repositorio(this); 
      mViagemModel = ca.getViagemPorId(Integer.valueOf(rm_IdViagem)); 

      Repositorio cl = new Repositorio(this); 
      mClienteModel = cl.getClientesViagem(Integer.valueOf(rm_IdViagem)); 

      for (int i = 0; i < mClienteModel.size(); i++) { 

       Repositorio mRepositorio = new Repositorio(this); 
       EnderecoModel mEnderecoModel = mRepositorio.getEnderecosDoCliente(Integer.valueOf(mClienteModel.get(i).getClientes_id())); 


       // Loading map 
       initilizeMap(); 
       // Changing map type 
       googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
       // googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
       // googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); 
       // googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN); 
       // googleMap.setMapType(GoogleMap.MAP_TYPE_NONE); 

       // Showing/hiding your current location 
       googleMap.setMyLocationEnabled(true); 

       // Enable/Disable zooming controls 
       googleMap.getUiSettings().setZoomControlsEnabled(false); 

       // Enable/Disable my location button 
       googleMap.getUiSettings().setMyLocationButtonEnabled(true); 

       // Enable/Disable Compass icon 
       googleMap.getUiSettings().setCompassEnabled(true); 

       // Enable/Disable Rotate gesture 
       googleMap.getUiSettings().setRotateGesturesEnabled(true); 

       // Enable/Disable zooming functionality 
       googleMap.getUiSettings().setZoomGesturesEnabled(true); 

       float latitude = Float.parseFloat(mEnderecoModel.getLatitude()); 
       float longitude = Float.parseFloat(mEnderecoModel.getLongitude()); 


       // before loop: 
       List<Marker> markers = new ArrayList<Marker>(); 

       Marker marker = googleMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude))); 
       markers.add(marker); 

       markers.size(); 


       final LatLngBounds.Builder builder = new LatLngBounds.Builder(); 
       for (Marker m : markers) { 
        builder.include(m.getPosition()); 
       } 
       LatLngBounds bounds = builder.build(); 


       final CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, 25, 25, 0); 
       googleMap.animateCamera(cu); 


      } 


     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 


    private void initilizeMap() { 
     if (googleMap == null) { 
      googleMap = ((MapFragment) getFragmentManager().findFragmentById(
        R.id.map)).getMap(); 

      // check if map is created successfully or not 
      if (googleMap == null) { 
       Toast.makeText(getApplicationContext(), 
         "Não foi possível carregar o mapa", Toast.LENGTH_SHORT) 
         .show(); 
      } 
     } 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     initilizeMap(); 
    } 


} 

回答

0

您在这里只增加一个标记:

  List<Marker> markers = new ArrayList<Marker>(); 

      Marker marker = googleMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude))); 
      markers.add(marker); 

,没有人更多。所以你的列表只有一个标记,地图只显示一个标记。