由于工作需要,最近对Android的各大地图进行了试用。
其中有Google地图,百度地图,高德地图,还有开源的OSM。
在使用Google地图的时候,官网流程写的非常清楚,但是其中也遇到一些问题。这里我将我的流程写出来,方便他人。
注意,本猫用的是ADT,所以,之后的搭建方法,均是Eclipse下的,使用Android studio的朋友,本文不适合你们……
#0,搭建Android环境。
这个。。。如果不会,请在网上搜索,很多详细的安装教程。
给大家一个官方的链接地址:http://developer.android.com/sdk/index.html
#1,下载和配置Google Play services SDK。
很多人在搭建了Android环境后,并没有下载和配置Google Play services SDK,因为很多的开发并不需要它的支持。下面我们介绍如何下载和配置。
先给出官方的连接地址:http://developer.android.com/google/play-services/setup.html
首先,打开Eclipse,点击Android SDK Manager。
之后选择“Extras”,找到下面的Google Play services和Google Repository,安装他们。安装完成后,应该如下图一样,Status显示的为Installed。
至此,我们已经下载完成了。
下面,我们需要将下载的东东导入到Eclipse中,因为它是通过Android的库引用的,而不是直接使用一个jar包。
导入项目。点击File-->Import。
选择“Existing Android Code Into Workspace",点击next。
找到下载的google play services,并将其导入。其路径,在你的"SDK Manager.exe"同级目录的sdkextrasgooglegoogle_play_serviceslibprojectgoogle-play-services_lib下。
比如,我的是:D:adt-bundle-windowssdkextrasgooglegoogle_play_serviceslibprojectgoogle-play-services_lib。
之后选择项目,然后请务必勾选"Copy projects into workspace"选项,如果不勾选,则在后面项目引用时,会出现找不到文件等错误。最后,点击finish。
导入后,有可能出现错误:Unable to resolve target 'android-9'。这时,打开项目中的”project.properties”,将target=android-9修改为你对应的版本。
如果不知道修改为多少,在Window-->Preferences中,选择Android,在右边就可以看到了。
#2,建立测试项目GoogleMaps.
现在,建立一个项目,命名为GoogleMaps,具体如何建立。。。不用说了吧。。。很简单的。。。
在GoogleMaps上点击右键,选择Preferences。选择Android,在右边的Library中选择Add,在弹出的对话框中选择google-play-services_lib,然后点击OK,再点击OK。
至此,项目新建并且引用完成。
#3,申请Google Maps API Key.
照旧,先给出官方的教程方法:https://developers.google.com/maps/documentation/android/start#obtain_a_google_maps_api_key
首先,访问:https://code.google.com/apis/console/?noredirect。在其中选择Services。
注意,没有账号之类的,请自行注册,这个这里不做讲解。成功登陆后,就是下图的样子。
找到其中的Google Maps Android API v2项,确保它已经打开。没有打开请点击那个OFF滑动按钮打开它。
之后,点击"API Access",选择Create new Android Key。
这里,我们回到Eclipse,在Window-->Preferences中,选择Android下面的Build,在右边就可以看到SHA1的值了。如果找不到这个界面,请看#1的最后一步。
下面,我们再回到网页,在这里输入刚刚查询到的"SHA1"码加上一个分号加上你刚刚创建的项目的包名。
注意,包名后面没有分号。点击Create。
这时,等待1到2秒,这时,就会出现Android的API key了。
到这里,申请Key完成。
#4,完善测试项目GoogleMaps.
首先,打开AndroidMainfest.xml文件。在其中添加如下代码。
1 <uses-sdk 2 android:minSdkVersion="8" 3 android:targetSdkVersion="19" /> 4 5 <uses-feature 6 android:glEsVersion="0x00020000" 7 android:required="true" /> 8 9 <uses-permission android:name="android.permission.INTERNET" /> 10 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 11 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 12 <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 13 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 14 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
在其中的application节点下,添加如下代码。
1 <meta-data 2 android:name="com.google.android.gms.version" 3 android:value="@integer/google_play_services_version" /> 4 <meta-data 5 android:name="com.google.android.maps.v2.API_KEY" 6 android:value="就是#3申请到的Android API Key" />
打开activity_main.xml文件。将其修改为:
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context=".MainActivity" > 10 11 <fragment 12 android:id="@+id/map" 13 android:name="com.google.android.gms.maps.MapFragment" 14 android:layout_width="match_parent" 15 android:layout_height="match_parent" /> 16 17 </RelativeLayout>
然后,运行就可以了。
到此,在Android上就可以看到地图出现了。下面是效果图。