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