¿Cómo dibujar una pista en Google Maps en Android?

En muchas aplicaciones de Android, hemos visto que hay un marcador de ruta desde una ubicación de origen hasta la ubicación de destino. En este artículo, veremos cómo podemos dibujar una pista en Google Maps en Android. 

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

Construiremos una aplicación simple en la que mostraremos dos campos EditText dentro de esos campos, tenemos que ingresar una ubicación de origen y una ubicación de destino y mostraremos un botón para mostrar una ruta. Después de hacer clic en ese botón, mostraremos una ruta en Google Maps para esa ubicación junto con el tiempo. qué

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.

Paso 2: trabajar con el archivo activity_main.xml

Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo  activity_main.xml .

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
  
    <!--edit text for our source location-->
    <EditText
        android:id="@+id/idEdtSource"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:hint="Source"
        android:padding="8dp" />
  
    <!--edit text for our destination location-->
    <EditText
        android:id="@+id/idEdtDestination"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:hint="Destination"
        android:padding="8dp" />
  
    <!--button to draw route on maps-->
    <Button
        android:id="@+id/idBtnTrack"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:background="@color/purple_500"
        android:padding="8dp"
        android:text="Show Track"
        android:textAllCaps="false"
        android:textColor="@color/white" />
      
</LinearLayout>

Paso 3: trabajar con el archivo MainActivity.java

Vaya al archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle.

Java

import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
  
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    // creating variables for 
    // edit texts and button.
    EditText sourceEdt, destinationEdt;
    Button trackBtn;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          
        // initializing our edit text and buttons
        sourceEdt = findViewById(R.id.idEdtSource);
        destinationEdt = findViewById(R.id.idEdtDestination);
        trackBtn = findViewById(R.id.idBtnTrack);
  
        // adding on click listener to our button.
        trackBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // calling a method to draw a track on google maps.
                drawTrack(sourceEdt.getText().toString(), destinationEdt.getText().toString());
            }
        });
    }
  
    private void drawTrack(String source, String destination) {
        try {
            // create a uri
            Uri uri = Uri.parse("https://www.google.co.in/maps/dir/" + source + "/" + destination);
              
            // initializing a intent with action view.
            Intent i = new Intent(Intent.ACTION_VIEW, uri);
              
            // below line is to set maps package name
            i.setPackage("com.google.android.apps.maps");
              
            // below line is to set flags
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
              
            // start activity
            startActivity(i);
        } catch (ActivityNotFoundException e) {
            // when the google maps is not installed on users device
            // we will redirect our user to google play to download google maps.
            Uri uri = Uri.parse("https://play.google.com/store/apps/details?id=com.google.android.apps.maps");
              
            // initializing intent with action view.
            Intent i = new Intent(Intent.ACTION_VIEW, uri);
             
            // set flags
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             
            // to start activity
            startActivity(i);
        }
    }
}

Ejecute su aplicación y vea el resultado de la aplicación.

Producción:

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 *