Serbuan pada Sambungan API Javascript HTML5 2—Perkhidmatan Maklumat Geografi dan API Geolokasi Learning_html5 Kemahiran Tutorial
WBOY
Lepaskan: 2016-05-16 15:50:02
asal
1643 orang telah melayarinya
Salah satu jenis perkhidmatan yang lebih popular kini dipanggil perkhidmatan berasaskan lokasi (LBS) jenis perkhidmatan ini ialah maklumat yang digunakan oleh perusahaan untuk menyediakan perkhidmatan di kawasan berhampiran koordinat titik tertentu (seperti lokasi pengguna). seperti peta biasa. Dalam HTML5, API geolokasi baharu ditambahkan untuk menentukan dan berkongsi geolokasi. Penyata Privasi Privasi menjadi kebimbangan apabila berkongsi lokasi fizikal anda dengan pelayan web jauh. Oleh itu, API Geolokasi memerlukan pengguna memberikan kebenaran sebelum aplikasi web boleh mengakses maklumat lokasi. Kali pertama anda melawati halaman web yang meminta data geolokasi, penyemak imbas anda akan memaparkan bar pemberitahuan yang menawarkan akses kepada lokasi pengguna. Ikut gesaan penyemak imbas dan pilih kebenaran yang berkaitan. Maklumat lokasi tidak akan diberikan kepada aplikasi web jika pengguna tidak memberikan kebenaran. Memanggil API yang berkaitan tidak akan mencetuskan panggilan balik kejayaan. Semak sokongan penyemak imbas API geolokasi disokong dalam versi terkini penyemak imbas arus perdana, tetapi untuk keserasian dengan penyemak imbas yang lebih lama, anda masih perlu menyemak. Jika API geolokasi tidak tersedia, window.navigator.geolocation akan menjadi batal, seperti yang ditunjukkan di bawah:
Salin kod
Kodnya adalah seperti berikut:
function show_islocationenabled() { var str = "Tidak, geolokasi tidak disokong." jika (window.navigator.geolocation) { str = "Ya, geolokasi disokong."; } alert( str );
API Geolokasi adalah berdasarkan atribut baharu bagi objek global navigator: navigator.geolocation, objek ini menyediakan beberapa maklumat berguna tentang penyemak imbas dan sistem pelawat. Maklumat geolokasi boleh diperolehi melalui pelbagai cara: seperti stesen pangkalan, pangkalan data web atau GPS. Ketepatan maklumat Geolokasi yang diperoleh menggunakan kaedah yang berbeza juga berbeza Biasanya, ketepatan yang diperoleh melalui GPS adalah yang paling tepat (GPS digunakan paling banyak pada platform mudah alih, dan data rangkaian pada asasnya digunakan pada platform PC). Kadangkala, di sesetengah lokasi, anda mungkin tidak mendapat bacaan geolokasi yang jelas atau tidak menerima data langsung.
Cari kedudukan semasaGunakan kaedah getCurrentPosition() navigator.geolocation untuk mendapatkan lokasi semasa pengguna Kaedah ini hanya mendapatkan maklumat lokasi sekali. Apabila kaedah ini dipanggil oleh skrip, kaedah secara tak segerak cuba mendapatkan lokasi semasa peranti hos.
Salin kodKod adalah seperti berikut:
Tandatangan kaedah: getCurrentPosition(geolocationSuccessCallback ,[geolocationErrorCallback ,geolocationOptions]); 1. geolocationSuccessCallback: Panggilan balik selepas berjaya mendapatkan lokasi semasa (diperlukan) 2. geolocationErrorCallback Panggilan balik yang digunakan apabila ralat berlaku (pilihan) . Pilihan Kedudukan Geografi (pilihan)
Memproses maklumat kedudukan Kaedah getCurrentPositon() akan menyimpan maklumat kedudukan ke objek Kedudukan selepas berjaya memperoleh kedudukan semasa, dan kemudian laksanakan objek ini sebagai parameter geolocationSuccessPanggil balik panggilan balik ini. Dalam fungsi panggil balik ini, anda boleh melakukan apa sahaja yang anda mahu dengan maklumat yang terkandung dalam objek ini. Objek kedudukan mempunyai dua atribut: cap waktu dan kord. Atribut cap masa mewakili masa penciptaan data lokasi geografi dan atribut coords mewakili maklumat lokasi geografi, yang mengandungi tujuh atribut:
Salin kod Kodnya adalah seperti berikut:
koordinat.latitud: anggaran latitud.longitud: anggaran longitud 🎜> peranti hos sedang bergerak , dikira mengikut arah jam berbanding utara sebenar coords.speed: Kelajuan tanah semasa peranti dalam meter sesaat
Secara amnya, tiga daripada sifat ini dijamin: coords.latitud, coords.longitud dan coords. accuracy, dan selebihnya mengembalikan null; ini bergantung pada keupayaan peranti dan pelayan kedudukan belakang yang digunakannya. Tambahan pula, atribut tajuk dan kelajuan boleh dikira berdasarkan lokasi pengguna sebelumnya. Mengendalikan ralat Jika ralat berlaku semasa melaksanakan kaedah getCurrentPositon(), kaedah tersebut menghantar objek PositionError kepada panggilan balik geolocationErrorCallback. Tetapkan pilihan geolokasi Anda boleh menetapkan tiga sifat geolokasiOptions:
Salin kod
Kodnya adalah seperti berikut:
enableHighAccuracy: Jika peranti menyokong ketepatan tinggi, pilihan ini menunjukkan sama ada untuk mendayakan ketepatan tinggi. masa tamat: Pertanyaan tamat masa maksimumUmur: Masa maksimum untuk lokasi cache, semasa cache boleh digunakan.
Lihat contoh lengkap di bawah:
Salin kod
Kod adalah sebagai berikut:
Klik butang anda kedudukan: p> ;skrip> var x=document.getElementById("demo"); } lain{ x.innerHTML="Geolokasi tidak disokong oleh penyemak imbas ini."; } } function showPosition(position) { var latlon= position.coords.latitude "," position.coords.longitude; var img_url="http://maps.googleapis.com/maps/api/staticmap?center=" latlon "&zoom=9&size=400x300&sensor =false"; document.getElementById("mapholder").innerHTML=""; } function showError(error) { suis(error.code ) { ralat kes.PERMISSION_DENIED: x.innerHTML="Pengguna menolak permintaan untuk Geolokasi." ="Maklumat lokasi tidak tersedia." rehat; ralat kes. UNKNOWN_ERROR: x.innerHTML="Berlaku ralat yang tidak diketahui." } } /html>
Contoh ini memperoleh lokasi geografi peranti semasa dan memaparkannya dalam Peta Google. Sudah tentu, anda boleh menggunakan plat statik dalam API Peta Baidu untuk mengubah contoh ini. Untuk API Peta Baidu, sila rujuk pautan dalam Rujukan Praktikal kemudian.
Dayakan/batalkan kedudukan berterusan
Gunakan kaedah watchPosition() navigator.geolocation untuk meninjau lokasi pengguna secara berkala untuk melihat sama ada lokasi pengguna telah berubah. Kaedah ini mempunyai tiga parameter: tiga parameter ini adalah sama dengan kaedah getCurrentPosition(), panggilan balik selepas kejayaan, panggilan balik selepas kegagalan dan pilihan untuk mendapatkan maklumat kedudukan kaedah ini mempunyai watchID nilai pulangan, yang digunakan untuk membatalkan kedudukan berterusan. Gunakan kaedah clearWatch() navigator.geolocation untuk menamatkan watchPosition() yang sedang berjalan Kaedah ini hanya mengambil satu parameter watchID. Lihat contoh di bawah:
Salin kod
Kodnya adalah seperti berikut:
Geolocation API-Beispiel: Auf Standortaktualisierungen warten
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn