Pernah kan teman – teman melihat sebuah situs yang meminta kita atau menunjukkan sebuah notifikasi pada browser/smartphone kita mengenai permintaan pembacaan koordinat kita saat ini ? Nah pada kesempatan tutorial kali ini kita akan membahas mengenai bagaimana cara mengetahui koordinat kita saat ini menggunakan script HTML dan Javascript.
Untuk mengetahui lokasi kita menggunakan HTML khususnya HTML 5, kita menggunakan fitur yang namanya HTML5 API Geolocation. Fitur geolokasi HTML5 memungkinkan kita untuk mengetahui koordinat geografis (angka lintang dan bujur). Fitur ini berguna untuk memberikan pengalaman browsing konten yang lebih baik kepada pengunjung situs web. Misalnya, Teman – teman membuat suatu situs pemetaan bencana maka dengan menggunakan fitur ini kita dapat membuat sebuah hasil pencarian yang secara fisik dekat dengan lokasi pengguna.
Teman – teman sering kali ingin mengambil informasi lokasi pengunjung di aplikasi website teman-teman, misalnya untuk memplot lokasinya di peta, atau menampilkan informasi yang dipersonalisasi yang relevan dengan lokasinya.
API Geolokasi diakses dengan melakukan pemanggilan fungsi navigator.geolocation
. Fungsi ini ini akan menyebabkan browser pengunjung situs kita meminta izin untuk mengakses data lokasi mereka. Jika pengunjung menerima atau memperbolehkan akases, maka browser akan menggunakan fungsionalitas terbaik yang tersedia pada perangkat untuk mengakses informasi ini (misalnya, GPS).
Untuk melakukan akses ke informasi lokasi ini ada beberapa cara yang bisa dilakukan dengan API Geolokasi yaitu :
Geolocation.getCurrentPosition()
-> ini digunakan untuk mengambil informasi posisi perangkat pengunjung web saat iniGeolocation.watchPosition()
-> Ini digunakan untuk mengetahui perubahan posisi pengunjung, yaitu akan secara otomatis dipanggil setiap kali posisi perangkat pengunjung web berubah.Catatan : Mulai dari Chrome Versi 50, API Geolokasi hanya akan bekerja pada situs menggunakan jaringan SSL yang aman yaitu HTTPS. Jika kita menggunakannya pada hosting yang masih menggunakan sambungan HTTP maka permintaan untuk meminta data lokasi pengguna tidak akan berfungsi lagi.
Contoh script dasarnya adalah:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"/> <title>KoordinatKu</title> </head> <body> <div class="container my-5"> <div class="row"> <div class="col-6"> <p>Klik Button untuk mengetahui koordinat .</p> <button class="btn btn-primary btn-block" >var x = document.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { x.innerHTML = "Browser mu tidak support."; } } function showPosition(position) { x.innerHTML = "Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude; } </script> </body> </html>
Penjelasan:
onClick="getLocation()"
yang berarti kerika button di klik maka akan memanggil fungsi getLocation().x
yang akan digunakan sebagai variabel penerima data lokasiGeolocation.getCurrentPosition()
untuk mengetahui posisi atau koordinat kita saat ini. Nah untuk Navigator
merupakan objek DOM nya.showPosition(position)
akan dipanggil jika browser support API Geolocation. dan akan menampilkan text dengan innerHTML berupa posisi latitude dan longitude . posisi latitude dan logitude dipanggil menggunakan position.coords.latitude
dan position.coords.longitude
, position merupakan objek nya. Untuk memadukan kedua hal ini, teman-teman sebaiknya melihat artikel Tutorial Leaflet.Js: Materi Lengkap dan Sintak Codenya. Kemudian kita hanya tinggal memasukkan dan membuat area penampung nya . Contoh sederhananya seperti dibawah:
Note: Jika lokasi tidak akurat kemungkinan besar karena sambungan teman – teman menggunakan HTTP. Gunakan HTTPS agar lebih akurat.
<!DOCTYPE html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous" /> <!--CSS LeafletJS--> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A==" crossorigin="" /> <!--JavaScript LeafletJS--> <script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js" integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" crossorigin="" ></script> </head> <body> <div class="container my-5"> <div class="row"> <div class="col-6"> <p>Klik Button untuk mengetahui koordinat .</p> <button class="btn btn-primary" >copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' + '<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' + 'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>', id: "mapbox/streets-v11", tileSize: 512, zoomOffset: -1, } ).addTo(mymap); //menambahkan marker letak posisi dengan lat dan lng yang telah didapat sebelumnya L.marker([position.coords.latitude, position.coords.longitude]) .addTo(mymap) .bindPopup("<b>Hai!</b><br />Ini adalah lokasi mu"); //digunakan unuk menampilkan text posisi saat ini x.innerHTML = "Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude; } </script> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous" ></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous" ></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous" ></script> </body> </html>
Penjelasan:
Mungkin ada pertanyaan kenapa saya tidak menggunakan API gmaps untuk menampilkan posisi pada peta nya ? karena API gmaps memerlukan izin akses kepada setiap pengguna yang mengakses peta jadi kita tetap bisa menampikannya pada peta gmaps tetapi tidak akan bisa digesen dan biasanya ada tulisan “anda memerlukan izin akses”. (sepengalaman saya ya).