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" />  

相关内容