Android-Android 谷歌地图学习(一)

第一步:安装Google Map API
开发基于谷歌地图的应用和普通的android 应用差不多都要使用它提供给我们的
类库,所不同的是google map 的类库不是android 平台的基本类库,是google api
的一部分,所以建立项目时,SDK 要选择Google APIs;
第二步:获得Google Map API Key
在正式使用Google Map API 前,必须先生成Google Map API KEY。具体
的详细步骤请参考
(http://code.google.com/intl/zh-CN/android/add-ons/google-apis/map
key.html)
1.找到你的debug.keystore 文件
在Eclipse工具下,选择windows-->Preference-->Android-->Build,其中Default
debug keystore 的值便是debug.keystore 的路径了。

2.取得debug.keystore 的MD5 值
首先cmd 命令行进入debug.keystore 文件所在的路径,执行命令:keytool -list
-keystore debug.keystore,这时可能会提示你输入密码,这里默认的密码是
“android",这样即可取得MD5 值。

3.申请Android Map 的API Key.
打开浏览器,输入网址:http://code.google.com/android/maps-api-signup.html
填入你的认证指纹(MD5)即可获得apiKey 了

 

 

Google Map API 的简介和使用
Android 中定义了一个名为com.google.android.map 的包,其中包含了一系列
用于在google map 上显示、控制和叠层信息的功能类,以下是该包中最重要的几个
类:
1.MapActivity:这个类是用于显示Google Map 的Activity 类,它需要连接底层
网络。MapActivity 是一个抽象类,任何想要显示MapView 的activity 都需要派生自
MapActivity,并且在其派生类的onCreate()中,都要创建一个MapView 实例。
2.MapView:MapView 是用于显示地图的View 组件。它派生自
android.view.ViewGroup。它必须和MapActivity 配合使用,而且只能被
MapActivity 创建,这是因为MapView需要通过后台的线程来连接网络或者文件系统,
而这些线程需要有MapActivity 来管理。
3.MapController:MapController 用于控制地图的移动、缩放等。
4.OverLay:这是一个可显示于地图之上的可绘制的对象。
5.GeoPoint:这是一个包含经纬度位置的对象。

 

第三步:简单的实例开发
1. 创建工程
注意必须在Build Target 中勾选Google API
2. 修改AndroidManifest.xml 文件
因为地图应用使用的是Google Maps 的类库,而不是android 的标准类库,所以需
要在AndroidManifest.xml 文件中声明
<uses-library android:name="com.google.android.maps"/>
由于需要从网络获取地图数据,所以需要访问网络的权限

<uses-permission
android:name="android.permission.INTERNET" />
3. 修改main.xml
需要创建一个来自com.google.android.maps.MapView 的MapView

<?xml version="1.0"encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/androi
d"
android:id="@+id/mainlayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="Your Maps API Key"
/>
</RelativeLayout>

 

clickable 属性设置了是否允许用户和地图的交互
- apiKey 需要填写刚刚申请到的KEY
4. 实现MapActivity
- MapView 需要由MapActivity 来管理,所以程序部分应该继承自Activity 的一个
特殊子类MapActivity 类
- 同时必须实现isRouteDisplayed()函数
- 获得MapView 实例以后,通过setBuiltZoomControls 方法设置地图是否支持缩放。
- 另外MapView 提供了3 中模式的地图,分别可以通过以下方式设置采用什么模式
来显示地图。
mMapView.setTraffic(true); //设置为交通模式
mMapView.setSatellite(true); //设置为卫星模式//
mMapView.setStreetView(false); //设置为街景模式
到目前为止,已经可以成功的运行了

 

上代码

xml布局

<?xml version="1.0"encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/mainlayout"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >

 <com.google.android.maps.MapView
     android:id="@+id/mapview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:clickable="true"
     android:apiKey="0BSiYoqR_lLJT1YjRQlDXSr1AUQsZeJIWDZhpfg"
  />
</RelativeLayout>

 

代码

public class Main extends MapActivity {
   

 MapView mMapView;
   @Override
    public voidonCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       
       mMapView = (MapView)findViewById(R.id.mapview);
       mMapView.setBuiltInZoomControls(true);
       mMapView.setTraffic(true); //设置为交通模式
       // mMapView.setSatellite(true); //设置为卫星模式//
      //mMapView.setStreetView(true); //设置为街景模式
    }

 @Override
 protected boolean isRouteDisplayed() {
  // TODO Auto-generated methodstub
  return false;
 }
}

 

manifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.inhand.maps"
     android:versionCode="1"
     android:versionName="1.0">
   <application android:icon="@drawable/icon"android:label="@string/app_name">
       <activity android:name=".Main"
                 android:label="@string/app_name">
           <intent-filter>
               <action android:name="android.intent.action.MAIN"/>
               <categoryandroid:name="android.intent.category.LAUNCHER"/>
           </intent-filter>
       </activity>
       
  <uses-libraryandroid:name="com.google.android.maps" />
   </application>
  
   <uses-sdk android:minSdkVersion="8"/>
 <uses-permissionandroid:name="android.permission.INTERNET" />
 
</manifest>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值