[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]

更多相关文章

  1. android加载mapview
  2. Android(安卓)Location服务之Geocoder
  3. Android百度地图SDK:隐藏比例尺,隐藏百度LOGO,隐藏缩放控件
  4. 【技术直通车】ArcGIS for Android地图控件的5大常见操作
  5. Android使用Google提供的地图实现定位时LocationListener的各个
  6. 百度Android开发面试题
  7. android关于百度地图显示网格问题
  8. android 使用基站 wifi定位
  9. Android(安卓)使用 aria2c + 百度网盘助手下载百度云文件

随机推荐

  1. Rect、RectF矩形类
  2. ArcGIS for Android示例解析之地图基础--
  3. 当Android遇见HTTP缓存代理服务器
  4. Android(安卓)可拖动的进度条:SeekBar之简
  5. Android数据读取之Sqlite数据库操作
  6. 彻底弄懂Activity的启动模式和任务栈
  7. Android源码阅读技巧--查找开发者选项中
  8. Android程序的调试--善用Log
  9. Android(安卓)显示单位dip、px、pt、sp的
  10. 开发任意网站Android客户端