[size=large] 百度地图的实现、
一、首先电脑上必须搭建好java环境平台、创建好eclipse运行环境和搭建好android运行环境。
二、登录http://dev.baidu.com/wiki/static/imap/key/网站,然后按照上面的要求就可以得到android Api Key(key在初始化地图的时候要用到)(Api是免费的)和api开发包、
三、创建android新项目
引入api开发包中的baidumap.jar文件引入到项目中
具体操作:右键项目名,找到Properties,在目录下找到->java Build Path-接着在>Libraries中选择"Add JARs",找到并选定baidumapapi.jar确定后返回,这样就可以在自己的项目中使用百度地图API了。
同时在工程里新建libs文件夹(要是本来就有就不用新建了,由于eclipse版本不一样,有的有,有的没有),然后把baidumap.jar这个文件弄到libs文件夹里,将libBMapApiEngine_v1_3_3.so复制到工程目录下的libs\armeabi。
做好了这些前期工作便可可以开始实现百度地图了、
1、增加使用权限
使用百度地图是要用到网络通信的,所以我们必须的开启一些必要的权限。在Mainfest中添加使用权限。
<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>
2、在Mainfest中添加android版本支持
<supports-screens android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:rresizeable="true"
anddroid:anyDensity="true"/>
<uses_sdk android:minSdkVersion="3"></uses_sdk>
这里可能会出错、具体导致的原因我还不是很清楚、要是出错、可以先不写版本支持。同样可以实现、
3、布局文件中添加入地图面板也就是百度地图
<com.baidu.mapapi.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
4、创建一个Activity,并且继承com.baidu.mapapi.MapActivity,因为我们是对百度地图操作,其实质是我们重写他原有的Activity。
public class MainActivity extends MapActivity {
BMapManager mBMapMan=null;//地图管理者
MapView bMapView;//视图
LocationListener locationlistener;//位置动作监听器
MyLocationOverlay mLocationOverlay;//地图覆盖物
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBMapMan=new BMapManager(getApplication());//创建百度地图管理者
mBMapMan.init("你申请的key所对应的编码",null);//第一个参数就是你申请的key码
super.initMapActivity(mBMapMan);//初始化百度地图
bMapView=(MapView)findViewById(R.id.bmapView);//找到控件视图
bMapView.setBuiltInZoomControls(true);//设置启动内置的缩放控件
MapController mMapController =bMapView.getController();//得到bMapView的控制权,
//给定一个经纬度构造一个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);
上面涉及到的地图管理者:就是一个BMapManager类,地图、定位、搜索功能都需要BMapManager来管理,BMapManager提供四个接口,init, start, stop, destroy。建议在Application里生成BMapManager对象并初使化,在程序退出时调用destory,在需要使用sdk功能的activity的onCreate里调用start, onDestroy调用stop,或者onResume/onPause分别调用start和stop。
地图覆盖物是指覆盖或叠加到地图上的内容,比如一些图标,坐标什么的。比如定位图标就是一个覆盖物、
MapView就是整张的地图
这样上面只哟调用mBMapMan.start()方法启动管理者,便可以显示百度地图了。
接下来实现定位
//定义位置监听器
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);
}
}
};
protected void onResume(){
// 获取位置管理者,视图根据位置监听更新位置
mBMapMan.getLocationManager().requestLocationUpdates(locationlistener);
//打开定位图标
mLocationOverlay.enableMyLocation();
// 打开指南针
mLocationOverlay.enableCompass();
//启动管理着
mBMapMan.start();
super.onResume();
}
这样就实现了定位了、
调用地图MapVie对象的方法
可以显示交通路线图
//显示交通路线
bMapView.setTraffic(true);
卫星图
//显示卫星图
bMapView.setSatellite(true);
[/size]
分享到:
相关推荐
Android实现百度地图定位及自定义缩放图标
基于Android的百度地图车辆定位系统设计与实现 基于Android的百度地图车辆定位系统设计与实现 基于Android的百度地图车辆定位系统设计与实现 基于Android的百度地图车辆定位系统设计与实现 基于Android的百度...
APP中的百度地图定位功能
Android版百度地图定位自己位置,可实现卫星图和普通地图两个图层的切换。
1积分就可下载 Android安卓百度地图定位实现APP 下载即可用,显示地图、定位导航等文章说的功能 文章链接https://blog.csdn.net/u011752195/article/details/87887410
本人做的一个简单的Android studio 百度地图定位,里面的Key需要自己申请更换
主要介绍了基于Android实现百度地图定位过程详解,需要的朋友可以参考下
Android开发之百度地图定位打卡
通过Androidstudio3.0对于百度地图进行开发,主要实现通过经纬度修改定位,改变地图显示类型(普通、卫星、热力、实况等)
Android调用百度地图API实现定位
百度地图定位自己的位置~ 有需要的下载,
调用百度地图定位同时获取经纬度,应该要更改成自己的百度地图key值,还有手机别忘了开权限,打开GPS
使用android实现百度地图的定位功能及当前位置周边的兴趣点搜索
本代码实现了在androi平台上调用百度地图的开发包实现定位的功能,并描述了怎样在百度地图上画点,在执行代码前请将自己申请的百度地图的key替换
android,实现百度地图定位功能 ,代码清晰,能够实现基础定位功能,连续定位,室内定位
百度地图移动获取位置,自动定位
Android调用百度地图,支持Activity和Fragment调用。带有定位功能。
Android集成百度地图接口,实现定位+路径规划。 博客地址http://blog.csdn.net/dqksky/article/details/38848475
android开发百度地图定位功能实现,对程序员有一定的辅助作用.doc