Belajar Android – Pengenalan Google Map

Jumpa lagi dengan Agus Haryanto diseri tutorial Android, Pada tutorial sebelumnya kita telah mempelajari tentang Mendapatkan koordinat dari GPS. Nah koordinat itu tidak akan berarti lebih apabila tidak kita tampilkan dalam MAP.  Untuk Android Map yang dipakai biasanya adalah Google MAP.

Agar Emulator kita dapat menampilkan MAP Google MAP ada beberapa hal yang harus dilakukan (saya ambi dari http://mobiforge.com/developing/story/using-google-maps-android) :

  1. pada Android SDK harus sudah terinstall Google APIs by Google Inc, Android API 8

2. Masih dari Android SDK, buat Android Virtual Device baru untuk yang kana digunakan untuk emulator yang memnggunakan Fitur Google API. Caranya, klik Virtual Device, lalu klik tombol New akan muncul jendela  “Create New Android Virtual Device”  Isikan seperti gambar dibawah, lalu klik Create AVD

3. Untuk memanfaat kan fitur Google Map ini, kita memerlukan Map API Key, tanpa ini kita tidak akan dapat menampilkan MAP di Android. Bagian inilah yang sering dilupakan, sehingga banyak yang bingung, mendapatkan Map nya tidak tampil.

4. Kalau anda pakai Windows XP cari file debug.keystore. , biasanya terletak di directory C:\Documents and Settings\<username>\Local Settings\Application Data\Android

5. Copykan file debug.keystore ke directory c:\android

6. Kita buat MD5 FingerPrint dengan menggunakan command keytool.exe yang ada pada java SDK, biasanya terletak di “C:\Program Files\Java\<JDK_version_number>\bin”

7. Dari command promt masuk kedirectory tesebut lalu jalankan ketikkan 
“keytool.exe -list -alias androiddebugkey -keystore "C:\android\debug.keystore" -storepass android -keypass android” 
lalu tekan enter


8. MD5 FingerPrint ini kana digunakan untuk membuat Key Goggle Map. 
Sekarang kita buka browser masuk ke “https://developers.google.com/maps/documentation/android/v1/maps-api-signup” 
ikuti petunjuk yang ada.
9. Selamat anda telah sukses mendapatkan Key Google Map. Simpanlah key ini. 
Jangan sampai hilang, karena akan kita pakai untuk develop menggunankan Google Map dian droid.

Panjangyah langkah-langkahnya, ayo terus semangat
Persiapan Sudah selesai, sekarang kita masuk ke pembuatan Aplikasinya, berikut langkah langkahnya.
1.    Seperti biasa, buat New Android Project


2. Pada saat project pertama kali dibuat ada 3 file penting yang langsung dibuat, yaitu

  • main.xml
  • string.xml
  • TampilkanMap.java
3. Edit file main.xml, ketikkan kode seperti dibawah ini
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <com.google.android.maps.MapView
        android:id="@+id/mapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="isi dengan key Google Map API"
        />

</RelativeLayout>

Disini untuk menampilkan MAPnya kita menggunakan tag com.google.android.maps.MapView sedangkan untuk Layoutnya adalah RelativeLayout
Untuk android:apiKey, isi dengan key Google Map yang telah kita buat tadi

4. Untuk dapat melakukan menampilan Map Google Map kita perlu menambahkan <uses-library> com.google.android.maps dan <uses-permission> INTERNET nya melalui file AndroidManifest.xml , buka file AndroidManifest.xml lalu ketikkan seperti kode berikut

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="com.agus" android:versionCode="1" android:versionName="1.0">
	<application android:icon="@drawable/icon" android:label="@string/app_name">
		<uses-library android:name="com.google.android.maps" />
		<activity android:name=".TampilkanMap" android:label="@string/app_name">
			<intent-filter>
				<action android:name="android.intent.action.MAIN" />
				<category android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
		</activity>

	</application>
	<uses-sdk android:minSdkVersion="8" />
	<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>

5. Edit file TampilkanMap.java dan ketikkan kode dibawah ini

package com.agus;

import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import android.os.Bundle;

public class TampilkanMap extends MapActivity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
}

Pada kode diatas class TampilkanMap meng extends class MapActivity, agar class ini dapat menampilkan map.

7. Sekarang mari kita coba run Project BelajarGoogleMap, maka hasilnya akan seperti ini

8. Horee, We can do that J, Alhamdulillah akhirnya MAPnya tampil.
9. Map diatas rasanya masih kurang karena belum ada tombol (navigasi) untuk pengaturan zoom viewnya.
Untuk itu tambahkan kode berikut pada baris terakhir method onCreate

MapView mapView = (MapView) findViewById(R.id.mapView);
mapView.setBuiltInZoomControls(true);

Kalau kita run project kita sekarang, lalu kita klik salah satu bagian map, maka akan muncul zoom controlnya


10.  Kita dapat mengatur (map) peta mana yang ingin kita tampilkan dilayar caranya dengan menentukan koordianat latitude dan longitudenya. Untuk kodenya adalah

double lat = -6.2532592788520005;
double
lng = 106.853239291777;
GeoPoint point = new GeoPoint((int) (lat *1E6),(int) (lng * 1E6));
mapView.getController().animateTo(point);
mapView.getController().setZoom(15);

point adalah koordinat yang kita tentukan,
mapView.getController().animateTo(point);
akan membuat map yang ditampilkan adalah map yang koordinat dtitik tengahnya adalah point
mapView.getController().setZoom(15); akan menset zoom level map nya adalah 15

Sehingga kode lengkap dari TampilkanMap.java adalah


package com.agus;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import android.os.Bundle;

public class TampilkanMap extends MapActivity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        MapView mapView = (MapView) findViewById(R.id.mapView);
        mapView.setBuiltInZoomControls(true);

        double lat = -6.2532592788520005;
        double lng = 106.853239291777;
        GeoPoint point = new GeoPoint((int) (lat *1E6),(int) (lng * 1E6));
        mapView.getController().animateTo(point);
        mapView.getController().setZoom(15);

    }

    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
}

sekarang mari kita run projectnya, maka tampilannya akan seperti ini

Sekarang yang muncul adalah peta jakarta, hal ini terjadi karena kita menset koordinat latitude dan langitudeny adalah salah satu titik lokasi dijakarta

Makin seru saja kan android, setelah berhasil dalam tutorial ini, tentunya kita makin semangat dan selanjutnya akan timbul pertanyaan bagaimana cara membuat marker dan infowindow pada google map di android.
Untuk tutoial marker dan info window insya Allah akan diposting pada tutorial selanjutnya.

Salam hangat
Agus Haryanto

146 comments to Belajar Android – Pengenalan Google Map

  • Agus Haryanto

    @Rendy, Untuk dapat diinstall di HP biasanya file APK yang dibuat menggunakan file keystore sendiri. jadi untuk Key Google Apinya harus digenerate berdasarkan file keystore tersebut

  • Agus Haryanto

    @ayusinthia, Kemungkinan masalahnya sama dengan pauljsenjs, KeyGoogleMap yang digunakan masih dari file debugkeystore, yang mana ini hanya khusus untuk development, sedangkan untuk install diHP, biasanya kita mengeksport project kita menjadi file APK dan dalam prosesnya kita disuruh membuat atau menggunakan file keystore sendiri. nah agar petanya tampil di Handset kita perlu generate ulang Key Google mapnya dengan file keystore tersebut

  • wahyu

    mas ini proses penampilan map nya emang lama ya, dari tadi saya cuma muncul bentuk kotak2 aja, kyk di milimeter blok gitu mas ????

  • mas mau nanya klo dapetin latitude dan longitudenya gmana ?
    misal nya untuk dapatin latitude dan longitudenya alamat rumah saya….

  • wahyu

    mas ini nyoba2 jg ga bisa2 tampilin mapnya .
    gimana ya ?tolong dijawab yah mas urgent nih ,
    hihihi

  • wahyu

    buat mas @opik gimana caranya tahu proxy sama portnya ,
    emulator saya jalan browsernya tapi saya liat proxy sama port mang kosong.

  • Yugie

    @cung cruy pas mau di masukin passwordnya ko gak bisa ya? gak bisa ketik apa2.. Any Solution? 😀

    Thx Before! 😀

  • tirta

    Unable to open stack trace file ‘/data/anr/traces.txt/: Permission denied

    kira2 ini kenapa ya om ?

  • Om Agus, gimana sih cara membuat google maps offline ??

  • diamz

    gan ente kan jelasin gini ‘KeyGoogleMap yang digunakan masih dari file debugkeystore, yang mana ini hanya khusus untuk development, sedangkan untuk install diHP, biasanya kita mengeksport project kita menjadi file APK dan dalam prosesnya kita disuruh membuat atau menggunakan file keystore sendiri. nah agar petanya tampil di Handset kita perlu generate ulang Key Google mapnya dengan file keystore tersebut.’

    nah ane mau tanya, itu gimana yah caranya bikin keystore sendiri di handset???tutornya yah…

    kalo di kompi ane udah jalan,,,thanks berat ^^

  • Agus Haryanto

    @diamz, keystore dapat kita buat sendiri, coba cek tutorial http://agusharyanto.net/wordpress/?p=355

  • kok petanya punya saya Pak g’ muncul pdahal saya udah punya key api map dr google dan udah saya Edit main.xml lalu isikan kode berikut:

    com.google.android.maps.MapView
    android:id=”@+id/mapView”
    android:layout_width=”fill_parent”
    android:layout_height=”fill_parent”
    android:enabled=”true”
    android:clickable=”true”
    android:apiKey=”0M3jys493yPqKtGEr9Tqddnz–4x3nvRT0kfPXg”

    kira2 masalahnya dimna Pak mohon penjelasannya… makasih sebelumnya mas … 🙂

  • makasih ya pak tutorialnya…:D

  • squalcyber

    mas,, udh ane cba running g bsa…
    lngsng force close…
    tu knp y???

    masih belajar…

  • Gan

    Saya sudah mencoba suhu,
    tapi gagal terus, selalu muncul pesan

    “FORCE CLOSE” (program tdk bisa dijalankan di android) 🙁

    letak kekurangannya di mana ya? saya sudah mencoba step by step seperti langkah di atas, di coding tdk ada error.

    Mohon bimbingannya suhu.. 🙂

  • gio

    saya udah copy-paste semua koding di atas, tapi nggak bisa .. kenapa ya…??

  • Agus Haryanto

    @gio, coba ikuti tutorialnya sampai akhir baru run

  • sulaiman

    saya sudah ada fingerprint tapi bukan MD5 melainkan SHA1 dan setelah saya masukkan untuk mendapatkan Api Key, muncul pemberitahuan bahwa fingerprint tidak valid, bagaimana solusinya?

  • sulaiman

    lanjutan
    saya pakai windows 7,

  • Tyo

    @sulaiman mungkin jdk-nya versi 7 jadi kodenya sha1 biar md5 gunakan jdk versi 6..klo gak gunakan converter sha1 to md5

  • dheka

    mas kenapa ketika saya membuat MD5 fingerprint kok malah gak keluar seperti yang digambar. malah keluar seperti ini
    illegal : option :-
    try keytool – help
    padahal saya sudah mengikuti step2 diatas..mohon bantuan.

  • angga

    pak agus..saya sudah mencoba semua tutorialnya dan tidak ada problem…tapi waktu di run muncul Force Close dan di Console muncul ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.angga/.tampilkanmap }

    kira2 apa ya pak?

    thx

  • septian

    mas, kok dicompile blank ya? tampilan hitam n cuma judulnya doang

  • fauziah

    mas ko map sya ngg keluar ya???
    sya udh dpet fingerptintnya tp ngg bisa dgenerate ktanya sidik jari yg anda masukkan salah .solusinya gmn ya mas???

  • Agus Haryanto

    @Fauziah, harusnya kalau sudah ikuti tutorial dengan benar, mapnya akan muncul

  • fauziah

    mas map sya ttp g mncul
    apa krna debugnya??coz d .android sya bkn debug.keystore tp debug doank…ngaruh ngg??tu knp y mas??mohon bantuannya 😉

  • sulai

    @Tyo
    saya sudah convert nilai SHA1 ke MD5…dan sudah dapat API key, tp setelah dimasukkan ke script te2p map tidak muncul.
    setelah itu saya coba instal jdk 6 dan map bisa muncul pke api key dr jdk 6
    masalahY, jdk 7 tidak saya uninstall…jd ada 2 jdk, 6 dan 7
    mohon penjelasanY. apakah nanti ada pengaruhY?
    terima kasih

  • rahman

    mas agus,tampilan peta saya di emulator berhasil tampil..tapi begitu saya coba install di ponsel,peta tidak tampil hanya kotak-kotak,apa ada yang harus di set kalo untuk di install di ponsel?

  • rahman

    sudah bisa mas saya coba lagi setelah saya baca komen2 di atas,terima kasih 😀

  • Fabio

    mas,kok map saya tetep ga bisa keluar ya? Padahal sudah saya ikutin tutorial’y

  • Mas Agus, ada yang perlu ditambahin itu mas. untuk JDK version 1.7.0 jika dengan command
    keytool.exe -list -alias androiddebugkey -keystore “C:\android\debug.keystore” -storepass android -keypass android”

    itu yang nongol cuman keygenerate SHA1, jadi kalo mau dapetin fingerprint MD5 ditambahin sedikit aja commandnya jadi :
    keytool.exe -v -list -alias androiddebugkey -keystore “C:\android\debug.keystore” -storepass android -keypass android”

  • Haidir

    pak agus saya bingung dengan ini punya saya eror disini dari file manifest.xml !!
    gmn edit diapplicationnya ?? tolong tutonya donk mas agus atau yg laennya…

  • Mastah saya mau tanya nih tentang google map..
    kan saya belajar tutorial om agus http://agusharyanto.net/wordpress/?p=269
    udah ga ada eror..
    nah.. pas di running ga muncul muncul mapnya.. dah di tunggu lamaaaa.. ampe di tinggal mandi ga muncul juga :nangis:
    munculnya cuma kotak kotak g ada mapnya.. :bingung:

    log cat nya seperti ini :
    http://i.imgur.com/rQjab.jpg

    screenshot output :
    http://i.imgur.com/mhSBT.jpg

    Source Code :
    http://www.mediafire.com/download.php?53736m4rp0gev4i

    Thanks gan 🙂

  • Agus Haryanto

    @vadhiem, connect internet nggak ?. lalu kalau connectnya pakai modem, coba LAN ehthernetnya didisable

  • quote:
    @vadhiem, connect internet nggak ?. lalu kalau connectnya pakai modem, coba LAN ehthernetnya didisable

    @om Agus:
    wah bener mas.. udah bisa sekarang.. keluar tampilan mapnya.. Thanks..
    tadi saya lanjut tutor berikutnyaa.. tapi ga nongol om cm layar putih aja, tp ga kotak2 kayak kemarin..
    ss nya :
    http://i.imgur.com/fLywD.jpg

  • sudah bisa om.. terima kasih sangat membantu..

  • Haidir

    mas gmn cara daftarin keystore yg versi mas?? yg link mas kasih yg versi MD5,,sedangkan java JDK yg saya sidik jari versi 1.7.0 ada link untuk daftarin sidik jadi yg versi SHA1 gak mas ??

  • dimas

    Mas agus ko itu gk di buat class MapActivity nya ya??
    boleh minta source program untuk class MapActivity nya gk, karna untuk class tampilkanmap belum lengkap klo blum dibuat class mapactivity(terjadi error).. mohon bimbingan nya ya mas agus, terimakasih sebelumnya 🙂

  • sam

    om agus mau tanya, klo koneksi speedy ke emulator android gmn ya, karena map nya tidak mau muncul, saya browsing kesana kemari bnyak yg jwab itu karena koneksi emulator yg tidak secara langsung terkoneksi. karena saya menggunakan speedy jd koneksi internet emulator harus menggunakan proxy tp gk akan bisa running aplikasi jika menggunakan proxy, tolong kasih solusinya om agus. untuk google api dan semua coding nya sudah benar om tp tetep saja ketika di running map tidak muncul :nangis:

    pesan log nya seperti ini: couldn’t get connection factory client

  • abenk

    kenapa ya pas command promtnya key toolnya eror.. tulisannya, keytool error :java.lang.Exception: Keystore file does not exist: C:\android\debug.keystore

    saya pake windos7.. kira-kira salah dimananya??
    mohon bantuannya…

  • Imam

    Pak Agus:
    Yang dimaksud keystore itu file yang debug.keystore atau keystore hasil generate assign android yang untuk di device?

    Saya sudah mencoba generate md5 dari debug.keystore dan register di google signup dan Api-nya saya gunakan (apinya saya copy paste langsung dari google -tidak ketik manual) namun hasilnya yang muncul hanya kotak-kotak di device saya.

    Note:
    Saya menggunakan jdk1.7.0_03

  • Imam

    Oh iya koneksi internet juga bagus, kira2 dimananya ya kurang? sudah saya buat persis seperti yang ditulis pak agus diatas

    Terima kasih

  • allyza

    mas saya ikuton tutorial yg diatas tapi ko ga jalan ya programnya ?
    selalu ada bacaan ” The import com.google cannot be resolved” itu kenapa ya mas ??
    mohon bantuannya

  • sam

    Gmana dengan kasus link di bawah ini?
    https://forum.jquery.com/topic/google-maps-inside-jquery-mobile

    kayaknya ga pakai API key? kok bisa nampilin map ya (versi penulis).
    Namun kalo saya coba ga bisa nampil map. Apa kira2 letak kesalahannya ketika
    saya coba. Terima kasih sebleumnya.

  • wahyu adi nugroho

    kalo untuk generate apikey yg untuk HP apa sama seperti ini caranya?

  • kitok

    om,mau tanya bagaimana teknik mendapatkan lokasi gps di hp android dan web….

  • indraep

    untuk di ubuntu gimana yah mas ?

  • Minta Tolong

    Om agus. I love your tutorial very much. Om mau tanya dong, kan udah jadi nie mapnya. Gimana caranya supaya ngebatasin satu daera doang. Misalnya cuman mau ngebatasin kota Jakarta aja. Jadi di map cuman nampilin kota Jakarta aja, kalau digeser ya cuman kota Jakarta tanpa sekitarnya. Apakah latitude longitudenya dibatasi? Bantuin dong om. Om agus baik dah. Maaf nanyanya kalong (alias subuh”).. Hahaha.. Nice, if you want to reply. Thank you so much. 😀

  • Nanang

    to Minta Tolong, karena pake google map jadi gak bisa dibatasin satu wilayah az, jadi tetep nampilin seluruh dunia

  • musashi

    mau tanya mas, saat jalanin MD5 Fingerprint kok saya munculnya bukan MD5 melainkan SHA1 yac?
    mohon pencerahannya….

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>