Rumah hujung hadapan web tutorial js Cara menggunakan function_jquery geolokasi HTML5

Cara menggunakan function_jquery geolokasi HTML5

May 16, 2016 pm 04:01 PM
html5 penyasaran geo

HTML5 menyediakan fungsi geolokasi (Geolocation API), yang boleh menentukan lokasi pengguna Kami boleh menggunakan ciri HTML5 ini untuk membangunkan aplikasi berdasarkan maklumat geolokasi. Artikel ini menggunakan contoh untuk berkongsi dengan anda cara menggunakan HTML5 dan menggunakan antara muka Baidu dan Peta Google untuk mendapatkan maklumat lokasi geografi pengguna yang tepat.

Geolokasi ialah ciri baharu HTML5, jadi ia hanya boleh dijalankan pada penyemak imbas moden yang menyokong HTML5, terutamanya peranti pegang tangan seperti iPhone, di mana geolokasi lebih tepat. Mula-mula kita perlu mengesan sama ada penyemak imbas peranti pengguna menyokong geolokasi, dan jika ya, dapatkan maklumat geografi tersebut. Ambil perhatian bahawa ciri ini mungkin melanggar privasi pengguna Melainkan pengguna bersetuju, maklumat lokasi pengguna tidak tersedia Oleh itu, apabila kami mengakses aplikasi, kami akan digesa sama ada untuk membenarkan geolokasi .

1

2

3

4

5

6

7

function getLocation(){

  if (navigator.geolocation){

    navigator.geolocation.getCurrentPosition(showPosition,showError);

  }else{

    alert("浏览器不支持地理定位。");

  }

}

Salin selepas log masuk

Kod di atas boleh mengetahui bahawa jika peranti pengguna menyokong geolokasi, kaedah getCurrentPosition() dijalankan. Jika getCurrentPosition() berjalan dengan jayanya, objek koordinat dikembalikan kepada fungsi yang dinyatakan dalam parameter showPosition Parameter kedua showError kaedah getCurrentPosition() digunakan untuk mengendalikan ralat .
Mari lihat dahulu fungsi showError(), yang menetapkan beberapa kaedah pengendalian kod ralat apabila gagal mendapatkan lokasi geografi pengguna:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

function showError(error){

  switch(error.code) {

    case error.PERMISSION_DENIED:

      alert("定位失败,用户拒绝请求地理定位");

      break;

    case error.POSITION_UNAVAILABLE:

      alert("定位失败,位置信息是不可用");

      break;

    case error.TIMEOUT:

      alert("定位失败,请求获取用户位置超时");

      break;

    case error.UNKNOWN_ERROR:

      alert("定位失败,定位系统失效");

      break;

  }

}

Salin selepas log masuk

Mari kita lihat fungsi showPosition() sekali lagi, memanggil latitud dan longitud koordinat untuk mendapatkan latitud dan longitud pengguna.

1

2

3

4

5

function showPosition(position){

  var lat = position.coords.latitude; //纬度

  var lag = position.coords.longitude; //经度

  alert('纬度:'+lat+',经度:'+lag);

}

Salin selepas log masuk

Gunakan antara muka Peta Baidu dan Peta Google untuk mendapatkan alamat pengguna
Di atas kami mengetahui bahawa Geolokasi HTML5 boleh mendapatkan longitud dan latitud pengguna, jadi apa yang perlu kami lakukan ialah menukar longitud dan latitud abstrak kepada maklumat lokasi geografi pengguna sebenar yang boleh dibaca dan bermakna. Nasib baik, Peta Baidu dan Peta Google menyediakan antara muka dalam hal ini Kami hanya perlu menghantar maklumat longitud dan latitud yang diperolehi oleh HTML5 ke antara muka peta, dan lokasi geografi pengguna akan dikembalikan, termasuk maklumat wilayah dan bandar, dan juga jalan, Nombor rumah dan maklumat lokasi geografi terperinci lain.
Kami mula-mula menentukan div untuk memaparkan lokasi geografi pada halaman, masing-masing mentakrifkan id#baidu_geo dan id#google_geo. Kita hanya perlu mengubah suai fungsi utama showPosition(). Mari lihat dahulu interaksi antara muka peta Baidu Kami menghantar maklumat latitud dan longitud ke antara muka peta Baidu melalui Ajax, dan antara muka akan mengembalikan maklumat wilayah, bandar dan jalan yang sepadan. Antara muka peta Baidu mengembalikan rentetan data JSON Kami boleh memaparkan maklumat yang diperlukan untuk div#baidu_geo mengikut keperluan kami. Ambil perhatian bahawa perpustakaan jQuery digunakan di sini dan fail perpustakaan jQuery perlu dimuatkan terlebih dahulu.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

function showPosition(position){

  var latlon = position.coords.latitude+','+position.coords.longitude;

    

  //baidu

  var url = "http://api.map.baidu.com/geocoder/v2/?ak=C93b5178d7a8ebdb830b9b557abce78b&callback=renderReverse&location="+latlon+"&output=json&pois=0";

  $.ajax({

    type: "GET",

    dataType: "jsonp",

    url: url,

    beforeSend: function(){

      $("#baidu_geo").html('正在定位...');

    },

    success: function (json) {

      if(json.status==0){

        $("#baidu_geo").html(json.result.formatted_address);

      }

    },

    error: function (XMLHttpRequest, textStatus, errorThrown) {

      $("#baidu_geo").html(latlon+"地址位置获取失败");

    }

  });

});

Salin selepas log masuk

Mari lihat interaksi antara muka Peta Google. Begitu juga, kami menghantar maklumat latitud dan longitud ke antara muka Peta Google melalui Ajax, dan antara muka akan mengembalikan butiran wilayah, bandar dan jalan yang sepadan. Antara muka peta Google juga mengembalikan rentetan data JSON ini lebih terperinci daripada yang dikembalikan oleh antara muka peta Baidu Kami boleh memaparkan maklumat yang diperlukan untuk div#google_geo mengikut keperluan kami.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

function showPosition(position){

  var latlon = position.coords.latitude+','+position.coords.longitude;

  

  //google

  var url = 'http://maps.google.cn/maps/api/geocode/json?latlng='+latlon+'&language=CN';

  $.ajax({

    type: "GET",

    url: url,

    beforeSend: function(){

      $("#google_geo").html('正在定位...');

    },

    success: function (json) {

      if(json.status=='OK'){

        var results = json.results;

        $.each(results,function(index,array){

          if(index==0){

          $("#google_geo").html(array['formatted_address']);

          }

        });

      }

    },

    error: function (XMLHttpRequest, textStatus, errorThrown) {

      $("#google_geo").html(latlon+"地址位置获取失败");

    }

  });

}

Salin selepas log masuk

Kod di atas mengintegrasikan antara muka peta Baidu dan antara muka peta Google ke dalam fungsi showPosition() masing-masing, yang boleh kita panggil mengikut situasi sebenar. Sudah tentu, ini hanyalah aplikasi mudah Kami boleh membangunkan banyak aplikasi yang kompleks berdasarkan contoh mudah ini. Adalah disyorkan untuk menggunakan pelayar mudah alih untuk mengakses demonstrasi DEMO.

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Sempadan Jadual dalam HTML Sempadan Jadual dalam HTML Sep 04, 2024 pm 04:49 PM

Panduan untuk Sempadan Jadual dalam HTML. Di sini kita membincangkan pelbagai cara untuk menentukan sempadan jadual dengan contoh Sempadan Jadual dalam HTML.

HTML jidar-kiri HTML jidar-kiri Sep 04, 2024 pm 04:48 PM

Panduan untuk HTML margin-kiri. Di sini kita membincangkan gambaran keseluruhan ringkas tentang HTML margin-left dan Contoh-contohnya bersama-sama dengan Pelaksanaan Kodnya.

Jadual Bersarang dalam HTML Jadual Bersarang dalam HTML Sep 04, 2024 pm 04:49 PM

Ini ialah panduan untuk Nested Table dalam HTML. Di sini kita membincangkan cara membuat jadual dalam jadual bersama-sama dengan contoh masing-masing.

Susun Atur Jadual HTML Susun Atur Jadual HTML Sep 04, 2024 pm 04:54 PM

Panduan untuk Susun Atur Jadual HTML. Di sini kita membincangkan Nilai Susun Atur Jadual HTML bersama-sama dengan contoh dan output n perincian.

Pemegang Tempat Input HTML Pemegang Tempat Input HTML Sep 04, 2024 pm 04:54 PM

Panduan untuk Pemegang Tempat Input HTML. Di sini kita membincangkan Contoh Pemegang Tempat Input HTML bersama-sama dengan kod dan output.

Senarai Tertib HTML Senarai Tertib HTML Sep 04, 2024 pm 04:43 PM

Panduan kepada Senarai Tertib HTML. Di sini kami juga membincangkan pengenalan senarai dan jenis Tertib HTML bersama-sama dengan contoh mereka masing-masing

Memindahkan Teks dalam HTML Memindahkan Teks dalam HTML Sep 04, 2024 pm 04:45 PM

Panduan untuk Memindahkan Teks dalam HTML. Di sini kita membincangkan pengenalan, cara teg marquee berfungsi dengan sintaks dan contoh untuk dilaksanakan.

Butang onclick HTML Butang onclick HTML Sep 04, 2024 pm 04:49 PM

Panduan untuk Butang onclick HTML. Di sini kita membincangkan pengenalan, kerja, contoh dan onclick Event masing-masing dalam pelbagai acara.

See all articles