Sidiq Permana adalah seorang developer Android senior dan pendiri Nusantara Beta. Dokumen ini membahas tentang Location Based Service (LBS) yang merupakan layanan berbasis lokasi pengguna melalui perangkat seluler dan menggunakan konsep seperti triangulasi untuk menentukan lokasi pengguna. Dokumen ini juga membahas implementasi LBS pada Android menggunakan GPS, jaringan, dan formula Haversine untuk menghitung jarak antar titik koordinat.
2. Senior Android Developer
Founder of Nusantara Beta
T: @nouvrizky10
F : cdiq.sanz
E : permana.sidiq@gmail.com
M : 08569579148
3.
4. Location Based Service (LBS) atau Layanan
Berbasis Lokasi merupakan layanan informasi
yang dapat diakses melalui perangkat mobile
melalui jaringan selular dan memiliki
kemampuan untuk memanfaatkan lokasi posisi
perangkat mobile (Virrantaus et al. 2001)
Sebuah layanan IP – nirkabel yang menggunakan
informasi geografi untuk memberikan layanan
kepada pengguna perangkat mobile. Setiap
layanan aplikasi yang memanfaatkan posisi
terminal mobile (OpenGeospatial Consortium ,
2005)
5. Location Based Service (LBS) adalah sebuah nama
umum untuk sebuah layanan baru dimana informasi
lokasi menjadi parameter utamanya (Kupper, 2005)
LBS sebenarnya salah satu nilai tambah dari layanan
seluler GSM. LBS bukanlah sistem, tetapi merupakan
layanan yang menggunakan sistem tambahan
penunjang sistem GSM. Jadi jelas, bisa jadi ada
beberapa opsi sistem yang dapat mengirim layanan
LBS ini dengan teknologi bervariasi. Tetapi pada
dasarnya, sistem-sistem tersebut menggunakan
prinsip dasar yang sama, yaitu: Triangulasi. Jadi
prinsipnya, tidak jauh beda dengan sistem GPS,
hanya saja fungsi satelit digantikan oleh BTS (Riyanto,
2011).
6. Sebuah layanan yang
memberikan informasi
berdasarkan posisi pengguna
(device) sebagai acuan utama.
7. Location Based Service merupakan kombinasi dari beberapa disiplin ilmu (Shiode et al 2004)
8.
9.
10. Perangkat Mobile
Jaringan Komunikasi
Komponen Pengambil Posisi
Provider Layanan dan Aplikasi
Data dan Provider Konten
WMS (Web Map Server)
11. Kelebihan LBS, tetap berfungsi bila berada di
dalam gedung dan pengaruh medan
elektromagnetik lain yang tidak terlalu besar.
Sedangkan, kekurangan LBS adalah
jangkauan area yang sangat bergantung pada
jangkauan selular (Riyanto, 2011)
12. Pull Services
Pengguna secara aktif mengirimkan informasi
yang dibutuhkan <user request>
- Menggunakan service yang akan
mendownload data dalam interval waktu
tertentu
Push Services
Memberikan informasi kepada pengguna yang mana
tidak secara langsung diminta oleh pengguna
<system push to application>
e.g : Push Notification on Telkomsel
13. Haversine Formula adalah persamaan matematika
yang penting dalam navigasi, formula ini
memberikan jarak antara dua titik pada lingkaran
bola dari masing garis bujur (Longitude) dan
lintang (Latitude). Ini adalah kasus khusus dari
formula yang lebih umum di trigonometri
lingkaran bulat, haversine formula berhubungan
dengan sisi-sisi dan sudut "segitiga" dari
lingkaran bulat.
Konsep dasar rumus ini : TRIGONOMETRI
Cari tempat/objek terdekat dari posisi yang
diberikan pengguna
14. Dimana :
Haversine adalah fungsi haversine
haversin(θ) = sin2(θ/2) = versine (θ)/2
D adalah jarak antara 2 point
R adalah radius dari lingkaran bulat
φ1 adalah latitude dari point 1,
φ2 adalah latitude dari point 2, and
Δλ adalah kalkulasi 2 longitude
15. Pada sisi kiri tanda sama dengan, argumen
untuk fungsi haversine adalah dalam radian.
Dalam derajat, haversin (d / R) dalam rumus
akan menjadi haversin (180 ° d / πR).
Kemudian dapat memecahkan untuk d baik
dengan hanya menerapkan haversine invers
(jika tersedia) atau dengan menggunakan
arcsine (sinus invers) fungsi:
•Dimana : h is haversin(d/R)
16. Haversine formula digunakan untuk
pencarian Point Of Interest (POI) terdekat
dari posisi pengguna. Pemanfaatan umum
haversine formula diantaranya (Rubin,
MySQL AB) :
◦ Pencarian toko terdekat dari posisi anda
◦ Social Network (Jejaring Social) : menemukan
teman terdekat dari posisi anda
◦ Peta Online : pencarina POI (Point Of Interest)
menarik terdekat dengan anda
19. SELECT id_, ( 6371 * acos(cos(
radians($user_lat) ) * cos( radians( latitude ) )
* cos( radians( longitude ) -
radians($user_longitude)) + sin(
radians($user_lat) ) * sin( radians( latitude ) ) )
) AS distance FROM table_name HAVING
distance < 100 ORDER BY distance LIMIT 0 ,
20
20. Local Directory ex : City Directory
Mobile Commerce based on Location Based
Service ex : Kaskus FJB <with modified>
Event directory
Digital Advertising <promo based on
location>
Parental Control App
Social Network
Location Based Service based on Augmented
Reality (Like wikitude did)
Etc…
21. Obtaining User Location On Android
Reverse Geocoding
Building your own API
Synchronizing between your app and your API
Show on the map
22. GPS
Akurat, tapi lama mendapatkan koordinat dan
membutuhkan resource batere yang besar dan
harus diluar ruangan yang tidak terhalang
gedung
NETWORK BASED
Umum dan banyak digunakan, akurasi dibawah
GPS, bisa digunakan di dalam ruangan dan cepat
(Classic CID dan LAC)
AGPS
Kombinasi antara GPS dan Network Based, Cepat dan
Akurat
23. Sudah di package dalam android.location dan
pemanfaatan framework API LocationManager
The Providers :
◦ GPS
◦ NETWORK
◦ Using Criteria Class for BEST PROVIDER
Determining Power Use
Accuracy
Ability to return bearing, speed and altitude
26. Converting your latitude and longitude into
the physical address, like street, city, country,
state
How ?
◦ We send the latitude and longitude to Google Places
API but it’s encapsulated on the Android location
framework
27.
28. Using the web based Scripting language Such as :
PHP, JSP, ASP, Ruby
Using familiar database : MySQL, postgreSQL
Latitude and Longitude is important fields on
your table
Using framework is better (CI, RoR, .NET)
Webservice Architecture <expert> like RESTFUL
Generate the query response via JSON
Request Using HTTP GET / POST METHOD
Do it on Different Thread (Recommended using
AsyncTask)
http://code.google.com/apis/maps/articles/php
sqlsearch.html
30. Do this in Adapters and show on List
(ListView)
Using JSONObject class
Using JSONArray Class
Example :
◦ JSONArray a = new JSONArray(res);
◦ JSONObject b = a.getJSONObject(position);
◦ Txt_name.setText(b.getString(“name”));
31.
32. Generating API Keys besides your KEYSTORE
◦ http://code.google.com/android/add-ons/google-
apis/mapkey.html
Add this permission on the manifest :
◦ <uses-library
android:name="com.google.android.maps" />
Using Map Activity
Check and follow this basic tutorial
◦ http://agusharyanto.net/wordpress/?p=269
Try to use another map such as :
openstreetmap <it’s totally free>
33. Parsing this via Intent
◦ http://maps.google.com/maps?&saddr="+sourceLa
t+","+sourceLng+"&daddr="+destLatitude+","+des
tLongitude+"
Or follow this tutorial (Draw the direction on
MapActivity)
◦ http://agusharyanto.net/wordpress/?p=566
34. Case … We will create the Mc Donald
Directory In Jabodetabek
Purpose .. Give the user now the nearby
outlet
Feature : Show on the list -> Detil -> on the
map -> direction -> Checkin ?
35. Membuat aplikasi location based service itu
tidak lah sulit semuanya sudah di provide
sama Android
36. Combine this concept with your Idea..
Create the PRODUCT!!!!
39. http://developer.android.com
Proffesional Android Application
Development 1-3 By Reto Meier
Beginning Android 3 By Mark Murphy
Location Based Service Handbook by
Muhammad Ilyas
Sistem Informasi GIS Berbasis Mobile by
Slamet Riyadi