Membuat Websites Location Aware dengan HTML5 Geolocation
Indonesian (Bahasa Indonesia) translation by Muhammad Gufron (you can also view the original English article)
Asumsi dapat menjadi bisnis yang berisiko di dunia UX, tetapi beberapa asumsi dapat memungkinkan Anda untuk memberikan pengalaman pengguna yang lebih khusus kepada pengunjung Anda. Kami akan melihat peningkatan pengalaman pengguna dengan location aware situs web Anda.
User experience telah bermunculan maju menjadi yang terdepan dalam desain web dalam sepuluh tahun terakhir atau lebih. Sebagai pengguna, kami terus-menerus diminta untuk memberikan informasi terbaru tentang kita sendiri. Apa pun dari Twitter yang bertanya kepada kami, 'Apa yang terjadi?' ke Facebook menanyakan apa yang kami 'sukai'. Semua ini memungkinkan perusahaan-perusahaan ini, antara lain, untuk membangun profil Anda yang cukup rinci dan akurat sehingga mereka dapat memberi Anda pengalaman pengguna yang lebih pribadi.
Sekitar waktu yang sama yang HTM5 diumumkan, API lain diperkenalkan kepada kita dari W3C. Aku cukup yakin Anda mungkin pernah mendengar tentang hal itu; Geolocation API. Hal ini memungkinkan situs Anda untuk menerima informasi posisi geografis yang menggunakan JavaScript.
Bagaimana Geolocation Bekerja?
Data Geolokasi dapat diakses melalui berbagai sumber yang berbeda. Secara tradisional di website, itu akan ditentukan oleh alamat IP pengunjung. Kemudian akan terhubung ke layanan WHOIS dan mengambil alamat fisik pengunjung dari informasi whois mereka. Namun baru-baru ini, cara yang lebih populer dan akurat untuk mengakses informasi ini telah menjadi umum; menggunakan chip GPS bawaan perangkat. Ini ditemukan di sebagian besar ponsel pintar dan tablet dan bertanggung jawab atas peningkatan popularitas layanan sadar lokasi yang mungkin kita gunakan. Berpikir tentang Foursquare atau aplikasi lain yang Anda mungkin 'check in'.
Privasi Pengguna
Dalam spesifikasi API yang dirilis oleh W3C menyatakan:
User Agents tidak boleh mengirim informasi lokasi ke situs Web tanpa izin tertulis dari pengguna.
Sebelum perangkat atau browser dapat mengakses data geolokasi pengunjung, pengunjung harus terlebih dahulu meng-authotorize itu. Beginilah tampilannya di Google Chrome:


Sekarang, lebih dari sebelumnya, pengguna memperhatikan tentang informasi yang disimpan oleh situs web tentang mereka dan pengguna Anda perlu merasa yakin dengan apa Anda menggunakan data mereka. Beri tahu mereka mengapa Anda membutuhkan informasi ini dan tunjukkan bagaimana itu akan berguna bagi mereka dalam menciptakan pengalaman online yang lebih baik.
Saat menggunakan situs web atau aplikasi geolokasi, praktik yang baik adalah mengontrol jumlah informasi yang Anda bagikan dengan orang lain. Sebagian besar aplikasi dan layanan berbagi lokasi menawarkan semacam kontrol privasi, jadi pastikan untuk menggunakannya dan jangan pernah membagikan alamat pribadi Anda.
Menggunakan Geolocation
Setelah Anda memiliki situs atau aplikasi yang location aware, Anda dapat memberikan konten yang lebih akurat dan tepat untuk pengunjung Anda Mari kita lihat bagaimana geolokasi berguna.
Geomarketing
Geomarketing adalah istilah yang relatif baru dan dapat digambarkan sebagai:
Integrasi intelijen geografis ke dalam berbagai aspek pemasaran, termasuk penjualan dan distribusi.
Meskipun istilah baru, prinsip sebenarnya dari geo marketing telah ada untuk sementara waktu. Facebook telah memanfaatkan pendekatan ini untuk beberapa waktu sekarang. Facebook akan mengumpulkan data berbasis lokasi (berdasarkan alamat IP pengguna) dari ini, maka Tampilkan iklan sesuai untuk wilayah geografis. Google dan mesin pencari lainnya juga telah membuat penggunaan ini dan termasuk hasil pencarian berbasis lokasi untuk pengguna mereka.
Crowdsourcing
Bukan hanya pemasar yang dapat mengambil manfaat dari layanan geolokasi, tetapi tipe kreatif juga memanfaatkannya (mungkin bahkan tanpa menyadarinya). Orang telah menggunakannya untuk mendapatkan akses ke sejumlah besar orang, yang semuanya terletak di area yang sama dan memiliki tujuan yang sama untuk 'membuat sesuatu terjadi'. Ini dapat berkisar dari flash mob, hingga rutinitas tarian berskala besar, hingga menciptakan kelompok komunitas untuk orang-orang yang memiliki minat yang sama.
Ini juga telah digunakan dalam situasi seperti gempa Haiti pada tahun 2010, ketika kelompok besar orang biasa berkumpul bersama untuk mengumpulkan bantuan semua melalui kekuatan jaringan sosial dan lokasi geografis.
Penawaran
Baru-baru ini sejumlah besar 'situs penawaran' mulai bermunculan di mana-mana. Terutama adalah Groupon yang diluncurkan pada bulan November 2008. Groupon menawarkan layanan deal-of-the-day kepada penggunanya dan setiap hari situs memiliki jumlah penawaran yang telah ditentukan untuk setiap penawaran. Setiap item harus cukup menarik minat pengguna untuk mendaftar untuk penawaran itu; untuk melakukannya mereka menerimanya, tetapi hanya jika itu mencapai jumlah orang yang telah ditentukan.
Konsep ini mengurangi risiko bagi pengecer dan memungkinkan mereka untuk menjual dalam jumlah besar, menjadikan konsep itu pemenang semua. Kekuatan Groupon terletak pada integrasi ketat yang dimilikinya dengan lokasi penggunanya. Dengan menawarkan penggunanya penawaran dan penawaran lokal, ia telah menjadi salah satu situs kupon paling populer dan formatnya direplikasi berkali-kali.
Contoh Praktis
Sekarang Anda mengerti lebih banyak tentang geolokasi, mari kita lihat beberapa contoh dunia nyata.
The Rocky Horror Show
The rocky horror website memungkinkan Anda mendapatkan waktu tayang untuk pertunjukan di tempat yang dekat dengan Anda. Cukup buka situs dan klik 'Find my location'.
Flickr Places
Menggunakan teknologi yang sama, Flickr menunjukkan apa yang telah diunggah orang lain ke situs web di dekat tempat Anda berada.
Mapumental
Mapumanetal muncul pada tahun 2006 ketika Departemen Transportasi di Inggris menghubungi startup untuk bekerja dengan informasi yang mereka miliki tentang data transportasi umum. Mereka menggambarkan apa yang mereka lakukan di Mapumental sebagai 'Kami membuat peta yang membantu orang membuat keputusan yang lebih baik, lebih cepat.' Ini menawarkan berbagai alat dan layanan yang menawarkan cara untuk memvisualisasikan data perjalanan waktu nyata.
Menerapkan Geolocation
Jika sebelumnya Anda belum menerapkan geolokasi ke situs web atau aplikasi apa pun maka kabar baiknya adalah, itu tidak bisa lebih sederhana. Dalam tutorial ini saya akan menunjukkan bagaimana Anda bisa mendapatkan lokasi pengguna di situs web atau aplikasi web Anda.
HTML Markup
Saya telah merancang ini sehingga Anda dapat menambahkannya ke situs web Anda sendiri dengan cukup mudah. Tujuannya adalah agar pengguna menekan tombol yang kemudian akan mendapatkan lokasi mereka, menampilkannya di situs dengan sedikit bantuan dari Google Maps API's.
Kami mulai dengan pembungkus untuk memusatkan desain. Saya telah memilih untuk melakukan ini pada lebar 960px tetapi Anda dapat memilih untuk menggunakan ukuran apa pun yang sesuai dengan desain Anda. Di dalam 'wrapper' ini saya telah membuat sebuah div yang merupakan tempat peta akan diletakkan begitu telah dihasilkan. Aku telah memberikan ini ID dari 'Map'.
Dalam div 'Map' saya kemudian memiliki rentang yang saya berikan kelas yang disebut 'helper'. Ini akan menjadi panduan pembantu kecil yang akan menginstruksikan pengguna apa yang harus mereka lakukan. Ini mungkin tampak sedikit tidak perlu tetapi selalu merupakan praktik yang baik untuk membantu pengguna bila memungkinkan.
Kami kemudian memiliki gambar preloader yang saya berikan ID 'preloader'. Jika Anda mencari untuk menemukan preloaders maka Anda dapat memeriksa preloaders.net.
Inilah yang harus Anda miliki sejauh ini:
1 |
|
2 |
|
3 |
<div class="wrapper"> |
4 |
|
5 |
<div id="map"> |
6 |
<span class="helper">Click the button below to show your location on the map</span> |
7 |
<img id="preloader" src="images/257.gif"> |
8 |
</div>
|
9 |
|
10 |
</div><!--End Wrapper--> |
Setelah div 'map' saya menggunakan anchor tag sederhana yang akan bertindak sebagai tombol bagi pengguna untuk mengklik. Ini memiliki kelas (yup Anda dapat menebaknya) 'tombol'.
Setelah pengguna mengklik tombol, kami tidak hanya ingin menampilkan peta, tetapi juga berguna untuk menampilkan lokasi, garis bujur dan garis lintang pengguna. Untuk ini saya buat div dengan ID dari 'result' yang kemudian berisi tiga meliputi masing-masing dengan kelas yang relevan. Untuk markup itu saja. Ini adalah apa yang harus seperti seluruh markup:
1 |
|
2 |
|
3 |
<div class="wrapper"> |
4 |
|
5 |
<div id="map"> |
6 |
<span class="helper">Click the button below to show your location on the map</span> |
7 |
<img id="preloader" src="images/257.gif"> |
8 |
</div>
|
9 |
|
10 |
<a class="button" href="" title="">Find My Location</a> |
11 |
|
12 |
<div id="results"> |
13 |
<span class="longitude"></span><br> |
14 |
<span class="lattitude"></span><br> |
15 |
<span class="location"></span> |
16 |
</div>
|
17 |
|
18 |
</div><!--End Wrapper--> |
CSS
CSS cukup sederhana. Berikut ini adalah secara penuh:
1 |
|
2 |
@charset "utf-8"; |
3 |
html{ |
4 |
background:#222222; |
5 |
font-family:helvetica, arial, sans-serif; |
6 |
}
|
7 |
.wrapper{ |
8 |
width:960px; |
9 |
margin: 0 auto; |
10 |
position:relative; |
11 |
}
|
12 |
#map{ |
13 |
position:relative; |
14 |
text-align: center; |
15 |
color: #363535; |
16 |
text-transform: uppercase; |
17 |
width: 425px; |
18 |
height: 350px; |
19 |
margin:0 auto; |
20 |
margin-top:20px; |
21 |
padding: 5px; |
22 |
border: 1px solid black; |
23 |
background: #474747; |
24 |
box-shadow: 0px 0px 3px 3px rgba(0, 0, 0, .3); |
25 |
}
|
26 |
#map .helper{ |
27 |
display: block; |
28 |
font-weight: bold; |
29 |
font-size: 12px; |
30 |
color: rgb(54, 54, 54); |
31 |
width: 180px; |
32 |
line-height: 135%; |
33 |
margin: 0 auto; |
34 |
margin-top: 140px; |
35 |
}
|
36 |
#map #preloader{ |
37 |
position: absolute; |
38 |
top: 141px; |
39 |
left: 190px; |
40 |
display:none; |
41 |
}
|
42 |
#map iframe{ |
43 |
border:1px solid black; |
44 |
}
|
45 |
.button{ |
46 |
padding:13px 40px; |
47 |
background-color:#00caa7; |
48 |
color:#00caa7; |
49 |
border-radius:3px; |
50 |
color:white; |
51 |
display:block; |
52 |
text-decoration:none; |
53 |
box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.3); |
54 |
width:122px; |
55 |
margin:0 auto; |
56 |
margin-top:20px; |
57 |
}
|
58 |
.button:hover{ |
59 |
background-color:#00b495 |
60 |
}
|
61 |
#results{ |
62 |
color: rgb(0, 180, 149); |
63 |
position: absolute; |
64 |
margin-top: 20px; |
65 |
text-align: center; |
66 |
line-height: 23px; |
67 |
width: 100%; |
68 |
}
|
Satu hal yang perlu diperhatikan adalah preloader adalah satu-satunya elemen div yang benar-benar diposisikan. Ini benar-benar diposisikan dalam kaitannya dengan div 'peta'. Untuk mencapai ini, pastikan bahwa div 'map' sudah diatur posisinya menjadi relatif. Ini akan memungkinkan preloader diposisikan ke induknya sebagai lawan dari keseluruhan dokumen.
jQuery
Google menawarkan serangkaian API untuk layanan PETA yang bebas hingga batas penggunaan tertentu. Setelah itu, akan dikenakan biaya.
Untungnya, kedua layanan yang akan kita gunakan benar-benar gratis; sebenarnya salah satu teknik tidak menggunakan API sama sekali, melainkan menggunakan iframe embed peta standar di mana kita akan mengubah beberapa nilai yang kita dapatkan dari browser pengguna.
Pertama, dalam beberapa <script>
1 |
|
2 |
var button = jQuery('.button'); |
3 |
var preloader = jQuery('#preloader'); |
4 |
var longitudediv = jQuery('.longitude'); |
5 |
var lattitudediv = jQuery('.lattitude'); |
6 |
var locationdiv = jQuery('.location'); |
Setelah kami selesai melakukannya, kami harus memeriksa apakah browser mendukung Geolocation API. Kita dapat menguji ini dengan pernyataan 'if' berikut.
1 |
|
2 |
if (navigator.geolocation) { |
3 |
// Browser supports it, we're good to go!
|
4 |
} else { |
5 |
alert('Sorry your browser doesn\'t support the Geolocation API'); |
6 |
}
|
Setelah kami menetapkan dukungan peramban, kami kemudian akan mendeteksi klik tombol di bagian di mana ia berkomentar 'Browser supports it, we're good to go'.
Event klik tombol akan terlihat seperti ini:
1 |
|
2 |
button.click(function(e) { |
3 |
e.preventDefault(); |
4 |
preloader.show(); |
5 |
navigator.geolocation.getCurrentPosition(exportPosition, errorPosition); |
6 |
});
|
Setelah tombol diklik, itu akan menunjukkan preloader. Bagian penting untuk dilihat di sini adalah baris ke-2 hingga terakhir yang berisi 'navigator'. Apa yang dikatakan secara efektif adalah: 'dapatkan lokasi pengguna dan jika berhasil mengirim posisi lokasi ke fungsi 'exportPosition', jika tidak, kirim kesalahan ke fungsi errorPosition'.
Jadi mari kita masuk dan membuat fungsi-fungsi ini. Fungsi kesalahan cukup mudah:
1 |
|
2 |
function errorPosition() { |
3 |
alert('Sorry couldn\'t find your location'); |
4 |
pretext.show(); |
5 |
}
|
Dalam fungsi di atas Anda dapat melihat bahwa fungsi tersebut akan mengingatkan dan kesalahan, kemudian menunjukkan preloader lagi.
Dalam fungsi sukses di bawah ini yang disebut 'exportPosisi' kita mendapatkan garis lintang dan bujur yang disediakan oleh geolokasi API dan mengatur ini sebagai variabel dengan nama yang sama.
Setelah kami memiliki ini, kami kemudian dapat menggunakannya dalam kode embr iframe dari Google Maps. Kami juga dapat menggunakannya dalam span yang menampilkan garis bujur dan garis lintang kepada pengguna. Ini dia tampilannya:
1 |
|
2 |
function exportPosition(position) { |
3 |
|
4 |
// Get the geolocation properties and set them as variables
|
5 |
latitude = position.coords.latitude; |
6 |
longitude = position.coords.longitude; |
7 |
|
8 |
// Insert the google maps iframe and change the location using the variables returned from the API
|
9 |
jQuery('#map').html('<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.co.uk/?ie=UTF8&ll='+latitude+','+longitude+'&spn=0.332359,0.617294&t=m&z=11&output=embed"></iframe>'); |
10 |
longitudediv.html('Longitude: '+longitude); |
11 |
lattitudediv.html('Latitude: '+latitude); |
12 |
|
13 |
}
|
Bagian yang penting adalah url iframe. Di dalam url saya memasukkan variabel '+ latitude +' dan '+ longitude +'. Dari dekat ini terlihat seperti:
1 |
|
2 |
|
3 |
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.co.uk/?ie=UTF8&ll='+latitude+','+longitude+'&spn=0.332359,0.617294&t=m&z=11&output=embed"></iframe> |
Ini akan menyisipkan MAP dalam div 'peta' dan juga mengungkapkan garis bujur dan lintang kepada pengguna. Ada juga satu hal lagi yang ingin kita ketahui; ini adalah nama lokasi pengguna. Untuk melakukan ini kita perlu melakukan panggilan ke Google Maps API melalui AJAX. Kami menambahkan fungsi AJAX ini dalam fungsi 'exportPosition'. Ini terlihat seperti:
1 |
|
2 |
//Make a call to the Google maps api to get the name of the location
|
3 |
jQuery.ajax({ |
4 |
url: 'http://maps.googleapis.com/maps/api/geocode/json?latlng='+latitude+','+longitude+'&sensor=true', |
5 |
type: 'POST', |
6 |
dataType: 'json', |
7 |
success: function(data) { |
8 |
//If Successful add the data to the 'location' div
|
9 |
locationdiv.html('Location: '+data.results[0].address_components[2].long_name); |
10 |
},
|
11 |
error: function(xhr, textStatus, errorThrown) { |
12 |
errorPosition(); |
13 |
}
|
14 |
});
|
Dalam respons success, kami mengambil nama lokasi yang diterima kembali dari panggilan AJAX dan menambahkannya ke span '.location' Jika, karena alasan apa pun, ada kesalahan dalam panggilan itu, maka ia akan menjalankan fungsi 'errorPosition' dan memperingatkan pengguna bahwa ia tidak dapat menemukan lokasi mereka.
API Geolokasi bekerja di semua browser modern. Namun beberapa versi Safari menggunakan CoreLocation untuk mendapatkan data geolokasi, yang berarti Anda harus terhubung ke internet menggunakan WIFI. Jika Anda terhubung melalui ethernet atau serupa, maka Anda mungkin memiliki masalah pengumpulan data lokasi.
Perlu juga ditunjukkan bahwa file tutorial ini perlu diunggah ke server web langsung agar berfungsi dan tidak akan berfungsi di localhost.
Kesimpulan
Saya harap sekarang Anda memiliki pemahaman yang lebih besar tentang API geolocation , cara kerjanya, dan bagaimana Anda dapat menerapkannya dengan sedikit usaha. Dengan menggunakan geolokasi dengan cara yang kreatif dan efektif, Anda seharusnya dapat memberikan pengalaman pengguna yang lebih baik bagi pengguna Anda.
Sudahkah Anda menerapkan API geolokasi ke situs mana pun yang Anda kerjakan untuk mendorong pengalaman pengguna yang lebih baik? Pernahkah Anda melihatnya digunakan dengan cara yang keren dan kreatif? Beri tahu kami di komentar di bawah.









