¿Cómo calcular la distancia entre dos ubicaciones en Android?

Hemos visto muchas aplicaciones que usan Google Maps. Estos mapas se usan para indicar lugares en Google Maps y también podemos usarlos para calcular la distancia entre dos ubicaciones. En este artículo, veremos cómo calcular la distancia entre dos ubicaciones en Android. 

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

Construiremos una aplicación simple en la que mostraremos un mapa simple y, al iniciar nuestra aplicación, mostraremos un mensaje Toast con una distancia entre dos ubicaciones en nuestro Mapa. A continuación se muestra el video en el que veremos lo que vamos a construir en este artículo. Vamos a calcular la distancia entre Sídney y Brisbane .

Implementación paso a paso

Paso 1: Crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación. Asegúrese de seleccionar Actividad de mapas al crear un nuevo proyecto.

Paso 2: generar una clave API para usar Google Maps

Para generar la clave API para Maps, puede consultar Cómo generar la clave API para usar Google Maps en Android . Después de generar su clave API para Google Maps. Tenemos que añadir esta clave a nuestro Proyecto. Para agregar esta clave en nuestra aplicación, navegue a la carpeta de valores> archivo google_maps_api.xml y en la línea 23 debe agregar su clave API en lugar de YOUR_API_KEY

Paso 3: agregar una dependencia para calcular la distancia entre dos ubicaciones

Vaya a la aplicación > Gradle Scripts > archivo build.gradle y agregue la dependencia a continuación en la sección de dependencias. 

implementación ‘com.google.maps.android:android-maps-utils:0.4+’

Después de agregar la dependencia a continuación, ahora sincronice su proyecto. Después de agregar esta dependencia, muévase ahora hacia el archivo MapsActivity.java para mostrar un mensaje de brindis. 

Paso 4: trabajar con el archivo MapsActivity.java

MapsActivity.java MapsActivity.java

Java

import android.os.Bundle;
import android.widget.Toast;
  
import androidx.fragment.app.FragmentActivity;
  
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.maps.android.SphericalUtil;
  
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
  
    private GoogleMap mMap;
      
    // below are the latitude and longitude 
    // of 2 different locations.
    LatLng sydney = new LatLng(-34, 151);
    LatLng Brisbane = new LatLng(-27.470125, 153.021072);
    Double distance;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // 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);
    }
  
    /**
     * Manipulates the map once available.
     * This callback is triggered when the map is ready to be used.
     * This is where we can add markers or lines, add listeners or move the camera. In this case,
     * we just add a marker near Sydney, Australia.
     * If Google Play services is not installed on the device, the user will be prompted to install
     * it inside the SupportMapFragment. This method will only be triggered once the user has
     * installed Google Play services and returned to the app.
     */
    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        // on below line we are calculating the distance between sydney and brisbane
        distance = SphericalUtil.computeDistanceBetween(sydney, Brisbane);
          
        // in below line we are displaying a toast 
        // message with distance between two locations.
        // in our distance we are dividing it by 1000 to
        // make in km and formatting it to only 2 decimal places.
        Toast.makeText(this, "Distance between Sydney and Brisbane is \n " + String.format("%.2f", distance / 1000) + "km", Toast.LENGTH_SHORT).show();
    }
}

Después de agregar este código. Ahora ejecute su aplicación y vea el resultado de la aplicación.

Producción:

Nota: En Google Developer Console ( https://console.developers.google.com ), asegúrese de que la » API de Android de Google Maps v2 » esté habilitada. Y también asegúrese de que su clave API exista.

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 *