Pages

Subscribe:

Ads 468x60px

Labels

顯示具有 Google maps 標籤的文章。 顯示所有文章
顯示具有 Google maps 標籤的文章。 顯示所有文章

2013年5月19日 星期日

Android學習_如何開始使用Google Maps Android API v2

前一陣子想要測試一些Google Map的東西,才發現他默默的在2012年12月3日推出了Google Maps Android API v2(官方資料),而原本申請key與使用的方式變的不太一樣。

要讓手機正確出現Google map需要下列步驟:
1. 建立個人的keystore。
2. 由個人的keystore查詢SHA1碼。
3. 利用SHA1碼至Google apis網站申請key。
4. 於eclipse安裝Google Play services。
5. 於要使用Google Map的專案加入google-play-services_lib的Library。
6. 於專案的AndroidManifest與layout.mal加入需要的設定。
7. 利用第一步驟的keystore匯出專案為apk檔案。
8. 以adb安裝上述apk檔案。


詳細步驟:
1. 建立個人的keystore。
A. 開啟DOS命令視窗,找到java的bin資料夾(C:\Program Files\Java\jre6\bin)
B. 輸入keytool指令(keytool -genkey -v -keystore yourkeyname.keystore -alias yourkeyname -keyalg RSA -keysize 2048 -validity 10000)
輸入後,會有一系列的問題,需要注意的是過程中會輸入兩種密碼,網路上書上都推薦怕記不住就用一樣。


2. 由個人的keystore查詢SHA1碼。
A. 還是一樣先開啟DOS命令視窗,找到java的bin資料夾(C:\Program Files\Java\jre6\bin)
B. 使用"既有keystore取得SHA1的語法(keytool -list -v -keystore "C:\Program Files\Java\jre6\bin\yourkeyname.keystore"),鍵入語法後就必須要輸入剛剛建立時所設定的密碼。(語法中加上-v才會顯示SHA1碼)


3. 利用SHA1碼至Google apis網站申請key。
A. 連至申請網站https://code.google.com/apis/console/ 
B. 若是第一次使用按Create Project。
C. 選擇左邊列表的Services,並且將google Maps Android API v2調整成"on"。
D. 選擇左邊列表的API Access,並且點擊右下角的Create new Android key。
E. 輸入步驟二得到的SHA1與專案的Package名稱(中間以分號分隔),例:SHA1碼;tw.com.maptest。
F. 記住API key。


4. 於eclipse安裝Google Play services。
A. 進入Android SDK Mnanger(eclipse→windows→Android SDK Mnanger)。
B. 安裝Extras的Google Play services。


5. 於要使用Google Map的專案加入google-play-services_lib的Library。
A. 於eclipse→File→import,選擇Android下的Existing Android Code Into Workspace。
B. 由Browse選擇→[android-sdk-folder]/extras/google/google_play_services/libproject/google-play-services_lib
C. 於要使用Google Map的專案按右鍵,選擇Properties。於左側選單選擇Android,並於下方Library上述加入的專案google-play-services_lib。


6. 於專案的AndroidManifest與layout.xml加入需要的設定。
A. 打開AndroidManifest加入必須的設定。
於application標籤之上(注意下述程式碼必須置換yourpackagename成你的package名稱):

於application標籤中加入(注意下述程式碼必須置換GoogleMapAPIKey成剛剛申請到的Key):

於application標籤下加入:

B. 打開layout.xml,將介面先改為較單純的內容,待測試OK後再更改為自己需要的介面。

C. java用最單純的內容先進行測試: package yourpackageName; import android.os.Bundle; import android.app.Activity; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }

7. 利用第一步驟的keystore匯出專案為apk檔案。
A. 專案右鍵選擇Android Tools→Export Signed Application Package。
B. 依照步驟可以匯出帶有簽章的apk檔案(過程中必須輸入最初設定的keystore密碼)


8. 以adb安裝上述apk檔案。
A. 利用adb指令(adb install Name.apk)

最後,執行程式,確認手機有連上網路,迎接你的地圖吧。

這篇有幫助到你了話,請留"YA~~~看到圖了" 


2013年3月22日由劉佺網友補充如何在不匯出專案的情況下,使用debug.keystore來進行實機測試:
以下為完整留言,感謝他的補充: 
不過隨即發現不用匯出成apk這麼麻煩,如果用他預設的debug.keystore去產生api key,就可以直接從eclipse/Run As去選擇自己的裝置
預設的debug.keystore可以從Preferences \ Android \ Build \ Default debug keystore去查詢
步驟二的語法就會變成:keytool -list -v -keystore "C:\Users\使用者名稱\.android\debug.keystore"
預設的debug.keystore的預設密碼是:android;這樣去申請,DEBUG時測試起來就會比較快(非常多 XD),就不用每次都匯出成專案了

剛才測試的時候發現,申請完以後,如果要改成自己之前新建的keystore
1. 先查自定密碼的keystore的SHA1碼
2. 到Google的API Access分頁
3. 選擇右邊的Edit allowed Android apps...
4. 將前半的SHA1碼改掉,分號後面的專案名稱不動
結果API key也不會變動,匯出專案時就可以用自訂的密碼了
實際安裝起來Google Map也可以正常顯示
----------------------------------------------------------------

資料來源

簡易Google地圖教學(Google Maps JavaScript API V3)

從Google的官方網站中已知Version 3的版本在下載速度上已比Version 2快很多,尤其在Android平台的行動裝置上更能展現其效能,對開發者來說最高興的莫非是此版本已不需要申請API keys,這件事情實在對開發者來說比速度快個零點幾秒鐘來說還令人 感到興奮,開發當中任何可以簡單的事情都是王道,所以在此文章我們也分享我們用來用去最常用的使用Google地圖的做法,雖然簡單,但是真的是在一般案子中可以一用再用。

我們所要做的就是從db裡loop出來一堆地址,再從地址旁點選小圖來展開google地圖,首先我們先來說如何loading新的Google Maps JavaScript API:

 

V3變的很簡單,只須簡單的使用上方Javascript的src指向http://maps.google.com/maps/api/js 即可,但後方參數sensor為必要的,當sensor=true時指你要使用sensor來定位(如GPS裝置),因為我們的例子只是用於網頁程式,所以我們將sensor設為false, 現在我們用ASP.NET簡易的從db中叫出要使用地圖的地址(可點選地圖試試):

高雄縣鳳山市光復路二段132號
台北市和平東路三段5號
東京都豊島区東池袋3-1-5


上方我們用ASP.NET GridView來從db把地址抓出來,最重要的是我們在產生"地圖"的小icon時把連結的link後方帶入地址的參數,用另開視窗的方式來打開地圖,我們link的語法如下:,address 後方帶的地址看起來像亂碼,其實是為了確保中文地址可以在URL上正確的傳遞,我們在傳遞時使用Server.UrlEncode的方法來Encode我們的地址(Server.UrlEncode的使用方法及說明請參閱http://msdn.microsoft.com/en-us/library/axc6fkkb.aspx),我們map.aspx程式如下:





Google Maps JavaScript API v3 Example: Geocoding Simple










我們首先看以上範例,最重要就是剛開始有提到的loading API的之後我們來看我們主要的JAVASCRIPT程式,在主要的script內有宣告兩個物件變數:geocoder及map,之後 我們在function initialize()中來產生他們的instance,geocoder = new google.maps.Geocoder();就是我們去new一個geocoder instance的方法,geocoder主要的目的主要是去將實體的地址轉變成google map能定位的經緯度,至於產生新的map instance方式就為map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 在construct google.maps.Map時須帶2個參數,第一就是在網頁地圖上要顯示的div id的名稱,目的就是要google.maps.Map知道顯示在哪裡,第二就是帶入要google.maps.Map產生的起始型態,如zoom的大小或是地圖要產生的形態,initializ function只是初始化geocoder物件,最後再codeAddress()中用Request.QueryString["address"]將地址接收傳至geocoder的geocode中, 目前這種方法最大的好處是可以直接將地址轉換成地圖,而不須用經緯度的方式,但Google會限制其使用的次數。
資料來源

在Andorid程式中加入Google MAp


使用Google Map Api V2,v3(V1已失效)
V2:將Map內嵌入Android程式,並可做後台管理

V3:使用Android WebView元件,直接套用網頁作(JS)


做法: V2
a.開發環境加入Google Map API 程式庫
b.申請V2金鑰
c.撰寫Android Google Map程式   1.加入權限 2.嵌入地圖 3.呼叫API


V3
a.引用Google Map API javascript庫
b.建立嵌入地圖之div
c.呼叫API