昨天看了在android中开发google map应用入门,赶紧把记下来,不然又忘了。
每一个google map的应用必须要继承MapActivity类,显示地图需要使用MapView。
开发基于谷歌地图的应用和普通的android应用差不多都要使用它提供给我们的类库,所不同的是google map的类库不是android平台的基本类库,是google api的一部分;还有一点,开发基于地图的应用时候需要使用google map的APIkey,必须先申请key,然后才能开发基于地图的应用。下边分步骤记录下,整个过程:
一,申请google Maps API key(用于开发和debug):
我们每次在安装SDK的时候,都会获得一个keystore,用来保存MD5的fingerprint,它是用来获取API key的。在Eclipse中获得MD5fingerprint的方法是,windows->preference->android->build,然后可以看到default debug keystore。我的是C:/Users/Andy/.android/debug.keystore。这个路径需要记住了,后边用到。然后再打开命令行(cmd),然后进入到java的安装目录,找到JDK中的keytool工具。我java安装的是D盘,所以示意如下:1,将主目录切换到D盘(输入D:)2,输入cd "Program Files",切换到相应的目录3,输入cd java进入java的目录 4,输入 cd jdk然后按tab键,进入到jdk的目录下 5,输入cd bin进入到keytool所在的目录。上边写了这么多,目的就是进入java中的keytool工具所在的目录,然后使用它获得MD5的fingerprint。接下来在命令行中输入keytool -list -alias androiddebugkey -keystore C:/Users/Andy/.android/debug.keystore-storepass android -keypass android。这时候他会提示输入密码,直接无视掉,直接按回车键就行了。然后他显示出一串警告和我们想要的MD5的认证指纹。(刚才试了下,第一次无视的时候,他会给出出错提示,再试第二次的时候,就行了,不知道为什么)
接下来使用刚刚获得的MD5认证指纹,到android的google map认证的网址取得APIkey:http://code.google.com/android/maps-api-signup.html。
二,创建基于地图的应用程序:
1,创建一个新的android的项目:
注意,这边的Build Target是Goolge APIs 不是android2.2,因为Google Map API不是在android中的。
2,在AndroidManifest.xml文件中添加下边的两行:
<uses-library android:name="com.google.android.maps"/> 这个是说明可以使用Google的map API
<uses-permission android:name="android.permission.INTERNET"/>保证可以连接网络,因为地图的信息都是从Google的服务器中获得的。
修改后的AndroidManifest.xml文件如下:
红线圈出来的部分是新添加的东西,其他都是IDE自动生成的。
3,在resource中的layout的main.xml文件中添加如下代码:
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="0Ggd8t8lOmu-bAL8PqgY3748OTwWn4-a2G8yezQ"
android:clickable="true"
android:enabled ="true"
/>
为mapview布局,其中的apiKey需要注意,就是刚才在android的官网上获得的那个key,那个必须是和自己的MD5验证码对应的。
4,修改代码,将刚才新建的那个类继承MapActivity而不是Activity,然后实现那个isRouteDisplayed()方法,其实只要return false就行了,不要些其他代码。
5,在Eclipse中启动android的virtual device:window->android SDK and AVD manager,如下图启动设备:
注:如果没有target为Google api的设备可以新建一个。
接下来就启动了设备,然后直接运行刚才的项目,就行了。运行的界面如图所示:

注:必须要联网才能显示地图。
感觉自己的表述有点混乱。
|