成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > HTML5的Geolocation地理位置定位API使用教程

HTML5的Geolocation地理位置定位API使用教程

熱門標(biāo)簽:ai電銷機(jī)器人連接網(wǎng)關(guān) 鄭州電銷外呼系統(tǒng)違法嗎 威海營(yíng)銷外呼系統(tǒng)招商 濟(jì)南辦理400電話 農(nóng)村住宅地圖標(biāo)注 漳州人工外呼系統(tǒng)排名 鶴壁手機(jī)自動(dòng)外呼系統(tǒng)怎么安裝 跟電銷機(jī)器人做同事 中紳電銷智能機(jī)器人

在手持設(shè)備如此普遍的今天,位置信息對(duì)于應(yīng)用程序來講是極其重要的,打車應(yīng)用可以根據(jù)用戶的位置信息呼叫附近的車輛,團(tuán)購(gòu)軟件可以根據(jù)當(dāng)前的位置推薦附近的影院和美食,地圖應(yīng)用可以根據(jù)用戶的位置快速規(guī)劃到目的地的路線,可以說位置信息對(duì)于移動(dòng)應(yīng)用是不可或缺的。
為了順應(yīng)這個(gè)潮流,HTML5為我們提供了Geolocation庫(kù),有了它我們就能夠在Web應(yīng)用中輕而易舉地實(shí)現(xiàn)上述這些功能。那么今天我就為大家介紹一下這個(gè)庫(kù)的使用。

基本用法 
首先,我們可以從瀏覽器的navigator對(duì)象中通過geolocation屬性獲取到一個(gè)Geolocation的實(shí)例,如下圖所示:

圖中我們可以看到,Geolocation類有三個(gè)常用的方法,他們分別是:

1.getCurrentPosition: 用于獲取當(dāng)前的位置信息
2.watchPosition: 用于在位置變化時(shí)實(shí)時(shí)監(jiān)測(cè)位置信息
3.clearWatch: 取消正在運(yùn)行的監(jiān)測(cè)操作
我們先來看一下getCurrentPosition方法,下面是它的函數(shù)簽名:

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. navigator.geolocation.getCurrentPosition(success[, error[, options]]);  

第一個(gè)參數(shù)用于指定一個(gè)成功后的處理函數(shù),第二參數(shù)用于指定一個(gè)錯(cuò)誤處理函數(shù),第三個(gè)用于給函數(shù)提供一些可選的配置項(xiàng)。現(xiàn)在我們就來調(diào)用這個(gè)函數(shù):

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. navigator.geolocation.getCurrentPosition(function(position) {   
  2.     //success handler code goes here   
  3.     console.log(position);   
  4. }, function(error) {   
  5.     //error handler code goes here   
  6.     console.log(error);   
  7. }, {//options   
  8.     enableHighAccuracy: true,   
  9.     timeout: 5000,   
  10.     maximumAge: 0   
  11. });  

一旦這段代碼運(yùn)行起來,瀏覽器窗口就會(huì)彈出一個(gè)確認(rèn)框,請(qǐng)求用戶進(jìn)行位置定位的授權(quán):

如果我們點(diǎn)擊Allow允許該站點(diǎn)進(jìn)行位置定位,該函數(shù)就開始從設(shè)備獲取位置信息,并觸發(fā)成功的回調(diào)函數(shù),并將位置信息對(duì)象傳入回調(diào)函數(shù)中,上面的代碼中我們?cè)诳刂婆_(tái)打印了position,控制臺(tái)信息如下:

可以看到,position實(shí)際上是一個(gè)Geoposition對(duì)象的實(shí)例,其中包括coords和timestamp兩個(gè)屬性,后者是一個(gè)時(shí)間戳,記錄獲取到位置時(shí)的時(shí)間,coords里面包含了很多位置有關(guān)的信息:

accuracy: 位置的精確度范圍,單位為米
altitude: 海拔高度,單位為米,如果設(shè)備不支持高度感應(yīng),則該屬性為null
altitudeAccuracy: 海拔精確度范圍,單位為米,如果設(shè)備不支持高度感應(yīng),則該屬性為null
speed: 設(shè)備移動(dòng)的速度,單位為米/秒,如果設(shè)備不能提供速度信息,該屬性為null
heading: 當(dāng)前移動(dòng)的方向,以數(shù)字表示,單位為角度,以順時(shí)針[0, 360)度表示偏離正北方的角度,0表示正北方向,90度表示正東方向,180度表示正南方向,270表示正西方向;需要注意的是,如果speed為0,則heading會(huì)是NaN,如果設(shè)備不能提供方向信息,則該屬性為null
longitude: 經(jīng)度信息
latitude: 緯度信息
我們?cè)诔晒Φ幕卣{(diào)函數(shù)中接收到這些信息,可以根據(jù)實(shí)際的設(shè)備和應(yīng)用場(chǎng)景獲取相應(yīng)的信息,做進(jìn)一步的操作。
回到剛才的確認(rèn)框,如果我們點(diǎn)擊了Block阻止該站點(diǎn)獲取當(dāng)前的位置信息,代碼就會(huì)授權(quán)失敗,相應(yīng)地,失敗的回調(diào)函數(shù)就會(huì)被觸發(fā),error錯(cuò)誤對(duì)象也會(huì)被傳入回調(diào)函數(shù),我們的打印信息如下:

可以看到error參數(shù)是一個(gè)PositionError實(shí)例,包含一個(gè)錯(cuò)誤碼code和message,分別表示錯(cuò)誤的類型和錯(cuò)誤提示消息,其中錯(cuò)誤碼有以下幾種:

1: PERMISSION_DENIED - 用戶拒絕了授權(quán)請(qǐng)求,授權(quán)失敗
2: POSITION_UNAVAILABLE - 因?yàn)橐恍﹥?nèi)部錯(cuò)誤,導(dǎo)致位置獲取失敗
3: TIMEOUT - 超時(shí),超過了配置的超時(shí)時(shí)間后還未獲取到位置信息
上面就是失敗的回調(diào)函數(shù),一般獲取位置出現(xiàn)錯(cuò)誤時(shí),我們都要及時(shí)捕獲,并做相應(yīng)的處理操作,以獲取好的用戶體驗(yàn),這一點(diǎn)很重要。
在上面的調(diào)用中,我們還傳入了第三個(gè)參數(shù),一個(gè)簡(jiǎn)單的對(duì)象,里面包含了幾個(gè)配置信息,它們都是用來配置函數(shù)運(yùn)行參數(shù)的:

enableHighAccuracy: 默認(rèn)值為false,如果指定為true,則表示在設(shè)備支持的情況下,盡可能獲取高精準(zhǔn)度的數(shù)據(jù),但這會(huì)在時(shí)間和電量方面存在一定的消耗
timeout: 用于指定一個(gè)超時(shí)時(shí)間,單位為毫秒,表示在超時(shí)后停止位置獲取的操作,默認(rèn)值是Infinity,表示直到獲取到數(shù)據(jù)后才停止該操作的進(jìn)行
maximumAge: 用于指定一個(gè)緩存位置信息的最長(zhǎng)時(shí)間,在這個(gè)時(shí)間段內(nèi),獲取位置時(shí)會(huì)從緩存中取,單位為毫秒,默認(rèn)值為0,表示不使用緩存,每次都取新的數(shù)據(jù)
上面是關(guān)于getCurrentPosition方法的介紹,在某些場(chǎng)景下,例如路線導(dǎo)航應(yīng)用,我們需要實(shí)時(shí)地獲取最新位置,進(jìn)而為用戶規(guī)劃最新的路線,這時(shí),上面的方法已經(jīng)不能很好的滿足需求了,我們需要使用watchPosition方法:

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. watchId = navigator.geolocation.watchPosition(success[, error[, options]]);  

watchPosition方法的使用方式和getCurrentPosition類似,不同的是,success函數(shù)會(huì)執(zhí)行多次,一旦獲取到最新的位置數(shù)據(jù),success函數(shù)就會(huì)被觸發(fā),與之相似地,如果連續(xù)獲取最新的數(shù)據(jù)失敗時(shí),error函數(shù)也會(huì)被執(zhí)行多次。
大家或許會(huì)注意到,上面的函數(shù)簽名中,會(huì)返回一個(gè)watchId,它標(biāo)示著當(dāng)前的watch操作,當(dāng)我們位置跟蹤任務(wù)完成后,可以使用clearWatch函數(shù)將這個(gè)watchId清除即可:

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. navigator.geolocation.clearWatch(watchId);  

上面就是Geolocation的常用的三個(gè)API,日常開發(fā)中我們可根據(jù)實(shí)際情況選用合適的方法,進(jìn)而獲取用戶的位置信息。
現(xiàn)在大部分瀏覽器都已支持Geolocation了,可是為了兼容低版本的瀏覽器,我們需要判斷它的支持情況:

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. if ('geolocation' in navigator) {   
  2.   // getting usr's position   
  3. else {   
  4.   // tips: your position is not available   
  5. }  

最后,我們用一個(gè)簡(jiǎn)單的例子來演示在開發(fā)中是如何使用Geolocation的:

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. var API = {   
  2.     //get recommended data by current longitude and latitude   
  3.     getSurroundingRecommendations: function(longitude, latitude, callback) {   
  4.         //simulate data obtaining from server.   
  5.         setTimeout(function() {   
  6.             var data = [   
  7.                 {   
  8.                     //item   
  9.                 },   
  10.                 {   
  11.                     //item   
  12.                 }   
  13.             ];   
  14.             callback(data);   
  15.         }, 500);   
  16.     }   
  17. };   
  18.   
  19. document.addEventListener('DOMContentLoaded'function() {   
  20.     //detect if Geolocation is supported   
  21.     if (!'geolocation' in navigator) {   
  22.         console.log('Geolocation is not supported in your browser');   
  23.         return;   
  24.     }   
  25.   
  26.     var successHandler = function(position) {   
  27.         var coords = position.coords,   
  28.             longitude = coords.longitude,   
  29.             latitude = coords.latitude;   
  30.   
  31.         API.getSurroundingRecommendations(longitude, latitude, function(data) {   
  32.             console.log(data);   
  33.         });   
  34.     },   
  35.     errorHandler = function(error) {   
  36.         console.log(error.code, error.message);   
  37.     },   
  38.     options = {   
  39.         enableHighAccuracy: true,   
  40.         timeout: 5000,   
  41.         maximumAge: 0   
  42.     };   
  43.   
  44.     navigator.geolocation.getCurrentPosition(successHandler, errorHandler, options);   
  45.   
  46. }, false);   
  47.   

在上面的代碼中,首先我們定義一個(gè)根據(jù)當(dāng)前位置獲取推薦數(shù)據(jù)的方法,然后在文檔加載完成后,開始試圖獲取當(dāng)前位置,并調(diào)研這個(gè)方法,獲取模擬的數(shù)據(jù),真是開發(fā)環(huán)境中,可能會(huì)進(jìn)一步利用返回的數(shù)據(jù)做渲染UI等操作。

網(wǎng)絡(luò)設(shè)備
位置服務(wù)用于估計(jì)您所在位置的本地網(wǎng)絡(luò)信息包括:有關(guān)可見 WiFi 接入點(diǎn)的信息(包括信號(hào)強(qiáng)度)、有關(guān)您本地路由器的信息、您計(jì)算機(jī)的 IP 地址。位置服務(wù)的準(zhǔn)確度和覆蓋范圍因位置不同而異。
總的來說,在PC的瀏覽器中 HTML5 的地理位置功能獲取的位置精度不夠高,如果借助這個(gè) HTML5 特性做一個(gè)城市天氣預(yù)報(bào)是綽綽有余,但如果是做一個(gè)地圖應(yīng)用,那誤差還是太大了。不過,如果是移動(dòng)設(shè)備上的 HTML5 應(yīng)用,可以通過設(shè)置 enableHighAcuracy 參數(shù)為 true,調(diào)用設(shè)備的 GPS 定位來獲取高精度的地理位置信息。

可選項(xiàng)
事實(shí)上,上述getCurrentPosition函數(shù)還支持第三個(gè)可選的參數(shù),是一個(gè) Option Object,一共有三個(gè)選項(xiàng)可以設(shè)定:

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. var options = {     
  2.     enableHighAccuracy: false,     
  3.     timeout: 5000,     
  4.     maximumAge: 60000     
  5. }    

 
其中timeout是設(shè)定地理位置獲取的超時(shí)時(shí)間(單位為毫秒,用戶選擇允許的時(shí)間不計(jì)算在內(nèi));而maximumAge表示允許設(shè)備從緩存中讀取位置,緩存的過期時(shí)間,單位是毫秒,設(shè)為0來禁用緩存讀取。如果返回的是緩存中的時(shí)間,會(huì)在timestamp中反映出來。
 

標(biāo)簽:甘南 惠州 萍鄉(xiāng) 咸陽 蘇州 營(yíng)口 文山 紅河

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HTML5的Geolocation地理位置定位API使用教程》,本文關(guān)鍵詞  HTML5,的,Geolocation,地理位置,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《HTML5的Geolocation地理位置定位API使用教程》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于HTML5的Geolocation地理位置定位API使用教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日本在线视频网址| 欧美黄色一级视频| 欧美一区二区三区久久精品| 最近2019年中文视频免费在线观看| 天堂av网在线| 亚洲 欧美 视频| 国产精品极品美女在线观看| 精品欧美在线观看| 在线 亚洲欧美在线综合一区| 亚洲高清视频网站| 伊人精品一区| 国外成人在线直播| 夜色77av精品影院| 亚洲一区二区在线看| 99在线精品一区二区三区| 日韩在线xxx| 黄色网页免费看| 欧美特级一级片| 国产精品嫩草影院8vv8| 亚洲一区二区91| av毛片在线| 欧美大成色www永久网站婷| 亚洲男人天堂av在线| 欧美一级片一区| 日本视频二区| 免费成人在线视频网站| 久久久精品国产99久久精品芒果| 国产精品美女免费看| 国产日韩欧美综合精品| 欧美另类自拍| 日韩激情在线| 四虎wwwcom| 欧美黑人国产人伦爽爽爽| 日本美女高潮视频| 黄色免费直接看| 久久久国产精华液999999| 欧洲猛交xxxx乱大交3| a级大片在线观看| 蘑菇福利视频一区播放| 美女喷白浆视频| 日韩欧美成人一区| 亚洲精品无码久久久久| 三级做a全过程在线观看| 五月天视频在线观看| 国产亚洲短视频| 伊人网中文字幕| 日韩精品亚洲人成在线观看| 国产草草浮力影院| 日韩久久精品| 亚洲综合激情另类专区老铁性| 自拍视频在线观看一区二区| 99riav国产精品视频| 成年女人色毛片免费| 日韩av一二三四| 成人av免费在线看| 国产精品.www| 国产精品日本精品| 最新91在线视频| 亚洲精品一区二三区不卡| 色图欧美色图| 亚洲欧美偷拍卡通变态| 久久久国产综合精品女国产盗摄| 欧美日韩中文国产| 欧美国产一区二区在线| 色网址在线观看| 看看黄色一级片| 亚洲国产精品自拍视频| 欧美福利视频在线观看| 乱人伦视频在线| 国产福利一区二区| 免费在线性爱视频| 一级免费黄色录像| www.xxxx欧美| 午夜国产小视频| 天天看片中文字幕| 天天骑夜夜操| 亚洲精品国产欧美| 亚洲精品7777xxxx青睐| 色综合久久99| 色综合夜色一区| 男人天堂avav| 4k岛国日韩精品**专区| 韩日成人av| 免费在线视频一级不卡| 欧美精品影院| 91色九色蝌蚪| 国产在线观看免费视频软件| 国自产精品手机在线观看视频| 日本免费看片网站| 欧美一个色资源| 黄色a**址| 成人精品一区二区三区校园激情| 视频一区在线免费观看| 欧美体内谢she精2性欧美| 国产成人av电影在线观看| 国产91精品黑色丝袜高跟鞋| 欧美大片一区| 久久中文在线| 国产精品久久久久秋霞鲁丝| 国产性一级片| 久久久久国产精品免费网站| 蜜臀久久久99精品久久久久久| 操她视频网站| 首页欧美精品中文字幕| 国产精品一区而去| 久久国产在线观看| 波多野结衣视频网址| 午夜久久久久久噜噜噜噜| 国产99久久久久久免费看| 日韩视频第一页| 深夜福利在线观看直播| 久久国产精品露脸对白| 五月六月丁香婷婷| 欧美另类第一页| 99精品视频在线播放观看| 女女色综合影院| 久久亚洲色图| 捆绑调教日本一区二区三区| 国产精品久久久久久福利| 日韩av在线一区二区三区| 7m精品国产导航在线| 国产在线精品一区二区中文| 9i看片成人免费高清| 日韩精品久久久久久久玫瑰园| 国产白丝网站精品污在线入口| 97成人超碰视| 日韩一级在线播放| 欧美性生活大片视频| 日韩国产欧美一区二区| 亚洲欧美色综合| 九九九九九国产| 精品亚洲成a人在线观看| 一区二区免费电影| 成人精品久久| 久久精品国产网站| 国产综合色一区二区三区| 日本中文字幕网址| 在线黄色网页| 日韩欧美视频一区二区三区| 国产精品jizz在线观看老狼| 麻豆91在线看| 日韩一区二区免费在线观看| 日本www视频在线观看| 一出一进一爽一粗一大视频| 日韩一区二区三区电影| 亚洲精品99久久久久中文字幕| 久久久久免费观看| 欧美经典一区二区三区| 又黄又www| 日韩av手机在线| av在线播放网| 亚洲精品爱爱久久| 日韩漫画puputoon| 国产一区二区三区久久精品| 欧美性猛交xxx乱大交3蜜桃| 催眠调教后宫乱淫校园| 国产在线精品免费av| 中文字幕国产亚洲2019| 久久久久久www| 久久激情视频久久| 在线天堂中文www官网| 丁香五月网久久综合| 99精品视频播放| 亚洲天堂网2018| 高清精品一区二区三区一区| 另类图片激情| 西野翔中文久久精品国产| 色婷婷综合中文久久一本| 久久综合图区亚洲综合图区| 亚洲另类av| 中文字幕视频观看| 黄色av网址在线观看| 国产亚洲二区| 国产精品久久久久久久久久久久久久久| 国精一区二区三区| 国产91在线精品| 欧美成人高清视频| 免费不卡av| 国产成人免费视频网站| 2019中文字幕全在线观看| 在线成人综合色一区| 加勒比成人在线| 天海翼视频在线观看| 99这里只有精品视频| 在线资源免费观看| 人人妻人人澡人人爽精品日本| 国产伦精品一区二区三区| 日本成人在线不卡| 亚洲精品国产品国语在线app| 国产清纯白嫩初高中在线观看性色| 69xxxx视频| 国产福利热线视频| 狠狠干天天爱| 15—17女人毛片| 99蜜桃在线观看免费视频网站| 日韩精品中文字幕一区二区三区| 日本在线观看免费视频| 日韩欧美第一页| 欧美精品在线视频| 日韩精品第一区| 亚洲天堂一区| 亚洲欧美日本伦理| 男人的天堂av社区在线| 中文字幕免费一区| 国产高清成人久久| 国产美女被遭强高潮免费网站| 午夜亚洲福利| 亚洲激情视频网| 国产女人18毛片18精品| 综合国产在线视频| 狠狠操五月天| wwww国产精品欧美| 中文字幕一区2区3区| 日韩第一页在线观看| 成人高清免费在线播放| 欧美日韩国产在线| 欧美日韩黄网站| 色一情一乱一乱一区91av| 欧美日韩成人高清| 18禁免费观看网站| 国产一区久久久| 久久精品男人天堂av| 免费看国产精品一二区视频| 夜夜狠狠擅视频| 制服丝袜激情欧洲亚洲| 亚洲天堂日韩av| 欧美日韩国产限制| 日韩一区二区三区免费视频| 精品福利在线看| 成人av先锋影音| 国产成年妇视频| 欧洲大片精品免费永久看nba| 亚洲高清在线观看| 99精品国产福利在线观看免费| 亚洲1区2区3区4区| 最新91视频| 亚洲中文字幕久久精品无码喷水| 日韩一区二区在线免费观看| 一区二区三区四区精品| 激情综合网最新| 成人黄色免费视频| 亚洲成人蜜桃| 91成人精品视频| 福利影院在线看| 国产成人亚洲综合小说区| 91亚洲一区精品| 狠狠操第一页| 99久久久国产| 伊人影院综合网| 五月婷婷色综合| 制服.丝袜.亚洲.中文.综合| 国产精品资源站| 国产又色又爽又黄的| 久久99国产精品免费| 韩国精品主播一区二区在线观看| 欧美一级免费看| 日本一区二区中文字幕| 亚洲一区二区三区三| 日日摸夜夜爽人人添| 国产www.大片在线| 成全在线观看免费完整动漫| 中国黄色a级片| 亚洲欧洲闷骚av少妇影院| 亚洲精品综合久久中文字幕| 韩国成人一区| 欧美黑人一级爽快片淫片高清| 国产精品最新乱视频二区| 这里只有精品国产| 日韩欧美一区二区在线视频| 久久99国产精品免费网站| av一区二区高清| 国产在线视视频有精品| 深夜福利网站在线观看| 91麻豆国产自产在线观看| 亚洲91av| 特级西西444www大胆免费看| 国产精品99久久久久久似苏梦涵| 日韩一级免费| 国产一区二区在线视频播放| 丰满湿润大白屁股bbw按摩| 一本色道久久加勒比精品| 欧美日韩福利在线观看| 精品视频在线观看一区二区| 中文字幕在线观看的网站| 残酷重口调教一区二区| 亚洲性xxxx| 护士精品一区二区三区| 日韩欧美在线1卡| 韩国精品美女www爽爽爽视频| 精品久久久噜噜噜噜久久图片| 国产一级黄色录像片| 成人自拍在线| 爱看av在线入口| 国产不卡av在线播放| 网红女主播少妇精品视频| 成人网视频在线观看| 亚洲天堂男人的天堂| 久久国产福利| 成人福利网站在线观看| 黑人巨大精品欧美一区二区免费| 日本久久久精品视频| 国内老熟妇对白xxxxhd| 国产精品久久成人免费观看| 久久99中文字幕| 中文字幕欧美日韩一区二区| 婷婷五月精品中文字幕| 欧美极品欧美精品欧美视频| 大陆一级毛片| 蜜桃999成人看片在线观看| 亚洲成色在线综合网站2018站| 亚洲欧美日韩不卡| 国产一级二级在线观看| 老司机成人影院| 欧美国产精品| 亚洲成人国产| av每日在线更新| 影音先锋在线影院| 色的视频在线观看免费播放| 成人免费高清视频在线观看| 亚洲国产精品高清久久久| 91麻豆精品国产综合久久久| 久久精品成人欧美大片| 色香阁99久久精品久久久| 手机看片久久| 日本不卡免费高清视频在线| 1000精品久久久久久久久| 国产精品一二三区在线| 国产精品观看|