Android下如何使用百度地图sdk

百度地图 Android SDK是一套基于Android 2.1(v1.3.5及以前版本支持android 1.5以上系统)及以上版本设备的应用程序接口
 

可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的LBS(地图类)应用程序。

百度地图Android SDK提供的所有服务是免费的,接口使用无次数限制。您需申请密钥(key)后,才可使用百度地图Android SDK。任何非营利性产品请直接使用。这弦外之音就是盈利的产品必须帮百度给钱。

一、百度地图api平台。

百度地图API网址:http://developer.baidu.com/map/sdk-android.htm

百度地图开发步骤是

①获取密钥
②申请新密钥及查看原先申请的密钥
③开发指南 在安卓平台上使用百度地图的开发指南
④类参考 地图库所提供的类及方法说明相关下载
⑤开发所使用的相关包及说明示例下例

哝,这就是百度地图的apk平台的界面:

首先,我们来申请key。

步骤也非常的简单:

①点击获取密钥 ②进入密钥申请页并阅读相关的使用条款 ③勾选 已阅读并同意条款 ④填写应用名称 填写一下应用的相应功能及描述 ⑤输入验证码确定后 ⑥密钥即可申请成功

我申请的key如下图所示:

如何把申请下来的jar包导入到项目中了。

一、在工程里新建libs文件夹(若不存在的话),将开发包里的baidumapapi_v2_1_1.jar 拷贝到libs根目录下,将libapp_BaiduMapApplib_v2_1_1.so和libvi_voslib.so 拷贝到libsarmeabi目录下。

二、项目属性中Java Build Path->Order and Export中,确定Android Private Libaries与Android Dependencies这两项前面的选择框被选上后,

三、点确定 菜单Project->clean重新编译项目后就可以正常使用地图中的功能进行编程了。

四、上图包中的liblockSDK3.1.jar及对应的so文件是用于定位与搜索功能的,如果不需要可以不加入到项目当中

jar包的架构如下图所示:

到入jar包的样子也如下图所示:

在清单文件下,要添加一下的权限。

<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true"  android:resizeable="true" android:smallScreens="true" />

对需要加载地图的Activity进行属性设置

<activity android:name="com.dfrz.map.DFRZMapActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:label="@string/app_name" android:screenOrientation="sensor" > </activity>

这些准备工作做好以后,我们需要到入相应的map控件

<com.baidu.mapapi.map.MapView android:id="@+id/bmapsView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:clickable="true" />

上述xml的源代码就是这个就是加载百度地图的控件框,这个布局你可以根据自己的需要进行调整,或是放置到你的Activity需要的地方去。此控件需要接收到点击事件,所以需要把clickable设置成true。

百度的地图的原理就是这样的。。。。。。。。。。。

地图、定位、搜索功能都需要用BMapManager对象来管理, BMapManager提供四个接口:init()、start()、stop()、destroy()。在应用程序里生成BMapManager 对象并初始化,在程序退出时调用destroy(),在需要使用sdk功能的Activity的onCreate()方法里调用start()方 法,onDestroy()方法里调用stop()方法,或者onResume()/onPause()分别调用start()和stop()。 常用方法: destroy() : 在程序退出前调用  boolean init(java.lang.String strKey, MKGeneralListener  listener) 初始化地图引擎,需要送入申请的百度地图Key boolean start() :开启百度地图API  boolean stop(): 终止百度地图API,调用此函数后,不会再发生回调。

MapView——百度地图的显示者。

一个显示地图的视图控件,当被焦点选中时,它能捕获按键事件和触摸手势去平移和缩放地图 setBuiltInZoomControls(boolean on):设置是否启用内置的缩放控件 getController():返回地图的MapController,这个对象可用于控制和驱动平移和缩放 setDoubleClickZooming(boolean bDoubleClickZooming) : 设置mapview是否支持双击放大效果 getOverlays():获取当时地图控件中的已有图层 refresh(): 刷新此地图控件。

怎么用百度地图实现了定位了,这就需要LocationClient

定位处理功能的核心类 registerLocationListener(BDLocationListener)接收到定位数据后可由指定监听器中的 onReceiveLocation(BDLocation)的方法来接收相关的数据并做相关的处理 构造: new LocationClient(getApplicationContext()) setLocOption(LocationClientOption)设置定位的参数 start()启动定位功能,此功能是持续的,可以定义间隔刷新时间 stop()结束定位功能,但前面设置的定位参数不会消失,可以再启动 requestLocation() 发起异步定位请求,如果位置没有变化,不会发起网络请求,直接返回上次的位置。(2次间隔需要大于1秒)

LocationClientOption  用于定位的操作的类。

设置定位功能的定位方式 disableCache(boolean) 真表示禁用缓存定位 setOpenGPS(boolean) 是否使用GPS定位,前提是手机打开了GPS定位 setAddrType(String) 当字串为"all"时返回此位置地址信息,其它不返回 setCoorType(String) 设置返回坐标的格式 gcj02 - 国测局 bd09百度墨卡托 bd0911百度经纬坐标(手机默认) setScanSpan(int) 定时定位的时间间隔(ms) 此值大于1000时,每隔此值指定的时间就会发起一次定位 此值小于1000时或不设置此值时,调用一次requestLocation()方法则定位一次

这是我们需要定义mainactivity的类。相应源代码如图所示:

protected void onDestroy() { mapView.destroy(); if (mapManager != null) { mapManager.destroy(); mapManager = null; } super.onDestroy(); }

有了这些准备以后,相应运行的效果如下:

这就是android下百度地图应用的大概步骤。

时间: 2024-09-11 00:32:33

Android下如何使用百度地图sdk的相关文章

Android下如何使用百度地图sdk_Android

可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富.交互性强的LBS(地图类)应用程序. 百度地图Android SDK提供的所有服务是免费的,接口使用无次数限制.您需申请密钥(key)后,才可使用百度地图Android SDK.任何非营利性产品请直接使用.这弦外之音就是盈利的产品必须帮百度给钱. 一.百度地图api平台. 百度地图API网址:http://developer.baidu.com/map/sd

百度地图SDK for android 地图移动,marker不动,如何实现

问题描述 百度地图SDK for android 地图移动,marker不动,如何实现 要做的效果是:滴滴打车中的效果,即移动地图,marker始终在地图中央,并且地铁停止移动后,检测到结果然后显示出来如何实现, 解决方案 它这种形式的就不是marker了. 百度地图的marker是跟随者地图的移动而移动的.所以你就不能用marker来实现了. 我的思路是:你可以在地图可视区域上面添加一个view,用来显示图标.用framelayout来实现. 然后在通过获取地图中心点来做逻辑处理. 可以参考:

在Android应用中使用百度地图api

本篇通过一个简单的示例一步步介绍如何在Android应用中使用百度地图api. 1)下载百度地图移动版 API(Android)开发包 要在Android应用中使用百度地图API,就需要在工程中引用百度地图API开发包,这个 开发包包含两个文件:baidumapapi.jar和libBMapApiEngine.so.下载地址: http://dev.baidu.com/wiki/static/imap/files/BaiduMapApi_Lib_Android_1.0.zip 2)申请API K

sdk-在调用百度地图Sdk时出现以下报错,改如何解决?

问题描述 在调用百度地图Sdk时出现以下报错,改如何解决? 03-28 00:03:17.710: I/System.out(1125): so Failed to load. 03-28 00:03:17.770: W/dalvikvm(1125): No implementation found for native Lcom/baidu/platform/comjni/map/commonmemcache/JNICommonMemCache;.Create:()I 03-28 00:03:

sdk-一个关于利用百度地图SDK将地图显示在手机上面的问题

问题描述 一个关于利用百度地图SDK将地图显示在手机上面的问题 我都是按照书上做的,刚学: 1 首先下载百度地图SDK如图所示 2 我将.jar文件复制到libs目录下,又把.so文件复制到armeabi目录下计算"> 3 然后我写main方法 4 然后是xml文件 5最后是manifester文件 权限什么的我已经添加完了,很全的,没问题,只是一进去就崩溃,这是为什么呀,我感觉有两个原因, 首先是mapview组件有问题,在lauout文件中:或者我也不知道了,求大神们帮帮我,我写的很认

sdk-Android 的百度地图SDK问题

问题描述 Android 的百度地图SDK问题 我现在写的一个程序,得到了当前位置和经纬度之类的各种信息,然后点击按钮,会启动"百度地图"这个App,怎么才能把这个位置信息直接传给百度App上的地址填写栏呢,求大神指点 解决方案 android studio集成百度地图sdk所遇问题Android 定位问题和百度地图SDK使用百度地图Android版SDK离线地图 解决方案二: 如果百度没提供接口,你就别想了,你可以在自己的app里潜入百度地图,自己做搜索,不难,都是人家提供好的sdk

iOS 版百度地图 SDK 满视口显示一组大头针

iOS 版百度地图 SDK 满视口显示一组大头针 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 参考以下两个链接文章内容: http://www.bkjia.com/IOSjc/817431.

android开发,使用百度地图api,要实现点击按钮转到MapActivity,结果闪退是怎么回事

问题描述 android开发,使用百度地图api,要实现点击按钮转到MapActivity,结果闪退是怎么回事 android开发,使用了百度地图api,想要实现点击按钮转到MapActivity,结果是点击按钮就闪退了,报错如下,说MapActivity不能初始化?什么意思?是哪错了?求原因... 解决方案 看你的错误提示,好像是百度的sdk初始化有问题,你看看人家网站上的开发指导,按照去做 解决方案二: 初始化的时候 最好使用全局context getApplicationContext()

在android studio上运行百度地图

问题描述 在android studio上运行百度地图 在真机上和genymotion上面运行的不一样 然后我朋友说可能.so文件少了..我也不清楚.. 真机运行出现error opening trace file: No such file or directory 解决方案 Android Studio配置百度地图开发环境 解决方案二: 官方sdk少了点东西 去官方的Demo里拷 解决方案三: 解决方案四: 解决方案五: Genymotion上,定位的位置为非洲西海岸(经纬度为0,0,将地图