一步步教你用Android Google Map(二)

一步步教你用Android Google Map(一)的链接是:http://www.cnblogs.com/zzbbs/archive/2011/02/22/1961670.html

接着上一次我们讲到的地方,我们现在继续学习下去现在我们就产生了debug模式下的MD5密纹了,要注意的是,你必须重新为生产环境下的应用重新生成一次MD5密纹,因为如果在不同的Android SDK或者不同的开发环境下,MD5密纹是不同的,否则换了环境的话Google Map将不会工作。 

 产生的MD5密纹的输出如下面:

  androiddebugkey, Apr 2, 2010, PrivateKeyEntry,

Certificatefingerprint(MD5):72:BF:25:C1:AF:4C:C1:2F:34:D9:B1:90:35:XX:XX:XX

接下来,我们要到Google Map API的主页去申请一个Map的key了,可以访问

http://code.google.com/android/maps-api-signup.html页面,在其中的MD5 fingerprint一栏中输入刚才生成的MD5密纹,如下图:

一步步教你用Android Google Map(二)

输入后,点Generate API Key,之后会为我们产生Google Map API了,如下图,这个API是我们在程序中可以使用的。

一步步教你用Android Google Map(二)

其中还给出了如何在android中使用该API的方法。

第四步:开始创建Android Google Map应用

其实,编写Android Map应用并不复杂,只需要继承MapActivity类就可以了。MapView这个类功能是从Google Map地图中获得数据并且展示地图。MapActivity的主要功能有:

1) 管理Activity的生命周期

2) 为MapView类建立和撤消相关的服务。

在继承了MapActivity类后,我们要实现其中的isRouteDisplayed方法,这个方法其实是用来表示我们是否显示一些路线的信息,这个通常用在地图的飞行模式时才使用,这里我们不提供任何信息仅是返回false即可。

在我们的activity中,我们将引用到MapView,它是在界面xml中定义的。同时我们也用到setBuiltInZoomControls方法设置地图允许缩放模式。

初步的代码是这样的:

package com.javacodegeeks.android.googlemaps;

importandroid.os.Bundle;

importcom.google.android.maps.MapActivity;

importcom.google.android.maps.MapView;

publicclassGMapsActivityextendsMapActivity{

privateMapViewmapView;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mapView=(MapView)findViewById(R.id.map_view);

mapView.setBuiltInZoomControls(true);

}

@Override

protectedbooleanisRouteDisplayed(){

returnfalse;

}

}

而相应的界面xml文件如下:

<?xmlversion="1.0"encoding="utf-8"?>

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<com.google.android.maps.MapView

xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/map_view"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:clickable="true"

android:enabled="true"

android:apiKey="API-KEY-HERE"/>

</RelativeLayout>

注意,其中要把你获得的Google Map的API KEY写到MapView控件中去。最后,记得在AndroidManifest.xml配置文件中,加上对Internet和Map的使用访问权限,其中由于Google Map的API是另外提供的API,因此也需要使用use-library标签进行说明,如下代码所示。

<?xml version="1.0" encoding="utf-8"?>

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

package="com.javacodegeeks.android.googlemaps"

android:versionCode="1"

android:versionname="1.0">

<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">

<activityandroid:name=".GMapsActivity"

android:label="@string/app_name">

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

<uses-libraryandroid:name="com.google.android.maps"/>

</application>

<uses-permissionandroid:name="android.permission.INTERNET"/>

</manifest>

运行程序,可以得到一个初步的地图,如下图所示:

一步步教你用Android Google Map(二)