新聞發(fā)布
管理系統(tǒng)定位是一個(gè)HTML5提供的令人興奮的特點(diǎn)。
使用一些相對(duì)簡(jiǎn)單的JavaScript代碼,你可以創(chuàng)建Web應(yīng)用程序來(lái)確定用戶的位置,各方面包括經(jīng)度、緯度、海拔高度以及更多。一些Web應(yīng)用程序,甚至可以通過(guò)長(zhǎng)期監(jiān)測(cè)用戶的位置提供導(dǎo)航功能,結(jié)合地圖系統(tǒng)如谷歌地圖API。
如同所有的HTML5的功能,你還不能依靠瀏覽器支持。在瀏覽器支持的存在,它的變化在深度和一致性?;旧?,你需要為他們的瀏覽器不完全支持HTML5的用戶選擇功能。
在本篇文章中,我們將通過(guò)建立用戶定位的基本知識(shí)。在實(shí)踐中,瀏覽器可以從多個(gè)來(lái)源獲得的數(shù)據(jù)。例如,它可能是GPS數(shù)據(jù)在移動(dòng)設(shè)備或者簡(jiǎn)單的基于IP的數(shù)據(jù)的任何設(shè)備連接到因特網(wǎng)的地址。然而,你的代碼不需要關(guān)心這些細(xì)節(jié),你可以簡(jiǎn)單地檢索和使用位置數(shù)據(jù)為自己的項(xiàng)目的目的。
HTML5 WEB頁(yè)
使用下面的代碼來(lái)創(chuàng)建你的HTML5頁(yè)面概述:
我們將地理定位功能的JavaScript在網(wǎng)頁(yè)的頭部腳本部分和一些基本的HTML元素的測(cè)試和演示功能的主體部分。
HTML演示元素
添加以下標(biāo)記HTML主體部分:
你可以打電話給你的地理定位功能,在任何時(shí)間,如當(dāng)頁(yè)面加載時(shí),或與jQuery文檔準(zhǔn)備函數(shù)相結(jié)合。為了演示,我們將使用按鈕來(lái)調(diào)用函數(shù),將位置數(shù)據(jù)進(jìn)DIV元素,其中有一些簡(jiǎn)單的占位符文本在它初。
得到位置的函數(shù)
我們將使用來(lái)確定用戶位置的主要方法是getposition方法添加以下函數(shù)在腳本部分在您的網(wǎng)頁(yè)的頭:
功能getuserlocation(){/ /檢查定位對(duì)象的支持,如果得到的位置如果(navigator.geolocation)navigator.geolocation.getcurrentposition(displaylocation,displayerror);其他的(document.getelementbyid“位置”).innerHTML =“對(duì)不起,您的瀏覽器不支持地理位置!”;}
這個(gè)功能被稱為用戶單擊按鈕時(shí)。代碼首先檢查導(dǎo)航定位的對(duì)象是存在的,這意味著瀏覽器支持。如果定位對(duì)象的支持,該代碼使用它來(lái)調(diào)用getCurrentPosition方法
這個(gè)getCurrentPosition方法需要兩個(gè)參數(shù)指示回調(diào)函數(shù)。第一個(gè)是一個(gè)函數(shù)調(diào)用時(shí)的地理定位數(shù)據(jù)的接收,后者是一個(gè)函數(shù),如果返回錯(cuò)誤而不是打電話。
如果定位對(duì)象不支持的功能,簡(jiǎn)單的寫一個(gè)錯(cuò)誤消息的網(wǎng)頁(yè)DIV元素
當(dāng)一個(gè)網(wǎng)站第一次試圖獲取用戶的位置數(shù)據(jù),用戶的瀏覽器會(huì)提示他們確定他們是否同意分享他們的數(shù)據(jù)。該功能只會(huì)如果他們同意進(jìn)行。
顯示位置功能
接下來(lái)我們需要實(shí)現(xiàn)的功能包括對(duì)第一個(gè)參數(shù)getCurrentPosition方法調(diào)用。此功能將通過(guò)用戶的位置數(shù)據(jù)時(shí),瀏覽器接收到它。在你添加以下getuserlocation功能:
功能displaylocation(位置){/ /建立文本字符串包括通過(guò)參數(shù)坐標(biāo)數(shù)據(jù)VaRdisplayText =“用戶緯度”position.coords.latitude“度”position.coords.longitude;//顯示字符串的演示(document.getelementbyid“位置”).innerHTML = displayText;}
該代碼首先創(chuàng)建一個(gè)變量,構(gòu)建了一個(gè)字符串的位置的位置參數(shù)包含經(jīng)度和緯度數(shù)據(jù)。然后函數(shù)寫這頁(yè)以及一些信息文本。在你自己的網(wǎng)站,你可以使用數(shù)據(jù)的一些更有用的目的,而不是寫它的頁(yè)面–這只是示范。
誤差函數(shù)
有很多的事情可以去錯(cuò)了,使用地理定位功能時(shí)。用戶可能不同意分享他們的位置數(shù)據(jù),瀏覽器可能無(wú)法檢索數(shù)據(jù),可能會(huì)有一個(gè)超時(shí)錯(cuò)誤其他一些未指明的問(wèn)題。因此我們需要添加一個(gè)函數(shù)來(lái)處理錯(cuò)誤,使用我們指定為第二參數(shù)的名稱getCurrentPosition方法在你添加以下函數(shù)displaylocation功能:
功能displayerror(錯(cuò)誤){/ /得到一個(gè)參考的HTML元素寫作的結(jié)果VaRlocationElement = document.getElementById(“位置”);/ /找出錯(cuò)誤我們有相應(yīng)的輸出信息開(kāi)關(guān)(錯(cuò)誤代碼){案例error.PERMISSION_DENIED: locationElement.innerHTML =“拒絕訪問(wèn)”;打破;案例error.POSITION_UNAVAILABLE: locationElement.innerHTML =“位置數(shù)據(jù)不可用”;打破;案例error.TIMEOUT: locationElement.innerHTML =“位置請(qǐng)求超時(shí)”;打破;案例error.UNKNOWN_ERROR: locationElement.innerHTML =“出現(xiàn)未知錯(cuò)誤”;打破;默認(rèn): locationElement.innerHTML =“誰(shuí)知道發(fā)生了什么事…”;打破;} }
這個(gè)函數(shù)接收到的錯(cuò)誤數(shù)據(jù)的地理位置要求如下。該函數(shù)首先引用頁(yè)DIV元寫適當(dāng)?shù)腻e(cuò)誤消息到。該消息是針對(duì)特定性質(zhì)的錯(cuò)誤使用switch語(yǔ)句。
考慮和選擇
上述功能覆蓋獲取用戶位置數(shù)據(jù)的基礎(chǔ),但有巨大的潛力在這里。你可以使用檢索用戶的位置數(shù)據(jù)來(lái)顯示用戶的位置在地圖上通過(guò)谷歌地圖API,主要通過(guò)建立數(shù)據(jù)變量到一個(gè)自定義的URL加載到一個(gè)HTML頁(yè)面中的圖像元素。
你也可以使用watchpostion跟蹤用戶的位置和速度作為他們移動(dòng)的方法,雖然這是有限精度的數(shù)據(jù)不是來(lái)自GPS的移動(dòng)設(shè)備上,例如,如果它是來(lái)自該地區(qū)的無(wú)線網(wǎng)絡(luò)數(shù)據(jù)。
這些功能保證Web開(kāi)發(fā)的一個(gè)有趣的未來(lái)。然而,他們的成功不僅取決于瀏覽器的支持,而且用戶的喜好和硬件特點(diǎn)。我們將不得不等待更長(zhǎng)的時(shí)間才能真正得到好的HTML5,但它肯定是值得期待的。