精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

讓 HTML5 來為你定位

開發 前端
HTML5 的 geolocation 是一個令人興奮的 API,通過這套 API,Javascript 代碼就能夠訪問到用戶的當前位置。當然,訪問之前必須得到用戶的明確認可,即同意在頁面共享位置。如果頁面嘗試訪問地理位置信息,瀏覽器就會顯示一個對話 框,請求用戶許可共享其地理位置信息。

Geolocation


HTML5 的 geolocation 是一個令人興奮的 API,通過這套 API,Javascript 代碼就能夠訪問到用戶的當前位置。當然,訪問之前必須得到用戶的明確認可,即同意在頁面共享位置。如果頁面嘗試訪問地理位置信息,瀏覽器就會顯示一個對話 框,請求用戶許可共享其地理位置信息,比如這樣:

用戶同意(允許)之后,Geolocation 的 api 就能起作用了。

getCurrentPosition() 方法


Geolocation API 在瀏覽器中的實現是 navigator.geolocation 對象,這個對象包含 3 個方法。第一個方法是 getCurrentPosition(),調用這個方法就會觸發請求用戶共享地理定位信息的對話框。這個方法接收 3 個參數:成功回調函數,可選的失敗回調函數和可選的選項對象。

其中,成功回調函數會接收到一個 Position 對象參數,該對象有兩個屬性:coords 和 timestamp。而 coords 對象中將包含下列與位置相關的信息。

  • latitude:以十進制度數表示的維度

  • longtitude:以十進制度數表示的經度

  • accuracy:經緯度坐標的精度,以米為單位

有些瀏覽器可能會在 coords 對象中提供如下屬性。

  • altitude:以米為單位的海拔高度,如果沒有相關數據則值為 null

  • altitudeAccuracy:海拔高度的精度,以米為單位,數值越大越不精確

  • heading:指南針的方向,0°表示正北,值為 NaN 表示沒有檢測到數據

  • speed:速度,即每秒移動多少米,如果沒有相關數據則值為 null

說了這么多,我們來簡單應用下,寫一段代碼獲取當前的經緯度,然后輸出:

  1. navigator.geolocation.getCurrentPosition(geo_success, geo_error); 
  2.  
  3. function geo_success(position) { 
  4.   console.log(position.coords.latitude, position.coords.longitude); 
  5.  
  6. function geo_error(msg) { 
  7.   console.log(msg.code, msg.message); 

代碼很簡單,如果請求成功了就執行 geo_success() 函數,打印經緯度,如果失敗了,輸出一些信息(失敗回調)。

getCurrentPosition() 的第二個參數,即失敗回調函數,在被調用的時候也會接收到一個參數。這個參數是一個對象,包含兩個屬性:messagecode。 其中,message 屬性中保存著給人看的文本消息,解釋為什么會出錯,而 code 屬性中保存著一個數值,表示錯誤的類型:用戶拒絕共享(1),位置無效(2)或者超時(3)。實際開發中,大多數 Web 應用只會講錯誤消息保存到日志文件中,而不一定會修改用戶界面。

我們在 PC 端的 chrome 瀏覽器中執行這段代碼,結果是令人遺憾的:

掐指一算,估計是被墻了... 事實上,以 Chrome 瀏覽器為例,如果您允許 Chrome 瀏覽器與網站共享您的位置,Chrome 瀏覽器會向 Google 位置服務(此環節被墻)發送本地網絡信息,估計您所在的位置。然后,瀏覽器會與請求使用您位置的網站共享您的位置。

接著在 Android 機上測試了下,沒被墻,畢竟谷歌是 Android 的親爹啊。打印出來的信息如下:

31.188199 121.632919

當然只是知道經緯度或許不太那么直觀,如果能把位置顯示在地圖上那就直觀多了!這里我用了高德地圖的API(猛戳這里看效果):

  1. <!doctype html> 
  2. <html> 
  3. <head> 
  4.   <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"
  5. <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
  6.  <title>地圖顯示</title> <link rel="stylesheet" href="http://cache.amap.com/lbs/static/main.css?v=1.0" /> 
  7. <script src="http://webapi.amap.com/maps?v=1.3&key=您申請的key值"></script> </head> <body> <div id="mapContainer"></div> 
  8. <script> navigator.geolocation.getCurrentPosition(geo_success, geo_error); function geo_success(position)
  9.  { var map = new AMap.Map('mapContainer',
  10.  { // 設置中心點 center: [position.coords.longitude, position.coords.latitude], // 設置縮放級別 zoom: 13 }); 
  11. var marker = new AMap.Marker
  12. ({ //復雜圖標 icon: new AMap.Icon({ //圖標大小 size: new AMap.Size(2837), //大圖地址 image: "http://webapi.amap.com/images/custom_a_j.png"
  13. imageOffset: new AMap.Pixel(-280) }), //在地圖上添加點 position: [position.coords.longitude, position.coords.latitude] }); marker.setMap(map); } 
  14. function geo_error(msg) { console.log(msg.code, msg.message); } </script> </body> </html> 

在手機上打開后:

我的天哪!實在是太準了!如果我把代碼里的 zoom 參數再加大點,能精確到小區了...當然,這并不奇怪,因為這本來就是高德地圖百度地圖定位的一部分嘛。

事實上,getCurrentPosition() 還有第三個參數,該參數是一個選項對象,用于設定信息的類型。可以設置的選項有三個:enableHighAccuracy 是一個布爾值,表示必須盡可能使用最精確的位置信息;timeout 是以毫秒數表示的等待位置信息的最長時間;maximumAge 表示上一次取得的坐標信息的有效時間,以毫秒表示,如果時間到則重新取得新坐標信息。

除非確實需要非常精確的信息,否則建議保持 enableHighAccuracy 的 false 值(默認值)。將這個選項設置為 true 需要更長的時候,而且在移動設備上更耗電。類似的,如果不需要頻繁更新用戶的位置信息,那么可以將 maximumAge 設置為 Infinity,從而始終都使用上一次的坐標信息。

  1. navigator.geolocation.getCurrentPosition(locationSuccess, locationError, { 
  2.   // 指示瀏覽器獲取高精度的位置,默認為false 
  3.   enableHighAcuracy: true
  4.   // 指定獲取地理位置的超時時間,默認不限時,單位為毫秒 
  5.   timeout: 5000
  6.   // 最長有效期,在重復獲取地理位置時,此參數指定多久再次獲取位置。 
  7.   maximumAge: 3000 
  8. }); 

watchPosition() 方法


如果要跟蹤用戶的位置,那么可以使用 watchPosition() 方法。這個方法的使用和 getCurrentPosition() 完全相同。實際上 watchPosition() 與定時調用 getCurrentPosition() 能得到相同效果。在第一次調用 watchPosition() 方法后,會取得當前位置,執行成功回調或者錯誤回調。然后,watchPosition() 就地等待系統發出位置已改變的信號。

調用 watchPosition() 會返回一個數值標識符,用于跟蹤監控的操作。基于這個返回值可以取消監控操作,只要將其傳遞給 clearWatch() 方法即可(與使用 setTimeout() 和 clearTimeout() 類似),例如:

  1. var watchId = navigator.geolocation.watchPosition(geo_success, geo_error); 
  2. clearWatch(watchId); 

Geolocation 定位原理


Geolocation API 的數據來源可能是 GPS、IP 地址、RFID、WiFi、藍牙 MAC 地址、GSM/CDMA 卡 ID 等。因為 Geolocation API 是運行在你本地設備上的。所以,在使用 VPN 或代理的情況下,Geo API 仍能獲得你準確的 IP 地址信息(除非因為某些因素瀏覽器獲取不到這些信息)。

在HTML5的實現中,手機等移動設備當然優先使用GPS定位,而筆記本和部分平板,最準的定位是WIFI,至于網線上網的臺式機,一般就只能使用IP來定位了,這個準確度最低。


read more:

 

責任編輯:王雪燕 來源: 博客園
相關推薦

2014-03-20 10:50:44

HTML5 定位技術

2011-06-15 09:38:56

HTML 5

2016-05-13 17:14:51

華為HTML5

2017-10-12 15:58:10

網站HTML5Manifest

2011-10-09 13:29:11

HTML5App Store蘋果

2009-05-08 13:46:38

JavaScriptHTML5離線存儲

2015-06-10 10:18:27

WebAPP開發技巧

2021-03-04 08:01:30

HTML5整數HTML

2013-01-24 10:26:04

HTML5HTML 5HTML5的未來

2012-03-30 10:23:46

HTML5WEBJS

2012-07-26 10:40:38

HTML5

2011-05-13 17:36:05

HTML

2013-10-21 15:24:49

html5游戲

2016-01-13 10:09:18

原生應用HTML5

2015-11-30 15:45:56

HTML5DCloud

2011-01-14 17:53:33

HTML5cssweb

2011-05-13 17:41:40

2023-03-16 09:00:00

HTML5HTML語言

2017-01-03 18:09:33

HTML5本地存儲Web

2011-05-12 15:42:16

HTML5
點贊
收藏

51CTO技術棧公眾號

精品国产av鲁一鲁一区| 极品尤物一区二区| 日本黄色免费在线| 亚洲国产高清aⅴ视频| 2019av中文字幕| 国产成人无码精品久久二区三| 91成人在线| 亚洲自拍偷拍欧美| 秋霞毛片久久久久久久久| 一区二区日韩视频| 新狼窝色av性久久久久久| 中文字幕最新精品| 国产精品福利导航| 高清在线一区二区| 91福利视频网站| 日韩免费在线观看av| 欧美欧美欧美| 国产成人精品网址| 国产精品精品一区二区三区午夜版| 少妇人妻丰满做爰xxx| 亚洲最好看的视频| 欧美大黄免费观看| 中文字幕第88页| 蜜桃视频在线观看播放| 亚洲精品成a人| 日韩欧美亚洲v片| 天天干天天插天天操| 激情综合网天天干| 国产精品成人国产乱一区| 久久久久亚洲av无码专区| 久久电影院7| 亚洲人成网站777色婷婷| 欧美激情 亚洲| 久久久久毛片免费观看| 欧美日韩精品一区二区在线播放| 浮妇高潮喷白浆视频| 18视频在线观看| 国产精品人成在线观看免费| 麻豆精品传媒视频| 日韩在线一区二区三区四区| 国产精品18久久久久久久久久久久| 国产精品一区二区三区毛片淫片| 久久国产乱子伦精品| 国产偷自视频区视频一区二区| 色综合色综合久久综合频道88| www.com.av| 久久亚洲影视| 中国日韩欧美久久久久久久久| 一道本在线观看| 国产在线日韩精品| 日韩毛片在线看| aaaaa一级片| 色老板在线视频一区二区| 亚洲成人av在线播放| 美女露出粉嫩尿囗让男人桶| 一区二区三区免费在线看| 欧美一区二区私人影院日本| 久久久久久久久久一区| 91成人在线网站| 欧美精品色一区二区三区| 日韩一区二区三区久久| 亚洲综合资源| 91精品国产91久久久久久一区二区| 中文字幕第17页| 伊人久久大香线蕉综合影院首页| 欧美疯狂性受xxxxx喷水图片| 中文字幕线观看| 试看120秒一区二区三区| 日韩欧美精品三级| 加勒比精品视频| 伊人春色之综合网| 在线日韩欧美视频| 欧美特黄一级片| 亚洲视频一区| 日本精品视频在线观看| 中文字幕av在线免费观看| 国产在线一区二区| 99在线高清视频在线播放| 色婷婷在线视频| 国产亚洲成av人在线观看导航| 午夜一区二区三区| 中文字幕中文字幕在线中高清免费版| 亚洲自拍偷拍图区| 99精品视频播放| 四虎永久精品在线| 亚洲а∨天堂久久精品9966| 性欧美13一14内谢| 午夜激情久久| 久久久天堂国产精品女人| 青青青国产在线 | 97**国产露脸精品国产| 无码人妻一区二区三区免费| 韩日av一区二区| 极品日韩久久| 永久免费av在线| 亚洲国产一区在线观看| 免费看国产黄色片| 红杏视频成人| 日韩中文av在线| 日韩精品成人一区| 精品一区二区三区视频| 久久精品aaaaaa毛片| 麻豆网站在线看| 精品国产乱码久久久久久天美 | 无人区在线高清完整免费版 一区二 | 亚洲毛茸茸少妇高潮呻吟| 北条麻妃在线观看视频| 国产亚洲精品v| 91欧美视频网站| 男同在线观看| 亚洲成人激情自拍| 又色又爽又黄视频| 久久av综合| 国内免费精品永久在线视频| 一级全黄裸体免费视频| 久久青草欧美一区二区三区| 欧美另类videos| 免费在线成人激情电影| 日韩av在线免费观看| 中文字幕另类日韩欧美亚洲嫩草| 麻豆成人在线| 国产在线欧美日韩| 青青草视频在线免费直播| 精品1区2区3区| 久久精品一区二区免费播放| 激情欧美一区二区三区| 91亚洲人电影| 免费黄网站在线| 91国模大尺度私拍在线视频| 日韩av成人网| 欧美成人69av| 亚洲va男人天堂| 午夜老司机在线观看| 91久久精品国产91性色tv| 亚洲一区二区观看| 亚洲精品免费观看| 99re在线视频上| 福利视频在线| 在线不卡一区二区| 国产免费美女视频| 国产自产v一区二区三区c| 亚洲第一在线综合在线| 国产精品99| 中文字幕在线看视频国产欧美| 精产国品一区二区| 久久久久久久久99精品| 欧美私人情侣网站| 国产欧美亚洲精品a| 日本精品免费一区二区三区| 欧洲天堂在线观看| 一本在线高清不卡dvd| 泷泽萝拉在线播放| 久久久久久色| 天堂一区二区三区| 97成人超碰| 色偷偷噜噜噜亚洲男人的天堂| 中文字幕精品一区二区精| 国产精品人妖ts系列视频| 色婷婷综合网站| 欧美hd在线| 97人人澡人人爽| 欧美色图天堂| 日韩精品视频在线观看免费| 国产又大又黄又粗| 国产欧美综合色| 欧美性受xxxxxx黑人xyx性爽| 国产精品videosex性欧美| 91理论片午午论夜理片久久| 色婷婷视频在线观看| 亚洲白虎美女被爆操| 国产精品一区二区三区四| 国产片一区二区三区| 欧美一级特黄aaa| 一区在线免费| 日韩欧美在线电影| 91成人app| 国产91精品不卡视频| 成人在线观看网站| 777奇米成人网| 日本va欧美va国产激情| 日本一区二区三级电影在线观看 | 久久国产色av| 丁香花免费高清完整在线播放 | 中文字幕一区二区三区人妻四季 | 国产精品xnxxcom| 久久久亚洲福利精品午夜| 国产在线电影| 日韩三级中文字幕| 亚洲欧美另类在线视频| 国产精品成人免费在线| 亚洲麻豆一区二区三区| 日韩一区精品字幕| 国产又黄又爽免费视频| 欧美sss在线视频| 国产日本欧美一区| av伦理在线| 久久精品免费电影| 深夜视频在线免费| 91精品国产综合久久久久久久久久 | 国产精品永久免费| 51精品在线| 久久韩剧网电视剧| 精品成人一区二区三区免费视频| 777奇米四色成人影色区| 色一情一乱一伦| 亚洲一区二区综合| 成年人免费视频播放| 26uuu欧美日本| 国产成人精品综合久久久久99 | 激情综合丁香五月| 国产一二精品视频| 日本激情综合网| 亚洲在线日韩| 国产aaa免费视频| 亚洲成人99| 亚洲精品不卡| 国产欧美日韩精品一区二区三区| 国产成人亚洲欧美| 国产亚洲字幕| 成人福利视频网| 亚洲四虎影院| 日本韩国欧美精品大片卡二| 欧美xxxx做受欧美88bbw| 日韩在线欧美在线| 国产毛片在线| 亚洲天堂av网| 免费人成在线观看网站| 精品不卡在线视频| 精品国产伦一区二区三区| 欧美日韩一区二区三区四区五区 | 人人精品人人爱| 国产乱子伦农村叉叉叉| 亚洲第一伊人| 久久这里只有精品8| 亚洲一区 二区 三区| 中文字幕久精品免| 91精品国产91久久久久久密臀| 日本亚洲自拍| 日韩在线观看电影完整版高清免费悬疑悬疑| 免费观看成人高| 香蕉视频一区二区三区| 麻豆av一区二区三区| 西野翔中文久久精品字幕| 狠狠色狠狠色综合人人| 欧美午夜18电影| 久精品国产欧美| 九九久久电影| 日韩久久不卡| 久久精品国产99久久| 亚洲一区二区四区| 天天做综合网| 四虎精品欧美一区二区免费| 欧美三级特黄| 大西瓜av在线| 国产亚洲精品v| 老头吃奶性行交视频| 免费观看成人av| 国内自拍第二页| 懂色中文一区二区在线播放| 女人扒开双腿让男人捅| 不卡的电视剧免费网站有什么| 四虎精品一区二区| 久久蜜桃一区二区| 亚洲AV成人无码网站天堂久久| 综合网在线视频| 欧美精品一区二区成人| 欧美日韩裸体免费视频| 在线视频精品免费| 欧美乱妇20p| 欧美一级一区二区三区| 亚洲人成电影网站| 日本网站在线免费观看视频| 欧美xxxx做受欧美.88| 黄在线观看免费网站ktv| 日本高清视频一区| 国产成人免费av一区二区午夜| 99久久精品无码一区二区毛片 | 亚洲精品日韩欧美| fc2在线中文字幕| 色综合久久久888| 性欧美hd调教| 成人字幕网zmw| 欧美一级二级三级视频| 五月婷婷综合色| 欧美日韩p片| 亚洲男人天堂色| 国产精品91xxx| 野花社区视频在线观看| 中文字幕一区日韩精品欧美| 日干夜干天天干| 欧美日精品一区视频| 蜜桃视频污在线观看| 一本色道久久88综合亚洲精品ⅰ | 欧洲精品毛片网站| 伊人久久一区| 欧美激情论坛| 国产精品mv在线观看| 成人亚洲视频在线观看| 国产不卡视频一区| 五月婷婷婷婷婷| 天天影视涩香欲综合网| 国产日韩欧美视频在线观看| 日韩精品中文字幕有码专区| 国产精品剧情| 国产精品69av| 超碰在线成人| 懂色av粉嫩av蜜臀av| 蜜桃视频一区| 尤物网站在线观看| 亚洲精品国产一区二区三区四区在线 | 成全电影播放在线观看国语| 欧美国产日本高清在线| 久久久久久久性潮| 欧美亚洲免费高清在线观看| 国内精品福利| 午夜av中文字幕| 国产精品人成在线观看免费| 国产精品一区二区三区四| 精品久久久久久久久久久久久久久 | 91麻豆精品激情在线观看最新| 日韩中文不卡| 裸体一区二区| theav精尽人亡av| 婷婷六月综合亚洲| 免费观看黄色av| 国模私拍一区二区三区| 欧美区一区二区| 色撸撸在线观看| 久久99久久99| 久久久99999| 欧美精品黑人性xxxx| 粉嫩av在线播放| 国产精品第二页| 欧美激情在线免费| 欧美少妇性生活视频| 不卡的av中国片| 久久精品亚洲无码| 欧美成人性战久久| 啦啦啦中文在线观看日本| 97人摸人人澡人人人超一碰| 99国产精品免费视频观看| 在线观看日本一区二区| 国产精品三级av在线播放| 一级特黄免费视频| 一区二区三区 在线观看视| 黄色综合网址| 视频一区视频二区视频三区视频四区国产| 欧美一级久久| 中文幕无线码中文字蜜桃| 一本大道久久精品懂色aⅴ| 国产三区四区在线观看| 国产精品入口日韩视频大尺度| 欧美呦呦网站| 亚洲精品成人在线播放| 尤物视频一区二区| 国产后入清纯学生妹| 久久久久久久久久久网站| 欧美大片网址| 免费看a级黄色片| 国产精品视频你懂的| 国产一区二区在线不卡| 精品自在线视频| 久久精品论坛| 亚欧在线免费观看| 中文字幕人成不卡一区| xxxx国产精品| 欧美一级电影免费在线观看| 精品国产一区二区三区久久久樱花 | 2020av在线| 日韩av不卡播放| 久久精品国产免费看久久精品| www日韩在线| 亚洲第一色中文字幕| 欧美大片免费| 六月婷婷激情网| 99精品欧美一区| 中文在线最新版天堂| 欧美日韩成人精品| 校花撩起jk露出白色内裤国产精品| 日本www.色| 一区二区三区加勒比av| 久草在线青青草| 97久久人人超碰caoprom欧美| 亚洲日本视频| 日本精品久久久久中文| 精品国产一区二区精华| 综合在线影院| 欧美美女黄色网| 久久精品夜夜夜夜久久| 国产毛片在线视频| 热草久综合在线| 女同性一区二区三区人了人一 | xxx中文字幕| 欧美日韩色婷婷| 中文字幕免费高清电视剧网站在线观看 | 成人毛片在线精品国产| 国产精品国产福利国产秒拍| 国内精品久久久久久久97牛牛 | 午夜福利123| 懂色av一区二区三区|