2011年3月23日 星期三

Geolocation API - 雲端API,瀏覽器可以抓到手機

http://www.ithome.com.tw/itadm/article.php?c=66519
文/王宏仁 (記者) 2011-03-22


Geolocation API是一組由制定網際網路標準的W3C組織所定義的API規範,可以讓瀏覽器取得行動裝置提供的經緯度等定位資訊


Geolocation API

Geolocation API(地理定位API)是一組由制定網際網路標準的W3C組織所定義的API規範,可以讓瀏覽器取得行動裝置提供的經緯度等定位資訊。新一代瀏覽器如IE 9、Firefox 3、Chrome都已支援。

定位服務是行動應用服務中最熱門的一種,各種結合定位功能的手機應用程式紛紛出籠。拍照可以同步記錄位置,可以直接在地圖上呈現出你旅遊過的路線。打開地 圖可以看到你所在位置附近好吃好玩的景點美食。連Facebook都推出了打卡功能,可以讓朋友知道你現在人在哪裡。這些都是使用 Geolocation(地理定位資訊)提供的熱門應用。

一般作法上, 這類定位應用多半採取原生應用(NativeApp)的形式來開發,才能使用手機或平板裝置作業系統提供的定位API來讀取位置經緯度資訊。

也就是說,要開發定位應用,開發人員必須先具備開發手機應用的能力,甚至要為了不同手機平臺,得重新學習不同的手機開發技術,例如蘋果的iOS平臺和 Google Android平臺所支援的開發語言和開發環境截然不同,開發人員必須具備兩種能力,或企業得有兩種開發人力,開發門檻相當高。
特色 熟悉Ajax就能開發定位應用
在2008年時,負責制定網際網路標準的W3C組織制定了一個Geolocation API規範,提供了一套Geolocat ionAPI的設計參考,可以讓瀏覽器取得硬體裝置提供的定位資訊。換句話說,開發人員只要熟悉一套網頁程式的開發方法,例如開發人員只要會寫HTML和 JavaScript語言,就可以寫出像手機應用程式那樣的定位服務,不用再花時間學習iPhone平臺或Android平臺的開發環境。

凡是提供Geolocation API的瀏覽器,可以取得手機或行動裝置內建硬體定位提供的資訊,包括透過衛星定位的GPS資訊,或是透過基地臺和無線AP位置定位的AGPS資訊,瀏覽 器會將取得的經緯度定位資訊傳遞給網頁應用程式。兩種定位機制相比,透過GPS取得的定位資訊精準度較高,甚至可以達到數公尺的精確度,而AGPS則會有 數十公尺到上百公尺的誤差。

即使使用者不是使用內建GPS模組的桌上型電腦來瀏覽網頁,網頁應用程式還是可以透過瀏覽器取得使用者的位置,瀏覽器會取得網路供應商利用IP網址推算的概略位置,再提供給網頁應用程式,不過,這樣的定位資訊誤差就更大。

發展 新一代瀏覽器視為內建功能
在2011年3月的HTML 5標準草案中,Geolocation API並不屬於HTML 5必須支援的標準功能之一,而是選擇性支援的項目。但是,目前新一代的瀏覽器,包括微軟IE 9、Google的Chrome、Firefox 3、蘋果的Safari 5、Opera 10.6以上版本等,都已經支援W3C提出的Geolocation API規範,可以讓瀏覽器提供地理定位資訊。Google也將Geolocation API整合到離線瀏覽技術GoogleGears中,讓其他沒有支援這個API的瀏覽器版本,例如IE 8,也能透過安裝Google Gears外
掛程式的方式,來提供地理定位的資訊。

瀏覽器除了能取得使用者的IP位址,知道他在網路世界上的位置,現在又能取得使用者在真實世界中的位置,W3C為了避免這項技術侵犯隱私權,也對這項功能 加上授權限制。應用程式在使用GeolocationAPI取得定位資訊前,必須先獲得使用者授權同意。使用者可以決定要提供多精準的定位資訊,例如只開 放城市位置的資訊,或是可以精準到數十公尺的定位。文☉王宏仁