Android开发之调用google map api v2 详细图解

详细参考google官方文档:https://developers.google.com/maps/documentation/android/start?hl=zh-CN
1、首先安装Google Play services SDK
打开Eclipse - > Window - > Android SDK Manager
【转】 Android上调用google map api v2_第1张图片
安装Android Support Library和Google Play services.
注意:1、若无法安装,显示错误:
Failed to fectch URl https://dl-ssl.google.com/android/repository/addons_list.xml, reason: Connection to https://dl-ssl.google.com refused
解决办法来源于:code.google.com
用notepad打开C:\WINDOWS\system32\drivers\etc中的hosts文件
在最后一行添加74.125.237.1 dl-ssl.google.com
成功解决问题。
2、部分国产手机阉割了Google Play service,故需下载安装,地址:http://google-play-services.softonic.cn/android
2、获取API key
运行Eclipse,然后依次选择Window - > Preferences - > Android - > Build项,这时候可以查找到debug.keystore的路径,通过路径找到debug.keystore文件后,将该文件复制到java sdk下的bin文件夹里面,与keytool同文件夹。
运行cmd进入到keytool的目录下,输入keytool -list -v -keystore debug.keystore
提示输入密码,直接回车,显示MD5和SHA1,我们只要获取SHA1的值就可以了,记得备份下来。
再浏览器打开Google APIs Console (https://code.google.com/apis/console/)用Gmail账号登录,如果是第一次的话,需要创建项目,默认情况下会创建一个叫做API Project的项目。
【转】 Android上调用google map api v2_第2张图片

点击进入API Access

选择 Create new Android key,后
【转】 Android上调用google map api v2_第3张图片
按照Example形式,填上刚才你的SHA1值和你要应用的到Google map 的包名,点击Create。
【转】 Android上调用google map api v2_第4张图片
再点击进入Services,
【转】 Android上调用google map api v2_第5张图片
3、创建我们自己的应用程序
首先,eclipse上建立google-play-services-lib,File->new->others->Android->Android project from existing code,然后将你刚刚安装的google play services包导入进去(在你sdk文件下),创建完成!
【转】 Android上调用google map api v2_第6张图片
创建好后你的eclipse上就会多一个google-play-services_lib项目包。

接着,创建一个你自己的google map项目,然后右击你的项目名,选择属性,在弹出来的对话框中点击android->add->选定google—play-services_lib,添加进去就ok了。
【转】 Android上调用google map api v2_第7张图片
【转】 Android上调用google map api v2_第8张图片
最后,添加key到你的AndroidManifest.xml中。
将下面的代码放到<application>中,就插入到</application>前面。
注意,这里的API_KEY要替换成你之前申请的秘钥,另外对于你的不同项目,如果包名不一样,得申请不同的key,因为在申请的时候需要你输入你的包名,也就是说不同包的项目对应不同的key,一个key不用应用不同包的项目。还需要注意的是在一台电脑上申请的key不能在另外一台电脑上使用,切记!

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

然后将下面代码放入AndroidManifest.xml中,其中记得把com.example.mapdemo替换成你的包名。

<permissionandroid:name="com.example.mapdemo.permission.MAPS_RECEIVE"android:protectionLevel="signature"/><uses-permissionandroid:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>


下面接着就是添加一系列权限,下面是一系列权限,大家根据自己的需要添加,尽量不要全部复制进去,以免对程序安全性造成威胁。

[html]view plaincopy

  1. <uses-permissionandroid:name="android.permission.INTERNET"/>

  2. <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>

  3. <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

  4. <uses-permissionandroid:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>

  5. <!--Thefollowingtwopermissionsarenotrequiredtouse

  6. GoogleMapsAndroidAPIv2,butarerecommended.-->

  7. <uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>

  8. <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>


google map api第二版本中用到OpenGL ES version2,所以必须在<manifest>节点里面添加以下代码。

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


整体AndroidManifest.xml代码如下:

[html]view plaincopy

  1. <?xmlversion="1.0"encoding="utf-8"?>

  2. <manifestxmlns:android="http://schemas.android.com/apk/res/android"

  3. package="com.example.googlemap"

  4. android:versionCode="1"

  5. android:versionName="1.0">

  6. <uses-feature

  7. android:glEsVersion="0x00020000"

  8. android:required="true"/>

  9. <uses-featureandroid:name="android.hardware.location.gps"/>

  10. <uses-sdk

  11. android:minSdkVersion="8"

  12. android:targetSdkVersion="10"/>

  13. <permission

  14. android:name="com.example.googlemap.permission.MAPS_RECEIVE"

  15. android:protectionLevel="signature"/>

  16. <uses-permissionandroid:name="android.permission.INTERNET"/>

  17. <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>

  18. <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

  19. <uses-permissionandroid:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>

  20. <!--

  21. Thefollowingtwopermissionsarenotrequiredtouse

  22. GoogleMapsAndroidAPIv2,butarerecommended.

  23. -->

  24. <uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>

  25. <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>

  26. <application

  27. android:allowBackup="true"

  28. android:icon="@drawable/ic_launcher"

  29. android:label="@string/app_name"

  30. android:theme="@style/AppTheme">

  31. <activity

  32. android:name="com.example.googlemap.MainActivity"

  33. android:label="@string/app_name">

  34. <intent-filter>

  35. <actionandroid:name="android.intent.action.MAIN"/>

  36. <categoryandroid:name="android.intent.category.LAUNCHER"/>

  37. </intent-filter>

  38. </activity>

  39. <uses-library

  40. android:name="com.google.android.maps"

  41. android:required="true"/>

  42. <meta-data

  43. android:name="com.google.android.maps.v2.API_KEY"

  44. android:value="这里填写你的key"/>

  45. </application>

  46. </manifest>


剩下就是布局了。代码如下(这是基本布局,如有需要可以自己添加)

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><fragmentandroid:id="@+id/map"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"class="com.google.android.gms.maps.SupportMapFragment"/></LinearLayout>


在主程序中最基本的代码如下(正常显示地图),依据自己需要添加代码。

packagecom.example.mapdemo;importandroid.app.Activity;importandroid.os.Bundle;publicclassMainActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}}


更多相关文章

  1. Android 代码设置来电铃声
  2. Android官方技术文档翻译—— Eclilpse项目迁移
  3. android 执行shell命令代码
  4. android 开发中常用颜色,以及一些颜色的代码
  5. LinearLayout按下(pressed)或获取焦点(focused)时背景设置不同颜
  6. 用uliweb 创建项目
  7. Android Camera子系统之源代码View
  8. Android开发之常用代码片段

随机推荐

  1. android多媒体播放相关网址
  2. android中查看Activity的栈的的内容
  3. Android PhoneStateListener 问题
  4. Android开源项目第一篇——个性化控件(Vi
  5. Android获取本机局域网IP的方法
  6. Android中DIP与PX的转换
  7. Android Gesture 手势识别
  8. Android P 版本中支持全面屏检测的api
  9. Android 多线程2
  10. Android Native Crash的log分析和定位