


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
【移動應用開發(fā)技術】地理定位(一)
Geolocation可以實現(xiàn)對訪客地理定位,當然,這種定位并不是說判斷用戶在那個國家,或是哪個國家的哪個城市,而是確定用戶在城市的那個街道上,甚至是用戶正在拿著手機在哪里上網(wǎng),給出這個地點的坐標位置。下面列出了支持地理定位的瀏覽器問題最嚴重仍然是IE“老大哥”,比如IE7、IE8,要想在瀏覽器上實現(xiàn)地理定位功能,可以借助GoogleGears,GoogleGears只是對老版本瀏覽器的一個補救措施,Google現(xiàn)放棄對它的維護。補救的方法是:像安裝其它瀏覽器插件一樣,讓訪客在自己的瀏覽器上安裝GoogleGears。如果訪客計算機中沒有安裝GoogleGears,還可以使用ChromeFram,或是讓訪客自己輸入當前位置。地理定位的基本原理
為了得到用戶的位置信息,瀏覽器會爭取位置提供商(locationprovider)的幫助。比如Firefox瀏覽器使用的是GoogleLocationServices。當然,即使瀏覽器支持地理定位功能,如果你不允許,也不會把你的位置透漏給瀏覽器。
對于通過網(wǎng)線(不是無線)上網(wǎng)的桌面計算機來說,辦法很簡單,就是定位不太準確。用戶一上網(wǎng),他的信息就會通過雙絞線在計算機或本地網(wǎng)上傳輸。這個設備有唯一的IP地址(注意地理定位不使用局域網(wǎng)內的私有IP地址),靠這個IP就能在Internet上找到他。與IP地址對應,還有一個現(xiàn)實中的郵政編碼。
位置提供商會把這兩個信息綜合起來。首先,找到你連接的IP地址,然后,確定使用該IP地址的路由器的位置。因為這個信息是間接的,所以使用桌面計算機的地理定位并不準確,但畢竟可以確定你所在的街道的位置。
如果使用筆記本或是移動設備無線上網(wǎng),位置提供商會尋找你附近的無線接入點。理想情況下,位置提供商會查詢一個大型數(shù)據(jù)庫,以確定你周圍幾個接入點的確切位置,然后再使用三角測量法算出你的位置。
如果是使用手機上網(wǎng),位置提供商還會采用類似的三角測量法,但是使用的信號發(fā)射塔的位置。經(jīng)過迅速而相對準確的計算,最終得到的位置誤差大約在1000米左右。如果在高樓林立的市中心,由于信號發(fā)射塔相對較多,地理定位的結果也會更準確。
還有很多的移動設備都配有專用的GPS組件,GPS使用的是衛(wèi)星定位,誤差只有幾米。但GPS速度慢,耗電多。而且GPS在高樓林立的地區(qū)不好使,因為高大的建筑會屏蔽信號。
另外還有其它的技術可以用于地理定位。位置提供商會想更多的辦法獲得位置信息,比如RFID芯片、藍牙設備以及GoogleMaps設置的cookie等。
注意,無論你通過什么方式上網(wǎng)—就算是臺式機,地理定位都可以大概找到你。而如果使用能接受電話信號或是配有GPS芯片的設備,地理定位的坐標的準確性更是驚人。查找訪客的坐標地理定位的功能實際上是非常簡單的,主要就是navigator.geolocation對象的三個方法:getCurrentPosition();watchPosition();clearWatch();getCurrentPosition()方法取得訪客的位置。當然,查找位置不會立即返回結果,瀏覽器也不想鎖定頁面等待位置數(shù)據(jù)。所以getCurrentPosition()方法是異步,它會立即執(zhí)行,但不會阻塞其它的代碼。完成地理定位后,它會觸發(fā)另一段代碼來處理返回的結果。
測試地理定位的時候,需要使用支持地理定位的瀏覽器(我使用的Firefox),并且允許網(wǎng)頁訪問你的數(shù)據(jù)。在學會使用錯誤處理和地理定位設置的知識。錯誤處理如果訪客不愿意共享他們的位置數(shù)據(jù),那地理定位就不會返回位置信息。在這樣的情況下,根本不會調用完成函數(shù),而頁面也沒有辦法告訴你瀏覽器是在繼續(xù)挖掘數(shù)據(jù),還是遇到了錯誤。為解決這個問題,可以在調用getCurrentPosition()時傳入兩個參數(shù),第一個是函數(shù)在頁面成功取得數(shù)據(jù)時調用,第二個函數(shù)在地理定位因錯誤而終止時調用。以下是一個同時傳入完成函數(shù)和錯誤函數(shù)的例子:window.onload=function(){
results=document.getElementById("results");
varmyOptions={
zoom:13,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
map=newgoogle.maps.Map(document.getElementById("mapSurface"),myOptions);
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(
geolocationSuccess,geolocationFailure
);
results.innerHTML="定位已開始.";
}else{
results.innerHTML="該瀏覽器不支持地理定位";
}
};
functiongeolocationSuccess(position){
results.innerHTML="你的位置("+position.coords.latitude+","+position.coords.longitude+")";
}
functiongeolocationFailure(positionError){
results.innerHTML=
"地理定位失敗";
}
調用錯誤函數(shù)時,瀏覽器會給錯誤函數(shù)傳入一個錯誤對象,這個對象有兩個屬性:code和message。code屬性是一個數(shù)值,表示問題類型;message中包含著對問題的簡短描述。一般來說,message屬性多用于測試,而code屬性用于確定如何進行下一步的處理。下面是修改后的錯誤函數(shù),檢測了code屬性所有可能的值:functiongeolocationFailure(positionError){
if(positionError.code==1){
results.innerHTML=
"你已拒絕位置信息共享";
}
elseif(positionError.code==2){
results.innerHTML=
"網(wǎng)絡連接失敗或位置服務不可用。";
}
el
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年寫程序代碼的試題及答案
- 云手工創(chuàng)業(yè)計劃書
- 6-甲基-2-庚酮對兩種芽孢桿菌侵染線蟲的差異研究
- 重癥顱內靜脈竇血栓形成的臨床特征、預后及基于腦脊液蛋白質組學的生物標志物研究
- 幼兒園獲獎公開課:中班數(shù)學活動《認識8》課件
- 七年級數(shù)學下冊第六章頻率初步3等可能事件的概率第1課時簡單概率的計算練習1新版北師大版
- 買樹買賣合同范例
- 腦梗死介入的護理
- 中國 并購合同范例
- 2025年低聚木糖項目合作計劃書
- 2025年保密知識試題庫附參考答案(精練)
- 全國普通高等學校2025屆高三第二次調研數(shù)學試卷含解析
- 南昌起義模板
- “互聯(lián)網(wǎng)+”大學生創(chuàng)新創(chuàng)業(yè)大賽計劃書一等獎
- 2024年10月高等教育自學考試13015計算機系統(tǒng)原理試題及答案
- GB/T 3324-2024木家具通用技術條件
- 2024秋期國家開放大學本科《古代小說戲曲專題》一平臺在線形考(形考任務4)試題及答案
- 血吸蟲病知識宣傳講座
- 詩經(jīng)的課件教學課件
- 人工智能講座模板
- 北師大版高中歷史必修三第17課-14-16世紀西方人文主義的復興教學課件共30張
評論
0/150
提交評論