ss1271's Site

风餐露宿,不可一日无码.

Google Maps Android API V2裏面的種種坑

| Comments

(圖片來源 Google Developers: Google Maps Android API v2) 最近在折騰Google Maps Android API v2,也就是Android上的MapView啦,有幾點我覺得需要注意一下,因爲很坑人而且排查起來頗爲耽誤時間。
1、請確信您在API Console裏面選對了Google Maps Android API v2而不是別的
Google API Console裏面有GoogleMaps API v2和GoogleMaps Android API v2兩個選項,給android上面用當然要選帶有Android的啦,不要選錯。
2、在申領API Key的時候一定一定請注意你的指紋簽名用的是哪個證書的
一般來說給Android程序的簽名要用到兩個證書,一個是你插上手機調試用的debug,另一個是你發佈程序的時候自己創建的release key。因爲有了這個區別,所以在獲取Maps API Key的時候就需要獲取兩份,用debug fingerprint拿一份,開發完畢后再用release的拿一份,然後修改相應的程序部分。 獲取debug certificate fingerprint:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
獲取release certificate fingerprint
keytool -list -v -keystore your_keystore_name -alias your_alias_name
這個的相關說明請參考: Displaying Certificate Information 下面的子條目:
  • Displaying the debug certificate fingerprint
  • Displaying the release certificate fingerprint
3、這個Maps Android API v2自帶對地圖標記(Markers)的事件處理,不用辛辛苦苦自己Override一遍onTouchEvent咯,只需要
[java] // Enable draggable marker.setDraggable(true) … OnMarkerDragListener markerDragListener = new OnMarkerDragListener() { @Override public void onMarkerDragStart(Marker marker) { // Called when the marker drag is started // Do whatever you want… } @Override public void onMarkerDragEnd(Marker marker) { // Called when the marker is dropped down. coords[0] = marker.getPosition().latitude; coords[1] = marker.getPosition().longitude; Log.d(TAG, "Pin Dropped at: " + coords[0] + ", " + coords[1]); } @Override public void onMarkerDrag(Marker marker) { // Called when the marker is being dragged. // Do whatever you want… } }; [/java] 相關文檔Google Maps Android API v2 – Markers 以上,希望有幫到各位。

Comments