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

首頁 > 編程 > HTML > 正文

html5指南-4.使用Geolocation實現定位功能

2024-08-26 00:15:03
字體:
來源:轉載
供稿:網友
今天我們要學習的是使用Geolocation實現定位功能。我們可以通過navigator.geolocation獲取Geolocation對象,他提供了下列方法:
getCurrentPosition(callback,errorCallback,options):獲取當前位置;
watchPosition(callback,error,options):開始監控當前位置;
clearWatch(id):停止監控當前位置。
note:下面例子使用的瀏覽器是chrome,使用其他瀏覽器我不能保證運行結果和例子顯示的結果一致。
1.獲取當前位置
我們將使用getCurrentPosition方法獲取當前位置,位置信息不會以結果的形式直接返回,我們需要使用callback函數進行處理。在獲取坐標的過程中會有些延遲,還會問你要訪問權限。我們來看下面的例子:

復制代碼 代碼如下:www.CuoXIn.com

<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
<style>
table{border-collapse: collapse;}
th, td{padding: 4px;}
th{text-align: right;}
</style>
</head>
<body>
<table border="1">
<tr>
<th>Longitude:</th>
<td id="longitude">-</td>
<th>Latitude:</th>
<td id="latitude">-</td>
</tr>
<tr>
<th>Altitude:</th>
<td id="altitude">-</td>
<th>Accuracy:</th>
<td id="accuracy">-</td>
</tr>
<tr>
<th>Altitude Accuracy:</th>
<td id="altitudeAccuracy">-</td>
<th>Heading:</th>
<td id="heading">-</td>
</tr>
<tr>
<th>Speed:</th>
<td id="speed">-</td>
<th>Time Stamp:</th>
<td id="timestamp">-</td>
</tr>
</table>
<script>
navigator.geolocation.getCurrentPosition(displayPosition);
function displayPosition(pos) {
var properties = ['longitude', 'latitude', 'altitude', 'accuracy', 'altitudeAccuracy', 'heading', 'speed'];
for (var i = 0, len = properties.length; i < len; i++) {
var value = pos.coords[properties[i]];
document.getElementById(properties[i]).innerHTML = value;
}
document.getElementById('timestamp').innerHTML = pos.timestamp;
}
</script>
</body>
</html>

返回的position對象包含兩個屬性,coords:返回坐標信息;timestamp:獲取坐標信息的時間。其中coords又包括下面屬性:latitude:緯度;longitude:經度;altitude:高度;accuracy:精確度(米);altitudeAccuracy:高度精確度(米);heading:行進方向;speed:行進速度(米/秒)。
并不是所有的信息都會返回,這取決于你承載瀏覽器的設備。像有GPS、加速器、羅盤的移動設備會返回大部分信息,家用電腦就不行了。家用電腦獲取的位置信息,取決于所處的網絡環境或者是wifi。下面我們看上例的運行結果。


點擊允許,獲取坐標信息。

2.處理異常
現在我們介紹getCurrentPosition的異常處理,他是通過使用errorCallback回調函數實現的。函數返回的參數error包含兩個屬性,code:錯誤類型的代碼;message:錯誤信息。code包含三個值:1:用戶沒有授權使用geolocation;2:無法獲取坐標信息;3:獲取信息超時。
下面我們看個例子:

復制代碼 代碼如下:www.CuoXIn.com

<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
<style>
table{border-collapse: collapse;}
th, td{padding: 4px;}
th{text-align: right;}
</style>
</head>
<body>
<table border="1">
<tr>
<th>Longitude:</th>
<td id="longitude">-</td>
<th>Latitude:</th>
<td id="latitude">-</td>
</tr>
<tr>
<th>Altitude:</th>
<td id="altitude">-</td>
<th>Accuracy:</th>
<td id="accuracy">-</td>
</tr>
<tr>
<th>Altitude Accuracy:</th>
<td id="altitudeAccuracy">-</td>
<th>Heading:</th>
<td id="heading">-</td>
</tr>
<tr>
<th>Speed:</th>
<td id="speed">-</td>
<th>Time Stamp:</th>
<td id="timestamp">-</td>
</tr>
<tr>
<th>Error Code:</th>
<td id="errcode">-</td>
<th>Error Message:</th>
<td id="errmessage">-</td>
</tr>
</table>
<script>
navigator.geolocation.getCurrentPosition(displayPosition, handleError);
function displayPosition(pos) {
var properties = ["longitude", "latitude", "altitude", "accuracy", "altitudeAccuracy", "heading", "speed"];
for (var i = 0; i < properties.length; i++) {
var value = pos.coords[properties[i]];
document.getElementById(properties[i]).innerHTML = value;
}
document.getElementById("timestamp").innerHTML = pos.timestamp;
}
function handleError(err) {
document.getElementById("errcode").innerHTML = err.code;
document.getElementById("errmessage").innerHTML = err.message;
}
</script>
</body>
</html>

拒絕授權,運行結果:

3.使用geolocation可選參數項
getCurrentPosition(callback,errorCallback,options)中的options有如下參數可以使用,enableHighAccuracy:使用最好的效果;timeout:超時時間(毫秒);maximumAge:指定緩存時間(毫秒)。我們來下下面的例子:

復制代碼 代碼如下:www.CuoXIn.com

<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
<style>
table{border-collapse: collapse;}
th, td{padding: 4px;}
th{text-align: right;}
</style>
</head>
<body>
<table border="1">
<tr>
<th>Longitude:</th>
<td id="longitude">-</td>
<th>Latitude:</th>
<td id="latitude">-</td>
</tr>
<tr>
<th>Altitude:</th>
<td id="altitude">-</td>
<th>Accuracy:</th>
<td id="accuracy">-</td>
</tr>
<tr>
<th>Altitude Accuracy:</th>
<td id="altitudeAccuracy">-</td>
<th>Heading:</th>
<td id="heading">-</td>
</tr>
<tr>
<th>Speed:</th>
<td id="speed">-</td>
<th>Time Stamp:</th>
<td id="timestamp">-</td>
</tr>
<tr>
<th>Error Code:</th>
<td id="errcode">-</td>
<th>Error Message:</th>
<td id="errmessage">-</td>
</tr>
</table>
<script>
var options = {
enableHighAccuracy: false,
timeout: 2000,
maximumAge: 30000
};
navigator.geolocation.getCurrentPosition(displayPosition, handleError, options);
function displayPosition(pos) {
var properties = ["longitude", "latitude", "altitude", "accuracy", "altitudeAccuracy", "heading", "speed"];
for (var i = 0; i < properties.length; i++) {
var value = pos.coords[properties[i]];
document.getElementById(properties[i]).innerHTML = value;
}
document.getElementById("timestamp").innerHTML = pos.timestamp;
}
function handleError(err) {
document.getElementById("errcode").innerHTML = err.code;
document.getElementById("errmessage").innerHTML = err.message;
}
</script>
</body>
</html>

4.監視位置變化
下面我們介紹使用watchPosition方法實現位置變化的監視,他的使用方法和getCurrentPosition一樣。我們來看例子:

復制代碼 代碼如下:www.CuoXIn.com

<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
<style>
table{border-collapse: collapse;}
th, td{padding: 4px;}
th{text-align: right;}
</style>
</head>
<body>
<table border="1">
<tr>
<th>Longitude:</th>
<td id="longitude">-</td>
<th>Latitude:</th>
<td id="latitude">-</td>
</tr>
<tr>
<th>Altitude:</th>
<td id="altitude">-</td>
<th>Accuracy:</th>
<td id="accuracy">-</td>
</tr>
<tr>
<th>Altitude Accuracy:</th>
<td id="altitudeAccuracy">-</td>
<th>Heading:</th>
<td id="heading">-</td>
</tr>
<tr>
<th>Speed:</th>
<td id="speed">-</td>
<th>Time Stamp:</th>
<td id="timestamp">-</td>
</tr>
<tr>
<th>Error Code:</th>
<td id="errcode">-</td>
<th>Error Message:</th>
<td id="errmessage">-</td>
</tr>
</table>
<button id="pressme">Cancel Watch</button>
<script>
var options = {
enableHighAccuracy: false,
timeout: 2000,
maximumAge: 30000
};
var watchID = navigator.geolocation.watchPosition(displayPosition, handleError, options);
document.getElementById("pressme").onclick = function (e) {
navigator.geolocation.clearWatch(watchID);
};
function displayPosition(pos) {
var properties = ["longitude", "latitude", "altitude", "accuracy", "altitudeAccuracy", "heading", "speed"];
for (var i = 0; i < properties.length; i++) {
var value = pos.coords[properties[i]];
document.getElementById(properties[i]).innerHTML = value;
}
document.getElementById("timestamp").innerHTML = pos.timestamp;
}
function handleError(err) {
document.getElementById("errcode").innerHTML = err.code;
document.getElementById("errmessage").innerHTML = err.message;
}
</script>
</body>
</html>

當點擊Cancel Watch按鈕時,停止監視。
demo下載地址:Html5Guide.Geolocation.zip

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产97色在线|日韩| 亚洲欧洲成视频免费观看| 国产精品久久91| 国产亚洲精品va在线观看| 日韩电影第一页| 亚洲国产精久久久久久| 黑人与娇小精品av专区| 欧美日本在线视频中文字字幕| 久久久成人av| 亚洲最大的av网站| 深夜福利日韩在线看| 国产91网红主播在线观看| 日韩av电影国产| 日日摸夜夜添一区| 国产亚洲精品久久久久久牛牛| 92裸体在线视频网站| 疯狂欧美牲乱大交777| 青青久久aⅴ北条麻妃| 国产精品爽黄69| 欧美激情2020午夜免费观看| 18性欧美xxxⅹ性满足| 亚洲色图美腿丝袜| 97欧美精品一区二区三区| 大荫蒂欧美视频另类xxxx| 亚洲黄页视频免费观看| 久久成人国产精品| 欧美激情网站在线观看| 黑人巨大精品欧美一区二区免费| 欧美影院在线播放| 九九热在线精品视频| 最近中文字幕2019免费| 91sao在线观看国产| 最近中文字幕日韩精品| 精品国产乱码久久久久久婷婷| 成人网欧美在线视频| 日韩最新av在线| 亚洲欧美中文日韩v在线观看| 欧美韩国理论所午夜片917电影| 中文字幕一区二区精品| 欧美性少妇18aaaa视频| 国产一区二区香蕉| 亚洲欧美另类中文字幕| 亚洲成年人在线| 91精品视频专区| 国产成人综合一区二区三区| 国产午夜精品视频免费不卡69堂| 久久久久女教师免费一区| 国产mv免费观看入口亚洲| 欧美视频二区36p| 国产精品免费福利| 精品久久久久久中文字幕一区奶水| 九九精品视频在线观看| 综合网日日天干夜夜久久| 久久69精品久久久久久国产越南| 一本大道香蕉久在线播放29| 久久精品国产一区二区电影| 久热99视频在线观看| 欧美大片第1页| 成人网在线观看| 亚洲国语精品自产拍在线观看| 国产成人综合精品在线| 在线视频欧美日韩| 国产精品自在线| 欧美综合在线观看| 成人网中文字幕| 国产精品最新在线观看| 亚洲人成网在线播放| 久久全球大尺度高清视频| 国模精品系列视频| 欧美极品在线视频| 日韩欧美亚洲范冰冰与中字| 欧美激情免费视频| 久久成人在线视频| 欧美精品做受xxx性少妇| 欧美精品久久久久久久| 亚洲视频一区二区三区| 亚洲综合在线播放| 日韩欧美亚洲国产一区| 色偷偷噜噜噜亚洲男人| 992tv在线成人免费观看| 日韩精品欧美国产精品忘忧草| 亚洲另类图片色| 久久精品久久久久| 国产精品人成电影| 日本国产精品视频| 日韩亚洲综合在线| 精品呦交小u女在线| 亚洲精品免费av| 国产免费久久av| 久久精品99国产精品酒店日本| 91高清免费在线观看| 亚洲精品一区二三区不卡| 国产精品高潮呻吟久久av无限| 美女撒尿一区二区三区| 亚洲欧洲在线免费| 亚洲欧洲第一视频| 精品成人乱色一区二区| 久久激情视频免费观看| 日韩中文字幕在线视频播放| 亚洲精品成人免费| 色无极影院亚洲| 亚洲国产欧美在线成人app| 日韩视频在线观看免费| 亚洲精品一区二三区不卡| 欧美三级xxx| 日韩欧美在线视频免费观看| 国产美女精品免费电影| 国产91精品网站| 亚洲精品久久久久久下一站| 欧美野外wwwxxx| 尤物九九久久国产精品的分类| 国产日韩欧美日韩| 精品久久久精品| 久热精品视频在线观看一区| 欧美成人精品h版在线观看| 国产亚洲精品高潮| 欧洲日本亚洲国产区| 久久成人精品视频| 欧美成人精品不卡视频在线观看| 中文国产成人精品| 日韩国产欧美精品一区二区三区| 日本人成精品视频在线| 欧美在线观看日本一区| 亚洲成人激情图| 国产精品视频久| 日韩成人av在线| 中文日韩电影网站| 久久国产一区二区三区| 精品久久久久久国产| 粉嫩老牛aⅴ一区二区三区| 狠狠躁夜夜躁人人爽天天天天97| 亚洲视频国产视频| 日韩视频免费在线| 亚洲xxx自由成熟| 日韩av中文在线| 久久伊人精品一区二区三区| 国产精品自产拍在线观| 亚洲一区二区三区毛片| 亚洲精品乱码久久久久久按摩观| 国产在线日韩在线| 欧美色道久久88综合亚洲精品| 国产精品美女久久久久久免费| 成人日韩在线电影| 91精品一区二区| 精品久久久久久久久久久久久久| 亚洲奶大毛多的老太婆| 伊人伊成久久人综合网站| 中文字幕av一区| 欧美激情一二三| 亚洲视屏在线播放| 川上优av一区二区线观看| 精品国偷自产在线| 精品亚洲一区二区三区四区五区| 国产精品十八以下禁看| 在线观看精品国产视频| 国产精自产拍久久久久久蜜| 8x拔播拔播x8国产精品| 国产视频在线观看一区二区| 亚洲欧美日韩在线高清直播| 成人久久精品视频| 国模精品系列视频| 亚洲系列中文字幕| 国产成人亚洲综合91| 国产亚洲欧美另类中文|