对于百度地图的使用你需要有一个前提,即你已经搭建好了java JDK 和android SDK还有eclipse平台。保证自己的电脑能够运行android项目。
准备条件:
第一步,获取百度移动地图API密钥。
打开网址
http://dev.baidu.com/wiki/static/imap/key/,然后完成页面上面的要求就可以得到android Api密钥(用于学习百度地图的使用,Api是免费的)
第二步,下载得到百度API开发包。
http://dev.baidu.com/wiki/imap/index.php?title=Android%E5%B9%B3%E5%8F%B0,找到相关下载,然后下载API开发包。在API开发包中存在2个文件,一个是baidumapapi.jar,还有一个是libBMapApiEngine_v1_3_3.so,这两个文件的作用在下面细说。
项目制作:
第一,创建一个android工程项目,然后引入baidumapapi.jar文件到项目中去。
右键项目名,找到Properties,在目录下找到->java Build Path-接着在>Libraries中选择"Add External JARs",找到并选定baidumapapi.jar确定后返回,这样就可以在自己的项目中使用百度地图API了。
第二,将baidumapapi.jar拷贝到libs目录下,将libBMapApiEngine_v1_3_3.so拷贝到libs\armeabi目录下。如果libs包不存在,那么可以自己新建一个,建立libs在src同层。
baidumapapi.jar的作用是提供百度已经封装好的类的集合,有些功能我们可以直接调用这些类的接口就可以直接使用,libBMapApiEngine_v1_3_3.so的作用是百度地图API使用驱动。
这两个文件的引入一定要做的,如果没有将baidumapapi.jar添加到libs中,android程序就会无法运行MapActivity,它就会报一个错ClassNotFound(没有找到Activity类)。如果没有将libBMapApiEngine_v1_3_3.so添加,则会报一个错initClass(初始化BMapManager错误)。
第三,增加使用权限。
使用百度地图是要用到网络通信的,所以我们必须的开启一些必要的权限。在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>
这里就不解释为什么需要这些权限,
第四,在Mainfest中添加android版本支持
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true" />
<uses-sdk android:minSdkVersion="3" >
</uses-sdk>
第五,将Activity继承com.baidu.mapapi.MapActivity
public class MyMapActivity extends MapActivity
{
public void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
setContentView(R.id.main);s
}
protected boolean isRouteDisplyed(){
return false;
}
第六,在xml中设计布局和添加地图控件
添加地图控件的源码是
<com.baidu.mapapi.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
第七,初始化自己项目Activity和初始化地图Activity
为什么要初始化地图Activity呢?百度也不是平白无故的就让你操作他的成果的,所以在这里你需要初始化他,并且将你申请的Key使用上。
BMapManager mBMapMan=null;
mBMapMan=new BMapManager(getApplication());
mBMapMan.init("申请的密钥",MyMapListener);
super.initMapActivity(mBMapMan);
MapView bMapView=(mapView)findViewById(R.id.mapView);
bMapView.setBuiltInZoomControls(true);
MapController mMapController =bMapView.getController();
//得到bMapView的控制权,以用它来控制和驱动平移和缩放
GeoPoint point=new GeoPoint ((int)(39.915*1E6),(int)(116.4.4*1E6),)
//给定一个经纬度构造一个GeoPoint ,单位是微度(度*1E6),这里一定要加单位,不然会显示不出地图信息。
//下面这个则是使地图显示的位置定位在point位置
mMapController.setCenter(point);
mMapController.setZoom(12);
重写下面的方法,管理API
protected void onDestroy(){
if(mBMapMan!=null){
mBMapMan.destroy();
mBMapMan=null;
}s
uper.onDestroy();
}
protected void onPause(){
if(mBMapMan!=null)
{
mBMapMan.stop();
}
super.onPause();
}
protected void onResume(){
if(mBMapMan!=null){
mBMapMan.start();
}
super.onResume();
}
最后运行程序,就产生了百度地图界面。
上面代码运行的结果呢,第一是显示百度地图,第二是实现定位。
分享到:
相关推荐
H5 百度地图使用demo+地图基础知识+开发者平台及相关地址 * Geolocation - 地理定位 * 概述 * 定位 - GPS(百度地图) * 经度和纬度 - 存在误差 * GPS依靠卫星定位 - 速度+精确度 * 网络是否畅通 - 隧道时 * ...
百度地图使用 demo 可以快速掌握百度地图的api 案例
百度地图使用demo
一个很好的android中百度地图使用的例子
四个项目百度地图使用总结(内含所有代码及注释和相关功能的使用)
百度地图开发所使用的jar包包,可以下载直接引用
在VS上使用百度地图实现的例程,提供常用操作演示,包括地图显示以及标识。
最全的百度地图Demo,覆盖物,UI控制,POI搜索,路径规划,定位,公交线路查询等等,想要的例子里面都有!
次百度地图案例中可进行兴趣点查询,标记物,覆盖物,热力图等
由于公司需求,自己修改的离线地图API....1.支持使用google地图瓦片(不建议使用,效率不高,缩放级别较高时拖动有些卡顿,建议注释该代码块:overlayTileLayer.getTilesUrl,使用google转baidu的jar转换代码,源码文章:...
将百度接口开放出来的接口,以自己理解的方式封装成一个案例
百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持PC端和移动端基于
安卓java如何调用百度地图,其中包含多种调用方式。
百度地图实现的几种效果,代码有注释,仅供参考
百度api一般只能显示省市县边界,这个是寻找乡镇边界方法以及调用显示边界轮廓实例,经我实测的,确保可用(文档最后是代码)
本资源实现了,百度地图定位,指定坐标码显示指定地点,并通过Web应用程序接口访问服务端的数据坐标,将坐标显示于手机地图上。
本程序使用leaflet加载百度地图,大多数的地图都使用84坐标系,对百度地图并不支持,因此本程序演示如何加载百度地图
jquery-1.6.2.js,为方便读者使用统一版本上传至此。代码中太长,超出文章字数限制,所以只能以文件形式上传。
这是参照百度Dome自己做的一个定位,很简单