HTML5 - Geolokasi
API Geolokasi HTML5 memungkinkan Anda berbagi lokasi dengan situs web favorit Anda. JavaScript dapat menangkap garis lintang dan bujur Anda dan dapat dikirim ke server web backend dan melakukan hal-hal yang sadar lokasi seperti menemukan bisnis lokal atau menunjukkan lokasi Anda di peta.
Saat ini sebagian besar browser dan perangkat seluler mendukung Geolocation API. API geolokasi bekerja dengan properti baru dari objek navigator global yaitu. Objek geolokasi yang dapat dibuat sebagai berikut -
var geolocation = navigator.geolocation;
Objek geolokasi adalah objek layanan yang memungkinkan widget untuk mengambil informasi tentang lokasi geografis perangkat.
Metode Geolokasi
Objek geolokasi menyediakan metode berikut -
Sr.No. | Metode & Deskripsi |
---|---|
1 | getCurrentPosition ()
Metode ini mengambil lokasi geografis pengguna saat ini. |
2 | watchPosition ()
Metode ini mengambil pembaruan berkala tentang lokasi geografis perangkat saat ini. |
3 | clearWatch ()
Metode ini membatalkan panggilan watchPosition yang sedang berlangsung. |
Contoh
Berikut ini adalah contoh kode untuk menggunakan salah satu metode di atas -
function getLocation() {
var geolocation = navigator.geolocation;
geolocation.getCurrentPosition(showLocation, errorHandler);
}
Di sini showLocation dan errorHandler adalah metode callback yang akan digunakan untuk mendapatkan posisi sebenarnya seperti yang dijelaskan di bagian selanjutnya dan untuk menangani error jika ada.
Properti Lokasi
Metode geolokasi getCurrentPosition () dan getPositionUsingMethodName () menentukan metode callback yang mengambil informasi lokasi. Metode ini disebut secara asinkron dengan suatu objekPosition yang menyimpan informasi lokasi lengkap.
Itu Positionobjek menentukan lokasi geografis perangkat saat ini. Lokasi dinyatakan sebagai sekumpulan koordinat geografis bersama dengan informasi tentang arah dan kecepatan.
Tabel berikut menjelaskan properti dari objek Posisi. Untuk properti opsional jika sistem tidak dapat memberikan nilai, nilai properti disetel ke null.
Properti | Tipe | Deskripsi |
---|---|---|
coords | benda | Menentukan lokasi geografis perangkat. Lokasi dinyatakan sebagai sekumpulan koordinat geografis bersama dengan informasi tentang arah dan kecepatan. |
coords.latitude | Jumlah | Menentukan perkiraan lintang dalam derajat desimal. Rentang nilainya adalah [-90.00, +90.00]. |
coords.longitude | Jumlah | Menentukan perkiraan bujur dalam derajat desimal. Rentang nilainya adalah [-180,00, +180,00]. |
coords.altitude | Jumlah | [Opsional] Menentukan perkiraan ketinggian dalam meter di atas ellipsoid WGS 84. |
coords.accuracy | Jumlah | [Opsional] Menentukan keakuratan perkiraan garis lintang dan garis bujur dalam meter. |
coords.altitudeAccuracy | Jumlah | [Opsional] Menentukan keakuratan perkiraan ketinggian dalam meter. |
coords.heading | Jumlah | [Opsional] Menentukan arah pergerakan perangkat saat ini dalam derajat yang dihitung searah jarum jam relatif terhadap utara sebenarnya. |
coords.speed | Jumlah | [Opsional] Menentukan kecepatan gerak perangkat saat ini dalam meter per detik. |
cap waktu | tanggal | Menentukan waktu saat informasi lokasi diambil dan objek Posisi dibuat. |
Contoh
Berikut ini adalah contoh kode yang menggunakan objek Posisi. Di sini metode showLocation adalah metode panggilan balik -
function showLocation( position ) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
...
}
Penanganan Error
Geolokasi itu rumit, dan sangat dibutuhkan untuk menangkap kesalahan apa pun dan menanganinya dengan baik.
Metode geolokasi getCurrentPosition () dan watchPosition () menggunakan metode callback penangan kesalahan yang memberikan PositionErrorobyek. Objek ini memiliki dua properti berikut -
Properti | Tipe | Deskripsi |
---|---|---|
kode | Jumlah | Berisi kode numerik untuk kesalahan tersebut. |
pesan | Tali | Berisi deskripsi kesalahan yang dapat dibaca manusia. |
Tabel berikut menjelaskan kemungkinan kode kesalahan yang dikembalikan dalam objek PositionError.
Kode | Konstan | Deskripsi |
---|---|---|
0 | KESALAHAN YANG TIDAK DIKETAHUI | Metode gagal mengambil lokasi perangkat karena kesalahan yang tidak diketahui. |
1 | IZIN DITOLAK | Metode gagal mengambil lokasi perangkat karena aplikasi tidak memiliki izin untuk menggunakan Layanan Lokasi. |
2 | POSITION_UNAVAILABLE | Lokasi perangkat tidak dapat ditentukan. |
3 | WAKTU HABIS | Metode ini tidak dapat mengambil informasi lokasi dalam interval waktu tunggu maksimum yang ditentukan. |
Contoh
Berikut ini adalah contoh kode yang menggunakan objek PositionError. Di sini metode errorHandler adalah metode panggilan balik -
function errorHandler( err ) {
if (err.code == 1) {
// access is denied
}
...
}
Opsi Posisi
Berikut ini adalah sintaks sebenarnya dari metode getCurrentPosition () -
getCurrentPosition(callback, ErrorCallback, options)
Di sini argumen ketiga adalah PositionOptions objek yang menetapkan sekumpulan opsi untuk mengambil lokasi geografis perangkat.
Berikut adalah opsi yang dapat ditentukan sebagai argumen ketiga -
Properti | Tipe | Deskripsi |
---|---|---|
enableHighAccuracy | Boolean | Menentukan apakah widget ingin menerima perkiraan lokasi seakurat mungkin. Secara default ini salah. |
waktu habis | Jumlah | Properti waktu tunggu adalah jumlah milidetik yang bersedia ditunggu aplikasi web Anda untuk suatu posisi. |
usia maksimum | Jumlah | Menentukan waktu kedaluwarsa dalam milidetik untuk informasi lokasi cache. |
Contoh
Berikut adalah contoh kode yang menunjukkan bagaimana menggunakan metode yang disebutkan di atas -
function getLocation() {
var geolocation = navigator.geolocation;
geolocation.getCurrentPosition(showLocation, errorHandler, {maximumAge: 75000});
}