Latest web development tutorials

HTML5 geopositioning

HTML5 Geolocation (geopositioning) digunakan untuk mencari lokasi pengguna.


Cari posisi pengguna

HTML5 Geolocation API untuk mendapatkan lokasi pengguna.

Mengingat fitur ini mungkin melanggar privasi pengguna, kecuali pengguna setuju jika tidak, informasi lokasi pengguna tidak tersedia.


Dukungan Browser

Internet ExplorerFirefoxOperaGoogle ChromeSafari

Internet Explorer 9 +, Firefox, Chrome, Safari dan dukungan Opera Geolocation (lokasi geografis).

Catatan: Geolocation (geopositioning) Untuk perangkat dengan GPS, seperti iPhone, geopositioning lebih akurat.


HTML5 - Gunakan penargetan geografis

Menggunakan metode getCurrentPosition () untuk mendapatkan lokasi pengguna.

Contoh berikut adalah contoh geolocation sederhana, pengguna dapat kembali ke lokasi lintang dan bujur:

contoh

var x = document.getElementById ( "demo");
Fungsi getLocation ()
{
jika (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition (showPosition);
}
lain
{
x.innerHTML = "Browser ini tidak mendukung mendapatkan lokasi.";
}
}

Fungsi showPosition (posisi)
{
x.innerHTML = "Lat:" + position.coords.latitude +
"Situs Bujur:" + position.coords.longitude;
}

Coba »

contoh analisis:

  • Hal ini diuji untuk geopositioning
  • Jika didukung, menjalankan () metode getCurrentPosition. Jika tidak, ini akan menampilkan pesan ke pengguna.
  • Jika getCurrentPosition () berhasil, fungsi untuk mengembalikan parameter yang ditentukan dalam koordinat sasaran showPosition
  • showPosition () fungsi mengambil dan menampilkan garis lintang dan bujur

Contoh di atas adalah script geopositioning sangat dasar, bebas dari kesalahan penanganan.


Penanganan Kesalahan dan ditolak

Parameter kedua getCurrentPosition () metode untuk penanganan kesalahan. Ini menentukan ketika fungsi get untuk menjalankan ketika lokasi pengguna gagal:

contoh

Fungsi showError (error)
{
switch (error.code)
{
kasus error.PERMISSION_DENIED:
x.innerHTML = "user menolak untuk mendapatkan permintaan lokasi."
break;
kasus error.POSITION_UNAVAILABLE:
x.innerHTML = "informasi lokasi tidak tersedia."
break;
kasus error.TIMEOUT:
x.innerHTML = "lokasi Permintaan pengguna timed out."
break;
kasus error.UNKNOWN_ERROR:
x.innerHTML = "error tidak diketahui."
break;
}
}

Coba »

Kode kesalahan:

  • Izin ditolak - pengguna tidak diperbolehkan geopositioning
  • Posisi tidak tersedia - Tidak dapat mendapatkan posisi saat ini
  • Timeout - Terlalu lama

hasil tampilan di peta

Untuk menampilkan hasil di peta, Anda perlu akses dapat menggunakan garis lintang dan bujur dari layanan peta, seperti Google Maps atau peta Baidu:

contoh

Fungsi showPosition (posisi)
{
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 + "'>" .;
}

Coba »

Pada contoh di atas, kita menggunakan garis lintang dan bujur data yang dikembalikan oleh posisi layar (menggunakan gambar statis) di Google Maps.

Script Google Maps
Link di atas menunjukkan kepada Anda bagaimana menggunakan script untuk menampilkan peta interaktif dengan spidol, zoom dan pilihan drag.


Untuk lokasi informasi yang diberikan

Halaman ini menunjukkan bagaimana untuk menampilkan lokasi pengguna pada peta. Namun informasi geolocation untuk lokasi tertentu juga sangat berguna.

contoh:

  • Memperbarui informasi lokal
  • Tampilan tempat tujuan sekitar pengguna
  • sistem navigasi mobil interaktif (GPS)

getCurrentPosition () metode - Data pulang

T jika berhasil, metode getCurrentPosition () mengembalikan sebuah objek. Selalu kembali lintang, bujur dan akurasi properti. Jika tersedia, properti tambahan berikut dikembalikan.

属性 描述
coords.latitude 十进制数的纬度
coords.longitude 十进制数的经度
coords.accuracy 位置精度
coords.altitude 海拔,海平面以上以米计
coords.altitudeAccuracy 位置的海拔精度
coords.heading 方向,从正北开始以度计
coords.speed 速度,以米/每秒计
timestamp 响应的日期/时间


Geolocation objek - metode menarik lainnya

watchPosition () - Mengembalikan lokasi pengguna saat, dan terus kembali posisi diperbarui (seperti GPS pada mobil) saat pengguna bergerak.

clearWatch () - Berhenti watchPosition () metode

Contoh berikut menunjukkan metode watchPosition (). Anda memerlukan perangkat GPS yang akurat untuk menguji kasus (seperti iPhone):

contoh

var x = document.getElementById ( "demo");
Fungsi getLocation ()
{
jika (navigator.geolocation)
{
navigator.geolocation.watchPosition (showPosition);
}
lain
{
x.innerHTML = "Browser ini tidak mendukung mendapatkan lokasi.";
}
}
Fungsi showPosition (posisi)
{
x.innerHTML = "Lat:" + position.coords.latitude +
"Situs Bujur:" + position.coords.longitude;
}

Coba »