国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Geolocation API的地理位置應(yīng)用構(gòu)建

2018-01-18 09:13:26侯竺君張佳

侯竺君 張佳

摘要:HTML5使得未來Web應(yīng)用的JavaScript API得到發(fā)展,Geolocation API被大眾支持。API開發(fā)者利用簡(jiǎn)單的代碼來獲取用戶的當(dāng)前位置,主要基于GPS導(dǎo)航的社交網(wǎng)絡(luò)應(yīng)用等。

關(guān)鍵詞:HTML5;Web應(yīng)用;API開發(fā)

中圖分類號(hào):TP39 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2018)09-0083-02

訪問用戶的位置信息之前,首先要得到用戶的許可。如果頁面嘗試訪問位置信息,瀏覽器會(huì)彈出一個(gè)對(duì)話框,請(qǐng)求用戶許可。用戶同意之后,瀏覽器則返回位置信息。

1 位置信息概述

1.1 位置信息來源

HTML 5 Geolocation API用來獲取用戶地理位置信息,不需要指定必須是在哪個(gè)設(shè)備上以及使用哪種底層技術(shù)來定位用戶,它只是一個(gè)用于檢索位置信息的API,通過該API檢索的數(shù)據(jù)只有一定程度的準(zhǔn)確性。它并不能保證設(shè)備返回的數(shù)據(jù)就是精確的。一般來說,設(shè)備可以使用的數(shù)據(jù)源如下所示:(1)IP地址。(2)GPS(全球定位系統(tǒng))。(3)RFID(射頻識(shí)別)。(4)WI-FI地址。(5)GSM或CDMA手機(jī)的ID(6)用戶自定義的地理位置數(shù)據(jù)

1.2 位置信息表示方式

位置信息主要由一對(duì)緯度和經(jīng)度坐標(biāo)組成,經(jīng)緯度坐標(biāo)可以用以下兩種方式表示:

十進(jìn)制格式:如39.17882。DMS角度格式,如39°20′。

2 Geolocation對(duì)象

Geolocation API在瀏覽器中實(shí)現(xiàn)使用window. navigator. Geolocation對(duì)象,用于獲得用戶的地理位置,其中navigator為瀏覽器內(nèi)置對(duì)象。由于該特性可能侵犯用戶的隱私,因此瀏覽器將在訪問位置信息前詢問用戶是否共享其位置信息,并且除非用戶同意,否則用戶位置信息不可用。

在使用地理位置API之前首先要檢測(cè)瀏覽器是否支持,檢測(cè)瀏覽器是否支持定位API,只需要檢測(cè)geolocation是否存在于navigator中即可,可以使用如下語句進(jìn)行檢查:

if(navigator.geolocation){

alert('瀏覽器支持html5 geolocation'); }

2.1 獲取當(dāng)前地理位置

使用getCurrentPosition方法獲取用戶當(dāng)前的地理位置信息,此方法包含一個(gè)必選參數(shù)和兩個(gè)可選參數(shù),用法如下所示:

void getCurrentPosition(successCallback, errorCallback,options);

successCallback必選參數(shù),成功回調(diào)函數(shù)。errorCallback可選參數(shù),失敗回調(diào)函數(shù)。

options可選參數(shù),此對(duì)象可設(shè)定信息的類型。

(1)getCurrentPosition方法的第一個(gè)參數(shù)是成功獲取位置信息后的回調(diào)函數(shù),使用方法如下所示:

navigator.geolocation.getCurrentPosition(function(position){

//獲取成功時(shí)的處理

});

獲取到信息之后,回調(diào)函數(shù)中將傳入位置對(duì)象position。該對(duì)象包含兩個(gè)屬性:一個(gè)是coords(坐標(biāo)),包含當(dāng)前位置信息;另一個(gè)是timestamp,表示獲取到位置的時(shí)間戳。在實(shí)際開發(fā)中,coords的經(jīng)度和緯度屬性是大多數(shù)Web應(yīng)用程序最常用的屬性。

(2)getCurrentPosition() 方法的第二個(gè)參數(shù)是當(dāng)用戶當(dāng)前地理位置信息獲取失敗時(shí)所執(zhí)行的回調(diào)函數(shù)。如果無法獲取位置信息,則通過該回調(diào)函數(shù)向用戶提示錯(cuò)誤信息。

(3)getCurrentPosition() 方法的第三個(gè)參數(shù)options是一個(gè)可選參數(shù),是一些可選屬性得列表,可設(shè)置的選項(xiàng)有三個(gè):enableHigh Accuracy是一個(gè)布爾值,表示是否使用高精度的位置信息。Timeout是以毫秒數(shù)表示的獲取位置信息得超時(shí)限制,maximumAge表示對(duì)地理位置信息緩存的有效時(shí)間,以毫秒表示。

2.2 監(jiān)視位置信息

watchPosition方法可用于持續(xù)獲取用戶當(dāng)前的地理位置信息,該信息是周期性自動(dòng)獲取,語法如下所示:

navigator.geolocation.watchPosition(successCallback, errorCallback,options);

該方法參數(shù)的說明和使用與getCurrentPosition方法相同。調(diào)用該函數(shù)時(shí)會(huì)返回一個(gè)watch ID,可以用于清除此次的監(jiān)視操作。

2.3 停止獲取位置信息

如果不想再更新位置信息,則可以使用clearWatch方法停止監(jiān)視當(dāng)前用戶地理位置信息,具體方法如下:

navigator.geolocation.clearWatch(watchID);

參數(shù)watchID是調(diào)用watchPosition方法監(jiān)視地理位置信息時(shí)的返回參數(shù)。

3 構(gòu)建地理位置應(yīng)用

首先通過geolocation接口獲取到用戶的地理位置信息,然后結(jié)合百度地圖的應(yīng)用,在地圖上顯示獲取到的用戶當(dāng)前的地理位置信息并進(jìn)行標(biāo)注,關(guān)鍵代碼如圖1,圖2所示:

4 結(jié)語

Geolocation API封裝了獲取位置的技術(shù)細(xì)節(jié),通過底層設(shè)備例如筆記本計(jì)算機(jī)或手機(jī),可將包含有經(jīng)度、緯度坐標(biāo)的位置信息提供給瀏覽器。借助這些位置信息就可以開發(fā)出基于位置信息的高級(jí)應(yīng)用,將虛擬世界和現(xiàn)實(shí)世界整合在一起,在當(dāng)今移動(dòng)互聯(lián)網(wǎng)時(shí)代顯得價(jià)值連城。

參考文獻(xiàn)

[1]溫苑花.基于HTML5技術(shù)在移動(dòng)互聯(lián)網(wǎng)中的應(yīng)用研究[J].中國(guó)新通信,2017,(23):29.

[2]畢曉明.簡(jiǎn)析HTML5在移動(dòng)互聯(lián)網(wǎng)開發(fā)中的應(yīng)用[J].軟件工程,2016,19(02):41-42.

[3]梁莉菁.基于Geolocation API的Html5地理位置追蹤定位的實(shí)現(xiàn)[J].萍鄉(xiāng)高等??茖W(xué)校學(xué)報(bào),2014,(06):97-101.

平武县| 英超| 安平县| 宁德市| 红桥区| 扶风县| 宁阳县| 嘉峪关市| 桂平市| 怀仁县| 台北市| 信宜市| 防城港市| 石林| 元江| 宣武区| 怀安县| 临江市| 英超| 永安市| 许昌县| 北川| 斗六市| 皮山县| 新津县| 库车县| 茂名市| 准格尔旗| 富蕴县| 柳州市| 卓资县| 河南省| 深水埗区| 平江县| 苗栗市| 崇明县| 卓尼县| 台东县| 奇台县| 康保县| 印江|