对于百度地图的使用你需要有一个前提,即你已经搭建好了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依靠卫星定位 - 速度+精确度 * 网络是否畅通 - 隧道时 * ...
【标题】:“百度地图使用方法” 【正文】: 在当今数字化时代,地图API已经成为开发者们构建应用程序不可或缺的一部分,特别是对于那些需要地理位置服务的应用。百度地图API是一个强大的工具,它允许开发者在自己...
【标题】"百度地图使用Demo--全"是一个包含多种百度地图功能示例的综合资源,旨在帮助开发者全面理解和掌握如何在应用中集成和利用百度地图API。这个压缩包中的"BMADemo"很可能是包含了各种功能模块的源代码或者演示...
在本资源中,作者分享了四个实际项目中关于百度地图使用的综合经验,涵盖了从基本功能到高级应用的各种示例代码,旨在帮助开发者更好地理解和运用百度地图API。以下是对这些知识点的详细阐述: 1. **百度地图API...
本文将深入探讨“百度地图使用demo”的相关知识点,通过分析`BaiduMapsApiASDemo`和`BaiduMapsApiDemo`两个示例项目,来揭示如何有效地利用百度地图API进行开发。 首先,我们要理解百度地图API的基本概念。API...
百度地图使用 demo 可以快速掌握百度地图的api 案例
然而,由于百度地图使用的是自己的坐标系统(BD-09),与常见的WGS84坐标系不同,所以在使用Leaflet时直接加载百度地图会遇到兼容性问题。本教程将详细讲解如何通过Leaflet成功加载并显示百度地图。 首先,我们需要...
2. **坐标系统转换**:百度地图使用GCJ-02坐标系统,而Mapbox通常使用WGS84。为了正确显示百度地图切片,需要进行坐标转换。可以使用第三方库如proj4js进行转换。 3. **获取百度地图切片**:利用百度地图API,通过...
百度地图开发所使用的jar包包,可以下载直接引用
一个值得注意的是,百度地图使用的是百度墨卡托坐标系,而Leaflet默认使用WGS84坐标系。幸运的是,描述中提到在加载百度地图时,坐标无需转换,可以直接根据经纬度正确显示。这意味着Leaflet或所使用的库已经处理了...
同时,我们还需要处理百度地图特有的坐标系统转换,因为百度地图使用的是自己的坐标系,而ArcGIS API通常使用Web Mercator坐标系。 2. **百度地图服务接口**: 百度地图提供了公开的Web服务接口,可以获取地图的...
1. **坐标系统转换**:百度地图使用的是百度坐标系,与常见的WGS84坐标系不同,工具需进行坐标转换,确保下载的瓦片准确无误地对应到真实地理位置。 2. **范围选择**:用户可以指定需要下载的地图区域,例如通过...
解决:使用百度地图静态图处理( http://lbsyun.baidu.com/index.php?title=static ),这时域名确定了( http://api.map.baidu.com ),可以用反向代理来解决跨域 <!--html--> <el-image :src=`/baidu-...
2. **坐标系转换**:由于OpenLayers和百度地图使用不同的坐标系统,需要进行坐标转换,通常使用`ol.proj.transform()`函数来实现。 3. **加载百度地图图层**:在OpenLayers 5中创建一个TileLayer实例,并设置其URL...
6. **坐标转换**:百度地图使用的是GCJ-02(火星坐标)编码,而Delphi通常使用的经纬度是WGS84标准。因此,源码中可能包含坐标系统的转换函数。 7. **用户交互**:地图应用通常需要处理用户的拖动、缩放等操作。这...
百度地图使用瓦片系统来提供服务,用户可以通过下载特定区域的地图瓦片,在离线时查看这些区域。 “全能地图下载器-MapTileDownloader”是一个工具,它的主要功能是帮助用户从百度地图服务器上下载所需的地图瓦片。...
本教程将深入探讨如何在iOS应用中使用百度地图API,让你的App轻松实现地图功能。 首先,你需要在百度地图开放平台(http://lbsyun.baidu.com/)注册账号并创建应用,获取API密钥(Key)。这个Key是连接你的应用和...
百度地图的使用需要在AndroidManifest.xml文件中声明一些必要的权限,例如访问网络、位置等: ```xml ``` 3. **初始化地图**: 在Activity中,我们需要初始化百度地图控件。创建MapView对象,并在布局文件...
百度地图使用的是自定义的坐标系统(BD09),这可能与Leaflet的默认投影(WGS84)不一致。确保在创建地图实例时指定正确的坐标系统(如上述代码中的`L.CRS.BD09`)。 5. **检查API限制**: 确保你的百度地图API...