linux 百度地图离线sdk,Android开放百度地图集成

本文详细介绍了如何在Android应用中集成和使用百度地图SDK。首先,你需要通过百度账号创建应用并获取AK,下载SDK并将其集成到项目中。接着,设置必要的权限和服务,如定位和地图显示。然后,初始化地图SDK并实现定位功能,包括移动地图、添加位置标记以及地理编码。最后,展示了如何添加覆盖物和线路。整个过程涵盖了百度地图SDK的主要功能和使用步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、创建应用 获取AK (我理解为Application key)

通过百度账号登录百度地图开放平台,进入API控制台 http://lbsyun.baidu.com/apiconsole/key 创建自己的应用,输入应用名称 ,选择Android SDK 应用类型,选择需要的服务(默认全选) 输入签名文件的SHA1,默认的签名文件debug.keystore 在 C:\Users\你的用户\.android下,然后打开控制台cd到此目录下 键入 keytool -v -list -keytore debug.keystore,就可以获取签名文件的SHA1了 注意复制时不要有空格,然后输入应用的包名,也不要输入错了,系统自己生成安全码,提交就创建完成了。

2、下载SDK,集成到自己的项目

选择需要的服务类型,然后下载SDK 也可以下载demo,http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download,下载完成后解压,将lib下面的jar和so文件放入工程的libs下面,compile fileTree(include: ['*.jar'], dir: 'libs') build.grade下有这个语句 就只需要 在android下添加 sourceSet{main {jniLib.Dir('libs')}}就可以了 这个地方百度开发文档说的有点模糊,也可以自己创建jniLib文件夹添加so文件,但不要同时都做。

然后在清单文件中添加权限 service(定位需要)mata(只需要改自己的ak就行),注意也别放错位置了。百度开发文档都有不在粘贴 http://lbsyun.baidu.com/index.php?title=androidsdk/guide/hellobaidumap。

3、展示地图 定位 添加覆盖物 地理编码等

在自己的xml文件中引入mapview,在Java代码中 初始化地图的SDK  SDKInitializer.initialize(getApplicationContext());获取mapview并且在activity的生命周期中实现mapview的周期 ,到目前位置,运行应用就可以看到地图的效果了,北京。

通过LocationClient 、BaiduMap、BDLocationListener实现定位功能 通过mapview获取baidumap 设置LocationClient 的参数 和监听器 ,实现BDLocationListener接口,然后开启定位 LocationClient.start(),通过接口回调的location就能获取位置等信息 。

通过纬度和经度改变地图所显示的位置和添加自己位置

a、移动地图的位置

LatLng ll = new LatLng(location.getLatitude(),

location.getLongitude());

MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);

// 移动到某经纬度

mBaiduMap.animateMapStatus(update);

b、添加自己的位置

mBaiduMap.setMyLocationEnabled(true);

// 构造定位数据

MyLocationData locData = new MyLocationData.Builder()

.accuracy(location.getRadius())

// 此处设置开发者获取到的方向信息,顺时针0-360

.direction(100).latitude(location.getLatitude())

.longitude(location.getLongitude()).build();

// 设置定位数据

mBaiduMap.setMyLocationData(locData);

c、通过mBaiduMap.addOverlay(option);添加覆盖物marker等 参考百度文档

//添加marker

//构建Marker图标

BitmapDescriptor bitmap = BitmapDescriptorFactory

.fromResource(drawable);

//构建MarkerOption,用于在地图上添加Marker

OverlayOptions option = new MarkerOptions()

.position(point)

.icon(bitmap);

//在地图上添加Marker,并显示

mBaiduMap.addOverlay(option);

d、添加线等,pts为一个集合List

OverlayOptions polylineOption = new PolylineOptions()

.points(pts).width(5).color(0XFFff0000)

;

mBaiduMap.addOverlay(polylineOption);

e、地理编码 输入一个位置返回经纬度

mSearch = GeoCoder.newInstance();获取实例对象 设置监听器,实现监听器接口OnGetGeoCoderResultListener ,回调的result就可以获取信息 ,注意都是异步的,当然也有反地理编码。

百度地图实现的功能很多,你能想到的 所需要的 都能提供。

0b1331709591d260c1c78e86d0c51c18.png

本人基于2017年12月最新API制作。 说明: 1)离线地图不是万能的, 有些依赖在线的功能是无法使用的, 请自行扩展 2)请查看 离线地图示例demo.html 里面的示例,或者查看地图API在线示例: http://developer.baidu.com/map/jsdemo.htm 3) 地图API请查看百度官方说明: http://developer.baidu.com/map/reference/index.php 4)如有更新,请查看网站: http://www.xiaoguo123.com/p/baidumap_offline_v21 5)此API用户大家交流学习,本人没有能力提供太多的技术帮助 6)由于某些用途导致的商业纠纷,和本人无关 新增: 1)支持显示卫星混合地图,瓦片图放到 tiles_hybrid 目录下 2)支持支定义混合图,瓦片图放到 tiles_self 目录下 3)增加根据城市名称设置地图中心, 请自行扩展map_city.js 4)增加鼠标测距示例 5)增加鼠标绘制线面示例 增加新的瓦片图: 1)使用地图下载工具(如太乐地图下载)下载你要的地区和级别 2)务必导出瓦片图(百度格式),可以选择导出jpg或png图形 3)按需要修改map_load.js,指定瓦片图的路径,或者按默认的来 4)目录说请看图片: 目录说明.jpg 基本的使用方法如下: 1)加载离线地图必须的文件: [removed][removed] <link rel="stylesheet" type="text/css" href="offlinemap/css/map.css"/> 2)增加一个容器用来显示地图 3)写JS脚本 [removed] var map = new BMap.Map("map_demo"); // 创建Map实例 map.centerAndZoom(new BMap.Point(116.404, 39.915), 7); // 初始化地图,设置中心点坐标和地图级别 map.setCurrentCity("武汉"); // 设置地图中心显示的城市 new! map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 map.addControl(new BMap.NavigationControl()); //缩放按钮 map.addControl(new BMap.MapTypeControl( {mapTypes: [BMAP_NORMAL_MAP,BMAP_HYBRID_MAP]} )); //添加地图类型控件 离线只支持普通、卫星地图; 三维不支持 [removed]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值