歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android中使用Google 地圖

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

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

  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