PMO Pertemuan 10 : Android Location Based Services

Android Location Based Services

Aplikasi berbasis lokasi dan peta menawarkan pengalaman menarik di perangkat seluler. Anda dapat membangun kemampuan ini ke aplikasi Anda menggunakan kelas paket android.location dan API Android Google Maps. Bagian di bawah ini memberikan pengantar tentang bagaimana Anda dapat menambahkan fitur

Layanan Lokasi

Android memberi akses aplikasi Anda ke layanan lokasi yang didukung oleh perangkat melalui kelas dalam paket android.location. Komponen utama kerangka lokasi adalah layanan sistem LocationManager, yang menyediakan API untuk menentukan lokasi dan bantalan perangkat yang mendasarinya (jika tersedia).

Seperti layanan sistem lainnya, Anda tidak memberi instantiate pada LocationManager secara langsung. Sebaliknya, Anda meminta sebuah instance dari sistem dengan memanggil getSystemService (Context.LOCATION_SERVICE). Metode mengembalikan pegangan ke instance LocationManager yang baru.

Setelah aplikasi Anda memiliki LocationManager, aplikasi Anda dapat melakukan tiga hal:

  1. Permintaan untuk daftar semua instance LocationProvider untuk menentukan lokasi pengguna terakhir yang diketahui.
  2. Register / unregister untuk update berkala lokasi pengguna saat ini dari penyedia lokasi (ditentukan berdasarkan kriteria atau nama).
  3. Daftar / unregister untuk maksud tertentu untuk dipecat jika perangkat berada dalam jarak yang diberikan (ditentukan oleh radius dalam meter) dari lat / lat yang diberikan.

API Android Google Maps

Dengan Google Maps Android API, Anda dapat menambahkan peta ke aplikasi Anda berdasarkan data Google Maps. API secara otomatis menangani akses ke server Google Maps, download data, tampilan peta, dan isyarat sentuhan pada peta. Anda juga dapat menggunakan panggilan API untuk menambahkan spidol, poligon dan lapisan, dan untuk mengubah tampilan pengguna dari area peta tertentu.

Kelas kunci dalam API Android Google Maps adalah MapView. MapView menampilkan peta dengan data yang diperoleh dari layanan Google Maps. Aplikasi Anda juga dapat menggunakan metode kelas MapView untuk mengontrol peta secara terprogram dan menggambar sejumlah hamparan di atas peta.

API Google Maps Android tidak disertakan dalam platform Android, namun tersedia di perangkat apa pun dengan Google Play Store yang menjalankan Android 2.2 atau lebih tinggi, melalui layanan Google Play.

Untuk mengintegrasikan Google Maps ke aplikasi Anda, Anda perlu memasang pustaka layanan Google Play untuk Android SDK Anda. Untuk detail selengkapnya, baca tentang layanan Google Play.

GPS (Global Positioning System) atau yang biasa disebut location based services (LBS). Location based services adalah layanan berbasis lokasi atau istilah umum yang sering digunakan untuk menggambarkan teknologi yang digunakan untuk menemukan lokasi perangkat yang pengguna gunakan. Layanan ini menggunakan teknologi global positioning service (GPS) dan cell-based location dari Google.

Jadi secara singkat Algoritma Aplikasi LBS adalah

  1. Dapatkan koordinat posisi kita melalu GPS
  2. Tetapkan Lokasi-lokasi yang ingin kitampilkan difilter berdasarkan jarak
  3. Gambar Posisi kita dan Lokasi-lokasi terdekat dalam map

Berikut Langkah-langkah Membuat Aplikasi LBS Sederhana Rumah Makan Padang

  1. Buat Projectnya, ikuti inputan seperti dibawah ini.

  1. setelah project tercreate maka secara otomatis android membentuk 3 file yaitu :
  • main.xml
  • string.xml
  • TunjukLokasiBeraksi.java
  1. Agar Kita dapat melihat posisi kita pada map maka kita harus menandakan dengan dengan gambar atau icon, dalam dunia google map ini disebut marker. Untuk itu kita perlu meletakkan file gambar untuk marker (marker.png) di directory res/drawable dan kita juga file gambar untuk bangunan disekitar kita

 

4. Edit main.xmllalu isikan kode berikut

Disini untuk menampilkan MAPnya kita menggunakan tag com.google.android.maps.MapView,
sedangkan untuk Layoutnya adalah Relative Layout
Untuk android:apiKey, isi dengan key Google Mapyang telah kita buat dari tutorial sebelumnya

  1. Untuk dapat melakukan menampilan Map Google Map dan Menangkap GPS dari satelit kita perlu menambahkan <uses-library>com.google.android.maps dan <uses-permission> INTERNET, ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION nya melalui file AndroidManifest.xml buka file AndroidManifest.xml lalu ketikkan seperti kode berikut :

6.Sekarang Mari kita buat class Lokasi.javasebagai template object untuk menyimpan data
lokasi bangunan, pada project ini adalah rumah makan padang

7.Buat Class Baru dengan nama MyItemizedOverlay.javafunngsi untma class
ini adalah untuk marker(icon penunjuk posisi kita pada Map dan
lokasi rumah makan padang disekitar kita

8.Sekarang Mari kita edit File TunjukLokasiBeraksi.java

Perhatikan method initLokasi(), pada method ini kita mendaftarkan data lokasi dari rumah makan padang.

Disini datanya bukan data benaran hanya contoh saja agar kita bisa membuktikan kerja Aplikasi ini

Pada method diatas kita menyimpan datanya ke sebuah ArrayList list_lokasi

Kalau ditablekan akan seperti ini

Latitude Longitude Kategori Nama
-6.29826 106.82024 1 RM Padang Sari Mande
-6.28326 106.82324 2 RM Padang Sederhana
-6.29326 106.83324 3 RM Padang Garuda

salah satu syarat aplikasi LBS kan dia harus bisa menghitung jarak. Android googlemap sudah menyediakan fungsi tersebut yaitu dengan menggunakan distanceTo

  1. sekarang mari kita jalankan programnya. Bagi yang menggunakan emulator jangan lupa mainkan
    Latitude dan longitudenya dari Emulator Control (DDMS) set Latitude = -6.298418Longitude=106.82639
    maka akan tampil seperti ini

Akan muncul informasi Nama, latitude, longitude dan jarak bangunan tersebut dari posisi kita.Disini dapat dilihat bahwa nama bangunan itu adalah RM Padang Sederhana dengan jarak 1708,8 m dari posisi kita, klik bangunan lainnya untuk mendapatkan informasinya.

Pada saat ini lokasi bangunan yang ada disekitar kita belum kita filter jaraknya.

Salah satu yang disyaratkan dalam aplikasi LBS adalah filtering jarak.  Sekarang mari kita coba buat filtering atau pembatasan lokasi yang muncul adalah lokasi yang jaraknya kirang dari 1000m.

Untuk itu tambahkan

If (distance <1000){

Dibawah code double distance = locationA.distanceTo(locationB);

Dan  tambah kan {

diatas code  mapView.getController().animateTo(myposition);

Kemudian mari kita run kembali aplikasinya. Maka sekarang yang terlihat hanya 2 bangunan saja.

 

Materi Android Location Based Services dapat didownload dengan klik PMO Pertemuan 10 android location based service

Sumber : 

http://developer.android.com

http://blogs.itemis.de/frey/2009/04/07/location-based-services-on-android-part-2/https://developer.android.com/guide/topics/location/index.html

http://blogs.itemis.de/frey/2009/04/07/location-based-services-on-android-part-2/

https://developer.android.com/guide/topics/location/index.htm