Android Google Maps 开始

由于工作需要,最近对Android的大地图进行了试用。

其中有Google地图,百度地图,高德地图,还有开源的OSM。

在使用Google地图的时候,官网流程写的非常清楚,但是其中也遇到一些问题。这里我将我的流程写出来,方便他人。

这个是官方安装地址:https://developers.google.com/maps/documentation/android/start#getting_the_google_maps_android_api_v2

注意,本猫用的是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"同级目录的sdk\extras\google\google_play_services\libproject\google-play-services_lib下。

比如,我的是:D:\adt-bundle-windows\sdk\extras\google\google_play_services\libproject\google-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上就可以看到地图出现了。下面是效果图。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。