Fiuhh akhirnya jadi bisa mencoba membuat Aplikasi Peta dengan Google Map V2. Cukup panjang prosesnya. Katanya sih Google Map Android yang versi 1 akan dishutdown tahun ini, artinya semua aplikasi android yang menggunakan Google Map versi sebelumnya Petanya tidak akan muncul bahkan mungkin aplikasinya akan mati tidak bisa dijalankan :( apa iya, kayaknya Google tidak akan berani secepat itu menghentikan layanan, seperti halnya Google Map Web Versi 2 juga sudah lama sejak kemunculan Google Map versi 3 belum juga dihentikan. Kalau Google tetap nekat bisa-bisa ribuan aplikasi di Google Play mati semua hehe.
Pertama-tama buka Android SDK Manager, pastikan anda sudah menginstall Google APIs, kelihatannya yang pasti mendukung Google Map Android V2 adalah Google APIs versi 17. Penulis belum pernah coba versi di bawahnya.
Kemudian pastikan juga sudah menginstall Google Play Services
Kemudian buka Eclipse, buka Window-Preferences-Android-Debug, lihat dahulu lokasi file debug.keystore.
Kemudian buka Command Prompt, kita generate Google API Key dari debug.keystore menggunakan keytool bawaan JDK, caranya ketikkan perintah berikut :
> cd "C:\Program Files\Java\jdk1.7.0_02\bin"\
> keytool.exe -list -v -keystore "C:\Users\PC\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
Kemudian copy Key SHA1. Setelah itu kita buka Google API Console di URL https://code.google.com/apis/console, klik Services, aktifkan Google Maps Android API v2
Kemudian klik API Access, klik Android Key, masukkan Key SHA1 yang telah didapatkan diikuti tanda ; dan diikuti nama namespace package, misalnya :
59:56:X8:A0:2C:12:XA:1D:52:0F:3C:XB:41:A6:C7:35:FA:95:1E:E5;com.amijaya.googlemapv2
Klik Create, hasilnya didapatkan Key untuk Project tersebut. Copy API Key-nya.
Kemudian pada Eclipse kita Import dahulu Project Library bawaan SDK Google Play Services, Klik File Import, pilih Android-Existing Android Code Into Workspace :
Kemudian pilih direktori <Android SDK>/extras/google/google_play_services/libproject/google_play_services_lib.
Klik OK, hasilnya akan dimasukkan Project baru bertipe library bernama google_play_services_lib. Project ini akan kita include kan di Project Utama kita.
Kemudian buat Project Utama, klik File-New-Android Project. Jangan lupa memilih Compile With Google APIs.
Setelah Project baru selesai dibuat Klik kanan Project - Properties - Android, klik Add untuk menambahkan Project Library google_play_services_lib :
Kemudian pada activity_main.xml buat tampilan seperti ini :
<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.SupportMapFragment"
/>
</RelativeLayout>
Kemudian pada MainActivity.java kita ketikkan program berikut :
package com.amijaya.googlemapv2;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.view.Menu;
//http://cariprogram.blogspot.com
//nuramijaya@gmail.com
public class MainActivity extends FragmentActivity {
final int RQS_GooglePlayServices = 1;
private GoogleMap myMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager myFragmentManager = getSupportFragmentManager();
SupportMapFragment mySupportMapFragment = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map);
myMap = mySupportMapFragment.getMap();
LatLng jogja = new LatLng(-7.782939, 110.367050);
MarkerOptions markerJogja = new MarkerOptions();
markerJogja.position(jogja);
markerJogja.title("Tugu Yogyakarta");
markerJogja.snippet("Tugu Pusat Kota Yogyakarta");
markerJogja.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
myMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
myMap.addMarker(markerJogja);
myMap.getUiSettings().setCompassEnabled(true);
myMap.getUiSettings().setZoomControlsEnabled(true);
myMap.animateCamera(CameraUpdateFactory.newLatLngZoom(jogja, 15));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Terakhir pada AndroidManifest.xml tambahkan permission, setting dan API Key yang telah didapatkan tadi sehingga seperti ini :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.amijaya.googlemapv2"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<permission
android:name="com.amijaya.googlemapv2.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<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-feature android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="<GANTI-DGN-ANDROID-API-KEY>" />
<activity
android:name="com.amijaya.googlemapv2.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>
</application>
</manifest>
Hasilnya :
Project selengkapnya silakan didownload disini, di Google Drive, klik File - Download.
Semoga menyenangkan :)
aduh panjang bener nih tutorial, di komentarin dulu ah sebelum baca
BalasHapus^_^' Thanks
BalasHapuswah makasih niy...
BalasHapusbantu bgt projek skripsi ane gan...
thanks - thanks
kok disaya eror R nya yah mas, sudah di clean padahal. dan di style.xml pada value-v11 dan v-14
BalasHapusSetahu saya itu karena Ecplise, ADT atau SDK Androidnya versi lama Mas.
HapusSaran saya download yang paling baru di http://developer.android.com/tools/sdk/eclipse-adt.html. Kemudian buka Eclipse barunya Window-Android SDK Manager(dalam keadaan terkoneksi internet), install GoogleAPI (sebaiknya versi 17) dan Google Play Services.
Baru ikuti langkah di atas. Semoga berhasil..
@Muhammad Arief : Boleh tau android sdk tools nya versi berapa....
Hapuskalu pakai yg versi 2.2 itu mesti di update lgi coz ada tools yg belum ke install
Wah maaf sekali saya salah memberi link.
HapusCoba buka saja link berikut ini kemudian Download ADT Bundle for Windows.
http://developer.android.com/sdk/index.html
Sudah lengkap tinggal diextract, tidak perlu install, kemudian diupdate GoogleAPI dan Google Play Services.
Untuk Eclipse lama saya tidak menyarankan untuk update karena bisa malah rusak.
Saran saya backup Eclipse anda yang lama, karena itu istilah saya barang langka dan unik. Belum tentu bisa anda dapatkan lagi Eclipse, SDK dan ADT versi lama. Jangan diupdate, nanti malah error.
import com.google.android.gms.maps.CameraUpdateFactory;
BalasHapusdapat library GMS dari mana yah?? kok tempat saya gak ada
terima kasih
Coba diupdate dahulu Android SDK nya, pastikan ada Google API (sebaiknya yang versi 17) dan Google Play Services (ada di bagian paling bawah) di window Android SDK Manager folder Extras.
HapusKlik Window-Android SDK Manager (dalam keadaan terkoneksi ke internet).
Jangan lupa langkah untuk mengimport dahulu Project Library bawaan SDK Google Play Services seperti diterangkan di atas.
mau nanya mas saya kan pake eclipse juno ters saya cek google play service nya ga ada terus goole apinya juga masih versi 10 gmn dong solusinya trimakasih
Hapussewaktu memasukkan Key SHA1 yang telah didapatkan diikuti tanda ; dan diikuti nama namespace package, gagal ada caption "YOUR INPUT WAS INVALID" kira kira penyebabnya apa ya gan ?
BalasHapusWah sulit diperkirakan kesalahannya dimana, mungkin kesalahan di penulisan Command DOS nya :
BalasHapus> keytool.exe -list -v -keystore "C:\Users\PC\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
atau library Android SDK nya kurang baru (Google API sebaiknya versi 17) dan Terinstall Google Play Services. Langkahnya coba cek komentar di atas.
Atau salah dalam mengcopy pastikan SHA1 dan tidak ada yang tertinggal.
Maaf sekali, saya salah memberi link.
BalasHapusUntuk Download ADT Bundle for Windows silakan buka link di bawah ini :
http://developer.android.com/sdk/index.html
Sudah lengkap tinggal diextract, tidak perlu install, kemudian tinggal diupdate GoogleAPI dan Google Play Services.
Saran saya jangan update Eclipse dan SDK anda yang lama, pengalaman saya malah error dan tidak bisa dipakai lagi.
import com.google.android.gms.maps.CameraUpdateFactory;
BalasHapusimport com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
itu semua error kenapa error ya?
saya sudah lakukan smua tutor yang diatas,tapi malah pada saat diketik ulang jadi error smua? mhon pecerahannya :)
Sepertinya ada dua kemungkinan:
Hapus1. Saat membuat Project baru lupa memilih Compile With : Google APIs, coba search artikel ini pada kata "Kemudian buat Project Utama, klik File-New-Android Project. Jangan lupa memilih Compile With Google APIs."
2. Atau belum mengimport Library bawaan SDK Google Play Services dan Memasukkannya ke dalam project, coba search artikel ini pada kata "Kemudian pada Eclipse kita Import dahulu Project Library bawaan SDK Google Play Services" dan "Klik kanan Project - Properties - Android, klik Add untuk menambahkan Project Library google_play_services_lib"
saya sudah import mba google_play services_libnya tapi tetap error di import gms.maps nya... pas di import memang di bisa dengan tnda cecklist hijau tapi setelah di apply google_play nya jadi silang merah lagi mba.. itu gmn ya? mhn pencerahannya :)
HapusParser exception for /googlemapv2/AndroidManifest.xml: The processing instruction target matching "[xX][mM][lL]" is not allowed.
BalasHapusitu semua error kenapa error ya?
saya sudah lakukan smua tutor yang diatas,tapi malah pada saat diketik ulang jadi error? mhon pecerahannya :)
terima kasih
Saya malah belum pernah mengalami error seperti itu. Mungkin bisa diambil saja dari Source Code project yang bisa diwonload di bagian bawah artikel. Kemungkinan hanya salah copy paste, atau salah ketik saja.
Hapusmas kalo google maps_nya g' tampil saat di run pada emulator android,penyebabnya pa ya?
BalasHapussoalnya saya sudah coba coding di atas dan g' ada pemberitahuan error,waktu sya run as map_nya g' muncul.
minta pencerahannya mas :)
GoogleMap v2 Android memeang tidak bisa dijalankan di Emulator Mas. Pasti error.
HapusJadi harus dijalankan di Handphone atau Tablet (device beneran).
Ada beberapa artikel yang mengatakan bisa menjalankan GoogleMap v2 di Emulator asal sudah diinstall GooglePlay Service secara manual. Tapi maaf saya belum sempat nyoba ^_^
Coba silahkan cek http://www.google.com/search?q=android+run+googlemap+on+emulator+install+googleplay.
Semoga berhasil.
mas saya mau nanya,bagaimana cara menampilkan lebih dari satu marker pada google map?
BalasHapusdimana koordinat untuk lokasi-lokasinya sudah tersimpan di database mysql.
bsa bantu kodingnya g' mas..terima kasih ^_^
Ini cukup panjang mas, coba cek dahulu artikel http://cariprogram.blogspot.com/2013/01/android-json-data-web-database-php-mysql.html.
HapusPertama buat dahulu tabel di database mysql berisi nama lokasi beserta latiitude longitudenya, kemudian buat file PHP yang mengambil data dari mysql dan menampilkan dalam bentuk JSON :
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('db');
$result = mysql_query("SELECT * FROM kota");
$rows = array();
while ($r = mysql_fetch_assoc($result)) {
$rows[] = $r;
}
$data = "{kota:".json_encode($rows)."}";
echo $data;
?>
Kemudian pada project Android seperti pada artikel ini, tambahkan di coding di bawah baris ini :
...
myMap.addMarker(markerJogja);
try {
jsonResult = getRequest("http://10.0.2.2/datakota.php");
jObject = new JSONObject(jsonResult);
JSONArray menuitemArray = jObject.getJSONArray("kota");
for (int i = 0; i < menuitemArray.length(); i++)
{
LatLng titik = new LatLng(Double.parseDouble(menuitemArray.getJSONObject(i).getString("latitude").toString()), Double.parseDouble(menuitemArray.getJSONObject(i).getString("longitude").toString()));
MarkerOptions markerTitik = new MarkerOptions();
markerTitik.position(titik);
markerTitik.title(menuitemArray.getJSONObject(i).getString("nama").toString());
markerTitik.snippet(menuitemArray.getJSONObject(i).getString("deskripsi").toString());
markerTitik.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
myMap.addMarker(markerTitik);
}
} catch (JSONException e) {
e.printStackTrace();
}
...
Panjang sekali, semoga berhasil ^_^
mas setelah sya coba,mash da keslahan di bagian getRequest?
Hapusminta pencerahaannya gan ^_^
Fungsi getRequest() nya ada di artikel ini mas, http://cariprogram.blogspot.com/2013/01/android-json-data-web-database-php-mysql.html.
HapusCoba download source codenya yang artikel tersebut. kemudian copy-paste isi fungsi getRequest(), di dalam activity di project Peta-nya..
ko tetep gagal ya mas?
Hapusprogram ga ada yang salah tapi lokasi-lokasi yang ada pada database tidak muncul
mohon pencerahan gan, Please :(
mas mau tanya cara agar ketika dituliskan 1 huruf maka muncul saran kota mana yang akan dipilih bagaimana??
BalasHapusWah saya tidak yakin jawaban ini sesuai yang mas inginkan, menurut saya mas bisa memakai AutoCompleteTextView seperti pada artikel ini :
Hapushttp://cariprogram.blogspot.com/2013/06/membuat-aplikasi-autocompletetextview-pada-android.html.
R nya masih error kenapa mas?
BalasHapusKalau file R, biasanya yang bermasalah Eclipse-nya mas. Bisa karena Eclipse nya tidak sama versinya (lebih lama). Atau Eclipse sedang error. Kalau Eclipse lama walaupun diupdate gak akan ngejar yang versi baru. Jadi saran saya download SDK Android dari http://developer.android.com/sdk/index.html yang terbaru, sudah sama ADT Eclipse-nya, kemudian update SDK nya..
Hapusgan kok peta ga mau tampil di device ya? padahal udah aku aktifin semua export signed aplication packages juga udah. mohon pencerahannya
BalasHapusAsal tidak ada error, kemudian dapat dijalankan di device tetapi peta tidak keluar, memang masalahnya kalau tidak di Key nya ya di devicenya. Pertama coba dahulu di device lain (misal milik teman) bisa tidak. Klo bisa berarti device-nya belum update Google Play Servicenya.
HapusTetapi kalau bisa, berarti Keynya salah, bisa salah ketik, atau salah copy, silakan dicoba untuk mendapatkan Key lagi dari Google.
Semoga berhasil..
maap mas mau nanya, saya sudah copy semua coding ke eclipse saya. kok masih ada error yah.. "marker id 1 not found" gitu di error log-nya. itu kenapa? terima kasih sebelumnya
BalasHapusKalau memang sudah betul hanya gara-gara marker, bisa dihapus saja baris ini :
HapusMarkerOptions markerJogja = new MarkerOptions();
markerJogja.position(jogja);
markerJogja.title("Tugu Yogyakarta");
markerJogja.snippet("Tugu Pusat Kota Yogyakarta");
markerJogja.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
myMap.addMarker(markerJogja);
Harusnya setelah dihapus baris tersebut aplikasi bisa jalan, bisa keluar peta, tetapi tidak keluar marker. Jika aplikasi tidak jalan juga berarti yang salah bukan markernya.
Saran saya download saja source code dari artikel ini mbak. Kemudian minta dapatkan SHA1 dari debug.keystore komputer anda. Cari Google Key untuk sha1;com.amijaya.googlemapv2, kemudian ganti AndroidManifest.xml dengan key yang didapatkan, harusnya bisa..
Jika masih tidak bisa, mungkin Eclipse atau Komputer Mbak yang bermasalah..
kenapa saat Run pasti kesalahan nya yg keluar di virtualnya "Unfortunately ... Has Stoped"
BalasHapusitu kenapa yah..?
mohon pencerahannya, Terima Kasih
Kalau langsung Unfortunately.. biasanya ada di file2 XML. Misal pada AndroidManifest.xml kurang diberi permission INTERNET, atau Google Map Key ditolak, atau ada id object di layout xml ada yang sama. Dan seterusnya.., memang cukup berat debugging di Android, coba lihat log cat..
Hapusmas, kalo ini error nya kenapa ya ? ---> https://www.facebook.com/photo.php?fbid=10200766850071258&set=a.10200233861186869.1073741825.1162775419&type=3&theater
BalasHapusmas kalo ganti peta jogja jadi peta bogor gimana ih ?
BalasHapuslongitude sama latitude udah diganti tapi tetep gak bisa :(
Mas kalo mau menampilkan lebih dari 1 marker tapi tanpa databse,semuanya pakai coding gmana mas?
BalasHapusmba, kalo compilenya bukan pake Google Apis bisa nggak? apa emang harus pake google APis untuk aplikasi google map?
BalasHapusmakasih mas tutorialnya sangat membantu, oh ya mas klo misalnya saya mau menampilkan marker tersebut pada tombol bagaimana ya mas? untuk lat dan lng nya di ambil dari sqlite gitu.. makasih :D
BalasHapusItu bisa ditambahin dengan potonya engga kalo kita lagi ada di suatu tempat
BalasHapusmakasi gan infonya
BalasHapusCara Diet Mayo yang Baik dan Benar
Jadwal dan Menu Makanan Diet Mayo
Menu Makanan untuk Diet Sehat dan Alami
Cara Diet Sehat dan Alami Untuk Mengecilkan Perut Buncit
Manfaat dan Hasiat Semut Jepang Untuk Kesehatan Tubuh
Rahasia Agar Memiliki Kulit Sehat
Cara Ampuh Mengecilkan Perut Buncit Secara Alami
Manfaat Kacang Almond Bagi Kesehatan Tubuh
Cara Ampuh Menurunkan Berat Badan
Manfaat Meregangkan Otot Tubuh
cara mencari titik koordinat batas wilayah suatu desa apa sama seperti ini codingnya??
BalasHapusbagus gan tutorialnya.
BalasHapussaya menggunakan eclipse mars.
tapi selalu tidak bisa untuk mer-run aplikasinya.
mohon pencerahannya.
eclipse saya selalu error.
ini menggunakan eclipse apa ya gan ?
itu dalam projek ada folder google-play-services_lib, bagaimana cara menyatukannya gan ?
BalasHapussaya mengikuti tutorial diatas tapi tidak ada folder tsb.