android手机端使用google map api V2

最近在做android开发,其中需要 使用google  map,做了好久终于小有所成,下面就和大家分享一下~


实际上google官网上有详细的使用教程,不过都是英文的,大家可以参考一下,我下面就简单介绍一下使用步骤:


Step 1:首先安装Google Play services SDK

                打开Eclipse  -> Window  -> Android SDK Manager 


                  


                 

         

Step 2:引用Google Play Services

           (1)  Google Play Services导入工作空间。File-Import,选中Android节点下的Existing Android Code Into Workspace,单击Next,之后Browse...,找到路径下的<android-sdk-folder>/extras/google/google_play_services/libproject/google-play-services_lib并确定,勾选Copy projects into workspace,然后选择Finish。

          

     (2)添加引用。选中Package Explorer中的项目,单击Project-Properties-Android,在对话框的Library区域中单击Add按钮,选中google-play-services_lib后单击OK,LIbrary列表中出现正确的引用项,之后单击OK关闭对话框。

        

        (3)、导入android-support-v4.jar。

                  选中Package Explorer中的项目。选择Add External Jars,导入<android-sdk-folder>/extras/android/compatibility/v4/android-support-v4.jar


Step 3:获取 api key

         (1)、先找到debug.keystore文件,可以通过展开菜单:Window > Preferences > Android > Build 来查看这个路径

          (2)、通过终端执行命令获取SHAS   。(注:VI版的Google API在获取API KEY时使用的是MD5指纹,而V2版使用SHA1指纹

                   linux/os系统输入 :

            keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
                          windows系统输入:

                                     

                 keytool -list -v -keystore "C:\Users\your_user_name\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
                       (此处可以参看官网)

                        

              (3)、登录Google APIS Console, 打开左上角下拉菜单,点击Create...,创建项目(名称任意,默认API Project)后,然后会跳转到services页面,需要在这个页面打开“Google Maps Android API v2”这个选项(使处于on的状态)

                           


                       单击左边菜单中的API Access,在出现的API Access界面中单击Create new Android key...按钮,弹出Config Android Key 对话框



         按照提示填好信息:(其中SHAS码后面的包名必须是你要使用google map的项目的包名)

                      点击Create之后,就会生成Key

                 


Step 4:创建项目

       (1)、自己创建一个项目,SDK也不必选择带有google map的版本,普通的就可以

          

       (2)、  修改AndroidManifest.xml文件

                    在<application>元素之中加入子标签:
                    <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="your_api_key"/>
                    注意替换上面的“your_api_key”为你真正生成的那串KEY字符。


                     然后在<application>标签之前添加许可信息(作为<manifest> 的子元素):
                   

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


                注意: 里面有工程(绿色标记)的名称,需要更改成自己的。


               然后在</application>标签之后添加对OpenGL ES V2特性支持(作为<manifest> 的子元素):
                <uses-feature android:glEsVersion="0x00020000" android:required="true" />


            说明:

             <uses-permission android:name="android.permission.INTERNET"/>必不可少,否则应用无法访问互联网,AVD会出现白地图。

       (3)、修改布局文件activity_main.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"/>


                  

     注意:如果你的Android SDK3.1API 12)之前版本,如Android 2.3.3,则需要将描红节点中的MapFragment修改为SupportMapFragment,因为MapFragment只在API 12及之后的版本才有,所以对于之前的版本需要使用Support Library来进行辅助。


         
    (4)、MainActivity.java
package com.example.mapdemo;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}




Step  5: 运行程序
           google map 程序推荐使用真机测试!!!!!
          如果使用虚拟机测试,虚拟机的SDK Target请选择不带Google地图的API版本,切记!!!
         第一次运行结果一般会报错:This app wont't run without Google play services,which are missing from your phone.
                   
emulator screenshot

这是因为AVD不包含Google Play Services,解决的方法就是在AVD上安装两个包(Google Play StoreGoogle Play services):vending.apkgms.apk(下载最新版本,否则还是会报错:This app won't run unless you update google play services(就不上图了)   。。。)
                  附:上面连个apk包安装:
                             1)下载vending.apkgms.apk到任意文件夹
                             2)启动AVD(一定要启动的时候安装)
                                       3)打开终端,进入apk路径,输入:
                                     adb install com.anroid.vending.apk 回车执行
                                     adb install com.google.android.gms.apk 回车执行
                                    输出success表示安装成功


到这里google map基本就实现了, 地图的一些其他功能大家只需要看一下google api就可以了
因为要做一些效果,比如Marker的移动(http://stackoverflow.com/questions/13728041/move-markers-in-google-map-v2-android)、带有箭头的Polyline(有思路,但是不好,还希望大家指点一二~)等等。
还需要大家一起交流~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值