How do I initialize Maps in a specific place?

5

How do I make the app, when I open Google Maps, zoom in to a specific location (for example, in a specific coordinate)? The demo codes it shows ALL the continents when I boot and need to zoom in until my markup:

       public class MapsActivityWifi extends FragmentActivity {

            private GoogleMap mMap; // Might be null if Google Play services APK is not available.

            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_maps_activity_wifi);
                setUpMapIfNeeded();
            }

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

            /**
             * Sets up the map if it is possible to do so (i.e., the Google Play services APK is correctly
             * installed) and the map has not already been instantiated.. This will ensure that we only ever
             * call {@link #setUpMap()} once when {@link #mMap} is not null.
             * <p/>
             * If it isn't installed {@link SupportMapFragment} (and
             * {@link com.google.android.gms.maps.MapView MapView}) will show a prompt for the user to
             * install/update the Google Play services APK on their device.
             * <p/>
             * A user can return to this FragmentActivity after following the prompt and correctly
             * installing/updating/enabling the Google Play services. Since the FragmentActivity may not
             * have been completely destroyed during this process (it is likely that it would only be
             * stopped or paused), {@link #onCreate(Bundle)} may not be called again so we should call this
             * method in {@link #onResume()} to guarantee that it will be called.
             */
            private void setUpMapIfNeeded() {
                // Do a null check to confirm that we have not already instantiated the map.
                if (mMap == null) {
                    // Try to obtain the map from the SupportMapFragment.
                    mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                            .getMap();
                    // Check if we were successful in obtaining the map.
                    if (mMap != null) {
                        setUpMap();
                    }
                }
            }

            /**
             * This is where we can add markers or lines, add listeners or move the camera. In this case, we
             * just add a marker near Africa.
             * <p/>
             * This should only be called once and when we are sure that {@link #mMap} is not null.
             */
            private void setUpMap() {
                List<MarkerOptions> places = new ArrayList<>();
                mMap.addMarker(new MarkerOptions().position(new LatLng(-23.560334, -46.645547)).title("Marker").snippet("teste"));

            }
        }
    
asked by anonymous 15.03.2015 / 05:15

1 answer

5

Use googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng, ZoomLevel)); to position the camera at the zoom level ZoomLevel at the location represented by the LatLng coordinates:

private void setUpMap() {
    LatLng markerPosition = new LatLng(-23.560334, -46.645547);
    List<MarkerOptions> places = new ArrayList<>();
    mMap.addMarker(new MarkerOptions().position(markerPosition)).title("Marker").snippet("teste"));
    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(markerPosition, 15));
}
    
15.03.2015 / 12:09