Android menjadi Spesial karena ada fitur GPS dan Mapnya. Aplikasi kelihatan lebih keren jika ada fitur mapnya. GPS dan Map adalah suatuhal yang saling mengisi dengan adanya dua fitur tersebut kita bisa membuat aplikasi yang ciamik dan useful dimata user. Ciamiknya mungkin seperti penampilan Bayern Lawan Chelsea.
Tadi pagi kebetulan saya melihat pertandingan sepakbola perebutan Piala Super Eropa antara Bayern Munchen dan Chelsea dimana mereka adalah juara Liga Champion dan Piala UEFA (Liga Eropa) duel klasik antara dua pelatih hebat PEP Guardiola dan Jose Mourinho tak bisa dihindari. Rasanya buat yang menonton pertandingan tadi akan bilang dalam hati tidak rugi bela-belain bangun jam 2. Pertandingannya menarik dan dramatis. Bagaimana tidak dramatis, Chelsea yang sudah diambang juara kebobolan dimenit terakhir oleh Javi Martinez yang memaksa pertandingan diselesaikan dengan adu penalti yang akhirnya dimenangkan oleh Bayern Munchen.
Luar biasa dan salut untuk pemain Bayern yang pantang menyerah mengejar Gol sampai menit terakhir dilakukan.
Salut juga untuk Chelsea yang walaupun dengan 10 orang mampu memberikan perlawanan yang ketat.
Nah bagaimana dengan kita. Khususnya untuk adik-adik mahasiswa yang sedang skripsi hayoo tetap semangat jika masih ada waktu untuk menyelesaikannya. Berusahalah sekuat tenaga untuk menyelesaikannya. Berusahalah untuk lulus tepat waktu karena disitu kita masih banyak teman sekelas yang berjuang bersama yang saling bantu dan menyemangati. Kalau kita ketinggalan kereta maka kita ikut kereta berikutnya (adik kelas) dimana disini rasa kebersamaanya tentu jauh berbeda malah mungkin kita tidak kenal dengan adik kelas kita. Tidak ada lagi teman yang mengingatkan dan membantu.
Uraian diatas hanya pendahuluan sekarang mari kita kembali kemateri. Materi kali ini masih tentang GPS dan MAP yaitu menampilkan lokasi kita pada Map V2. Sebetulnya kalau rajin search digoogle materi ini sudah banyak disajikan. Intinya untuk menampilkan current lokasi pada Map, berarti kita harus menambhkan kode yang bisa menangkap koordinat yang didapat dari GPS Android. Untuk lebih jelasnya Mari kita mulai dan ikuti langkah berikut ini.
1. Buka lagi project Peta Lokasi
2. Buat Layout baru dengan nama current_loc.xml
<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" > <fragment android:id="@+id/mapcurrloc" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment" > </fragment> </RelativeLayout>
3. Buat class activity baru dengan nama DisplayCurrentLocActivity, lalu ketikan kode berikut
package net.agusharyanto.petalokasi; import java.util.ArrayList; import android.content.Context; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.widget.Toast; 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.Marker; import com.google.android.gms.maps.model.MarkerOptions; public class DisplayCurrentLocActivity extends FragmentActivity { GoogleMap googlemap; MarkerOptions markerOptions; LatLng latLng; LatLng prevLatLng = null; Marker marker = null; ArrayList<LatLng> arrline = new ArrayList<LatLng>(); private LocationManager locManager; private LocationListener locListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_revers_geocode); FragmentManager fragmentManager = getSupportFragmentManager(); SupportMapFragment supportMapFragment = (SupportMapFragment) fragmentManager .findFragmentById(R.id.mapcurrloc); // Getting a reference to the map googlemap = supportMapFragment.getMap(); initLocationManager(); } /** * Initialize the location manager. */ private void initLocationManager() { locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locListener = new LocationListener() { // method ini akan dijalankan apabila koordinat GPS berubah public void onLocationChanged(Location newLocation) { displayCurrentLoctoMap(newLocation); } public void onProviderDisabled(String arg0) { } public void onProviderEnabled(String arg0) { Location location = locManager .getLastKnownLocation(LocationManager.GPS_PROVIDER); displayCurrentLoctoMap(location); } public void onStatusChanged(String arg0, int arg1, Bundle arg2) { } }; locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener); Location location = locManager .getLastKnownLocation(LocationManager.GPS_PROVIDER); displayCurrentLoctoMap(location); } /** * This method will be called when current position changed is submitted via * the GPS. * * @param newLocation */ protected void displayCurrentLoctoMap(Location newLocation) { try { LatLng currlok = new LatLng(newLocation.getLatitude(), newLocation.getLongitude()); if (marker != null) marker.remove(); marker = googlemap.addMarker(new MarkerOptions() .position(currlok) .title("Current Location") .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher))); googlemap.moveCamera(CameraUpdateFactory.newLatLngZoom(currlok, 15)); // first remove old overlay } catch (NullPointerException e) { Toast.makeText(DisplayCurrentLocActivity.this, "Can't get gps location, make sure your gps is enable", Toast.LENGTH_LONG).show(); } } }
4. Rubah 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" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="net.agusharyanto.petalokasi.DisplayCurrentLocActivity" 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" /> </application> </manifest>
Disini Kita harus merubah launcher Activitynya menjadi net.agusharyanto.petalokasi.DisplayCurrentLocActivity agar pada saat Program dijalankan Activity yang pertama kali dijalankan adalah DisplayCurrentActivity.
5. Aplikasi sudah siap dijalankan, apabila menjalankannya di emualator jangan lupa menembakkan terlebih dahulu melalui emulatol control
6. Run Aplikasi, apabila semua berjalan lancar maka tampilannya akan seperti ini.
7. Sekarang kita sudah berhasil menampilkan marker posisi kita dipeta, Pertanyaannya adalah apakah user tahu ini daearah mana atau tepatnya alamatnya current lokasinya apa ?. Kalau yang sudah hafal daerahnya pasti dengan mudah menjawabnya. Tapi kalau tidak hafal daerahnya tentu bingung ini dimanayah.
8. Tunggu Jawabannya diepisode selanjutnya…
Semoga bermanfaat
Salam Hangat Developer Android
Agus Haryanto
Trainer Android
Pembicara Seminar IT
om ane koq buat map gabisa muncul petanya ya?cuma kotak2 ..kenapa ya
Ditunggu tutorial selanjutnya mas.
Bahas geocoder juga ya, masih bingung di geocoder 😀
@Rendy, Koneksi Internetnya jalan ?. Pastikan key api googlempnya benar.
@Dieka. ssstt masih rahasia 🙂
jalan mas ,.keynya jg benar ,.apanya ya kira2?
iya om, ane sama ama Rendy, muncul map tapi kotak2 doank, dan ketika pake map API2 malah ada eror
Mas Agus . ada tips dan triknya ngak mas kalo kita pengen nempelin map citra kita sendiri ke dalam aplikasi kita..Thanks before
atau kalo kita menggunakan Bing maps sebagai sumber nya mas
Mas, ini bisa di running di emulator gak ya? saya coba ga bsa di emulator.
cang agus thanks atas primbonnya y?? ane jadi be peta maps 2…
gimana kabarnya cang???:D
@unknown, Saya menyarankan untuk running langsung di Handphone.
INFO : Bagi Teman” yang punya masalah dengan peta yang tidak jalan di hp android (BUKAN DI EMULATOR) harap mengunjungi link ini > https://github.com/googlemaps/hellomap-android, terus pilih button di bagian kanan bawah “DOWNLOAD ZIP”, setelah itu ikut tutorial yang ada di bagian bawah. DIJAMIN PASTI JALAN.
Mas saya mau tanya,
sebelumnya saya sdh buat aplikasi map memakai GoogleMaps android V1 dan sukses jalan aplikasinya
Namun laptop yang saya pakai diinstal ulang OS nya
kalau saya ingin upgrade ke GoogleMaps Android V2 apa ada yang hrs dirubah codingannya?
atau cuma ganti GoogleMaps API key nya saja?
untuk GoogleMap API V2 nya saya sdh ada
Mohon bantuannya
Terima Kasih
@andrew udah aku coba yang dari github.com… tapi kok malah “unfortunately, Hello Map has stopped ” :(( aku butuh banget tolong
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.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
dibagian ini kenapa selalu error yah.. ?
@fauzi, klik kanan project >> properties >> android >> cek dulu udah di add apa belum librarynya..
error disini mas.. >> setContentView(R.layout.activity_revers_geocode);
mohon bantuannyamas..
error disini mas.. >> setContentView(R.layout.activity_revers_geocode);
mohon bantuannya mas..
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.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
permaslahan sma sperti di atas,…bgmn cara mengatasinya yah??
untuk menambah library ny caranya seperti ap yah,..
mohon bantuannya,..thanks…
sudah work dengan permsalahan di atas,…solved,…sudah menemukan cara nya,..thanks
mas saya udah coba sama persis di atas tetapi ketika aplikasi d jalankan di emulator, aplikasi stopped working unfurnetely,….itu kenapa yah?
mohon solusinya,…thanks
Mas agus, itu yg (R.layout.activity_revers_geocode) itu salah ketik apa benar mas? apa di ganti (R.layout.current_loc) mas? soalnya panggil xml curent_loc.xml
mohon mas pencerahannya.
getSupportFragmentManager kok is undefined ya om?
mohon solusinya.
mau tanya om, agar peta dapat di zoom dan gak balik lagi itu gmn ya?. apa ada yg harus di tambah atau di buang?
maaf om mau tanya, setelah kita mendapatkan posisi kita, cara untuk mengirim latitude longitude posisi kita ke activity lain dengan button gimana ya? terimakasih