HTML5 Geolocation(地理定位)

HTML5 Geolocation(地理定位)用于定位用戶的位置

定位用戶的位置
HTML5 Geolocation API 用于獲取用戶的地理位置
監(jiān)獄該特性可能侵犯用戶的隱私湖饱,除非用戶同意,否則用戶位置信息是不可用的

HTML5 使用地理位置
請使用getCurrentPositon()方法獲取用戶的位置
下面例子是一個(gè)簡單的地理定位實(shí)例杀捻,可返回用戶位置的經(jīng)度和緯度
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<p id="demo">點(diǎn)擊按鈕獲取您當(dāng)前坐標(biāo)(可能需要比較長的時(shí)間獲染帷):</p>
<button onclick="getLocation()">點(diǎn)我</button>
<script>
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else
{
x.innerHTML="該瀏覽器不支持獲取地理位置。";
}
}

function showPosition(position)
{
x.innerHTML="緯度: " + position.coords.latitude +
"
經(jīng)度: " + position.coords.longitude;
}
</script>
</body>
</html>
實(shí)例解析:
1.檢測是否支持地理定位
2.如果支持致讥,則運(yùn)行g(shù)etCurrentPosition() 方法仅仆,如果不支持,則向用戶顯示一段消息
3.如果getCurrentPosition() 運(yùn)行成功垢袱,則向參數(shù)showPosition中對頂?shù)暮瘮?shù)返回一個(gè)coordinates對象
4.showPosition()函數(shù)獲得并顯示經(jīng)度和緯度

處理錯(cuò)誤和拒絕時(shí)的定位
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<p id="demo">點(diǎn)擊按鈕獲取您當(dāng)前坐標(biāo)(可能需要比較長的時(shí)間獲饶拱荨):</p>
<button onclick="getLocation()">點(diǎn)我</button>
<script>
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition,showError);
}
else
{
x.innerHTML="該瀏覽器不支持定位。";
}
}
function showPosition(position)
{
x.innerHTML="緯度: " + position.coords.latitude +
"
經(jīng)度: " + position.coords.longitude;
}
function showError(error)
{
switch(error.code)
{
case error.PERMISSION_DENIED:
x.innerHTML="用戶拒絕對獲取地理位置的請求请契。"
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML="位置信息是不可用的咳榜。"
break;
case error.TIMEOUT:
x.innerHTML="請求用戶地理位置超時(shí)。"
break;
case error.UNKNOWN_ERROR:
x.innerHTML="未知錯(cuò)誤爽锥。"
break;
}
}
</script>
</body>
</html>
錯(cuò)誤代碼:
1.Permission denied 用戶不允許地理定位
2.Position unavailable 無法獲取當(dāng)前為孩子
3.Timeout 操作超時(shí)

在地圖上顯示結(jié)果
如需在地圖中顯示結(jié)果涌韩,您需要訪問可使用經(jīng)緯度的地圖服務(wù),比如谷歌地圖或百度地圖:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<p id="demo">點(diǎn)擊按鈕獲取您當(dāng)前坐標(biāo)(可能需要比較長的時(shí)間獲嚷纫摹):</p>
<button onclick="getLocation()">點(diǎn)我</button>
<div id="mapholder"></div>
<script>
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition,showError);
}
else
{
x.innerHTML="該瀏覽器不支持獲取地理位置臣樱。";
}
}

function showPosition(position)
{
var latlon=position.coords.latitude+","+position.coords.longitude;

var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
+latlon+"&zoom=14&size=400x300&sensor=false";
document.getElementById("mapholder").innerHTML="<img src='"+img_url+"'>";

}

function showError(error)
{
switch(error.code)
{
case error.PERMISSION_DENIED:
x.innerHTML="用戶拒絕對獲取地理位置的請求。"
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML="位置信息是不可用的。"
break;
case error.TIMEOUT:
x.innerHTML="請求用戶地理位置超時(shí)雇毫。"
break;
case error.UNKNOWN_ERROR:
x.innerHTML="未知錯(cuò)誤玄捕。"
break;
}
}
</script>
</body>
</html>
在上例中,我們使用返回的經(jīng)緯度數(shù)據(jù)在谷歌地圖中顯示位置(使用靜態(tài)圖像)
谷歌地圖腳本如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<p id="demo">點(diǎn)擊按鈕獲取您當(dāng)前坐標(biāo)(可能需要比較長的時(shí)間獲扰锓拧):</p>
<button onclick="getLocation()">點(diǎn)我</button>
<div id="mapholder"></div>
<script src="https://maps.google.com/maps/api/js?sensor=false"></script>
<script>
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition,showError);
}
else
{
x.innerHTML="該瀏覽器不支持獲取地理位置枚粘。";
}
}

function showPosition(position)
{
lat=position.coords.latitude;
lon=position.coords.longitude;
latlon=new google.maps.LatLng(lat, lon)
mapholder=document.getElementById('mapholder')
mapholder.style.height='250px';
mapholder.style.width='500px';

var myOptions={
    center:latlon,zoom:14,
    mapTypeId:google.maps.MapTypeId.ROADMAP,
    mapTypeControl:false,
    navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL}
};
var map=new google.maps.Map(document.getElementById("mapholder"),myOptions);
var marker=new google.maps.Marker({position:latlon,map:map,title:"You are here!"});

}

function showError(error)
{
switch(error.code)
{
case error.PERMISSION_DENIED:
x.innerHTML="用戶拒絕對獲取地理位置的請求。"
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML="位置信息是不可用的席吴。"
break;
case error.TIMEOUT:
x.innerHTML="請求用戶地理位置超時(shí)赌结。"
break;
case error.UNKNOWN_ERROR:
x.innerHTML="未知錯(cuò)誤捞蛋。"
break;
}
}
</script>
</body>
</html>
上面的鏈接延時(shí)圖和使用腳本來顯示帶有標(biāo)記孝冒,縮放和拖拽選項(xiàng)的交互式地圖

給定位置的信息
演示如何在地圖上顯示用戶的位置,不過拟杉,地理定位對于給定位置的信息同樣很有用處
1.更新本地信息
2.顯示用戶周圍的興趣點(diǎn)
3.交互式車載導(dǎo)航系統(tǒng)(GPS)

getCurrentPosition() 方法 - 返回?cái)?shù)據(jù)
T若成功庄涡,則 getCurrentPosition() 方法返回對象。始終會返回 latitude搬设、longitude 以及 accuracy 屬性穴店。如果可用,則會返回其他下面的屬性拿穴。

屬性 描述
coords.latitude 十進(jìn)制數(shù)的緯度
coords.longitude 十進(jìn)制數(shù)的經(jīng)度
coords.accuracy 位置精度
coords.altitude 海拔泣洞,海平面以上以米計(jì)
coords.altitudeAccuracy 位置的海拔精度
coords.heading 方向,從正北開始以度計(jì)
coords.speed 速度默色,以米/每秒計(jì)
timestamp 響應(yīng)的日期/時(shí)間

Geolocation 對象 - 其他有趣的方法
watchPosition() -返回用戶的當(dāng)前位置球凰,并繼續(xù)返回用戶移動時(shí)的更新位置
clearWatch() -停止watchPosition()方法
下例展示watchPosition()方法,需要一臺精確的GPS設(shè)備來測試該例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<p id="demo">點(diǎn)擊按鈕獲取您當(dāng)前坐標(biāo)(可能需要比較長的時(shí)間獲韧仍住):</p>
<button onclick="getLocation()">點(diǎn)我</button>
<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 +
"
經(jīng)度: " + position.coords.longitude;
}
</script>
</body>
</html>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市吃度,隨后出現(xiàn)的幾起案子甩挫,更是在濱河造成了極大的恐慌,老刑警劉巖椿每,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伊者,死亡現(xiàn)場離奇詭異,居然都是意外死亡间护,警方通過查閱死者的電腦和手機(jī)亦渗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兑牡,“玉大人央碟,你說我怎么就攤上這事。” “怎么了亿虽?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵菱涤,是天一觀的道長。 經(jīng)常有香客問我洛勉,道長粘秆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任收毫,我火速辦了婚禮攻走,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘此再。我一直安慰自己昔搂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布输拇。 她就那樣靜靜地躺著摘符,像睡著了一般。 火紅的嫁衣襯著肌膚如雪策吠。 梳的紋絲不亂的頭發(fā)上逛裤,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機(jī)與錄音猴抹,去河邊找鬼带族。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蟀给,可吹牛的內(nèi)容都是我干的蝙砌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼坤溃,長吁一口氣:“原來是場噩夢啊……” “哼拍霜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起薪介,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤祠饺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后汁政,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體道偷,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年记劈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了勺鸦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,146評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡目木,死狀恐怖换途,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤军拟,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布剃执,位于F島的核電站,受9級特大地震影響懈息,放射性物質(zhì)發(fā)生泄漏肾档。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一辫继、第九天 我趴在偏房一處隱蔽的房頂上張望怒见。 院中可真熱鬧,春花似錦姑宽、人聲如沸遣耍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽配阵。三九已至,卻和暖如春示血,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背救拉。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工难审, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人亿絮。 一個(gè)月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓告喊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親派昧。 傳聞我的和親對象是個(gè)殘疾皇子黔姜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容

  • HTML5 Geolocation(地理定位) HTML5 Geolocation(地理定位)用于定位用戶的位置。...
    hx永恒之戀閱讀 885評論 0 4
  • 當(dāng)今技術(shù)定位的方式蒂萎,有位置信息來源定位秆吵,IP定位,GPS定位五慈,WIFI定位纳寂,手機(jī)定位和自定義定位。本文通過獲取經(jīng)緯...
    dovlie閱讀 6,190評論 0 8
  • 學(xué)習(xí)HTML的最佳網(wǎng)站沒有之一http://www.w3school.com.cn/html/ 關(guān)于HTML/HT...
    Amyyy_閱讀 2,075評論 0 16
  • 基本示例 html基礎(chǔ)代碼: js代碼: 地理定位中概要知識點(diǎn) 與蜂窩基站三角定位或網(wǎng)絡(luò)IP相比泻拦,GPS是獲取位置...
    lincimy閱讀 914評論 0 1
  • 什么叫做升糖指數(shù)GI氨形摺?同樣重量的一碗米飯和一碗雜糧粥争拐,到底哪個(gè)GI 值高呢腋粥?這事兒就把我鬧懵了。 我要減肥,我媽...
    海燕自主健康會客廳閱讀 732評論 0 0