¿Cómo usar diferentes tipos de Google Maps en Android?

Cuando usamos la aplicación predeterminada de Google Maps, veremos diferentes tipos de mapas presentes dentro de esta aplicación. Podremos ver mapas satelitales, mapas de terreno y muchos más. Hemos visto añadir Google Maps en la aplicación de Android . En este artículo, veremos la implementación de diferentes tipos de Google Maps en Android

¿Qué vamos a construir en este artículo? 

Construiremos una aplicación simple en la que simplemente mostraremos un mapa de Google con tres botones y cambiaremos el mapa con la ayuda de estos botones. qué

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
  
    <!--fragment to display our map-->
    <fragment xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MapsActivity" />
      
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_margin="5dp"
        android:orientation="horizontal"
        android:padding="5dp"
        android:weightSum="3">
  
        <!--button for displaying hybrid map-->
        <Button
            android:id="@+id/idBtnHybridMap"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:background="@color/purple_500"
            android:singleLine="false"
            android:text="Hybrid \n Map"
            android:textAllCaps="false"
            android:textColor="@color/white" />
  
        <!--button for displaying satellite map-->
        <Button
            android:id="@+id/idBtnSatelliteMap"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:background="@color/purple_500"
            android:singleLine="false"
            android:text="Satellite \n Map"
            android:textAllCaps="false"
            android:textColor="@color/white" />
  
        <!--button for displaying terrain map-->
        <Button
            android:id="@+id/idBtnTerrainMap"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:background="@color/purple_500"
            android:singleLine="false"
            android:text="Terrain \n Map"
            android:textAllCaps="false"
            android:textColor="@color/white" />
  
    </LinearLayout>
      
</RelativeLayout>

Java

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
  
import androidx.fragment.app.FragmentActivity;
  
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
  
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
  
    private GoogleMap mMap;
  
    // below are the latitude and longitude
      // of delhi locations.
    LatLng delhi = new LatLng(28.644800, 77.216721);
  
    // creating a variable for button.
    private Button hybridMapBtn, terrainMapBtn, satelliteMapBtn;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
  
        // initialize our buttons
        hybridMapBtn = findViewById(R.id.idBtnHybridMap);
        terrainMapBtn = findViewById(R.id.idBtnTerrainMap);
        satelliteMapBtn = findViewById(R.id.idBtnSatelliteMap);
  
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
  
        // adding on click listener for our hybrid map button.
        hybridMapBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // below line is to change 
                // the type of map to hybrid.
                mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
            }
        });
  
        // adding on click listener for our terrain map button.
        terrainMapBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // below line is to change
                // the type of terrain map.
                mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
            }
        });
        // adding on click listener for our satellite map button.
        satelliteMapBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // below line is to change the
                // type of satellite map.
                mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
            }
        });
    }
  
    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
          
        // adding marker to each location on google maps
        mMap.addMarker(new MarkerOptions().position(delhi).title("Marker in Delhi"));
  
        // below line is use to move camera.
        mMap.moveCamera(CameraUpdateFactory.newLatLng(delhi));
    }
}

Publicación traducida automáticamente

Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *