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

首頁 > 開發 > HTML5 > 正文

使用HTML5 Geolocation實現一個距離追蹤器

2024-09-05 07:22:28
字體:
來源:轉載
供稿:網友

HTML5 Geolocation(地理定位)用于定位用戶的位置。那么如何實現一個距離追蹤器呢?我的思路是這樣的,前提是瀏覽器支持h5地理定位,在這個基礎上,獲取用戶位置,更新用戶位置,計算距離,顯示到頁面,這樣就簡單實現了一個距離追蹤器,為了用戶更清楚地看到當前位置,這里接入了百度地圖API。

頁面結構如下所示:

<div id="container"> <section>  <article>   <header>    <h1>Your Location</h1>   </header>   <p class="info" id="status">您的瀏覽器不支持HTML5 Geolocation。</p>   <div class="geostatus">    <p id="latitude">緯度:  </p>    <p id="longitude">經度:  </p>    <p id="accuracy">準確度:  </p>    <p id="timestamp">時間戳:  </p>    <p id="currDist">目前旅行距離:  </p>    <p id="totalDist">旅行總距離:  </p>   </div>  </article> </section> <!-- 百度地圖位置顯示 --> <div id="allmap"></div>    </div>

判斷瀏覽器是否支持HTML5 Geolocation

在body加載時調用loadDemo()方法,方法根據navigator.geolocation來判斷瀏覽器是否支持HTML5 Geolocation;如果navigator.geolocation為true,那么我們就可以開始對用戶位置進行獲取更新

實時獲取用戶位置

HTML5可以通過getCurrentPosition() 方法來獲得用戶的位置。但這個只獲取一次,所以我們選用了 watchPosition()這個方法,它能返回用戶的當前位置,并繼續返回用戶移動時的更新位置(就像汽車上的GPS)。

navigator.geolocation.watchPosition(updateLocation, handleLocationError, {        timeout: 10000       });

在不斷獲取位置的同時,調用updateLocation這個方法,把位置情況顯示在頁面上,當然還要調用計算距離的方法來獲取距離,以及不斷更新百度地圖上的位置。

var latitude = position.coords.latitude;var longitude = position.coords.longitude;var accuracy = position.coords.accuracy;var timestamp = position.timestamp;document.getElementById("latitude").innerHTML = "緯度:  " + latitude;document.getElementById("longitude").innerHTML = "經度:  " + longitude;document.getElementById("accuracy").innerHTML = "準確度:  " + accuracy;document.getElementById("timestamp").innerHTML = "時間戳:  " + timestamp;if(accuracy >= 30000) { updateStatus("Need more accurate values to calculate distance."); return;}if((lastLat != null) && (lastLong != null)) { var currentDistance = distance(latitude, longitude, lastLat, lastLong); document.getElementById("currDist").innerHTML = "目前旅行距離:  " + currentDistance.toFixed(2) + "km"; totalDistance += currentDistance; document.getElementById("totalDist").innerHTML = "旅行總距離:  " + currentDistance.toFixed(2) + "km"; updateStatus("Location successfully updated.");}lastLat = latitude;lastLong = longitude;

計算距離

把開始位置和當前位置的經度緯度作為參數放入函數,通過換算,來計算距離(單位為km)

Number.prototype.toRadians = function() {    return this * Math.PI / 180;   }function distance(latitude1, longitude1, latitude2, longitude2) {    var R = 6371;    var deltaLatitude = (latitude2 - latitude1).toRadians();    var deltaLongitude = (longitude2 - longitude1).toRadians();    latitude1 = latitude1.toRadians(), latitude2 = latitude2.toRadians();    var a = Math.sin(deltaLatitude / 2) * Math.sin(deltaLatitude / 2) + Math.cos(latitude1) * Math.cos(latitude2) * Math.sin(deltaLongitude / 2) * Math.sin(deltaLongitude / 2);    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));    var d = R * c;    return d;   }

百度地圖API接入

要用百度地圖API,你需要注冊百度賬號,申請成為百度開發者然后獲取一個密鑰,才能使用相關服務戳這 根據文檔你可以知道如何使用這個API 代碼如下:

var map = new BMap.Map("allmap"); // 創建Map實例 map.centerAndZoom(new BMap.Point(longitude, latitude), 14); //設置中心點坐標和地圖級別 map.addControl(new BMap.MapTypeControl()); //添加地圖類型控件 map.setCurrentCity("南昌"); //顯示城市,此項必須設置 map.enableScrollWheelZoom(true); //開啟鼠標滾輪縮放 // 以下為當前位置標注設置 var point = new BMap.Point(longitude, latitude); map.centerAndZoom(point, 14); var marker = new BMap.Marker(point); //創建標注 map.addOverlay(marker); //將標注添加到地圖中 marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳動的動畫 // 百度地圖API功能--------end

記得先引入一個script標簽

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的密鑰" ></script>

總結

以上所述是小編給大家介紹的使用HTML5 Geolocation實現一個距離追蹤器,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产91| 国产精品久久久久久av福利| 亚洲成人激情小说| 精品国产精品三级精品av网址| 欧美激情喷水视频| 一本色道久久88综合日韩精品| 精品成人国产在线观看男人呻吟| xvideos亚洲| 欧美丝袜美女中出在线| 97久久久免费福利网址| 97久久精品人人澡人人爽缅北| 九九精品在线观看| 亚洲欧美另类中文字幕| 国产精品色午夜在线观看| 国产成人精品a视频一区www| 久久精品中文字幕电影| 亚洲最新中文字幕| 成人亲热视频网站| 欧美另类在线播放| 国产一区二区三区四区福利| 欧美日韩综合视频网址| 91精品91久久久久久| 国产成人精品一区二区在线| 欧美日韩免费一区| 国产成人精彩在线视频九色| 7777精品久久久久久| 欧美老女人在线视频| 国产精品丝袜一区二区三区| 欧美性xxxxx极品| 色偷偷91综合久久噜噜| 人体精品一二三区| 国产伦精品免费视频| 伦伦影院午夜日韩欧美限制| 国产精品高潮粉嫩av| 国产日韩精品在线观看| 亚洲福利在线播放| 色悠悠久久88| 日本久久亚洲电影| 激情av一区二区| 456亚洲影院| 国产日韩中文字幕| 伊人伊成久久人综合网站| 热久久视久久精品18亚洲精品| 欧美精品在线免费播放| 九九九热精品免费视频观看网站| 欧美日韩亚洲精品一区二区三区| 中文字幕亚洲情99在线| 日韩电影免费观看在线观看| 日本国产高清不卡| 欧美电影院免费观看| 国产日韩av高清| 欧美激情综合亚洲一二区| 欧美xxxx18性欧美| 欧美一级高清免费| 国产精品久久久久久久美男| 久久久久久久久久久免费精品| 日韩成人av在线播放| 色先锋久久影院av| 欧美日韩国产黄| 97在线观看免费| 亚洲精品福利在线| 久久精品男人天堂| 久久偷看各类女兵18女厕嘘嘘| 精品国产乱码久久久久久天美| 亚洲影院色无极综合| 亚洲精品成人久久久| 亚洲aa在线观看| 深夜福利日韩在线看| 欧美国产精品va在线观看| 亚洲影视中文字幕| 性欧美激情精品| 亚洲一区中文字幕在线观看| 亚洲国产欧美一区二区三区久久| www.亚洲成人| 成人黄色影片在线| 国产成人精品在线视频| 久久精品久久精品亚洲人| 久久91精品国产91久久久| 欧美寡妇偷汉性猛交| 亚洲国产精品99| 亚洲欧洲国产伦综合| 色诱女教师一区二区三区| 国产97色在线| 最近2019年日本中文免费字幕| 国产精品视频地址| 欧美一区二区三区……| 日韩国产欧美区| 久久av.com| 懂色av影视一区二区三区| 久久久久久69| 欧美日韩高清在线观看| 亚洲国产精品va在线看黑人| 狠狠躁18三区二区一区| 亚洲综合精品一区二区| 国产丝袜精品视频| 国产精品黄色av| 懂色av中文一区二区三区天美| 欧美电影在线观看网站| 欧美一级大片视频| 国产在线999| 亚洲国产精品成人精品| 韩国国内大量揄拍精品视频| 狠狠色香婷婷久久亚洲精品| 欧美大尺度在线观看| 亚洲成人免费在线视频| 日韩一级黄色av| 91高清视频免费观看| 91国产精品电影| 97香蕉超级碰碰久久免费软件| 久久久久久久爱| 97免费视频在线| 午夜剧场成人观在线视频免费观看| 全球成人中文在线| 国产91精品高潮白浆喷水| 国内精品久久久久| 亚洲a在线播放| 欧美国产日韩中文字幕在线| 日韩免费观看在线观看| 国产中文字幕日韩| 欧美中文字幕视频| 亚洲自拍偷拍第一页| 91色视频在线观看| 伦伦影院午夜日韩欧美限制| 日韩精品久久久久久久玫瑰园| 午夜精品久久久久久久久久久久| 亚洲九九九在线观看| 欧美日韩在线免费观看| 久久久www成人免费精品张筱雨| 精品国产一区二区三区久久狼5月| 亚洲综合日韩中文字幕v在线| 国产999视频| 国产精品私拍pans大尺度在线| 97不卡在线视频| 国产欧美在线观看| 久久精品久久久久久国产 免费| 国产区精品视频| 宅男66日本亚洲欧美视频| 国产成人福利夜色影视| 精品色蜜蜜精品视频在线观看| 最近2019中文字幕第三页视频| 亚洲激情视频在线观看| 国语自产精品视频在线看抢先版图片| 国产一区视频在线播放| 91网站免费观看| 少妇高潮久久77777| 国产成一区二区| 欧美视频13p| 91免费福利视频| 国产日韩视频在线观看| 亚洲一区二区久久久| 国产精品精品一区二区三区午夜版| 欧美在线国产精品| 91牛牛免费视频| 777国产偷窥盗摄精品视频| 亚洲国产精品va在线看黑人动漫| 欧美国产视频一区二区| 性欧美视频videos6一9| 日韩免费在线电影| 九色精品免费永久在线| 色哟哟网站入口亚洲精品| 亚洲一区二区三区成人在线视频精品| 国产精品都在这里| 亚洲在线一区二区| 精品在线观看国产|