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

首頁 > 編程 > HTML > 正文

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

2024-08-26 00:20:36
字體:
來源:轉載
供稿:網友

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實現一個距離追蹤器,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久久国产| 亚洲欧美国产一区二区三区| 久久久久久久999精品视频| 26uuu另类亚洲欧美日本一| 精品日韩中文字幕| 国产999精品| 91亚洲精品在线| 国产不卡av在线| 中文国产亚洲喷潮| 国产精品网红福利| 秋霞午夜一区二区| 欧美日韩国产一区中文午夜| 亚洲一区中文字幕在线观看| 日韩在线观看免费全| 亚洲伦理中文字幕| 这里只有视频精品| 亚洲欧美日韩综合| 在线成人激情视频| 国产日韩欧美成人| 日本一区二区三区在线播放| 成人黄色免费看| 777国产偷窥盗摄精品视频| 精品动漫一区二区| 91探花福利精品国产自产在线| 一区二区欧美在线| 91免费视频国产| xvideos成人免费中文版| 国产一区二区av| 欧美一级大胆视频| 成人欧美一区二区三区黑人孕妇| 亚洲自拍高清视频网站| 久久精品视频中文字幕| 国产69精品久久久久9999| 在线日韩欧美视频| 粗暴蹂躏中文一区二区三区| 国产精品小说在线| 久久亚洲春色中文字幕| 麻豆国产精品va在线观看不卡| 欧洲成人免费aa| 国内精品模特av私拍在线观看| 欧美电影在线观看| 亚洲成人免费网站| 日韩av三级在线观看| 久99九色视频在线观看| 国产精品自产拍在线观看中文| 国产伦精品免费视频| 91高清视频免费观看| 亚洲精品一区在线观看香蕉| 色小说视频一区| 亚洲电影免费观看高清完整版在线观看| 91av视频在线观看| 国产一区二区三区在线播放免费观看| 大桥未久av一区二区三区| 国产成人涩涩涩视频在线观看| 91麻豆国产精品| 欧美激情18p| 午夜免费日韩视频| 一区二区欧美久久| 欧美高清在线播放| 欧美日本亚洲视频| 国产精品吹潮在线观看| 精品久久久久久久久国产字幕| 色多多国产成人永久免费网站| 日本免费一区二区三区视频观看| 97在线观看视频国产| 国产精品一区二区久久国产| 国产精品久久久久久久7电影| 亚洲视频在线观看免费| 97在线视频免费观看| 亚洲国产日韩欧美综合久久| 欧美成人精品在线播放| 久久这里有精品视频| 国产91精品高潮白浆喷水| 久久久中文字幕| 亚洲欧美激情另类校园| 国产精品久久久久久久7电影| 日韩中文在线视频| 亚洲黄色在线观看| 原创国产精品91| 欧美黑人一区二区三区| 91在线观看免费高清完整版在线观看| 欧美国产视频一区二区| 国产精品ⅴa在线观看h| 久久不射电影网| 久久久噜噜噜久久| 国产精品v片在线观看不卡| 最近日韩中文字幕中文| 一区二区三区在线播放欧美| 亚洲视频日韩精品| 中文字幕一精品亚洲无线一区| 国产日韩欧美黄色| 91豆花精品一区| 国产深夜精品福利| 久久亚洲国产精品成人av秋霞| 97视频在线免费观看| 亚洲第一av网站| 黑人巨大精品欧美一区二区一视频| 国产精品一区二区女厕厕| 国产精品aaa| 国内精久久久久久久久久人| 精品成人在线视频| 日韩电影在线观看中文字幕| 亚洲精品午夜精品| 国产精品福利久久久| 91精品国产高清久久久久久| 亚洲国产欧美一区二区三区久久| 欧美高清不卡在线| 国产成+人+综合+亚洲欧洲| 中文字幕精品国产| 欧美电影在线播放| 亚洲国产成人爱av在线播放| 国产精品久久久久久久久久小说| 91久久久精品| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲欧美国产制服动漫| 第一福利永久视频精品| 日韩在线观看高清| 亚洲精品成人久久| 国产精品福利小视频| 色播久久人人爽人人爽人人片视av| 一区二区三区亚洲| 在线视频日本亚洲性| 色哟哟亚洲精品一区二区| 精品一区精品二区| 美日韩精品免费视频| 久久久成人的性感天堂| 欧美日韩免费网站| 国产精品爱久久久久久久| 欧美极品少妇xxxxⅹ免费视频| 国产精品扒开腿做| 国产精品黄视频| 91精品久久久久久久久久久久久久| 亚洲第一色中文字幕| 亚洲国产成人爱av在线播放| 欧美另类暴力丝袜| 亚洲日韩中文字幕| 午夜精品视频在线| 成人天堂噜噜噜| 亚洲成人久久一区| 亚洲欧美日韩天堂| 日本精品视频在线观看| 亚洲精品在线91| 中文字幕日韩av电影| 久久精品国产亚洲精品2020| 91在线直播亚洲| 欧美一级淫片videoshd| 一本一本久久a久久精品综合小说| 国产成人精品av在线| 亚洲高清福利视频| 国产精品毛片a∨一区二区三区|国| 久久久久久尹人网香蕉| 国产欧美日韩中文字幕在线| 中文字幕久热精品视频在线| 91日本视频在线| 国产精品色视频| 在线成人激情黄色| 日韩综合视频在线观看| 亚洲精品福利免费在线观看| 久久久精品久久久久| 欧美精品在线免费观看| 国产精品欧美激情| 亚洲bt欧美bt日本bt| 欧美日韩一区二区三区| 亚洲欧美三级伦理|