in Android Tutorial

Membuat Navigasi Menggunakan Google Maps Intents Android


 
Aplikasi Google Maps Android digunakan untuk memulai Google Maps di layar, pencarian, navigasi, atau Street View mode pada pengembangan aplikasi Android.

Intents dapat menjalankan activity di aplikasi lain dengan menggambarkan tindakan sederhana yang ingin melakukan (seperti “menampilkan peta” atau “rute menuju tempat tujuan”) dalam suatu objek Intents. Google Maps untuk Android mendukung beberapa maksud yang berbeda, yang memungkinkan untuk menjalankan aplikasi Google Maps dan melakukan salah satu dari empat tindakan :

  1. Menampilkan peta lokasi pada lokasi yang spesifk dan level zoom.
  2. Mencari tempat atau lokasi kemudian menampilkan pada peta.
  3. Permintaan rute dari satu lokasi ke lokasi lain. Arah rute dapat menggunakan tiga mode transportasi yaitu : driving, walking, dan bicycling.
  4. Menampilkan Panorama dalam Google Street View.

Intent Requests
Untuk menjalankan Google Maps dengan intent pertama yang harus dilakukan adalam membuat intent objek, spesifik action, URI, dan nama peckage (Identitas aplikasi dalam Android).

  • Action, semua intent Google Maps dipanggil di View action – ACTION_VIEW.
  • URI, Google Maps intents menggunakan URI encoded strings yang menentukan tindakan yang diinginkan, bersama dengan beberapa data yang dapat digunakan untuk melakukan tindakan.
  • Peckage, memanggil setPackage(“com.google.android.apps.maps”) akan memastikan bahwa aplikasi Google Maps untuk Android menangani Intent. Jika paket tidak diatur , sistem akan menentukan aplikasi dapat menangani Intent. Jika beberapa aplikasi yang tersedia, pengguna mungkin akan diminta yang aplikasi mereka ingin menggunakan.

Setelah membuat Intent, pengembang dapat menjalankan aplikasi menggunakan method startActivity(). Sistem ini akan meluncurkan aplikasi yang diperlukan dalam hal ini Google Maps dan memulai Activity. Berikut ini adalah contoh code navigasi sebagai berikut :

// Buat Uri dari intent string. Gunakan hasilnya untuk membuat Intent.
URI gmmIntentUri = Uri.parse("google.navigation:q=-6.894649906672214,110.63718136399984");

// Buat Uri dari intent gmmIntentUri. Set action => ACTION_VIEW
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);

// Set package Google Maps untuk tujuan aplikasi yang di Intent
mapIntent.setPackage("com.google.android.apps.maps");

// Untuk menjalankan aplikasi yang di hendel dari intent
startActivity(mapIntent);

 

Jika sistem tidak bisa mengidentifikasi respon dari intent, maka aplikasi akan crash. Solusi untuk menangani ini perlu adanya tambahan kondisi dalam code program yaitu resolveActivity() dalam Intent objek seperti code dibawah ini :

if (mapIntent.resolveActivity(getPackageManager()) != null) {
    ...
}

 

Sebagai contoh menampilkan rute navigasi menuju Masjid Agung Demak.

URI gmmIntentUri = Uri.parse("google.navigation:q=-6.894649906672214,110.63718136399984");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
	startActivity(mapIntent);
}

 

Untuk lebih lanjut mengenai Google Maps Intents dapat dibaca selengkapnya.
 

Berikut ini adalah tutorial membuat aplikasi navigasi dari posisi pengguna ke lokasi tujuan mengunakan Google Maps Intents yang dibuat penulis. Pertama install terlebih dahulu Google Maps pada emulator atau gadget Android.

device-2016-03-28-085812

 

Buat project baru di Android Studio File ⇒ New Project. Kemudian pilih Empty Activity dan melanjutkannya hingga selesai.
 

activity_main.xml
Layout yang digunakan untuk memanggil Navigasi Google Maps Intents.

<?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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.dedykuncoro.rute.MainActivity">

    <TextView
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:textSize="16dp"
        android:layout_marginBottom="10dp"
        android:text="Navigasi Menggunakan Google Maps Intents" />

    <Button
        android:id="@+id/btn_navigasi"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableLeft="@android:drawable/ic_menu_directions"
        android:text="Navigasi" />

</LinearLayout>

 

Buka MainActivity.java dan tambahkan code seperti dibawah ini yang berfungsi memanggil Google Maps Intents sebagai navigasi rute dari posisi pengguna ke lokasi tujuan.
MainActivity.java

package com.dedykuncoro.rute;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

/**
 * Created by Kuncoro on 27/03/2016.
 */
public class MainActivity extends AppCompatActivity {

    /*Deklarasi variable*/
    Button btn_navigasi;
    String goolgeMap = "com.google.android.apps.maps"; // identitas package aplikasi google masps android
    Uri gmmIntentUri;
    Intent mapIntent;
    String masjid_agung_demak = "-6.894649906672214,110.63718136399984"; // koordinat Masjid Agung Demak
    /*Deklarasi variable*/

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // menyamakan variable pada layout activity_main.xml
        btn_navigasi    = (Button) findViewById(R.id.btn_navigasi);

        // tombol untuk menjalankan navigasi goolge maps intents
        btn_navigasi.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // Buat Uri dari intent string. Gunakan hasilnya untuk membuat Intent.
                gmmIntentUri = Uri.parse("google.navigation:q=" + masjid_agung_demak);

                // Buat Uri dari intent gmmIntentUri. Set action => ACTION_VIEW
                mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);

                // Set package Google Maps untuk tujuan aplikasi yang di Intent yaitu google maps
                mapIntent.setPackage(goolgeMap);

                if (mapIntent.resolveActivity(getPackageManager()) != null) {
                    startActivity(mapIntent);
                } else {
                    Toast.makeText(MainActivity.this, "Google Maps Belum Terinstal. Install Terlebih dahulu.",
                            Toast.LENGTH_LONG).show();
                }
            }

        });

    }
}

 

Run Aplikasinya.
 

Download Source Code :

Download

Please share 🙂


Share on FacebookTweet about this on TwitterShare on Google+Pin on PinterestShare on LinkedInEmail this to someone

Related Posts