亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 12:35:59
字體:
來源:轉載
供稿:網友

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

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

 function getLocation(){   if (navigator.geolocation){     navigator.geolocation.getCurrentPosition(showPosition,showError);   }else{     alert("瀏覽器不支持地理定位。");   } } 

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

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;   } } 

我們再來看函數showPosition(),調用coords的latitude和longitude即可獲取到用戶的緯度和經度。

function showPosition(position){   var lat = position.coords.latitude; //緯度   var lag = position.coords.longitude; //經度   alert('緯度:'+lat+',經度:'+lag); } 

利用百度地圖和谷歌地圖接口獲取用戶地址
上面我們了解了HTML5的Geolocation可以獲取用戶的經緯度,那么我們要做的是需要把抽象的經緯度轉成可讀的有意義的真正的用戶地理位置信息。幸運的是百度地圖和谷歌地圖等提供了這方面的接口,我們只需要將HTML5獲取到的經緯度信息傳給地圖接口,則會返回用戶所在的地理位置,包括省市區信息,甚至有街道、門牌號等詳細的地理位置信息。
我們首先在頁面定義要展示地理位置的div,分別定義id#baidu_geo和id#google_geo。我們只需修改關鍵函數showPosition()。先來看百度地圖接口交互,我們將經緯度信息通過Ajax方式發送給百度地圖接口,接口會返回相應的省市區街道信息。百度地圖接口返回的是一串JSON數據,我們可以根據需求將需要的信息展示給div#baidu_geo。注意這里用到了jQuery庫,需要先加載jQuery庫文件。

 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+"地址位置獲取失敗");     }   }); }); 

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

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+"地址位置獲取失敗");     }   }); } 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲图片| 亚洲a在线观看| 亚洲成人亚洲激情| 亚洲日本中文字幕免费在线不卡| 国产99在线|中文| 色中色综合影院手机版在线观看| 日韩中文在线中文网在线观看| 亚洲精品av在线| 97色在线播放视频| 国产精品久久久久久av| 青青草成人在线| 51午夜精品视频| 国产精品视频区| 久久精品中文字幕一区| 欧美成人全部免费| 91久久综合亚洲鲁鲁五月天| 日韩精品极品视频| 97精品久久久| 亚洲欧美日本精品| 成人动漫网站在线观看| 欧美体内谢she精2性欧美| 全色精品综合影院| 欧美性69xxxx肥| 精品成人av一区| 中文字幕成人在线| 亚洲少妇中文在线| 亚洲第一级黄色片| 精品偷拍各种wc美女嘘嘘| 国产精品影片在线观看| 有码中文亚洲精品| 国产在线精品自拍| 亚洲免费电影一区| 琪琪亚洲精品午夜在线| 日韩成人中文字幕在线观看| 色偷偷偷综合中文字幕;dd| 亚洲人成电影在线| 国产精品大陆在线观看| 国产一区av在线| 精品国产鲁一鲁一区二区张丽| 国产一区二区三区高清在线观看| 538国产精品一区二区在线| 国产精品igao视频| 91av在线不卡| 97久久久久久| 亚洲国产成人精品女人久久久| 91精品在线观看视频| 亚洲国产精品女人久久久| 日韩精品极品在线观看播放免费视频| xxxxx91麻豆| 国产精品嫩草影院一区二区| 日韩精品亚洲精品| 久久天天躁夜夜躁狠狠躁2022| 精品久久久精品| 成人午夜在线视频一区| 久久精品国产一区二区三区| 97色在线视频观看| 亚洲人成电影网站色…| 亚洲精品国产精品自产a区红杏吧| 久久精品一区中文字幕| 亚洲free性xxxx护士白浆| 国产精品久久久久久久久粉嫩av| 国产伦精品一区二区三区精品视频| 欧美日韩美女在线观看| 亚洲bt天天射| 欧美大奶子在线| 91香蕉嫩草影院入口| 欧美激情精品久久久久久| 日韩精品中文字幕在线播放| 亚洲精品电影网站| 久久影视电视剧免费网站| 国产日韩在线亚洲字幕中文| xvideos亚洲人网站| 97香蕉超级碰碰久久免费的优势| 久久久久久久久91| 欧美激情网站在线观看| 国产精品久久久久久久久久久新郎| 欧美一区三区三区高中清蜜桃| 成人黄色免费片| 欧美日韩高清在线观看| 国产一区香蕉久久| 亚洲国产成人一区| 成人a在线视频| 国产精品男人的天堂| 日本免费在线精品| 45www国产精品网站| 精品一区电影国产| 久久亚洲精品视频| 国产精品观看在线亚洲人成网| 日韩av免费网站| 国产视频观看一区| 日韩中文字幕在线免费观看| 日韩电影中文字幕在线| 国产原创欧美精品| 久久久中文字幕| 国产精品免费视频久久久| 国产综合色香蕉精品| 久久久久一本一区二区青青蜜月| 久热在线中文字幕色999舞| 91精品啪在线观看麻豆免费| 欧美中文字幕在线播放| 亚洲大胆美女视频| 久热精品视频在线观看| 亚洲区中文字幕| 日韩高清免费观看| 91影院在线免费观看视频| 国产成人精品综合| 亚洲色图av在线| 欧美激情一区二区三区高清视频| 亚洲a级在线播放观看| 国产91露脸中文字幕在线| 亚洲视频专区在线| 精品一区二区三区电影| 成人黄色影片在线| 欧美多人乱p欧美4p久久| 久久在线视频在线| 精品人伦一区二区三区蜜桃免费| 中日韩午夜理伦电影免费| 亚洲视频网站在线观看| 国产精品免费福利| 欧美另类xxx| 欧美成aaa人片免费看| 欧美性一区二区三区| 欧美激情在线狂野欧美精品| 奇米4444一区二区三区| 久久久成人精品| 亚洲日本中文字幕| 亚洲综合中文字幕在线| 国内精品久久久久影院优| 国产日本欧美一区二区三区在线| 亚洲人成啪啪网站| 国内精久久久久久久久久人| 欧美成年人视频网站| 久久人人爽人人爽爽久久| 91精品视频在线看| 91干在线观看| 亚洲精品日韩在线| 26uuu亚洲国产精品| 91久久夜色精品国产网站| 久久久久久com| 国内精品模特av私拍在线观看| 欧美成aaa人片在线观看蜜臀| 日本精品久久久久影院| 欧美激情精品久久久| 国产精品亚洲综合天堂夜夜| 中文字幕一区日韩电影| 中文字幕久热精品在线视频| 国产精品视频一区二区高潮| 久久久精品影院| 欧美成人激情在线| 亚洲欧美一区二区精品久久久| 亚洲精品美女久久久久| 国产精品久久久久久久久免费看| 亚洲成人精品久久| 国产精品丝袜久久久久久不卡| 国产精品男人的天堂| 欧美精品成人91久久久久久久| 日韩av网址在线| 亚洲国产精品久久精品怡红院| 中文字幕精品www乱入免费视频| 91久久久久久久久| 亚洲新中文字幕| 91精品国产综合久久香蕉922| 欧美在线视频免费播放| 欧美日韩国产一区二区|