国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
AngularJS進階(二十)HTML5實現(xiàn)獲取地理位置信息并定位功能


前言

     這篇文章主要介紹了HTML5實現(xiàn)獲取地理位置信息并定位功能,本文講解了原生HTML5、百度地圖、谷歌地圖等三種獲取理位置信息并定位的方法,需要的朋友可以參考下

HTML5提供了地理位置定位功能(Geolocation API),能確定用戶位置,我們可以借助HTML5的該特性開發(fā)基于地理位置信息的應(yīng)用。本文結(jié)合實例給大家分享如何使用HTML5,借助百度、谷歌地圖接口來獲取用戶準確的地理位置信息。

如何使用HTML5地理位置定位功能

      定位功能(Geolocation)是HTML5的新特性,因此只有在支持HTML5的現(xiàn)代瀏覽器上運行,特別是手持設(shè)備如iphone,地理定位更加精確。首先我們要檢測用戶設(shè)備瀏覽器是否支持地理定位,如果支持則獲取地理信息。注意這個特性可能侵犯用戶的隱私,除非用戶同意,否則用戶位置信息是不可用的,所以我們在訪問該應(yīng)用時會提示是否允許地理定位,我們當然選擇允許即可。

[javascript] view plain copy
print?
  1. function getLocation(){   
  2. if (navigator.geolocation){   
  3. navigator.geolocation.getCurrentPosition(showPosition,showError);   
  4. }else{   
  5. alert("瀏覽器不支持地理定位。");   
  6. }   
  7. }  

      從上面的代碼可以知道,如果用戶設(shè)備支持地理定位,則運行 getCurrentPosition() 方法。如果getCurrentPosition()運行成功,則向參數(shù)showPosition中規(guī)定的函數(shù)返回一個coordinates對象,getCurrentPosition() 方法的第二個參數(shù)showError用于處理錯誤,它規(guī)定當獲取用戶位置失敗時運行的函數(shù)。

      我們先來看函數(shù)showError(),它規(guī)定獲取用戶地理位置失敗時的一些錯誤代碼處理方式:

[javascript] view plain copy
print?
  1. function showError(error){   
  2. switch(error.code) {   
  3. case error.PERMISSION_DENIED:   
  4. alert("定位失敗,用戶拒絕請求地理定位");   
  5. break;   
  6. case error.POSITION_UNAVAILABLE:   
  7. alert("定位失敗,位置信息是不可用");   
  8. break;   
  9. case error.TIMEOUT:   
  10. alert("定位失敗,請求獲取用戶位置超時");   
  11. break;   
  12. case error.UNKNOWN_ERROR:   
  13. alert("定位失敗,定位系統(tǒng)失效");   
  14. break;   
  15. }   
  16. }  

我們再來看函數(shù)showPosition(),調(diào)用coordslatitudelongitude即可獲取到用戶的緯度和經(jīng)度。

[javascript] view plain copy
print?
  1. function showPosition(position){   
  2. var lat = position.coords.latitude; //緯度   
  3. var lag = position.coords.longitude; //經(jīng)度   
  4. alert('緯度:'+lat+',經(jīng)度:'+lag);   
  5. }  

利用百度地圖和谷歌地圖接口獲取用戶地址

      上面我們了解了HTML5Geolocation可以獲取用戶的經(jīng)緯度,那么我們要做的是需要把抽象的經(jīng)緯度轉(zhuǎn)成可讀的有意義的真正的用戶地理位置信息。幸運的是百度地圖和谷歌地圖等提供了這方面的接口,我們只需要將HTML5獲取到的經(jīng)緯度信息傳給地圖接口,則會返回用戶所在的地理位置,包括省市區(qū)信息,甚至有街道、門牌號等詳細的地理位置信息。

      我們首先在頁面定義要展示地理位置的元素,分別定義id#baidu_geoid#google_geo。我們只需修改關(guān)鍵函數(shù)showPosition()。

  先來看百度地圖接口交互,我們將經(jīng)緯度信息通過Ajax方式發(fā)送給百度地圖接口,接口會返回相應(yīng)的省市區(qū)街道信息。百度地圖接口返回的是一串JSON數(shù)據(jù),我們可以根據(jù)需求將需要的信息展示給#baidu_geo。注意這里用到了jQuery庫,需要先加載jQuery庫文件。

[javascript] view plain copy
print?
  1.  function showPosition(position){   
  2. var latlon = position.coords.latitude+','+position.coords.longitude;   
  3. //baidu   
  4. var url = "  
  5. <a);   
  6. }   
  7. });   
  8. });  

      再來看谷歌地圖接口交互。同樣我們將經(jīng)緯度信息通過Ajax方式發(fā)送給谷歌地圖接口,接口會返回相應(yīng)的省市區(qū)街道詳細信息。谷歌地圖接口返回的也是一串JSON數(shù)據(jù),這些JSON數(shù)據(jù)比百度地圖接口返回的要更詳細,我們可以根據(jù)需求將需要的信息展示給#google_geo

[javascript] view plain copy
print?
  1. function showPosition(position){   
  2. var latlon = position.coords.latitude+','+position.coords.longitude;   
  3. //google   
  4. var url = 'http://maps.google.cn/maps/api/geocode/json?latlng='+latlon+'&language=CN';   
  5. $.ajax({   
  6. type: "GET",   
  7. url: url,   
  8. beforeSend: function(){   
  9. $("#google_geo").html('正在定位...');   
  10. },   
  11. success: function (json) {   
  12. if(json.status=='OK'){   
  13. var results = json.results;   
  14. $.each(results,function(index,array){   
  15. if(index==0){   
  16. $("#google_geo").html(array['formatted_address']);   
  17. }   
  18. });   
  19. }   
  20. },   
  21. error: function (XMLHttpRequest, textStatus, errorThrown) {   
  22. $("#google_geo").html(latlon+"地址位置獲取失敗");   
  23. }   
  24. });   
  25. }  

      以上的代碼分別將百度地圖接口和谷歌地圖接口整合到函數(shù)showPosition()中,我們可以根據(jù)實際情況進行調(diào)用。當然這只是一個簡單的應(yīng)用,我們可以根據(jù)這個簡單的示例開發(fā)出很多復(fù)雜的應(yīng)用,建議用手機瀏覽器訪問DEMO演示。

美文美圖


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
移動項目開發(fā)經(jīng)驗:HTML5獲取地理位置與百度地圖接口
Web 地理定位(Geo-Location)
Java數(shù)據(jù)接口編寫簡單例子,Java Json解析,服務(wù)端接口輸出Json數(shù)據(jù),客戶端通過HTTP獲取接口Json數(shù)據(jù)
HTML5 地理位置定位(HTML5 Geolocation)原理及應(yīng)用【轉(zhuǎn)】
手把手|如何用Python繪制JS地圖?
免費的天氣預(yù)報API接口
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服