此文為開發視界翻譯轉載者請注明出處(開發視界 www.sf.org.cn)否則追究法律責任
1 關於
本文檔是對Java平台的定位API進行介紹,這是一個可選包,可以應用於大多數JavaME平台。
除此之外,17頁的例子:Example: Tourist Route MIDlet描述和說明了MIDP: Location API Example得構架。Tourist Route參考http://www.forum.nokia.com/info/sw.nokia.com/id/
f7e8ad78-7898-4053-ab83
注意:實例程序在SerIEs 40 環境下不能正常執行。
目標讀者
本文檔適合於MIDP開發人員,同樣也適用於用Java EE和Java SE在S60平台上開發移動程序和服務的開發人員。本文的讀者需要對MIDP2.0比較熟悉。
應用范圍
本文需要對開發和Java編程非常熟悉,最好熟悉企業級應用程序開發。但是並不需要了解移動環境的應用開發。
本文重點介紹定位API並不介紹Java開發技術。關於Java技術參考http://Java.sun.com/關於Java移動開發技術參考http://developer.sun.com/techtopics/mobility/更多關於MIDP工具和文檔,請訪問Nokia Forum和Mobile Java部分http://www.forum.nokia.com/main/resources/technologIEs/Java/。
2 定位API綜述
Java™ 2 Platform, Micro Edition (J2ME™) (JSR-179參考 http://www.jcp.org/aboutJava/
communityprocess/final/JSr179/)的定位API在S60和SerIEs 40第三版中都提到,他是一個可以在大多數J2ME中使用的可選包。API需要的最低平台為Connected LimitedDevice Configuration (CLDC) 1.1,因為API需要數學浮點運算的支持。
S60和SerIEs 40同樣支持MM API,詳情請參考Location API for J2ME™
定位API的目的就是開發具有定位功能的設備的應用程序。根據設備的自然情況,API提供利用設備的方法。另外,定位API是很多易用的類和接口的壓縮包,其在開發移動應用程序的時候具有以下三個特點:
l 獲取設備的位置信息
l 創建、編輯、存儲、銷毀陸標
l 獲取設備的定位
定位API首先需要連接一個定位方法,利用定位方法產生定位對象,每種定位方法都不一樣。比如,各種方法所需要的時間都不一樣,每種方法的精確度也不一樣。最常用的方法有基於設備(比如GPS,這種方法基於衛星全球定位系統)、基於網絡(比如蜂窩,這種方法中網絡決定了位置),還有混合方法(比如A-GPS方法,這種方法利用網絡信息來加速定位)。
2.1 主要使用范圍
定位服務是利用用戶的物理位置提供額外服務的應用程序。利用定位信息可以實現很多目的:
l 地圖,導航,以及結合指導功能的方位的應用
l 跟蹤和管理應用
l 交互式游戲和服務,比如體育新聞和報道
l 根據所在位置尋找附近目標位置
l 天氣預報
2.2 地理坐標系統
開始學習JSR-179前,需要對地理坐標系統的基礎知識進行了解。API使用的坐標是從全球測量系統(WGS84)(參考www.wgs84.com)獲取的。目前也使用全球定位系統(GPS)作為參考。
API中的坐標有緯度、經度和海拔組成。(這裡,海拔就是搞出海平面的高度。)下面的圖表中,地平線測量緯度。這些線代表了南北兩極間的位置。北極點是北緯90度(+90),南極點是南緯90度(-90)。最大的一圈是赤道,定義為0度。赤道以上的緯度從0度到9度,赤道一下的緯度從-90度到0度。
盡管如此,北極點的定義並非清楚。API可以使用地磁中的北極點,也可以使用地理中的北極點。事實上,在任何API應用程序中都必須檢測如何定位北極。
地磁中的北極點就是磁場的北極點,北極點並非精致不動的,而是每年都有數公裡的移動,地球兩極並非對稱,因為南北極點的移動式獨立的。北極點的定位是根據緯度制定的。南北兩極到赤道的距離是相等的。
下面圖表中連接南極點和北極點的是經線,他們的長度是相同的。經度實際上並沒有明確的起始位置,因此我們必須確定一個參考起點。最原始的經線是起始於英國倫敦的一個觀察站,子午線的值為0度。WGS84系統中定義的經度開始的位置於傳統經線起始位置向東
圖表2:經度和緯度,赤道和0度經線是用的是粗體。
從下面的圖中可以看出,越靠近兩極,緯線變得越來越小,在赤道,1度經線的緯線長約
圖3:0度和60度經度的緯線的長度是不同的。
2.3 開發環境
開發和測試定位API應用程序都可以在一個模擬環境中之執行。比如,S60第三版,FP1 SDK可以在定位API中用來模擬從一個位置轉移到另一個位置的過程。在模擬環境中測試需要位置數據。有很多方法都可以獲得這些數據,其中一種方法是使用提供的Rout工具,比如SerIEs 60第三版,Feature Pack 1 he MIDP(從prefs.exe中獲得)。利用這些工具可以記錄移動位置的數據,這些數據以NMEA 0183的形式存儲。NMEA0183是被廣泛應用於GPA數據轉移的標准格式。
如果要修改一個區域的坐標,輸入新的坐標(即可以使用“N”,也可以使用“S”),選擇“Load scale”。新的坐標就會顯示在正在描繪的圖象中。輸入新的坐標後,以前的坐標都將刪除,因此這樣很容易產生錯誤。當整個過程結束的時候可以選擇“Save”保存數據。選擇“Apply”可以允許SDK使用新建的坐標。下面的表格說明了一個Route工具的使用。
圖表4:定位工具