Belajar Android Menampilkan Map dengan Android GoogleMaps API V2

Pada tutorial sebelumnya tentang Map kita sudah berhasil menampilkan map dan marker pada android dengan menggunakan Android GoogleMaps v1. Tetapi sejak bulan maret 2013 pembuatan key untuk Googlemaps V1 sudah tidak bisa lagi. Sehingga mau tidak mau kita harus menggunakan Android GoogleMaps V2. Harus diakui langkah untuk mendapatkan keynya lebih rumit dari yang GoogleMaps V1. Untuk itu pad tuorial ini akan diberikan juga langkah-langkah mendapatkan keynya. Mari kita mulai langkah-langkahnya.

1. Buka Android SDK Manager, Install Google Play Services dari jendela Android SDK Manager klik folder Extra lalu centang Google Play Services

2. Buat New Android Project beri nama PetaLokasi.

    Catat nama packagenya “net.agusharyanto.petalokasi” karena ini akan digunakan untuk membuat API KEY Google Map V2.

3. Langkah selanjutnya adalah menyediakan API KEY Googlemap. Karena saat ini Key untuk GoogleMap API v1 sudah tidak bisa lagi digunakan maka kita harus menggunakan Key GoogleMap API v2.

4.Cari lokasi file debug.keystore biasanya terdapat pada direktori “c:\Users\<user>\.android\debug.keystore” contoh “c:\Users\agus\.android\debug.keystore

5. Masuk kedirektori bin pada java jdk contoh “C:\Program Files\Java\jdk1.7.0_10\bin

6. Jalankan command untuk mendapatkan key sha1 dari debug .keystore

Syntak Commandnya adalah

keytool -list -v -alias androiddebugkey -keystore <path_to_debug_keystore>debug.keystore -storepass android -keypass android

contoh eksekusinya

keytool -list -v -alias androiddebugkey -keystore C:\Users\agus\.android\debug.keystore -storepass android -keypass android

    Catat nilai

    SHA1: 24:97:A6:EB:22:24:B7:5C:A0:78:F1:96:12:FE:97:27:5A:DB:8D:0D

Registerkan Key diatasi melalui Google Api Console (https://code.google.com/apis/console/?pli=1 ) . Untuk masuk kesini kita harus punya Account GMAIL

    Klik Create project… akan muncul jendela Google apis

Aktifkan Google Maps Android API V2

Sekarang Saatnya membuat Key untuk aplikasinya. Pada Google Apis klik API Access

isikan dengan

24:97:A6:EB:22:24:B7:5C:A0:78:F1:96:12:FE:97:27:5A:DB:8D:0D;net.agusharyanto.petalokasi

Klik Create

Catat API Keynya, ini akan digunakan dalam aplikasi.

AizaSyAkJYisD9-6HB8D1ggkkWKZVtgNCLg8Fyk

Langkah selanjutnya kita harus menginclude Google Play Services sebagai library projectnya.Hal yang harus dilakukan terlibuh dahulu adalah mengimport Project Google Play Service Library ke workspace saat ini. Klik Import Android Project, set Root Directory ke direktori kita menginstall Google Play Service, misalnya saja “C:\Program Files (x86)\Android\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib”

Centang Copy projects into workspace

Selanjutnya adalah menyertakan library ini dalam project kita. Caranya klik kanan pada project PetaLokasi lalu pilih properties

7. Kita harus mendaftarkan Key yang kita dapat pada AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.agusharyanto.petalokasi"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="17" />

    <permission
        android:name="net.agusharyanto.petalokasi.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

    <uses-permission android:name="net.agusharyanto.petalokasi.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="net.agusharyanto.petalokasi.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyAkJYisD9-6HB8D1ggkkWKZVtgNCLg8Fyk" />
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
    </application>

</manifest>

8. Edit file activity_main.xml lalu ketikan kode berikut

<RelativeLayout 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"
    tools:context=".MainActivity" >

    <fragment
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.MapFragment" />

</RelativeLayout>


9. Edit class MainActivity.java lalu ketikan kode berikut

package net.agusharyanto.petalokasi;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

public class MainActivity extends  Activity {
	  static final LatLng RAGUNAN = new LatLng(-6.3039, 106.8267);
	  static final LatLng TAMANMINI = new LatLng(-6.29436, 106.8859);
	  private GoogleMap map;

	  @Override
	  protected void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.activity_main);
	    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
	        .getMap();
	    Marker ragunan = map.addMarker(new MarkerOptions().position(RAGUNAN)
	        .title("Ragunan"));
	    Marker tamanmini = map.addMarker(new MarkerOptions()
	        .position(TAMANMINI)
	        .title("Taman Mini")
	        .snippet("Taman Mini itu Indah")
	        .icon(BitmapDescriptorFactory
	            .fromResource(R.drawable.ic_launcher)));

	    // Move the camera instantly to hamburg with a zoom of 15.
	    map.moveCamera(CameraUpdateFactory.newLatLngZoom(RAGUNAN, 15));

	    // Zoom in, animating the camera.
	    map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
	  }

	  @Override
	  public boolean onCreateOptionsMenu(Menu menu) {
	    getMenuInflater().inflate(R.menu.main, menu);
	    return true;
	  }

	}

9. Saat ini untuk menjalankan Project yang memggunakan Android GoogleMap V2 tidak bisa langsung di run pada emulator android,

kita perlu install 2 apk yaitu venton.apk dam gms.apk melalui adb command, jadi kalau tidak mau repot run di device langsung,  Mari kita run projectnya

Pertama akan muncul 2 marker, lalu tap lah masing-masing marker akan memunculkan info window.

Semoga Bermanfaat

Agus Haryanto

Pembicara Seminar IT

Trainer Workshop Android

sumber

http://vogella.com

111 comments to Belajar Android Menampilkan Map dengan Android GoogleMaps API V2

  • doniher

    lanjutan >> waktu di daftarin ke api console udah lengkap sama syarat2 yg mas jeaskan.. sha21: ********;nama project
    udah lengkap mas… tpi tetap invalid

  • sufrie

    Discripsi error kaya gini gan..:

    Description Resource Path Location Type
    The container ‘Android Dependencies’ references non existing library ‘C:\Users\Sufrie\android-sdks\google-play-services_lib\bin\google-play-services_lib.jar’ WisataKuliner Build path Build Path Problem..

    Kira – kira apa nya gan,padahal Listhing program sudah bner,,,

  • mayang

    pak mau tanya, script sudah tidak ada error tapi pas dirun di emulator kok ngga jalan ya? dan pas saya install di hp juga petanya tidak muncul.. hanya blank abu-abu saja.. itu kenapa ya? mohon bantuannya 🙁 terima kasih

  • gus surya

    07-25 03:18:44.547: E/Google Maps Android API(6651): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).

    tolong informasinya yw bang.
    tankz

  • musa

    pak agus kalau ditampilkan diserver yang terhubung dengan google map gitu apakah bisa,bagaimana caranya pak?

  • assalam mas agus dan agan2 sekalian
    mohon pencerahannya:
    sintaxnya eror!!!
    semua importx g’ dikenali…

    import com.google.android.gms.maps.CameraUpdateFactory;
    import com.google.android.gms.maps.GoogleMap;
    import com.google.android.gms.maps.MapFragment;
    import com.google.android.gms.maps.model.BitmapDescriptorFactory;
    import com.google.android.gms.maps.model.LatLng;
    import com.google.android.gms.maps.model.Marker;
    import com.google.android.gms.maps.model.MarkerOptions;

    public class MainActivity extends Activity {
    static final LatLng RAGUNAN = new LatLng(-6.3039, 106.8267);
    static final LatLng TAMANMINI = new LatLng(-6.29436, 106.8859);
    private GoogleMap map;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
    .getMap();
    Marker ragunan = map.addMarker(new MarkerOptions().position(RAGUNAN)
    .title(“Ragunan”));
    Marker tamanmini = map.addMarker(new MarkerOptions()
    .position(TAMANMINI)
    .title(“Taman Mini”)
    .snippet(“Taman Mini itu Indah”)
    .icon(BitmapDescriptorFactory
    .fromResource(R.drawable.ic_launcher)));

    // Move the camera instantly to hamburg with a zoom of 15.
    map.moveCamera(CameraUpdateFactory.newLatLngZoom(RAGUNAN, 15));

    // Zoom in, animating the camera.
    map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);

  • lolin

    Mas agus, mau nanya nih, kenapa ya map v2 di beberapa device jadi black screen ya? pertamanya oke map muncul, tapi kalau dibuka lagi setelah di tutup aplikasinya atau change orientationnya kok jadi blackscreen ya? cuma muncul zoom button aja dengan layar hitam.

  • Agus Haryanto

    @lolin, Harusnya tidak ada masalah. selama ini saya coba lancar jaya

  • adhityapp

    assalamualaikum mas Agus,
    di project saya setelah import google library, di properties project saya tidak ada Google API mas, itu masalahnya dimana ya?

  • Rijal

    mas agus, code dibawah ini kok error ya?
    import com.google.android.gms.maps.CameraUpdateFactory;
    import com.google.android.gms.maps.GoogleMap;
    import com.google.android.gms.maps.MapFragment;
    import com.google.android.gms.maps.model.BitmapDescriptorFactory;
    import com.google.android.gms.maps.model.LatLng;
    import com.google.android.gms.maps.model.Marker;
    import com.google.android.gms.maps.model.MarkerOptions;

    tulisan errornya : GoogleMap cannot be resolved to a type
    kenapa ya mas errornya?
    mohon pencerahannya mas. terima kasih

  • Agus Haryanto

    @Rizal, Coba cek dituorial ini dulu http://agusharyanto.net/wordpress/?p=893

  • Rijal

    sudah saya cek mas,tapi code yg itu salah mas,,
    apa SDK dan ADT saya bermasalah ya mas??
    mohon pencerahannya mas,terima kasih

  • Taken

    Mas Agus, bgmna buat LBS di map V2 ??

  • mas orang mana ya sebelumnya, saya ada skripsi mengenai LBS, saya ud hampir frustasi akibat program lbs yg saya buat ga jalan, klo bsa COD mas ni pin saya mas 311FED2A dan 085774361992,

  • Agus Haryanto

    @chairil adnan, coba lihat di menu jasa konsultasi. disitu ada kok alamat saya beserta teleponnya.

  • andrew

    mas, mau tnya uda ngikutin tutorialnya kok, aplikasinya muncul gambar abu” doank, terus ada grid”nya alias PETANYA NDK MUNCUL….
    ada yang bisa tolongin? HELP PLIS

  • M.Syaifullah

    Mas, di eclipse ane udah ga ada error. trus ane coba run langsung di galaxy chat tapi kok program closed ya mas?

    Mohon solusinya,

  • Ian Firdaus

    Alhamdulillah bisa running juga tutorialnya sangat bermanfaat untuk project pertama :D,
    Tapi kadang-kadang di layar keluar kelap-kelipnya itu kenapa pak agus??

  • Mas Agus, saya sudah coba dan sudah cek secara coding sudah OK tapi program waktu saya jalankan ke HP kok pesannya “Unfotunately, PetaLokasi has stopped” apa yang masih masalah yah..?

  • gusri

    @spurwa itu kan force close, coba cek google api key bener gak? inet koneksi jg cb lihat.sekalian deh class sm layoutnya sama in sm punya om agus.

  • Agus Haryanto

    Untuk teman-teman semua, kalau untuk map v2 ini saya menyarankan untuk runningnya langsung dihanphonenya. Karena memang tidak mudah agar emulator bisa menampilkan map

  • Rantika

    pak saya sudah bisa codingnya nggak eror, dan saya eksport ke .apk lalu saya instal ke hp saya tpi kok mau dibuka aplikasinya muncul tulisan tiba2 berhenti gitu ya pak??itu yang salah apanya, mohon bantuannya pak

  • maaf ni sebelum nya agus klo emnk udh ada yg nanya,
    klo untuk target dan spesifikasi AVD untuk maps api v2 apa yh?
    Soalnya ketika saya run maps v2 semua AVD yg saya buat di Silang merah serta tidak bisa di buka???
    MOHON BANTUAN

  • Agus Haryanto

    Untuk Map V2, Sebaiknya testnya langsung di Device Android

  • nehru

    maaf OOT pak, saya mau tanya maksudnya kalau kita mengambil data JSON menggunakan android ICS ke atas harus ditambahkan ‘Assynchtask’ itu apa ya?? bisa kasih tutorial tentang Assynchtask tersebut

  • nehru

    maaf OOT pak, saya mau tanya maksudnya kalau kita mengambil data JSON menggunakan android ICS ke atas harus ditambahkan ‘Assynchtask’ itu apa ya?? bisa kasih tutorial tentang Assynchtask tersebut

    saya baca tentang posting anda tentang ‘Tutorial Android PHP dan MySQL’ yang menampilkan harga makanan, saya coba di ICS hasilnya tidak bisa ditampilkan, mohon pencerahannya pak..

  • Agus Haryanto

    @nehru, coba cek di http://agusharyanto.net/wordpress/?p=739 untuk pelajari tentang assynctask

  • sulaeman hafai

    misi mas agus saya mau nanya..
    saya dah ngikutin alur dari cara di atas tapi saya mentok di pas menginclude Google Play Services sebagai library projectnya. contoh di atas kan “C:\Program Files (x86)\Android\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib”
    nah dah saya cari-cari tapi ko’ gak ada ya “google-play-services_lib” itu..
    mohon bantuannya mas agus, terimakasih..

  • Agus Haryanto

    @sulaeman, install adt-bundlenya (sdk) dimana ?. kalau contoh diatas itu di laptop saya, tentu bisa berbeda dengan di laptop atau komputer lain

  • Dias Aziz

    setContentView(R.layout.activity_main);
    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

    Marker tamanmini = map.addMarker(new MarkerOptions()
    .position(TAMANMINI)
    .title(“Taman Mini”)
    .snippet(“Taman Mini itu Indah”)
    .icon(BitmapDescriptorFactory
    .fromResource(R.drawable.ic_launcher)));
    getMenuInflater().inflate(R.menu.main, menu);

    //errornya : ada 4 syntax error pak, semuanya di variable ‘R’–>R cannot be resolved to be a variable

    Mohon pencerahannya pak agus, terimakasih 🙂

  • sulaeman hafai

    ohh iya mas.. saya yang lupa naro instal adt-bundlenya (sdk).
    tpi dah ketemu heehee terimakasih bnyak mas agus 🙂

  • rahman

    assalamualaikum
    pa, knp ya waktu dicoba di device android saya sony xperia E, error “unfortunately (app name) has stopped”
    karena penasaran saya coba juga di emulator dengan install gms terlebih dulu, sama hasilnya
    mohon pencerahannya pa
    Terimakasih

  • wafa

    pak mau tanya, script sudah tidak ada error tapi pas dirun di emulator kok ngga jalan ya? dan pas saya install di hp juga petanya tidak muncul.. hanya blank abu-abu saja.. itu kenapa ya? mohon bantuannya 🙁 terima kasih

  • aldinuari

    mas saya kok cek debug.keystore ga ada ya?
    lokasinya sudah saya ikutin seperti diatas “c:\Users\\.android\debug.keystore” contoh “c:\Users\agus\.android\debug.keystore”

  • Agus Haryanto

    @wafa dan lainnya yang kesulitan menampilkan map, Coba perhatikan AndroidManifest.xmlnya
    apakah sudah ditambahkan

    dan

    Contohnya ada diartikel ini, sudah saya tambahkan

  • ifa

    mas agus, coding sudah tidak eror, tp waktu di coba d hp android saya muncul “unfortunately, LearnGooglemApsV2 has stopped”
    mohon bimbingannya mas.

  • ramadhani

    mas saya mau tanya nih, kenapa ya maps di aplikasi saya tidak mau keluar?
    padahal dari kodingannya sudah benar semua. atau ada settingan khusus untuk eclips nya ya?
    terima kasih

  • ronald

    mas mau nanya ini, gimana ya cara untuk buat invisible marker, ada gk tutorialnya mas? mhon bntuannya

  • danar

    mas kok erornya kayak gini solusinya gimana ya..??
    “(proses net.danarutoo.map2)has stopped unexpectedly.please try again”
    [2014-05-29 14:58:25 – map2] ——————————
    [2014-05-29 14:58:25 – map2] Android Launch!
    [2014-05-29 14:58:25 – map2] adb is running normally.
    [2014-05-29 14:58:25 – map2] Performing net.danarutoo.map2.MainActivity activity launch
    [2014-05-29 14:58:25 – map2] Failed to find an AVD compatible with target ‘Google APIs’.
    [2014-05-29 14:58:27 – map2] Still no compatible AVDs with target ‘Google APIs’: Aborting launch.
    [2014-05-29 14:58:27 – map2] Performing net.danarutoo.map2.MainActivity activity launch
    [2014-05-29 14:58:36 – map2] Launching a new emulator with Virtual Device ’emulator’
    [2014-05-29 14:58:37 – map2] New emulator found: emulator-5554
    [2014-05-29 14:58:37 – map2] Waiting for HOME (‘android.process.acore’) to be launched…
    [2014-05-29 14:59:32 – map2] HOME is up on device ’emulator-5554′
    [2014-05-29 14:59:32 – map2] Uploading map2.apk onto device ’emulator-5554′
    [2014-05-29 14:59:44 – map2] Installing map2.apk…
    [2014-05-29 15:00:47 – map2] Success!
    [2014-05-29 15:00:48 – map2] Starting activity net.danarutoo.map2.MainActivity on device emulator-5554

  • dita

    pak tanya, klo keytool nya g bsa kbaca di cmd nya gmna?
    terima kasih

  • andri

    thanks pak agus atas tutorialnya,
    tapi kok cma bisa di hp pak , klo emulator ngga bisa , padahal sudah install vending dan gms.
    mohon solusinya biar bisa di emulator?
    terimah kasih 🙂

  • Agus Haryanto

    @andri, Nggak usah intall GMS. Run saja dengan emulator Google API harusnya peta sudah bisa tampil

  • Geni

    Selamat Malam mas, saya sudah coba tutorialnya dan alhamdulillah jalan, dan yang mau saya tanyakan mas ada tutorial LBS berbasis Android yang memakai database memakai xampp dan memakai sistem CRUD, saya mohon arahannya trims

  • shaa_r

    Thanks untuk tutorialnya pak agus,saya sudah coba tutorialnya,Alhamdulillah ga ada kendala sampai akhirnya saat semua coding telah saya tulis dan saya Run As project tsb saya mendapati Error,kira-kira begini deskripsinya..

    kira-kira begini deskripsinya..
    The container ‘android depedencies’ references non exiting library ‘C:\\Android-SDK-Windows\google-play-service_lib\bin\google-play-service_lib.jar’
    & the project cannot be built until build path errors are resolve

    itu kenapa yaa Mas?Mohon penjelasannya untuk saya yg baru pemula ini

  • Adi

    Mas versi javanya harus yang versi 7 ya?
    gak bisa yg versi 6 atau 8?

  • adha aja

    mas agus,,,project ini udah bisa saya jalankan,,,

    kalau saya mau menambahkan posisi saya bagaimana yahh??? kayak mylocationoverlay

  • Agus Haryanto

    @adha, sudah ada kok tutorialnya diblog ini

  • Rizanuary

    mas agus, saya ada error di bagian ini :

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
    }
    errornya : menu cannot be resolved or is not a field

    tolong pencerahannya mas

  • Rizanuary

    problem resolve mas, ternyata R.menu.main itu gk kebaca soalnya di folder res saya tidak ada folder menu dan di dalam folder menu tidak ada file main.xml mas. alhamdulillah main.xml saya manipulasikan isinya dan baru tidak ada error pada MainActivitnya.

  • vhiaku

    mas agus mohon bantuannya dong , sy buat webview trus sy tambahin coding untuk ads nya tp pas di run malah “unfortunately app has stopped” itu knpa ya ? makasih banyak sebelumnya

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>