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
http://s24.postimg.org/tn2jkwp2d/Untitled.png
kok saya tampilannya kek gini g muncul mapnya mas?
knp ya?
@iyanbomberz, coba test didevice langsung
kok yang ini masih ada salah ya pak
getFragmentManager dan findFragmentById
kira-kira knp ya pak ?
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?
pak kenapa ya, kok setelah saya coba ke divice nya putih semua? salah nya dimana ya pak?
@fransdarmawan, pakai eclipse yang terbaru saja.
Kalo di linux gmn cara nya ya pak untuk melihat Fingerprint nya?
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
selamat sore pak,, cara bikin tulisan berjalan yang ada di aplikasi kalender itu gimana ya??
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?
@fransdarmawan coba pakai getSupportFragmentManager biar bisa di pakai untuk semua level api. tapi support librarynya harus sudah terpasang.
@wedar cara setting support librarynya bagaimana?
pak numpang tanya..kok punya saya mau nampilin code sha1 ga bisa-bisa ya…padahal sudah sesuai dg step-stepnya
mas, bagaimana cara membuat Direction GoogleMap JSON pada google map v2?
itu venton.apk atau vending.apk yah?
Pak kok saya ada error ya pas mau di jadikan APK di string.xml itu gimna ya??
@abdul.syukur, ada kesalahan nama serpertinya yang betul gms.apl dan vending.apk itu file apk yang dapat membuat emulator bisa display map v2
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
@wandi, koneksi internetnya jalan ?. tampilannya jadi apa ?
mas kok getFragmentManager() nya belum ada fungsinya ya?
mas, saya sudah coba tapi muncul maps nya hanya putih saja tapi saya sudah generate api key nya sesuai dengan laptop yang digunakan.
mas saya udah coba di hp langsung tapi ga muncul mapnya cuma putih aja.
saya pake gingerbread.apa pengaruh dari versi androidnya?
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.
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..?
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
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
Maaf bang mau tanya..
aplikasi ini gak bisa detect lokasi kita ya?
cuma muncul 2 marker gak muncul lokasi kita..
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???
@Ahmad Sabil, Harusnya mudah tinggal menambahkan Location listener
@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.
ini satu api key apa bisa buat banyak aplikasi mas ?? makasih
@Adie, Kalau nama packagenya beda harus buat lagi
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?
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
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
mas,kuq di .android saya kuq tidak ad debug.keystore nya ya,,,,,,
mohon bantuannya
Terima kasih mas tutornya,, mau nnya lgi? untuk membuat jenis map gmna ya,,
Maksudnya merubah tipe mapnya, contohnya dengan sattelite atau terrafic
mas nanya sekali lagi dong ini mapview atau googlemap sorry newbie
mas request tutorial membuat map offline dong.
mas, saya udah bikin sesuai tutorial di atas, tapi kok pas mau di running di emulator keluar tulisan “application has stopped unexpectedly”… mohon pencerahan
masalah fix mas.. AVD nya ternyata
mas, kenapa ga keluar map, cuma white screen aja?
maaf mas mau tanya kalo ga ada debug.keystore di C:\user\.android kenapa ya ?
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;
@iqbal, Sudah import GooglePlayService dan di AndroidManifestnya sudah disesuaikan ?
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,, 🙁