Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲欧美另类综合,天天操天天操天天操天天操,高清不卡毛片免费观看

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          手把手教你HTML5實現定位當前地理位置



          前面文章中寫過類似的文章《手把手教你HTML5實現根據LBS定位到商家兩點之間距離多少》,建議有興趣的小伙伴可以看看。

          使用 HTML5 Geolocation API 來構建基于地理位置的應用~

          各種瀏覽器對HTML5 Geolocation 的支持

          瀏覽器 版本 只支持HTTPS版本 IE 9+ - Edge 12+ - Firefox 3.5+ - Chrome 5+ 50+ Safari 5+ 39+ iOS Safari 3.2+ 10.2+ Android Browser 2.1+ 56+ Chrome for Android 57+ 57+ UC Browser for Android 11.4+ -

          出于安全考慮,部分瀏覽器只允許通過HTTPS協議使用 Geolocation API。在HTTP協議下使用Geolocation API 瀏覽器會拋出異常,在開發階段,127.0.0.1和localhost 等本地域在兩種協議下均可使用。

          Geolocation API 通過 navigator.geolocation 全局對象進行訪問,第一次訪問的時候會詢問用戶是否允許共享位置。

          判斷瀏覽器是否支持 Geolocation API

                  // 判斷瀏覽器屬否支持獲取位置
                  if(navigator.geolocation){
                      console.log("可以獲取");
                  }else{
                      console.log("不支持");
                  }
          

          實例代碼如下:

          <!DOCTYPE html>
          <html lang="en">
          
          <head>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <meta http-equiv="X-UA-Compatible" content="ie=edge">
              <title>Document</title>
          </head>
          
          <body>
              獲取用戶地理位置
              <input type="button" value="點擊獲取位置" id="btn">
              <script>
                  let btnBtn = document.getElementById('btn')
                  btnBtn.onclick = () => { // 點擊事件
                          getAdd()
                      }
                      // 成功回調
                  let success = (position) => {
                          console.log(`獲取位置成功:${position.coords}`);
                          console.log(position.coords); // 獲取坐標信息
                          // coords的常用屬性
                          console.log(position.coords.latitude); // 獲取坐標緯度
                          console.log(position.coords.longitude); // 獲取坐標經度
                          console.log(position.coords.accuracy); // 獲取坐標精度,單位為米
                          console.log(position.timestamp); // 獲取位置的時間戳
          
                      }
                      // 失敗回調
                  let error = (positionErr) => {
                      console.log(`獲取位置失?。?{positionErr.code}+${positionErr.message}`);
                  }
          
                  let options = {
                      enableHightAccuracy: false, // 獲取高精度的位置信息,可能會增加響應時間,默認是false
                      timeout: 30000, // 設置超時時間,單位毫秒,如果到達設定的時間沒獲取到信息則回觸發失敗回調,默認值為0,無限大
                      maximumAge: 0 // 設置用戶位置信息緩存的最大時間
                  }
                  let getAdd = () => {
                      navigator.geolocation.getCurrentPosition(success, error, options)
                  }
          
          
                  // 判斷瀏覽器屬否支持獲取位置
                  if(navigator.geolocation){
                      console.log("可以獲取");
                  }else{
                      console.log("不支持");
                  }
              </script>
          </body>
          
          </html>
          

          當獲取位置失敗時,會調用失敗回調(error函數)。返回的參數<positionErr.code 標識錯誤的原因><positionErr.message錯誤信息描述> positionErr.code 值

          • UNKNOWN_ERROR(0): 其他錯誤
          • PERMISSION_DENIED(1): 用戶拒絕分享位置信息
          • POSITION_UNAVAILABLE(2): 獲取用戶位置信息失敗
          • TIMEOUT(3): 獲取用戶位置信息超時

          推薦文章

          《手把手教你HTML5實現根據LBS定位到商家兩點之間距離多少》
          作者:藍海00
          鏈接:https://www.jianshu.com/p/d0b0b6120055

          久前研究過 HTML5 Geolocation,最近整理 F2E-Awesome 的時候,發現缺少相關的文章,所以按照自己的使用經驗整理了此篇文章。

          一、應用場景:

          附近商家定位;計算行走路程;GPS 導航;

          請求一個位置信息,如果用戶同意,瀏覽器就會返回位置信息,該位置信息是通過支持 HTML5 地理定位功能的底層設備提供給瀏覽器。位置信息由緯度/經度坐標和一些其他的元數據組成。有了這些位置信息就可以構建引人注意目的位置感知類應用程序。

          二、簡單示例

          我們通過簡短的代碼先粗略認識一下,大致知道如何使用。

          三、兼容性

          四、相關 API

          兩種類型的定位請求API:單次定位請求和重復性的位置更新請求;

          三個方法:

          1.getCurrentPosition

          獲取用戶當前定位位置,這會異步地請求獲取用戶位置,并查詢定位硬件來獲取最新信息。

          需要注意的是:有 GPS 的設備可能需要一分鐘或更久來獲取 GPS 定位,在這種情況下 getCurrentPosition() 會返回低精度數據(基于 IP 的定位或 Wi-Fi 定位)。

          2.watchPosition

          您可以設定一個回調函數來響應定位數據發生的變更(設備發生了移動,或獲取到了更高精度的地理位置信息),它與 getCurrentPosition() 接受相同的參數,但回調函數會被調用多次。錯誤回調函數與 getCurrentPosition() 中一樣是可選的,也會被多次調用。

          3.clearWatch

          watchPosition() 函數會返回一個 ID,唯一地標記該位置監視器。您可以將這個 ID 傳給 clearWatch() 函數來停止監視用戶位置。

          navigator.geolocation.clearWatch(watchID);
          

          五、警告

          [Deprecation] getCurrentPosition() and watchPosition() no longer work on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details.
          

          在 IOS 10 中,蘋果對 webkit 定位權限進行了修改,所有定位請求的頁面必須是 https 協議的。如果是非 https 網頁,在 http 協議下通過 html5 原生定位接口會返回錯誤,也就是無法正常定位到用戶的具體位置,而已經支持 https 的網站則不會受影響。

          經測試,本地 file 文件或者是啟動服務器,都會直接返回拒絕服務。

          六、定位原理

          那么瀏覽器是如何實現定位的呢,原理又是如何?

          1.IP 定位

          每一臺連上網路的電腦都具有一個獨一無二的 IP 位址,經由 IP 位址可以反查出電腦位置,但是結果并不精確,而且很容易到受到 ISP 的 IP 分配機制影響,而造成誤差。

          2.GPS 定位

          GPS 是我們最常聽到的定位技術,它是利用衛星來定位,可以很精確的偵測到使用者位置。但是要玩 GPS,行動裝置一定要有 GPS 模組,而且盡管 GPS 非常精準,還是會有技術上的局限,比如在偵測位置時,GPS 的感應器要位于視線范圍內(line of sight),因此在有很多高樓大廈、或者是障礙物的地方,GPS 反而沒有辦法運作自如。

          3.Wi-Fi 三角測量定位

          這個定位技術可以說是為都會區而設的,因為熱鬧的大都市通常會有不少 Wi-Fi 熱點,定位供應商可以根據這些熱點的相對位置、距離等建立一個資料庫。Wi-Fi 三角測量適用于 GPS 無法滲透的地方,不過缺點是需要經常更新資料庫。

          4.基地臺三角測量定位

          借助基地臺之間的相對位置,可以定位出用戶在哪里,只要你的手機收得到訊號,就能定位。 一般來說,這四種技術的準確性由高而低分別是:GPS 定位、Wi-Fi 三角測量、基地臺三角測量、IP定位。但還是要視環境而定,比如你到沒有 Wi-Fi 熱點的地方、或是手機信號不好,定位效果當然也會受影響。

          很有意思的一篇文章:為什么瀏覽器知道你在哪里,看完你就懂了。

          位用戶的位置

          HTML5 Geolocation API 用于獲得用戶的地理位置。

          鑒于該特性可能侵犯用戶的隱私,除非用戶同意,否則用戶位置信息是不可用的。

          瀏覽器支持

          Internet Explorer 9+, Firefox, Chrome, Safari 和 Opera 支持Geolocation(地理定位).

          注意:Geolocation(地理定位)對于擁有 GPS 的設備,比如 iPhone,地理定位更加精確

          HTML5 - 使用地理定位

          請使用 getCurrentPosition() 方法來獲得用戶的位置。

          下例是一個簡單的地理定位實例,可返回用戶位置的經度和緯度

          實例

          <script>

          var x=document.getElementById("demo");

          function getLocation()

          {

          if (navigator.geolocation)

          {

          navigator.geolocation.watchPosition(showPosition);

          }

          else{x.innerHTML="該瀏覽器不支持獲取地理位置。";}

          }

          function showPosition(position)

          {

          x.innerHTML="緯度: " + position.coords.latitude +

          "<br>經度: " + position.coords.longitude;

          }

          </script>


          主站蜘蛛池模板: 国产成人一区二区三区电影网站 | 亚洲色欲一区二区三区在线观看 | 日韩三级一区二区| 国产精品一区二区久久国产| 日本一区二区三区不卡视频中文字幕| 国产精品亚洲一区二区三区久久| 无码人妻精品一区二| 亚洲熟妇av一区二区三区| 亚洲视频一区调教| 在线视频精品一区| 久久久99精品一区二区| 无码人妻视频一区二区三区| 亚洲色精品VR一区区三区| 国产成人一区二区动漫精品| 夜夜嗨AV一区二区三区| 伊人色综合网一区二区三区| 国产精品一区二区四区| 日本精品一区二区三区在线观看| 中文字幕一区二区三区久久网站| 欧洲精品一区二区三区| 久久精品一区二区影院| 亚洲国产精品无码第一区二区三区| 一区二区日韩国产精品| 91福利视频一区| 爆乳熟妇一区二区三区霸乳 | 在线观看精品视频一区二区三区| 一区 二区 三区 中文字幕| 无码人妻AⅤ一区二区三区| 欧洲精品码一区二区三区| 亚洲AV福利天堂一区二区三| 国产福利在线观看一区二区| 亚洲av福利无码无一区二区| 国产视频福利一区| 香蕉久久一区二区不卡无毒影院 | 狠狠做深爱婷婷久久综合一区| 无码国产精成人午夜视频一区二区 | 国产一区二区三区美女| 熟女精品视频一区二区三区| 午夜视频久久久久一区 | 色婷婷亚洲一区二区三区| 无码精品视频一区二区三区 |