How do I start Maps in a specific place?

Asked

Viewed 148 times

5

How do I make the App, when opening Google Maps, zoom in on a specific place (for example, a specific coordinate)? The codes of the demo it shows ALL continents when initializing being necessary to zoom up to my marking:

       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"));

            }
        }

1 answer

5


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

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

Browser other questions tagged

You are not signed in. Login or sign up in order to post.