摘要內容

TGOS MAP API (Android)開發人員指南

TGOS MAP API開啟視野

本指南是給以Android環境設計APP程式的開發人員,如何將TGOS MAP API (Android)功能嵌入APP程式的使用教程。在閱讀本指南並開始利用TGOS MAP API多元而豐富的功能,來充實您的網頁之前,您需要有Android程式設計方法的基礎,並建立開發環境。本指南將使用eclipse開發工具做為範例,也建議您使用eclipse開發您的APP程式。

範例程式使用注意事項

開發過程中,您可能會參考本網站範例說明,並下載網站提供的範例程式。在使用這些範例程式時,請您特別注意以下項目說明,將會讓您使用上更加便利,且不致出現錯誤。

1. 個別功能範例中,僅提供該功能相關之範例專案檔,如有需要檢視範例專案裡的功能,您必須先下載TGOS MAP API (Android) SDK後並載入,且設置您申請取得的AppIDAPIKey,才能正確的操作範例檔案。快速範例則已經包含SDK,僅需於載入後設置AppIDAPIKey即可正常使用。

2. 網站提供的所有範例,皆使用UTF-8編碼。您開啟範例後若發現中文字產生亂碼的現象,請由Window工具列開啟Preferences,選擇General項目中的Workspace子項目,並找到Text file encoding方塊,點選Other後在下拉式選單選擇UTF-8即可。您所開發的APP程式則不在此限,您也可在此為您的APP程式選取想用的編碼方式。

取得API金鑰

您必須先取得API金鑰,才能使用TGOS MAP APIAPI金鑰可以在您使用上或流量有問題時,讓TGOS團隊及時瞭解情形,協助您處理。申請使用TGOS MAP API為免費的,若您還未取得API金鑰,可以到申請網頁進行申請。

建立新專案

eclipse開發工具中建立一個新Android Application Project來初始化您的APP程式。TGOS MAP API (Android)支援Android 2.3以上之環境,在建立專案時Minimum Required SDK建議設置為API 10: Android 2.3.3

載入TGOS MAP API (Android)開發工具

要在專案中加入地圖功能,必須先載入TGOS MAP API (Android) SDK,請先下載SDK到您的電腦中。開啟專案的properties並選擇Java Build Path項目,由Libraries頁籤中的「Add External JARs」按鈕,加入已存在您電腦中的SDK(為一jar)。接著到Order and Export頁籤中,將加入的SDK勾選,即可載入SDK,並接著後續的開發工作。

在載入TGOS MAP API (Android) SDK時,必需設置API金鑰參數。您需要在新專案<manifest>頁籤中,新增兩個<metadata>參數到<application>標籤內,範例如下:

<application>

(中略,程式原設定無需更改)

<meta-data

android:name="com.tgos.sdk.AppID"

android:value="yourID"/>

<meta-data

android:name="com.tgos.sdk.APIKey"

android:value="yourkey"/>

</application>

yourIDyourkey填入為您申請所取得的API金鑰,包含APPIDAPIKEY,方能順利驗證並載入必要之功能。

Manifest加入程式權限

為了確保您的APP程式正確使用TGOS MAP API (Android)的各項功能,必需允許程式使用手持裝置上部分功能的權限。程式的權限設定在AndroidManifest.xml中,請將以下程式碼貼入該檔案<manifest>頁籤內。

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>          

<!-- 允許讀取手機狀態-->      

<uses-permission android:name="android.permission.WRITE_SETTINGS" />           

<!-- 允許程式讀寫系統設定 -->

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   

<!-- 允許程式修改 SD 卡內的檔案 -->

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>      

<!-- 允許程式存取行動網路狀態 -->

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>         

<!-- 允許程式存取Wi-Fi網路狀態 -->

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>      

<!-- 允許程式存取精確位置(GPS) -->

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>      

<!-- 允許程式新增模擬位置(DDMS提供模擬GPS位址給模擬器測試用) -->

<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

<!-- 允許程式讀取額外GPS資訊 -->

<uses-permission android:name="android.permission.VIBRATE" />                  

<!-- 允許存取振動設備 -->

<uses-permission android:name="android.permission.INTERNET" />                      

<!-- 允許程式使用網路權限 -->

<uses-permission android:name="android.permission.CAMERA" />                   

<!-- 允許程式使用相機設備 -->

設定Layout(介面)

程式的每個畫面,必須透過Layout來加以呈現,因此必須先建立起Layout頁面來容納後續開發的各個程式畫面。Layout設定在res資料夾→layout資料夾中的activity_main.xml檔,請將以下程式碼貼入該檔案<RelativeLayout>頁籤內,完成Layout設定。

<RelativeLayout

android:id="@+id/AddMapView"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_alignParentLeft="true"

android:layout_alignParentTop="true" >

</RelativeLayout>

在主程式使用網路訊號傳輸

TGOS提供豐富的資訊讓使用者參考使用,在操作過程中,程式需要持續使用網路訊號傳輸所需的資訊。在需要使用TGOS相關功能頁面的.java檔中,請加入下列程式碼,以允許在主線程中使用網路。

if (android.os.Build.VERSION.SDK_INT >= 11) {

android.os.StrictMode

.setThreadPolicy(new android.os.StrictMode.ThreadPolicy.Builder()

.detectDiskReads().detectDiskWrites()

.detectNetwork().penaltyLog().build());

android.os.StrictMode

.setVmPolicy(new android.os.StrictMode.VmPolicy.Builder()

.detectLeakedSqlLiteObjects()

.detectLeakedSqlLiteObjects().penaltyLog()

.penaltyDeath().build());

}

在程式中初始化地圖

以下程式碼將初始化一個最簡單的TGOS MAP,我們將以此程式做為範例來介紹。您也可以在想加入地圖頁面的.java檔中,以此段程式碼做為基礎進行開發。

RelativeLayout  AddMapView = (RelativeLayout)findViewById(R.id.AddMapView);

//放入地圖的Layout,如果需要套疊不同的View就用RelativeLayout

try {

TGOnlineMap _MapView = new TGOnlineMap(this);//建立TGOSMap

AddMapView.addView(_MapView);//加入到畫面中

_MapView.setBackgroundColor(Color.rgb(165,191,221));//設定地圖底色

catch (TGRuntimeRemoteException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

上列程式先關聯到一個Layout頁面以容納地圖畫面,接著建立一個_MapView畫面讀取TGOSMAP,並使之加入到畫面中,最後設定地圖屬性中的底色,即可將最簡易的TGOS地圖顯示於程式中。

 

回到上方