天天看点

Google Maps API V2 for Android 上路一之配置地图

已8个月未写博客,懒散至极,余有闲暇,写点心得,以备己用

在android乃至整个手机移动开发中,地图和定位永远都是主流开发中提及率和应用率比较高的技术应用,同时,很多地图api提供者们都把地图和定位做成2个独立的产品在推。

在中国地区,baidu map算是做得最出色的,app的渗透量大,上手也比较方便,当然更方便的还有(腾讯地图api),作为许多google粉和技术控来说,google maps 永远都是开发首选,下面我就android版的Google Maps API(以下简称gms)写下自己的一些心得:

gms 在android里有2个版本,官方是在力推v2版,v1版之前申请了key的用户可以继续使用,官方也继续支持原有的服务,但停止更新服务并停止申请v1的key,官方截图

Google Maps API V2 for Android 上路一之配置地图

接下来开始使用v2,首先先申请key,

进入Google APIs Console,找到左侧菜单栏的APIs,然后在右侧的Name列中找到 Google Maps Android API v2项并打开

Google Maps API V2 for Android 上路一之配置地图

打开后点APIs下方的Credentials项,然后在右侧找到CREATE NEW KEY按钮,点击

Google Maps API V2 for Android 上路一之配置地图

选择你要应用的开发环境,这里我们需要选择Android key,接下来是拼接申请格式串(sha1+分号+app包名)

方法有两种,一种是keytool,这里不介绍了,网上死多

第二种方法是adt22,打开eclipse,工具栏Window->Preferences->Android->Build

Google Maps API V2 for Android 上路一之配置地图

复制黏贴到对话框内,加上;com.xx.xxx(包名),点Create

Google Maps API V2 for Android 上路一之配置地图

如上图,创建成功,API key即你要的key

key申请好了,就要结合到项目中,v2版需要依赖Google Play Services SDK

在eclipse中,工具栏Window->Android SDK Manager, 找到如下图,进行安装

Google Maps API V2 for Android 上路一之配置地图

安装成功后,需要把sdk项目包import并使项目引用它,首先eclipse->File->Import->Android->Existing Android Code Into Workspace

Next,选择sdk路径,<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib

Google Maps API V2 for Android 上路一之配置地图

Finish完成导入

引用该sdk需要右键点击自己的项目,选Properties,左菜单边选Android,然后在下面的Library里面Add刚才的google-play-services_lib。

Google Maps API V2 for Android 上路一之配置地图

这样,项目需要的内部包就引用完毕了,接着,向项目的配置文件AndroidManifest.xml中添加下列权限:

<permission
        android:name="Your_FullPackage.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="Your_FullPackage.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
           

把申请的key添加到节点<application>里

<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="API_KEY"/>
           

加入OpenGL ES,不然地图无法显示

<uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>
           

添加ok后,转到项目资源文件XXX.xml,修改为

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/map"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:name="com.google.android.gms.maps.MapFragment"/>
           

v2版是以MapFragment代替MapView,可以直接继承Activity,android sdk 12 及以上适用,以下需使用SupportMapFragment这个类

项目已经配置好了,run它,你会看到提示,分2种情况,一种是找不到google play 服务,一种是叫你更新google play 服务

v2版需要依赖google play services 和 google play store 这2个应用,以本人手机小米2a为例,手机刚入手的时候默认装的是稳定版,但自系统JBL15后就不可root,因为google play store需要作为系统应用才能打开,所以必须root,把系统刷成了开发版

Google Maps API V2 for Android 上路一之配置地图

开启root,就可以安装google play了!!!

网上能搜到很多安装的方法,但我觉得都太繁琐,我的方法是这样;

在手机助手里搜索google安装器,安装后打开

Google Maps API V2 for Android 上路一之配置地图
Google Maps API V2 for Android 上路一之配置地图

在root的情况下,它为你安装google服务框架和商店为系统应用,然后你另外在手动安装下最新版的google play services,就大功告成了

Google Maps API V2 for Android 上路一之配置地图

另:附上google maps 官方文档 https://developers.google.com/maps/documentation/android/