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

  • iyanbomberz

    http://s24.postimg.org/tn2jkwp2d/Untitled.png

    kok saya tampilannya kek gini g muncul mapnya mas?
    knp ya?

  • Agus Haryanto

    @iyanbomberz, coba test didevice langsung

  • zaenal

    kok yang ini masih ada salah ya pak
    getFragmentManager dan findFragmentById

    kira-kira knp ya pak ?

  • fransdarmawan

    mau bertanya pak.. itu harus pakai google play service ya? kan saya pke galileo, nah dstu gda google play service nya.. apa harus ganti eclipse?

  • wandi

    pak kenapa ya, kok setelah saya coba ke divice nya putih semua? salah nya dimana ya pak?

  • Agus Haryanto

    @fransdarmawan, pakai eclipse yang terbaru saja.

  • Andre

    Kalo di linux gmn cara nya ya pak untuk melihat Fingerprint nya?

  • fransdarmawan

    pak itu mencari venton.apk dan gms.apk dimana ya? sudah dicari d google, hasilnya nihil juga. tolong minta pencerahannya pak buat skripsi saya. makasih

  • andreza

    selamat sore pak,, cara bikin tulisan berjalan yang ada di aplikasi kalender itu gimana ya??

  • fransdarmawan

    selamat pagi pak. Ada problem pada getFragmentManager dan findFragmentById (class requires api lvl 11 (current 8)) itu bagaimana cara mengatasinya ya pak?

  • pak saya mempunyai masalah seperti si zaenal, apakah yang harus di benerin dari source codenya?

  • Wedar

    @fransdarmawan coba pakai getSupportFragmentManager biar bisa di pakai untuk semua level api. tapi support librarynya harus sudah terpasang.

  • Rizanuary

    @wedar cara setting support librarynya bagaimana?

  • deni

    pak numpang tanya..kok punya saya mau nampilin code sha1 ga bisa-bisa ya…padahal sudah sesuai dg step-stepnya

  • iva

    mas, bagaimana cara membuat Direction GoogleMap JSON pada google map v2?

  • abdul syukur

    itu venton.apk atau vending.apk yah?

  • kholis

    Pak kok saya ada error ya pas mau di jadikan APK di string.xml itu gimna ya??

  • Agus Haryanto

    @abdul.syukur, ada kesalahan nama serpertinya yang betul gms.apl dan vending.apk itu file apk yang dapat membuat emulator bisa display map v2

  • wandi

    mas saya sudah install gms.apk dan vending.apk nya tapi masih ngak display maps v2 nya, padahal sudah sukses, jadi salah nya dimana ya mas? thx ya mas agus

  • Agus Haryanto

    @wandi, koneksi internetnya jalan ?. tampilannya jadi apa ?

  • teguh jiwandana

    mas kok getFragmentManager() nya belum ada fungsinya ya?

  • bayu

    mas, saya sudah coba tapi muncul maps nya hanya putih saja tapi saya sudah generate api key nya sesuai dengan laptop yang digunakan.

  • iwan fp

    mas saya udah coba di hp langsung tapi ga muncul mapnya cuma putih aja.
    saya pake gingerbread.apa pengaruh dari versi androidnya?

  • Luffynas

    Ma.ap mas Agus, saya mencoba membantu teman-teman yang kesulitan ketika memperaktekkan Tuturial diatas.

    untuk teman2 tutorial diatas sudah tidak berlaku untuk APIs V.2, tutorial diatas tidak ada ERROR tapi hannya White Screen karena APIs V.2 tidak support dengan Emulator melainkan Support Device(Smart Phone Android).

    tapi 3 minggu belakangan ini saya mencari2 solusi untuk bisa dijalankan di Emulator dan Akhirnya bisa!

    Carannya :
    1. Install GoogleServiceFramework.apk to /system/app
    2. Install Vending.apk to /system/app
    3. Install GoogleLoginService.apk to /system/app
    4. Install GooglePlayService.apk to /system/app

    cara installnya melalui ADB yang tersedia di Root Android komputer masing-masing.

    Terima Kasih.

  • Jayusman

    pertanyaan hampir sama dengan fransdarmawan. Ada problem pada getFragmentManager dan findFragmentById (class requires api lvl 11 (current 8)) itu bagaimana cara mengatasinya ya pak? Saya menggunakan SDK 4.2.2.. apa ini pengaruh? dan saya harus downgrade.. ? Lalu untuk mendapatkan Google API..
    contoh dari mas agus
    24:97:A6:EB:22:24:B7:5C:A0:78:F1:96:12:FE:97:27:5A:DB:8D:0D;net.agusharyanto.petalokasi

    yang saya mau tanya.. klo saya bikin aplikasi berikut nya dengan applikasi Maps apakah saya perlu registrasi lagi..? dengan nama package yg berbeda net.agusharyanto.petalokasi2..?

  • Rozma

    Mas mau tanya, klo pas install Google play servicenya ada pesan seperti ini : “Failed to fetch URL https://dl-ssl.google.com/android/repository/addon.xml, reason: HttpHostConnect Connection to http://172.17.0.11:8080 refused” solusinya bagaimana ya?padahal saya pakai modem. terimakasih sebelumnya

  • Rozma

    Alhamdulillah udah bisa mengatasi proxynya… udah bisa install google play services

  • mas Luffynas boleh minta tolong?tolong di upload file2 yg anda share tersebut soalnya kalo nyari di google misah2 filenya takutnya versinya berbeda2

  • RendyArtana

    Maaf bang mau tanya..
    aplikasi ini gak bisa detect lokasi kita ya?
    cuma muncul 2 marker gak muncul lokasi kita..

  • Ahmad Sabil

    Masa Mohon Pencerahannya,,
    pada penjelasan di atas Latitude dan Longitude itu sudah ditentukan, bagaimana kalau saya mau membuat markernya secara default : memanfaatkan GPS yg ada pada hp kita???

  • Agus Haryanto

    @Ahmad Sabil, Harusnya mudah tinggal menambahkan Location listener

  • Agus Haryanto

    @Rendy, Ditutorial ini memang hanya menampilkan marker yang koordinatnya sudah ditentukan. jika ingin menmapilkan lokasi kita coba pelajari Location Listener untuk mendapatkan koordinat GPS

  • asslmualaikum,,mas, mau tnya, apa dari isi tutorial ini bisa dilanjutin untuk dibuat program lokasi terdekat (LBS) seperti tutorial LBS rumah makan sebelum nya yang ada filtering lokasinya.?

    mohon pencerahannya mas, soalnya saya lgi membuat aplikasi lokasi terdekat. susah dapetin tutorial LBS yang v2.

  • Adie

    ini satu api key apa bisa buat banyak aplikasi mas ?? makasih

  • Agus Haryanto

    @Adie, Kalau nama packagenya beda harus buat lagi

  • Adie

    berarti nanti satu key sha1 bisa buat beberapa google api key ya mas ?
    makasih

  • Om saya sudah berhasil membuatnya makasih tutornya. Tapi gini om kalau mapnya di buat offline caranya gimana? download map kemudian di masukkan ke folder aplikasinya bisa nggak?

  • Pritho

    mas,kalo misalny waktu msih pkek jdk 6 saya sudah daftarin SHA1 ny k google,tapi sekarang jdk ny saya upgrade k jdk 7,,,,,,
    yg jdi p’tnyaan ny adlh,apakah sertifikat SHA1 tu hrs dftarin lgi yg baru ato saya msih bsa pkek yg lma?
    krn saya tidak bsa ngecheck kode SHA1 lgi d cmd,,,,,,
    mohon bantuan ny

  • abdul syukur

    mas nanya lagi dong ini kan saya sudah membuat dan berhasil nah misalkan saya membuat penunjuk arah untuk pemakai seperti gps gitu bagaimana dan pakai source apa?
    makasih sebelumnya maaf mas masih newbie

  • Pritho

    mas,kuq di .android saya kuq tidak ad debug.keystore nya ya,,,,,,
    mohon bantuannya

  • Ahmad Sabil

    Terima kasih mas tutornya,, mau nnya lgi? untuk membuat jenis map gmna ya,,
    Maksudnya merubah tipe mapnya, contohnya dengan sattelite atau terrafic

  • abdul syukur

    mas nanya sekali lagi dong ini mapview atau googlemap sorry newbie

  • bebet

    mas request tutorial membuat map offline dong.

  • Adi_Hidayat

    mas, saya udah bikin sesuai tutorial di atas, tapi kok pas mau di running di emulator keluar tulisan “application has stopped unexpectedly”… mohon pencerahan

  • Adi_Hidayat

    masalah fix mas.. AVD nya ternyata

  • rizqi

    mas, kenapa ga keluar map, cuma white screen aja?

  • ami

    maaf mas mau tanya kalo ga ada debug.keystore di C:\user\.android kenapa ya ?

  • iqbal

    mas agus..
    kalo gini masalahnya kenapa??
    muncul errornya??
    The import com.google cannot be resolved

    import com.google.android.gms.maps.CameraUpdate;
    import com.google.android.gms.maps.CameraUpdateFactory;
    import com.google.android.gms.maps.GoogleMap.OnMapClickListener;
    import com.google.android.gms.maps.GoogleMap.OnMarkerClickListener;
    import com.google.android.gms.maps.MapFragment;
    import com.google.android.gms.maps.model.CameraPosition;
    import com.google.android.gms.maps.model.LatLng;
    import com.google.android.gms.maps.model.Marker;
    import com.google.android.gms.maps.model.MarkerOptions;
    import com.google.android.gms.maps.model.VisibleRegion;

  • Agus Haryanto

    @iqbal, Sudah import GooglePlayService dan di AndroidManifestnya sudah disesuaikan ?

  • doniher

    mas, kok saya ga bisa dapetin avi v2 nya ya mas.. padahal saya sudah dapat SHA! nya. trus waktu didaftarin “your input was invalid”
    gmn tu mas maslahnya..
    saya pake windows7, eclipse helios, java jdk 1.7
    mohon bantuannya mas,, 🙁

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>