android中实现百度地图

本文指导您如何在Android应用中实现GPS定位功能,包括引入百度地图API、获取位置权限、初始化地图、设置地图属性及监听位置变化等关键步骤。
[size=large]

android实现GPS定位

实现GPS定位功能主要是引入百度地图的包import com.baidu.mapapi


要引入则需要先下载百度地图移动版API开发包由于下载过程较为繁琐;我这里将提供现成的压缩文件

如果需要,可以自由下载;

得到API开发包后还要得到密钥,即Key;为方便大家学习,这里也将提供自由的Key;


只需将这密钥复制到后面的代码上就可以了(22FCFCD052AAAE640F34D608D98CDED68B0744A5)


嗯,现在我们可以准备创建android项目了;创建好项目后、将APi开发包中的baidumap.jar文件引入
到项目名下;其步骤是:右键项目名,找到Properties,在目录下找到->java Build Path-接着在

>Libraries中选择"Add JARs",找到并选定baidumapapi.jar;这样就可以使用API了。



由于版本不同的原因、有些项目里面没有libs文件夹,如果有的话就不用新建了;然后再将
baidumap.jar文件复制到libs文件中、还要将libBMapApiEngine_v1_3_3.so复制到工程目录下的libs
\armeabi。


在敲入代码之前、我们需要增加地图的使用权限;在Mainfest中、增加使用者的权限:

其代码是:
[/size]


<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
</uses-permission>
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE" >
</uses-permission>



[size=large]
有些版本中需要在mainfest中增加android权限、但我的就不需要增加;如果需要;可以试

试下面的代码;
[/size]

<com.baidu.mapapi.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />




[size=large]
接着便是写主函数Activity的类了,其继承MapActivity的类、

先声明需要的对象:
[/size]

BMapManager mBMapMan=null;//地图管理者
MapView bMapView;//视图
LocationListener locationlistener;//位置动作监听器
MyLocationOverlay mLocationOverlay;//地图覆盖物


[size=large]
然后,在主函数中创建百度地图的主对象;调用使用密钥参数的方法;接着初始化视图和找到空间视图。

[/size]

//创建百度地图管理者
mBMapMan=new BMapManager(getApplication());
mBMapMan.init("22FCFCD052AAAE640F34D608D98CDED68B0744A5",null);
//第一个参数就是你申请的key码
super.initMapActivity(mBMapMan);//初始化百度地图
bMapView=(MapView)findViewById(R.id.bmapView);//找到控件视图

[size=large]
接着设置内置的缩放控件和控件视图的控制权;
[/size]

bMapView.setBuiltInZoomControls(true);//设置启动内置的缩放控件
MapController mMapController =bMapView.getController();//得到bMapView的控制权,


[size=large]设置一个经纬度、然后将此坐标作为地图的中心位置;顺便还要设置地图的大小的级别。

[/size]

//给定一个经纬度构造一个GeoPoint ,单位是微度(度*1E6)
GeoPoint point=new GeoPoint ((int)(39.915*1E6),(int)(116.404*1E6));
mMapController.setCenter(point);//设置地图中心点
mMapController.setZoom(12);//设置地图zoom级别
//获取当前位置的覆盖物
mLocationOverlay=new MyLocationOverlay(this,bMapView);
//添加定位覆盖物
bMapView.getOverlays().add(mLocationOverlay);


[size=large]
定义位置监听器、获取地图位置
[/size]

//定义位置监听器
locationlistener=new LocationListener() {
public void onLocationChanged(Location location) {
//当位置改变时,获取当前经纬度
if (location != null){
//获取位置经纬度
GeoPoint pt = new GeoPoint((int)(location.getLatitude()*1e6),
(int)(location.getLongitude()*1e6));
//将视图中心定位到所在经纬度
bMapView.getController().animateTo(pt);
}
}

};



[size=large]
根据管理者、更新地图位置
[/size]

protected void onResume(){
// 获取位置管理者,视图根据位置监听更新位置
mBMapMan.getLocationManager().requestLocationUpdates(locationlistener);
//打开定位图标
mLocationOverlay.enableMyLocation();
// 打开指南针
mLocationOverlay.enableCompass();
//启动管理着
mBMapMan.start();
super.onResume();
}

[size=large]
这样、android百度地图就可以在手机上实现了。。。如果还有报错话、那就是主函数中要求添加一个判断方法;此方法不需要重写;其作用目前还不清楚。。。

由于文件上传有问题,所以这里提供下载的地址;
http://dev.baidu.com/wiki/imap/index.php?title=Android%E5%B9%B3%E5%8F%B0/%E7%9B%B8%E5%85%B3%E4%B8%8B%E8%BD%BD

[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值