百度地图
,
导航
国内APP开发,只要有基于定位需求,就会关注一下
百度定位
1.
程序员关心的几个问题
- 百度地图定位SDK使用什么坐标系?
- 三种类型的坐标,分别是国测局坐标、百度墨卡托坐标和百度经纬度坐标
- 其中百度经纬度坐标能无偏差地显示在百度地图上
- 如果当前定位点为海外,默认且只能返回WGS84类型的坐标,即火星坐标
- 什么是国测局坐标、百度坐标、WGS84坐标?
- WGS84:表示GPS获取的坐标
- GCJ02:是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系
- BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中BD09II表示百度经纬度坐标,BD09MC表示百度墨卡托米制坐标
- 百度坐标为何有偏移?
- 国际经纬度坐标标准为WGS84,国内必须至少使用国测局制定的GCJ02坐标系对地理位置进行首次加密。百度坐标在此基础上,进行了二次加密措施,进一步保护了个人隐私
- 应用快速集成百度地图SDK步骤
- 1、 注册和获取密钥
- 2、 Android Studio配置
- 3、 开发注意事项
2.
百度地图SDK更新日志
2021
02.02 v7.2.0
【新增】
- 新增批量删除overlay接口。BaiduMap -> removeOverLays(List overlays);
【修复】
- 1、修复自定义指南针图标不生效问题。
- 2、修复自定义热力图清除缓存不生效问题。
- 3、修复步骑行导航震动提示引起的crash。
- 4、修复其他已知问题。
2020
02.13 v6.2.0
【新增】
- 1、驾车路线规划增加收费字段: toll。
- 2、新增绘制Polyline时, 是否需要对坐标点进行抽稀的接口 -> isThined(boolean isThined)。
- 3、步骑行导航新增获取导航底图的接口 -> getNaviMap()。
- 4、BitmapDescriptor增加清除缓存接口 -> clearCache()。
【修复】
- 1、修复某些地区ipv6网络环境较差的情况下,出现的底图加载网格问题。
- 2、修复绘制polyline时,设置纹理索引但不设置纹理列表和颜色而出现的崩溃问题。
- 3、修复计算点到直线的垂足问题。
- 4、修复绘制带有重复点的多纹理polyline时,部分颜色错乱的问题。
- 5、修复已知空指针等稳定性问题。
09.10 v7.0.0
【新增】
- 1、引擎架构升级,全面提升底图渲染效果和流畅度。
- 2、检索组件新增推荐上车点服务。
- 3、检索组件新增天气查询服务。
- 4、polyline绘制增加自定义拐角样式。
- 5、适配Android11 Beta版本。
【修复】
- 1、修复地图释放偶现的ANR问题。
- 2、修复添加或更新覆盖物和地图释放异步时偶现的crash问题。
- 3、修复其他已知问题。
2019
03.15
v5.3.0
-
室内导航新增
-
根据densityDpi构造BitmapDescriptor的接口,主要用于创建Marker,InfoWindow等Overlay的纹理图片新增
-
步骑行导航效果优化
-
多地图场景下的地图内存管理优化
-
室内图展示效果优化
08.03
v5.4.4
-
绘制性能、优化
内存优化
2018
2018.03
- 修复连续定位扫描不到WIFI时出现Crash的问题
2017
2017.02
- 新增移动热点判断功能,涉及接口:LocationClient.requestHotSpotState()
- LocationClient增加独立线程,修复异常情况下造成的ANR
2017.08
- 优化精准室内定位环境下,连续定位结果平滑性
- 优化调整发起定位请求为子线程,接收定位结果回调为主线程
- 新增Abstract类型的监听接口BDAbstractLocationListener,用于实现定位监听,原有BDLocationListener暂时保留,推荐开发者升级到Abstract类型的新监听接口使用
- 在BDAbstractLocationListener中新增onLocDiagnosticMessage方法,用于获取定位错误返回码等信息。具体错误码及说明,请参加类参考中的说明
- 在LocationClientOption中新增setWifiCacheTimeOut(int time)方法,用于设置WIFI有效期。如果开发者设置了这个接口,首次启动定位时,会先判断当前WIFI是否超出有效期,超出有效期的话,会先重新扫描WIFI,然后再定位,WIFI扫描大概需要1-2s的时间。本功能更适合于对首次定位精度要求高、对速度无要求的开发者
- 在BDLocation类中新增getLocationID()方法,用于获取定位唯一标识,这个标识只与定位本身相关。当开发者遇到定位问题时,可将这个唯一标识、出现问题时间及问题描述信息发送至[email protected]邮件组,我们会有专人支持解决
2017.12
- 优化精准室内定位环境下,连续定位结果平滑性。注意:使用带有室内精准定位的SDK版本时,需增加集成库文件libindoor.so
- 优化JNI代码,so库文件升级为liblocSDK7b.so
- 新增适配Android 8.0系统后台连续定位,在LocationClient类中新增方法enableLocInForeground(),用于开启前台定位模式,避免因App退后台时,系统影响正常定位
- 在基础定位模块中,类BDAbstractLocationListener中新增onLocDiagnosticMessage方法,用于回调定位问题诊断信息
- 在BDLocation类中新增getAdCode()方法,用于获取行政区划代码
- 新增辅助H5定位,在LocationClient类中新增方法enableAssistantLocation()方法,调用该方法启动H5辅助定位功能。结合JS API中的定位功能使用,可使JS API中的定位效果更佳
2016
- 2016.01 新增位置自动提醒功能
- 2016.03 修复Google Play检测到的https证书漏洞问题,全球定位服务全新升级
- 2016.08
- 按照功能不同,将原有SDK分为如下四种:基础定位,离线定位,室内定位,全量定位
- 加入国内外判断接口,涉及接口为:BDLocation.getLocationWhere()
- 加入网络定位返回海拔功能,涉及接口为:BDLocation.getAltitude()
- 加入室内外判断接口,涉及接口为:BDLocation.getUserIndoorState()
- 加入GPS质量判断接口,涉及接口为:BDLocation.getGpsAccuracyStatus()
2015
- 2015.04
- 优化初次定位速度,开启wifi时,平均首次定位时间达137ms,比竞品快57%
- 优化国外定位速度
- 2015.05
- BDLocation新增接口getcountry(),getCountryCode()接口
- 修复连续GPS定位时偶尔返回网络定位结果的问题
- 优化首次定位连续返回多个结果问题
- 2015.07
- 新版离线定位功能,速度精度全面升级
- 新增位置语义化/POI功能
- 国外定位地址信息为空问题
- 国际化定位cdma手机不能定位成功
- 2015.8 适配Android M版本
- 2015.10 国外定位某些情况城市返回为空
2014
- 2014.02
- 根据传感器信息获取方向信息功能
- 根据网络请求判断运营商属性功能
- 优化定位模式,修改之前GPS和网络定位优先模式为高精度定位模式,低功耗定位模式,仅用设备定位模式三种新模式
- 2014.06
- 升级地理围栏功能,增加地理围栏离开判断功能
- 缩减定位SDK开发包大小
- 2014.12
- 新增国外(全球)定位能力开放,直接替换开发包无需修改代码
- Android L 适配优化
- 修复GPS定位方式未返回地址的问题
2013
- 2013.02 优化定位性能,提高网络定位精度
- 2013.08
- 新增地理围栏服务
- 定位SDK加入key验证机制
2012
- 2012.05 初始化成功后,会立即进行一次定位,无论使用定时定位模式还是一次定位模式。即在service启动后,会立即进行定位,并调用BDLocationListener进行通知。修复了之前少数情况下坐标以及时间戳不准确的问题
- 2012.09 新增省/市/区分级地理信息查询功能
- 2012.12
- 新增离线定位功能:离线状态请求定位将返回缓存基站定位结果;
- 定位结果新增“是否需要地址信息”设置,默认返回结果无地址信息,从而节省流量
- 定位SDK架构升级各个app单独用自己的定位service,避免各个app共用1个servcie出现的权限问题
2011
- 2011.08 Android定位SDK正式上线,实现基础定位能力
- 2011.11 增加超时限制,超过15秒,在onReceiveListener中接收到的串是"InternetException",而不是json串
参考
- SHA1的获取方法