歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android中使用Google 地圖

Android中使用Google 地圖

日期:2017/3/1 10:09:35   编辑:Linux編程

第一步:建一個包含Google APIs的工程
第二步:獲取Android Maps API 金鑰
第三步:載入MapView
第四步:通過MapController控制地圖縮放與移動

獲取密鑰的方法:
第一步:C:\Users\Jet>keytool -list -alias androiddebugkey -keystore "C:\Users\Jet\.android\debug.keystore" -storepass android -keypass android
紅字部分是keystore的具體路徑,此處修改成自己電腦上keystore的真實路徑即可
執行命令後,會得到MD5認證指紋
第二步:打開http://code.google.com/intl/zh-CN/android/maps-api-signup.html,在頁面最下部有一處輸入認證指紋得到密鑰的地方。將你得到的MD5指紋輸入,提交即可得到密鑰。(上面這個網址貌似需要翻牆之後才能正常打開,否則輸入指紋的地方顯示不出來)

密鑰格式:0QB6Bk20bHSaAJIZN******3upyNFLK_tujWTBw

注意:
1)不要把經度和緯度搞混,否則影響正常顯示
2)在manifest.xml的<application>標簽中加這一句<uses-library android:name="com.google.android.maps"/>

  1. public class LLAddressActivity extends MapActivity {
  2. private MapController mMapController;
  3. private MapView mapView;
  4. private Button button1, button2, button3;
  5. private EditText longet, latiet;
  6. private int zoomLevel = 0;
  7. private double dLati = 25.0402555;
  8. private double dLong = 121.512377;
  9. private String longitude = "";
  10. private String latitude = "";
  11. @Override
  12. protected void onCreate(Bundle icicle) {
  13. super.onCreate(icicle);
  14. setContentView(R.layout.lladdress);
  15. //find components
  16. mapView = (MapView) findViewById(R.id.address_mapview);
  17. button1 = (Button) findViewById(R.id.address_search);
  18. button2 = (Button) findViewById(R.id.address_plus);
  19. button3 = (Button) findViewById(R.id.address_minus);
  20. longet = (EditText) findViewById(R.id.longtitude_et);
  21. latiet = (EditText) findViewById(R.id.latitude_et);
  22. mMapController = mapView.getController();
  23. // 設置MapView的顯示選項
  24. mapView.setSatellite(true);
  25. //默認的放大層級
  26. zoomLevel = 17;
  27. mMapController.setZoom(zoomLevel);
  28. refreshMapView();
  29. button1.setOnClickListener(new OnClickListener() {
  30. @Override
  31. public void onClick(View v) {
  32. longitude = longet.getText().toString();
  33. latitude = latiet.getText().toString();
  34. dLong = Double.parseDouble(longitude);
  35. dLati = Double.parseDouble(latitude);
  36. refreshMapView();
  37. Log.e("MAP", "latitude:" + dLati + "logitude" + longitude);
  38. }
  39. });
  40. button2.setOnClickListener(new OnClickListener() {
  41. @Override
  42. public void onClick(View v) {
  43. zoomLevel++;
  44. if (zoomLevel > mapView.getMaxZoomLevel()) {
  45. zoomLevel = mapView.getMaxZoomLevel();
  46. }
  47. mMapController.setZoom(zoomLevel);
  48. }
  49. });
  50. button3.setOnClickListener(new Button.OnClickListener() {
  51. @Override
  52. public void onClick(View v) {
  53. zoomLevel--;
  54. if (zoomLevel < 1) {
  55. zoomLevel = 1;
  56. }
  57. mMapController.setZoom(zoomLevel);
  58. }
  59. });
  60. }
  61. /**
  62. * 重整Map的Method
  63. */
  64. private void refreshMapView() {
  65. GeoPoint p = new GeoPoint((int) (dLati * 1E6), (int) (dLong * 1E6));
  66. mapView.displayZoomControls(true);
  67. /* 將Map的中點移動GeoPoint */
  68. mMapController.animateTo(p);
  69. mMapController.setZoom(zoomLevel);
  70. }
  71. @Override
  72. protected boolean isRouteDisplayed() {
  73. return false;
  74. }
  75. }

布局文件中使用這樣一段來顯示地圖

  1. <com.google.android.maps.MapView
  2. android:id="@+id/address_mapview"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:clickable="true"
  6. android:apiKey="0QB6Bk20b**********upyNFLK_tujWTBw" />
Copyright © Linux教程網 All Rights Reserved