Android百度地圖API開發(fā).doc_第1頁
Android百度地圖API開發(fā).doc_第2頁
Android百度地圖API開發(fā).doc_第3頁
Android百度地圖API開發(fā).doc_第4頁
Android百度地圖API開發(fā).doc_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

最近自己想研究下地圖,本來想研究google Map,但是申請API key比較坑爹,于是從百度地圖入手,其實他們的用法都差不多,本篇文章就帶領(lǐng)大家在自己的Android項目中加入百度地圖的功能,接下來我會寫一系列關(guān)于百度地圖的文章,歡迎大家到時候關(guān)注!一 申請API key 在使用百度地圖之前,我們必須去申請一個百度地圖的API key,申請地址/apiconsole/key,自己自行注冊一個百度賬號,很快就能申請到的,如下圖 點擊創(chuàng)建密鑰,系統(tǒng)將為我們自動生成密鑰,當然我們在使用密鑰之前還必須配置,點擊設(shè)置如下圖Key type 選擇“for mobile”,安全碼是Android簽名證書的證書指紋 (SHA1)值+ “;” + 你的應(yīng)用程序包名,所以當你配置好了API key 你不能隨意更換應(yīng)用程序的包名, 如果更換了包名我們需要重新配置API key,接下來我們來介紹怎么獲取數(shù)字簽名我們知道我們開發(fā)的Android程序是需要給他簽名的,如果沒有簽名是不允許被安裝到手機或者模擬器的,那么你會有疑問,我平常開發(fā)的應(yīng)用確實沒簽名,怎么能在模擬器或者手機上直接運行呢,其實ADT會自動的使用debug密鑰為應(yīng)用程序簽名,當然你也可以自己創(chuàng)建一個屬于你自己的密鑰,直接用Eclipse可視化創(chuàng)建就行了,很方便的,這里我就不介紹了 這里我們用debug.keystore來生成Android簽名證書的證書指紋 (SHA1)值,可以在eclipse中直接查看:winows - preferance - android - build。 如下圖示:然后我們使用keytool工具來獲取簽名證書的sha1值,在DOS輸入keytool -list -keystoreC:Usersbds.androiddebug.keystore紅色部分為debug.keystore的路徑,接下來會要你輸入輸入密鑰庫口令,默認輸入“android”,這樣子我們就能獲取證書指紋 (SHA1),如下圖紅色框框里面的東西就是我們需要的Android簽名證書的證書指紋 (SHA1)值,然后我們復(fù)制出來,輸入到API key的安全碼輸入框里面,再用分號隔開加上你的應(yīng)用程序包名,如 02:5C:80:25:B2:8F:6F:60:54:B9:F4:B2:EF:94:FF:EE:CC:3C:5A:29;com.example.baidumapdemo 這樣子我們就配置好了API key二、下載百度地圖API庫要在Android應(yīng)用中使用百度地圖API,就需要在工程中引用百度地圖API開發(fā)包,下載地址/map/sdkandev-download.htm,下載Android SDKv2.1.3 lib庫就行了三、在Android項目中引用百度地圖 新建Android項目BaiduMapDemo,然后將百度地圖API庫加入工程,如下圖 在布局文件中添加百度地圖控件,htmlview plaincopy1. 2. 6. 7. 12. 13. Activity界面代碼,注釋的很詳細,相信你看得懂javaview plaincopy1. packagecom.example.baidumapdemo;2. 3. importandroid.app.Activity;4. importandroid.graphics.Bitmap;5. importandroid.os.Bundle;6. importandroid.widget.Toast;7. 8. importcom.baidu.mapapi.BMapManager;9. importcom.baidu.mapapi.MKGeneralListener;10. importcom.baidu.mapapi.map.MKEvent;11. importcom.baidu.mapapi.map.MKMapViewListener;12. importcom.baidu.mapapi.map.MapController;13. importcom.baidu.mapapi.map.MapPoi;14. importcom.baidu.mapapi.map.MapView;15. api.basestruct.GeoPoint;16. 17. publicclassMainActivityextendsActivity18. privateToastmToast;19. privateBMapManagermBMapManager;20. /*21. *MapView是地圖主控件22. */23. privateMapViewmMapView=null;24. /*25. *用MapController完成地圖控制26. */27. privateMapControllermMapController=null;28. /*29. *MKMapViewListener用于處理地圖事件回調(diào)30. */31. MKMapViewListenermMapListener=null;32. 33. Override34. protectedvoidonCreate(BundlesavedInstanceState)35. super.onCreate(savedInstanceState);36. /*37. *使用地圖sdk前需先初始化BMapManager,這個必須在setContentView()先初始化38. */39. mBMapManager=newBMapManager(this);40. 41. /第一個參數(shù)是APIkey,42. /第二個參數(shù)是常用事件監(jiān)聽,用來處理通常的網(wǎng)絡(luò)錯誤,授權(quán)驗證錯誤等,你也可以不添加這個回調(diào)接口43. mBMapManager.init(7ae13368159d6a513eaa7a17b9413b4b,newMKGeneralListener()44. 45. /授權(quán)錯誤的時候調(diào)用的回調(diào)函數(shù)46. Override47. publicvoidonGetPermissionState(intiError)48. if(iError=MKEvent.ERROR_PERMISSION_DENIED)49. showToast(APIKEY錯誤,請檢查!);50. 51. 52. 53. /一些網(wǎng)絡(luò)狀態(tài)的錯誤處理回調(diào)函數(shù)54. Override55. publicvoidonGetNetworkState(intiError)56. if(iError=MKEvent.ERROR_NETWORK_CONNECT)57. Toast.makeText(getApplication(),您的網(wǎng)絡(luò)出錯啦!,Toast.LENGTH_LONG).show();58. 59. 60. );61. 62. 63. setContentView(R.layout.activity_main);64. 65. mMapView=(MapView)findViewById(R.id.bmapView);66. 67. /*68. *獲取地圖控制器69. */70. mMapController=mMapView.getController();71. /*72. *設(shè)置地圖是否響應(yīng)點擊事件.73. */74. mMapController.enableClick(true);75. /*76. *設(shè)置地圖縮放級別77. */78. mMapController.setZoom(12);79. 80. /*81. *顯示內(nèi)置縮放控件82. */83. mMapView.setBuiltInZoomControls(true);84. 85. /*86. *保存精度和緯度的類,87. */88. GeoPointp=newGeoPoint(int)(22.547923*1E6),(int)(114.067368*1E6);89. /設(shè)置p地方為中心點90. mMapController.setCenter(p);91. mMapView.regMapViewListener(mBMapManager,newMKMapViewListener()92. 93. /*94. *地圖移動完成時會回調(diào)此接口方法95. */96. Override97. publicvoidonMapMoveFinish()98. showToast(地圖移動完畢!);99. 100. 101. /*102. *地圖加載完畢回調(diào)此接口方法103. */104. Override105. publicvoidonMapLoadFinish()106. showToast(地圖載入完畢!);107. 108. 109. /*110. *地圖完成帶動畫的操作(如:animationTo())后,此回調(diào)被觸發(fā)111. */112. Override113. publicvoidonMapAnimationFinish()114. 115. 116. 117. /*118. *當調(diào)用過mMapView.getCurrentMap()后,此回調(diào)會被觸發(fā)119. *可在此保存截圖至存儲設(shè)備120. */121. Override122. publicvoidonGetCurrentMap(Bitmaparg0)123. 124. 125. 126. /*127. *點擊地圖上被標記的點回調(diào)此方法128. *129. */130. Override131. publicvoidonClickMapPoi(MapPoiarg0)132. if(arg0!=null)133. showToast(arg0.strText);134. 135. 136. );137. 138. 139. 140. 141. Override142. protectedvoidonResume()143. /MapView的生命周期與Activity同步,當activity掛起時需調(diào)用MapView.onPause()144. mMapView.onResume();145. super.onResume();146. 147. 148. 149. 150. Override151. protectedvoidonPause()152. /MapView的生命周期與Activity同步,當activity掛起時需調(diào)用MapView.onPause()153. mMapView.onPause();154. super.onPause();155. 156. 157. Override158. protectedvoidonDestroy()159. /MapView的生命周期與Activity同步,當activity銷毀時需調(diào)用MapView.destroy()160. mMapView.destroy();161. 162. /退出應(yīng)用調(diào)用BMapManager的destroy()方法163. if(mBMapManager!=null)164. mBMapManager.destroy();165. mBMapManager=null;166. 167. 168. super.onDestroy();169. 170. 171. 172. 173. /*174. *顯示Toast消息175. *parammsg176. */177. privatevoidshowToast(Stringmsg)178. if(mToast=null)179. mToast=Toast.makeText(this,msg,Toast.LENGTH_SHORT);180. else181. mToast.setText(msg);182. mToast.setDuration(Toast.LENGTH_SHORT);183. 184. mToast.show();185. 186. 187. 188. 1. BMapManager是地圖的引擎類,這個必須在setContentView方法之前被實例化,我們需要使用其方法init(String strKey,MKGeneralListener listener)來加入API key, MKGeneralListener 該接口返回網(wǎng)絡(luò)狀態(tài),授權(quán)驗證等結(jié)果,我們需要實現(xiàn)該接口以處理相應(yīng)事件2. MapView就是我們的地圖控件了,MapView有和Activity同步的生命周期,例如onResume() ,onPause() ,onRestoreInstanceState(Bundle state) ,destroy()等,我們可以通過getController()方法獲取地圖控制器MapContro

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論