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
terima kasih utk pengajarannya pak 🙂
pak, saya mau bertanya.. kalau keytool tidak dikenali di command prompt nya itu knapa ya pak? trimakasih..
Maaf mas mengganggu waktunya sebentar . . .
yang ingin mau saya tanyakan tentang permasalahan emulator saya mas
petanya tidak tampil di emulator saya tetapi di smartphone android saya petanya tampil . . .
tolong pencerahannya ya mas . . .
terima kasih mas agus.
mas , boleh minta nomer yg bisa di hub 🙂
mau sharing 🙂
ini email saya agus4836@gmail.com
makasih, di tunggu blzannya
permisi mas, saya mau tanya kok ketika saya jalan kan di android tidak muncul ya peta nya. hanya button untuk zoom nya muncul tetapi petanya tidak padahal sudah saya samakan semua dan tidak ada yang error ?
saya juga mengalami masalah yang sama dengan mas hafiz
GMS itu google play service kan? kalo venton itu apa? dimana saya bisa dapet venton?
how to make multiple marker?
mas, mau nanya. kalau ada pesan error “The method getFragmentManager() is undefined for the type MapsActivity”, gimana tuh cara ngatasinnya?
mas kalau mau menampilkan seperti diatas tapi sumber data untuk lokasinya ada di database bagaimana ya??
Mantap gan, saya dulu belajar google maps sangat sulit sekali hehe
mas agus saya kok bingung ya buat apiv2 nya soalnya beda tampilan yang di ss nya mas agus sama waktu saya coba beda mas mohon pencerahannya