tutorial pengembangan web terbaru

HTML5 Geolocation


HTML Geolocation API digunakan untuk menemukan posisi pengguna.


Apa W3C Geolocation API?

W3C Geolocation API merupakan upaya oleh World Wide Web Consortium (W3C) untuk standarisasi antarmuka untuk mengambil informasi lokasi geografis untuk perangkat sisi klien.

Ini mendefinisikan satu set objek, ECMAScript standar compliant, yang mengeksekusi dalam aplikasi klien memberikan lokasi perangkat klien melalui konsultasi Server Informasi Lokasi, yang transparan untuk antarmuka pemrograman aplikasi (API).

Sumber yang paling umum dari informasi lokasi yang alamat IP, Wi-Fi dan Bluetooth alamat MAC, identifikasi frekuensi radio (RFID), lokasi koneksi Wi-Fi, atau perangkat Global Positioning System (GPS) dan ID sel GSM / CDMA.

Lokasi dikembalikan dengan akurasi yang diberikan tergantung pada lokasi terbaik sumber informasi yang tersedia.


Deployment di web browser

halaman web dapat menggunakan API Geolocation langsung jika web browser mengimplementasikannya. Secara historis, beberapa browser dapat memperoleh dukungan melalui plugin Google Gears, tapi ini dihentikan pada 2010 dan API server-side itu tergantung pada berhenti merespons pada tahun 2012.

The Geolocation API cocok untuk aplikasi web untuk perangkat mobile seperti asisten pribadi digital (PDA) dan smartphone. Pada komputer desktop, API W3C Geolocation bekerja di Firefox sejak versi 3.5, Google Chrome, Opera 10.6, Internet Explorer 9.0, dan Safari 5. Pada perangkat seluler, ia bekerja pada Android (firmware 2.0 +), iOS, Windows Phone dan Maemo.

W3C Geolocation API juga didukung oleh Opera Mobile 10.1 - tersedia untuk perangkat Android dan Symbian (S60 generasi 3 & 5) sejak November 24, 2010.

Google Gears memberikan dukungan geolocation untuk browser lama dan non-compliant, termasuk Internet Explorer 7.0+ sebagai plugin Gears, dan Google Chrome yang dilaksanakan Gears native. Hal ini juga didukung geolocation pada perangkat mobile sebagai plugin untuk browser Android (pra versi 2.0) dan Opera Mobile untuk Windows Mobile.

Namun, API Google Gears Geolocation tidak sesuai dengan API W3C Geolocation dan tidak lagi didukung.


fitur

Hasil W3C Geolocation API biasanya akan memberikan 4 sifat lokasi, termasuk lintang dan bujur (koordinat), ketinggian (tinggi), dan [akurasi posisi berkumpul], yang semua tergantung pada sumber lokasi.

Dalam beberapa permintaan, ketinggian dapat menghasilkan atau tidak menghasilkan nilai.


Cari Posisi Pengguna

HTML Geolocation API digunakan untuk mendapatkan posisi geografis pengguna.

Karena ini bisa kompromi privasi, posisi ini tidak tersedia kecuali pengguna menyetujuinya.


Dukungan Browser

Angka-angka dalam tabel menentukan versi browser pertama yang sepenuhnya mendukung Geolocation.

API
Geolocation 5.0 9.0 3,5 5.0 16.0

Note: Geolocation jauh lebih akurat untuk perangkat dengan GPS, seperti iPhone .


Menggunakan Geolocation HTML

The getCurrentPosition() metode yang digunakan untuk mendapatkan posisi pengguna.

Contoh di bawah mengembalikan lintang dan bujur dari posisi pengguna:

Contoh

<script>
var x = document.getElementById("demo");
function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude +
    "<br>Longitude: " + position.coords.longitude;
}
</script>
Cobalah sendiri "

Contoh menjelaskan:

  • Periksa apakah Geolocation didukung
  • Jika didukung, menjalankan getCurrentPosition() metode. Jika tidak, menampilkan pesan ke pengguna
  • Jika getCurrentPosition() metode berhasil, ia mengembalikan koordinat keberatan dengan fungsi yang ditentukan dalam parameter (showPosition)
  • The showPosition() fungsi output Lintang dan Bujur

Contoh di atas adalah script Geolocation sangat dasar, tanpa penanganan error.


Penanganan Kesalahan dan Penolakan

Parameter kedua dari getCurrentPosition() metode yang digunakan untuk menangani kesalahan. Ini menentukan fungsi untuk menjalankan jika gagal untuk mendapatkan lokasi pengguna:

Contoh

function showError(error) {
    switch(error.code) {
        case error.PERMISSION_DENIED:
            x.innerHTML = "User denied the request for Geolocation."
            break;
        case error.POSITION_UNAVAILABLE:
            x.innerHTML = "Location information is unavailable."
            break;
        case error.TIMEOUT:
            x.innerHTML = "The request to get user location timed out."
            break;
        case error.UNKNOWN_ERROR:
            x.innerHTML = "An unknown error occurred."
            break;
    }
}
Cobalah sendiri "

Menampilkan Hasil dalam Peta suatu

Untuk menampilkan hasilnya dalam peta, Anda memerlukan akses ke layanan peta, seperti Google Maps.

Pada contoh di bawah ini, garis lintang dan bujur kembali digunakan untuk menunjukkan lokasi di Google Map (using a static image) :

Contoh

function showPosition(position) {
    var latlon = position.coords.latitude + "," + position.coords.longitude;

    var img_url = "http://maps.googleapis.com/maps/api/staticmap?center=
    "+latlon+"&zoom=14&size=400x300&sensor=false";

    document.getElementById("mapholder").innerHTML = "<img src='"+img_url+"'>";
}
Cobalah sendiri "

Google Map Script
Cara menampilkan Google Map interaktif dengan spidol, zoom dan pilihan drag.


Informasi spesifik lokasi

Halaman ini menunjukkan bagaimana untuk menunjukkan posisi pengguna pada peta.

Geolocation juga sangat berguna untuk informasi lokasi-spesifik, seperti:

  • Up-to-date informasi lokal
  • Menampilkan Poin-of-bunga di dekat pengguna
  • Turn-by-turn navigasi (GPS)

The getCurrentPosition() Method - Kembali data

The getCurrentPosition() metode mengembalikan sebuah objek jika berhasil. Lintang, bujur dan akurasi sifat selalu dikembalikan. Sifat-sifat lainnya dikembalikan jika tersedia:

Milik Pengembalian
coords.latitude Lintang sebagai angka desimal
coords.longitude Bujur sebagai angka desimal
coords.accuracy Akurasi posisi
coords.altitude Ketinggian dalam meter di atas permukaan laut
coords.altitudeAccuracy Ketinggian akurasi posisi
coords.heading Pos sebagai derajat searah jarum jam dari North
coords.speed Kecepatan dalam meter per detik
timestamp Tanggal / waktu respon

Geolocation objek - Metode menarik lainnya

watchPosition() - Mengembalikan posisi saat ini pengguna dan terus kembali posisi diperbarui sebagai pengguna bergerak (like the GPS in a car) .

clearWatch() - Menghentikan watchPosition() metode.

Contoh di bawah ini menunjukkan watchPosition() metode. Anda memerlukan perangkat GPS yang akurat untuk tes ini (like iPhone ) :

Contoh

<script>
var x = document.getElementById("demo");
function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.watchPosition(showPosition);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude +
    "<br>Longitude: " + position.coords.longitude;
}
</script>
Cobalah sendiri "