Android提供了对地图服务强有力的支持,开发一款基于地图服务的软件也因此变得容易了许多,今天就和大家分享一下如何在Android中配置和使用Google Map服务。
首先我们需要找到调试证书,它由Eclipse生成和维护。点击Eclipse中的Window=>Preferences,然后找到Android=>Build项,如图:
被鼠标选中的路径就是开发时默认的调试证书文件。我们在下面要用到此路径。
然后我们需要使用Android提供的keytool命令获取指定调试证书所对应的MD5指纹码:
1 |
keytool -list -alias androiddebugkey -keystore "C:/Users/user/.android/debug.keystore" -storepass android -keypass android |
需要注意的是,调试储存库的alias为“androiddebugkey”,密钥库密码为“android”,私钥密码也为“android”。
使用以上命令,我们就可以获取MD5指纹码了。如图所示:
拿到了MD5指纹码之后,我们需要到向google请求map-api密钥。我们需要在浏览器中输入以下地址:
http://code.google.com/intl/zh-CN/android/maps-api-signup.html
然后输入刚才我们获取到的MD5指纹码。如图所示:
如果我们没有登录google账户的话,它会提示我们先登录google账户。
最后,如果响应页面如图,就代表申请成功了:
android:apiKey就是我们申请到的map-api密钥。
完成了这些步骤之后,我们就能开发自己的应用程序了。
首先我们需要新建一个项目,在建立项目的过程中,Build Target一定要选择“Google APIs”这一项,如图:
项目结构如图所示:
这个示例主要完成以下功能:显示地图界面;定位天安门并显示到到屏幕中央;使用mark.png为天安门做标记。
MainActivity.java代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
package com.scott.map; import android.graphics.drawable.Drawable; import android.os.Bundle; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapView; public class MainActivity extends MapActivity { private MapView mapView; private static final double latitude = 39.908716; private static final double longitude = 116.397529; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mapView = (MapView) findViewById(R.id.mapView); //启用内建的缩放控制器 mapView.setBuiltInZoomControls(true); //启用点击事件处理 mapView.setClickable(true); //获取标记图片 Drawable marker = getResources().getDrawable(R.drawable.mark); //设置边界 marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker.getIntrinsicHeight()); //创建自定义图层实例 LocationOverlay locations = new LocationOverlay(marker); //添加自定义图层 mapView.getOverlays().add(locations); //以指定纬度和经度建立一个GeoPoint实例 GeoPoint point = new GeoPoint((int)(latitude * 1E6),(int)(longitude * 1E6)); //设置缩放级别 mapView.getController().setZoom(17); //将指定的点移动到中央位置 mapView.getController().animateTo(point); } @Override protected boolean isRouteDisplayed() { return false; } } |
需要注意,我们必须继承com.google.android.maps.MapActivity,因为MapView必须和MapActivity结合才能使用地图服务。
在MainActivity中,我们用到了LocationOverlay,它是用来在地图上做图层标记的,LocationOverlay.java代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 ڄWindow=>Preferences,然后找到Android=>Build项,如图:
被鼠标选中的路径就是开发时默认的调试证书文件。我们在下面要用到此路径。 然后我们需要使用Android提供的keytool命令获取指定调试证书所对应的MD5指纹码:
需要注意的是,调试储存库的alias为“androiddebugkey”,密钥库密码为“android”,私钥密码也为“android”。 使用以上命令,我们就可以获取MD5指纹码了。如图所示: 拿到了MD5指纹码之后,我们需要到向google请求map-api密钥。我们需要在浏览器中输入以下地址: http://code.google.com/intl/zh-CN/android/maps-api-signup.html 然后输入刚才我们获取到的MD5指纹码。如图所示: 如果我们没有登录google账户的话,它会提示我们先登录google账户。 最后,如果响应页面如图,就代表申请成功了: android:apiKey就是我们申请到的map-api密钥。 完成了这些步骤之后,我们就能开发自己的应用程序了。 首先我们需要新建一个项目,在建立项目的过程中,Build Target一定要选择“Google APIs”这一项,如图: 项目结构如图所示: 这个示例主要完成以下功能:显示地图界面;定位天安门并显示到到屏幕中央;使用mark.png为天安门做标记。 MainActivity.java代码如下:
需要注意,我们必须继承com.google.android.maps.MapActivity,因为MapView必须和MapActivity结合才能使用地图服务。 在MainActivity中,我们用到了LocationOverlay,它是用来在地图上做图层标记的,LocationOverlay.java代码如下:
|