location based service
TRANSCRIPT
Senior Android Developer Founder of Nusantara Beta T: @nouvrizky10 F : cdiq.sanz E : [email protected] M : 08569579148
Hi.. I’m Sidiq
You must be know these,,
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)
Definitions
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).
Definitions (Cont..)
Sebuah layanan yang memberikan informasi berdasarkan posisi pengguna (device) sebagai acuan utama.
Kesimpulan dari beberapa definisi
LBS Relation
Location Based Service merupakan kombinasi dari beberapa disiplin ilmu (Shiode et al 2004)
LBS Architecture
LBS Architecture (Cont)
Perangkat Mobile Jaringan Komunikasi Komponen Pengambil Posisi Provider Layanan dan Aplikasi Data dan Provider Konten WMS (Web Map Server)
Its main component
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)
The strenght and weakness
Pull Services Pengguna secara aktif mengirimkan informasi
yang dibutuhkan <user request>- Menggunakan service yang akan mendownload data dalam interval waktu tertentu
Push ServicesMemberikan informasi kepada pengguna yang mana
tidak secara langsung diminta oleh pengguna <system push to application>
e.g : Push Notification on Telkomsel
LBS Divided into 2 types
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
Haversine Formula
The formulas
Dimana :Haversine adalah fungsi haversine haversin(θ) = sin2(θ/2) = versine (θ)/2D adalah jarak antara 2 pointR adalah radius dari lingkaran bulatφ1 adalah latitude dari point 1,φ2 adalah latitude dari point 2, andΔλ adalah kalkulasi 2 longitude
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)
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
Converting haversine formula into SQL Syntax
R = earth’s radius Δlat = lat2− lat1; Δlong = long2− long1a = sin²(Δlat/2) + cos(lat1) * cos(lat2) * sin²(Δlong/2)c = 2*atan2(√a, √(1−a))d = R*c
ACOS( SIN(origin.lat* PI( ) /180 ) * SIN( O.latitude * PI( ) /180 ) + COS(origin.lat* PI( ) /180 ) * COS( O.latitude * PI( ) /180 ) * COS( (O.longitude – origin.lng ) * PI( ) /180 ) ) *180 / PI( ) ) *6371
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
Detil on SQL SYNTAX
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…
So what could we make from this?
Obtaining User Location On Android Reverse Geocoding Building your own API Synchronizing between your app and your
API Show on the map
Step to implement LBS on Android
GPS Akurat, tapi lama mendapatkan koordinat dan
membutuhkan resource batere yang besar dan harus diluar ruangan yang tidak terhalang gedung
NETWORK BASEDUmum dan banyak digunakan, akurasi dibawah GPS, bisa digunakan di dalam ruangan dan cepat (Classic CID dan LAC)
AGPSKombinasi antara GPS dan Network Based, Cepat dan
Akurat
Obtaining User Location Mechanism On Android
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
Obtaining User Location Mechanism On Android (Cont…)
<manifest ... > <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> ...</manifest>
Permission
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
Reverse Geocoding
Example
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/
phpsqlsearch.html
Building Your Own API
Request : ◦ http://api.yourdomain.com/nearby.php?ll=-6.7896
5,106.786964 Response :
◦ [{“id”:”9808”,”name”:”Alfamart”, “latitude”:”-.687965”, “longitude”:”106.45643”},
◦ {“id”:”9804”,”name”:”Indomart”, “latitude”:”-.687965”, “longitude”:”106.45643”},
◦ {“id”:”9805”,”name”:”Alfa Midi”, “latitude”:”-.687622”, “longitude”:”106.67586”}]
Example (Non Framework)
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”));
Fetching the response
Calculate distance between two points given
Generating API Keys besides your KEYSTORE◦ http://code.google.com/android/add-ons/google-api
s/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>
Show on the map
Parsing this via Intent◦ http://maps.google.com/maps?
&saddr="+sourceLat+","+sourceLng+"&daddr="+destLatitude+","+destLongitude+"
Or follow this tutorial (Draw the direction on MapActivity)◦ http://agusharyanto.net/wordpress/?p=566
Show the directions?It’s so easy
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 ?
Demo
Membuat aplikasi location based service itu tidak lah sulit semuanya sudah di provide sama Android
Kesimpulan
Combine this concept with your Idea.. Create the PRODUCT!!!!
So…. What will you do next?
Questions?
Thank you
Create functionality checkin Improve the UI
Challenge …
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
References