GULANGGULING.COM

Cara Membuat aplikasi Android untuk membuka Google Maps

GULANGGULING.COM | CODING ANDROID – Halo gaes, setelah sekian lama tak menulis soal bab koding, kali ini saya mau mencoba membiasakan lagi menulis soal babagan koding, kali ini saya akan mencoba belajar dan menuliskan tentang koding android.

Sebelum meneruskan, perlu dipahami bahwa tutorial koding yang saya buat ini adalah hal yang sederhana, tentu saja untuk keperluan saya belajar dan semoga anda yang membaca juga dapat belajar dari tulisan ini.

Berawal dari pertanyaan sederhana, Bagaimana cara membuat tombol di aplikasi Android yang otomatis membuka google maps? tidak hanya dapat membuka saja, namun inginnya langsung bisa menentukan lokasi ketika aplikasi Maps tersebut terbuka.

Baca-baca dari sumber dokumentasi, Ada beberapa metode untuk membuat aksi tombol yang dapat membuka aplikasi peta Google. Yang pertama, kita dapat membuka aplikasi Google Maps sambil menentukan lokasi, yang kedua kita juga bisa membuka aplikasi maps langsung dalam mode street view, kita juga bisa menentukan navigasi, selain itu ada pula cara membuka peta beserta query string untuk mencari lokasi seperti halnya : Restourant.
Langsung saja ya, dibawah ini adalah bentuk koding untuk membuka aplikasi google maps dan mengarahkannya pada titik koordinat tertentu. Oh ya, untuk membuka aplikasi lain kita memanfaatkan intent. 

Uri gmmIntentUri = Uri.parse("geo:53.4630892,-2.2930782");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Baris kode diatas jika diterjemahkan kira kira begini : membuka aplikasi Google Maps com.google.android.apps.maps dengan memberikan titik koordinat geo  40.7053048,-73.8976729.

Mode Street View

Selain langsung menentukan titik lokasi, kita juga bisa membuatnya dalam mode street view saat aplikasi Google Maps terbuka. Dengan menggunakan mode uri parse google.streetview:cbll 

Uri gmmIntentUri = Uri.parse("google.streetview:cbll=53.4633197,-2.2915337");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Source code diatas jika dieksekusi maka akan membuka aplikasi peta Google dalam mode street view dari koordinat yang sudah kita tentukan.

Query String

Kita juga dapat menambahkan query string saat membuka aplikasi android. Misalnya menambahkan pencarian seperti : Restourant atau pom bensin terdekat. Baris kode dibawah menjelaskan bahwa kita akan membuka aplikasi Google Maps sambil mengirimkan query string untuk mencari restourant.

Uri gmmIntentUri = Uri.parse("geo:-7.7928119,110.3660043?q=restaurant");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

 

Praktek Membuat Aplikasi Android

Dari basis pengetahuan diatas, saya mencoba membuat aplikasi sederhana seperti pada gambar dibawah. Intinya membuat tombol atau button yang jika di klik akan membuka peta google.

Aplikasi ini saya buat sesederhana mungkin, ya semacam langsung create new project, tanpa menambah library apapun. Dependensi-nya seperti dibawah

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
}

Membuat Layout content_main.xml :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="ggdc.opengooglemaps.MainActivity"
    tools:showIn="@layout/activity_main">

    <TextView
        android:id="@+id/txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="30dp"
        android:text="Open Google Maps!"
        android:textSize="30dp" />

    <Button
        android:id="@+id/btnNyk"
        android:layout_width="match_parent"
        android:gravity="center"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txt"
        android:layout_centerHorizontal="true"
        android:text="New York" />

    <Button
        android:id="@+id/btnOld"
        android:layout_width="match_parent"
        android:gravity="center"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btnNyk"
        android:layout_centerHorizontal="true"
        android:text="Old Trafford" />


    <Button
        android:id="@+id/btnMount"
        android:layout_width="match_parent"
        android:gravity="center"
        android:layout_height="wrap_content"
        android:layout_below="@id/btnOld"
        android:layout_centerHorizontal="true"
        android:text="Mount Everest" />

    <Button
        android:id="@+id/btnStOld"
        android:layout_width="match_parent"
        android:gravity="center"
        android:layout_height="wrap_content"
        android:layout_below="@id/btnMount"
        android:layout_centerHorizontal="true"
        android:text="Street View Old Trafford" />

    <Button
        android:id="@+id/btnStMount"
        android:layout_width="match_parent"
        android:gravity="center"
        android:layout_height="wrap_content"
        android:layout_below="@id/btnStOld"
        android:layout_centerHorizontal="true"
        android:text="Street View Mount Everest" />

    <Button
        android:id="@+id/btnYog"
        android:layout_width="match_parent"
        android:gravity="center"
        android:layout_height="wrap_content"
        android:layout_below="@id/btnStMount"
        android:layout_centerHorizontal="true"
        android:text="Restourant at Yogyakarta" />

    <TextView
        android:id="@+id/txt2"
        android:layout_marginTop="20dp"
        android:layout_below="@+id/btnYog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="30dp"
        android:text="- Ardhitya Wiedha Irawan - aiueo.web.id -"
        android:textSize="12dp" />


</RelativeLayout>

Dari layout diatas, kita membuat activity class nya. source code nya bisa dilihat dibawah :

package ggdc.opengooglemaps;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

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

        Button btnNyk = (Button) findViewById(R.id.btnNyk);
        btnNyk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Uri gmmIntentUri = Uri.parse("geo:40.7053048,-73.8976729");
                Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
                mapIntent.setPackage("com.google.android.apps.maps");
                startActivity(mapIntent);

            }
        });

        Button btnOld = (Button) findViewById(R.id.btnOld);
        btnOld.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Uri gmmIntentUri = Uri.parse("geo:53.4630892,-2.2930782");
                Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
                mapIntent.setPackage("com.google.android.apps.maps");
                startActivity(mapIntent);

            }
        });

        Button btnStOld = (Button) findViewById(R.id.btnStOld);
        btnStOld.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Uri gmmIntentUri = Uri.parse("google.streetview:cbll=53.4633197,-2.2915337");
                Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
                mapIntent.setPackage("com.google.android.apps.maps");
                startActivity(mapIntent);

            }
        });

        Button btnMount = (Button) findViewById(R.id.btnMount);
        btnMount.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Uri gmmIntentUri = Uri.parse("geo:27.9893083,86.9237386");
                Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
                mapIntent.setPackage("com.google.android.apps.maps");
                startActivity(mapIntent);
            }
        });

        Button btnStMount = (Button) findViewById(R.id.btnStMount);
        btnStMount.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Uri gmmIntentUri = Uri.parse("google.streetview:cbll=27.9531846,86.6944041");
                Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
                mapIntent.setPackage("com.google.android.apps.maps");
                startActivity(mapIntent);
            }
        });

        Button btnYog = (Button) findViewById(R.id.btnYog);
        btnYog.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Uri gmmIntentUri = Uri.parse("geo:-7.7928119,110.3660043?q=restaurant");
                Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
                mapIntent.setPackage("com.google.android.apps.maps");
                startActivity(mapIntent);
            }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

Dengan code diatas, maka setiap button di klik akan membuka aplikasi Google maps dan langsung menuju ke titik koordinat yang sudah kita tentukan beserta mode yang kita inginkan.

Nah sampai disini dulu tutorial kali ini, semoga bermanfaat bagi saya dan bagi Anda. Untuk kamu yang ingin mencoba membuat aplikasi ini silakan download dari halaman github saya dan jangan lupa tonton video dibawah ini :

Sampai ketemu pada tutorial selanjutnya.

 

Download Source Code from GitHub