022-地图系列02-iOS百度地图版本及分类
一、iOS百度地图分类
按照大模块可以分为五大块
-
地图
-
定位
-
鹰眼轨迹
-
导航
-
全景
二、地图
地图要求iOS7.0以上。
1.地图
1.1普通地图。又分为2D,3D!
1.2卫星地图。
1.3实时交通地图。
1.4热力地图。
地图操作:可通过接口或手势控制来实现地图的点击、双击、长按、缩放、旋转、改变视角等操作。
基本手势如下:
-
双击:放大双击的区域地图。
-
双指双击:缩小地图。
-
缩放:放大或者缩小地图。
-
旋转:旋转地图。
-
其他手势等等。。。
地图使用示例
2.室内图
自v3.0起,百度地图SDK室内图功能正式上线,辅助开发者实现全新的地理位置服务体验,室内地图与百度地图App同步更新。
支持的公众建筑包含购物商场、机场和火车站等交通枢纽,医院等,覆盖全国4000+个大型购物中心。
室内图使用示例
3.个性化地图
支持使用个性化地图模板,改变底图颜色和样式。
-
使用个性化模板,实现地图元素的颜色设置,地图元素包含大地、水系、绿地、高速、普通道路、铁路、地铁,POI等,以及POI和道路的文字颜色设置。
-
通过可见属性,控制显示地图元素。
个性化地图使用示例
4.地图覆盖物
百度地图SDK支持多种地图覆盖物,帮助您展示更丰富的地图。
-
支持的各种地图覆盖物:地图标注(Marker)、几何图形(点、折线、弧线、多边形等)、POI检索结果覆盖物、线路规划结果覆盖物等。
-
自定义图层:定位图层、地形图图层、热力图图层、瓦片图层。
5.POI检索
支持周边检索、区域检索、城市内检索和Place详情信息检索。
-
周边检索:以某一点为中心,指定距离为半径,根据用户输入的关键词进行POI检索;
-
区域检索:在指定矩形区域内、根据关键词进行POI检索;
-
城市内检索:在某一城市内,根据用户输入的关键字进行POI检索;
-
POI详情检索:根据POI的ID信息,检索该兴趣点的详情。
POI检索使用示例
6.地理编码
提供地理坐标和地址之间相互转换的能力。
-
正向地理编码:实现了将中文地址或地名描述转换为地球表面上相应位置的功能。
-
反向地理编码:将地球表面的地理坐标转换为标准地址的过程。
地理编码使用示例
7.线路规划
支持公交信息查询、公交换乘查询、公交/驾车/骑行/步行线路规划。
-
公交信息查询:可对公交详细信息进行查询;
-
跨城公共交通查询:根据起、终点,查询策略,进行线路规划方案,支持飞机,火车、大巴、公
交等多种出行方式; -
驾车线路规划:提供不同策略,规划驾车路线(支持设置途经点);
-
步行线路规划:根据起、终点,进行步行路线规划方案;
-
骑行线路规划:支持自行车骑行规划,支持跨城骑行路线规划方案。
线路规划使用示例
8.定位
定位是一个重要的模块。单独做成一个库。
结合地图SDK中我的位置图层进行丰富的位置展示(包括普通模式、跟随模式、罗盘模式和普通模式结合罗盘模式),支持定位精度圈内和精度圈边框的颜色变更。
定位使用示例
9.3D Touch
自v3.0起,支持3D Touch。
使用3D Touch手势,用力点按地图上某一位置,可以快速路线规划或导航至此、分享当前位置短地址等功能,充分发挥开发者的创造力。
3D Touch及手势使用示例
10.离线地图
用户可以通过SDK在线下载离线包接口,下载离线地图包,使用离线地图可节省用户流量,提供更好的地图展示效果。
离线地图使用示例
11.LBS云
百度地图LBS云是百度地图针对LBS开发者全新推出的平台级服务,不仅适用PC应用开发,同时适用移动设备应用的开发。
- 检索自有LBS云数据。可以实现移动开发者存储海量位置数据的服务器零成本及维护压力,且支持高效检索用户数据,且实现地图展现。
检索自有LBS云使用示例
- 检索自有逆地理编码。开发者可自定义用于进行逆地理编码计算的地理数据,以训练出最适用于真实业务场景的位置描述服务。
检索自有逆地理编码使用示例
12.周边雷达
周边雷达功能,是面向移动端开发者的一套SDK功能接口。同步支持Android和iOS端。
它的本质是一个连接百度LBS开放平台前端SDK产品和后端LBS云的中间服务。开发者利用周边雷达功能,可以便捷的在自己的应用内,帮助用户实现查找周边跟“我”使同样一款App的人,这样一个功能。
周边雷达使用示例
13.位置短地址分享
位置短地址分享
位置短地址分享(简称短串分享):用户搜索查询后得到的每一个地理位置结果将会对应一条短串(短链接),用户可以通过短信、邮件或第三方分享组件(如微博、微信等)把短串分享给其他用户从而实现地理位置信息的分享。
当其他用户收到分享的短串后,点击短串即可打开手机上的百度地图客户端或者手机浏览器进行查看。
短串分享功能开放了以下功能:
-
POI详情分享。
-
驾车/公交/骑行/步行路线规划分享。
-
位置信息分享(反向地理编码结果分享)。
位置短地址分享使用示例
14.调启百度地图
利用SDK接口,直接在本地打开百度地图客户端或WebApp,实现地图功能。
支持调启的功能有:
POI周边检索、POI详情页面、步行线路规划、驾车线路规划、公交线路规划、驾车导航、步行导航、骑行导航。
调启百度地图使用示例
三、定位
百度地图iOS定位SDK,是百度地图开放平台面向广大iOS端移动应用开发者全新推出的一款定位服务产品。开发者在自己的iOS移动应用中集成定位SDK,可轻松实现获取当前位置信息的功能。
百度地图iOS定位SDK以iOS系统定位能力为基础,在此基础之上,面向广大开发者提供了更多丰富功能,包括:地址解析、位置描述、移动热点识别、地理围栏、国内外位置判断等功能。
地理围栏使用示例
移动热点识别使用示例
四、鹰眼轨迹
鹰眼是一套轨迹管理服务,提供各端SDK和API供开发者便捷接入,追踪您所管理的车辆/人员等运动物体。基于鹰眼提供的接口和云端服务,开发者可以迅速构建一套完全属于您自己的完整、精准且高性能的轨迹管理系统,可应用于车队管理、人员管理等领域。鹰眼iOS SDK是鹰眼系列产品的一部分,用于在iOS APP中集成鹰眼服务,实现轨迹追踪。
image.png功能概览:
轨迹追踪
鹰眼为每一个应用提供1000万终端以上轨迹管理能力,并且支持全球轨迹追踪。鹰眼提供多种API和SDK供开发者从各种终端追踪轨迹,如:手机、GPS定位器、智能后视镜等硬件设备。此外,鹰眼也支持开发者从服务端上传轨迹。
轨迹存储
鹰眼为开发者免费存储最近1年的轨迹数据。鹰眼采用多机房多实例分布式存储,并定期自动备份,保障数据存储安全。
轨迹查询
利用鹰眼高性能轨迹查询服务,开发者实时查询任意时段的轨迹。实时查询是指:轨迹点一旦成功上传到鹰眼云端,在小于100毫秒的时间内,即可通过接口查询到该轨迹点。鹰眼还提供轨迹批量导出功能,供开发者下载历史轨迹数据。
轨迹纠偏和里程计算
为纠正轨迹漂移,鹰眼提供专业的轨迹纠偏绑路和里程计算服务。利用该服务,开发者可纠正轨迹漂移,展示平滑连贯的轨迹,计算准确的里程。鹰眼分别针对驾车、骑行、步行提供了不同的轨迹纠偏绑路算法,适用于多种交通方式的轨迹校正。
空间检索
鹰眼提供丰富的空间搜索能力,支持搜索圆形、多边形、行政区范围内的终端实时位置,并统计终端数量。利用该服务,开发者可实现例如:搜索当前地图视野内的终端、北京市内的终端等功能。
地理围栏监控
鹰眼提供地理围栏监控服务,开发者可利用鹰眼创建多边形、路线、行政区等类型的地理围栏,鹰眼自动监控终端进出围栏行为,并推送报警至鹰眼SDK或开发者服务端。利用该服务,开发者可实现例如:利用行政区围栏监控车辆是否驶出海淀区、利用多边形围栏监控物流车辆是否准时到达站点等功能。
轨迹分析
鹰眼为开发者提供停留点、超速(基于道路限速)、急变速等运动行为分析。利用该服务,开发者可分析一段轨迹中有哪些停留点、在何处出现了超速等危险驾驶行为。
图像存储
除轨迹外,鹰眼还支持图像数据的上传,帮助开发者管理与轨迹相关的图像数据(如:行车影像、签到照片、事故照片等)。(注:目前鹰眼iOS SDK暂不支持图像上传功能)
鹰眼服务流程
image.png五、导航
百度iOS导航SDK是一套基于iOS 7及以上版本设备的应用程序接口。您可以使用该套 SDK开发适用于iOS系统移动设备的导航应用,通过调用导航SDK接口,您可以轻松访问百度导航的服务和数据,构建功能丰富、交互性强的导航类应用程序。
百度iOS导航SDK提供的所有服务是免费的,接口使用无次数限制。
功能介绍
1.GPS导航
导航地图控制:放大、缩小、2D视角、3D视角。
导航信息展示:转向标、路口放大图、路线信息、道路信息、电子眼、限速播报、比例尺等等。
image.png2.路线全览
导航过程中点击路线全览按钮进入路线全览模式,路线全览模式可以展示导航路线上的路况信息。
image.png3.文字导航
文字导航由简单的诱导信息和语音播放组成。
image.png4.HUD导航
HUD夜间模式,方便用户夜间驾车,避免了分散对前方道路的注意力。
image.png5.语音播报
使用TTS模块播报相应的诱导语音,暂时支持中文。
image.png6.实时路况
在导航过程中可以通过路况开关,开启实时路况了解路况信息。
image.png7.路线规划
通过输入起点与终点,可以发起路线规划。
image.png8.GPS巡航
不用输入起点终点,准确探测前方电子眼信息。
image.png语音播报使用示例
六、全景
百度iOS全景SDK是为iOS移动平台提供的一套全景图服务接口,面向广大开发者提供全景图的检索、显示和交互功能,从而更加清晰方便地展示目标位置的周边环境。
功能介绍:
1.检索全景图
根据商户ID、坐标信息和全景ID显示全景图。
输入百度地图通用的poi id,即可通过全景查看该商户的门口位置或内部环境。
输入地点坐标信息,将返回该地点附近的全景场景点信息。
输入全景ID,可直接检索到该全景场景点。
image.png2.展示全景图
创建全景图层,调取全景数据,将360°全景图展现在手机中。
image.png3.全景基本交互
在全景图中通过手势操作实现基本交互,包括点击、双击、缩放、旋转以及通过拓扑箭头实现前进等操作。
image.png4.全景覆盖物
在全景图中添加自定义覆盖物,可以标注目标地点、指引道路方向等,满足开发者的多元化需求。
image.png全景图覆盖物使用示例
七、版本总结
今天是2018年3月31号。目前版本总结如下:
1.地图
地图SDK下载地址
image.png-
2018.01.23 v3.4.4
新版提示
1、自v3.2.0起,百度地图iOS SDK全面支持HTTPS,需要广大开发者导入第三方openssl静态库:libssl.a和libcrypto.a(存放于thirdlib目录下)。
添加方法:在 TARGETS->Build Phases-> Link Binary With Libaries中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择libssl.a和libcrypto.a添加到工程中 。
2、支持CocoaPods导入
pod setup //更新CocoPods的本地库
pod search BaiduMapKit //查看最新地图SDK
新增
1.新增 BMKConvertToBaiduMercatorFromBD09LL 与 BMKConvertToBD09LLFromBaiduMercator 方法,用于百度经纬度和百度墨卡托之间的转换。
2.新增 CLLocationCoordinate2D BMKCoordTrans(CLLocationCoordinate2D coordinate, BMK_COORD_TYPE fromType, BMK_COORD_TYPE toType); 方法,支持WGS84LL->BD09LL, GCJ02LL->BD09LL, BD09LL->GCJ02LL三种经纬度之间的直接转换。
修复
1.支持iOS11系统定位权限
2.个性化地图部分catlog不显示的问题
3.室内图无背景色的问题
4.polygon绘制大量节点折线,超出数量,产生飞线问题
5.部分场景下,点击离线地图crash的问题
-
2017.10.19 v3.4.2
新版提示
1、百度地图iOS SDK v3.4.0及以上版本仅支持iOS 7.0及以上系统。
2、自v3.2.0起,百度地图iOS SDK全面支持HTTPS,需要广大开发者导入第三方openssl静态库:libssl.a和libcrypto.a(存放于thirdlib目录下)
添加方法:在 TARGETS->Build Phases-> Link Binary With Libaries中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择libssl.a和libcrypto.a添加到工程中 。
3、支持CocoaPods导入
pod setup //更新CocoPods的本地库
pod search BaiduMapKit //查看最新地图SDK
修复
1.修复多页面多地图场景下,切换页面导致的crash问题。
2.修复检索对象对delegate的强引用问题。
3.修复在一些罕见场景下,Bugly报告的crash问题。
4.修复第一次通过setBuildingsEnabled接口设置不显示3D楼块效果失效的BUG。
优化
1.删除annotation后,不再删除其对应的annotationView的subView。开发者dequeue出可重用的annotationView后,为了避免内容堆叠问题,可以自行去避免,如remove subview或者使用不同的reuseIdentifier等。
2.每个reuseIdentifier可缓存多个annotationView,当开发者removeAnnotation时,SDK会将对应的annotationView加入缓存队列。
-
2017.08.29 v3.4.0
新版提示
1、百度地图iOS SDK v3.4.0及以上版本仅支持iOS 7.0及以上系统。
2、自v3.2.0起,百度地图iOS SDK全面支持HTTPS,需要广大开发者导入第三方openssl静态库:libssl.a和libcrypto.a(存放于thirdlib目录下)
添加方法:在 TARGETS->Build Phases-> Link Binary With Libaries中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择libssl.a和libcrypto.a添加到工程中 。
3、支持CocoaPods导入
pod setup //更新CocoPods的本地库
pod search BaiduMapKit //查看最新地图SDK
新增
[ 基础地图 ]
1.新增当双击手势放大地图时,可以设置地图中心点是否移动至点击处的属性
BMKMapView新增:
///双击手势放大地图时, 设置为YES, 地图中心点移动至点击处; 设置为NO,地图中心点不变;默认为YES;
@property(nonatomic, getter=isChangeCenterWithDoubleTouchPointEnabled) BOOL ChangeCenterWithDoubleTouchPointEnabled;
2.支持标注锁定在屏幕固定位置
BMKPointAnnotation新增:
///Annotation固定在指定屏幕位置, 必须与screenPointToLock一起使用。
注意:拖动Annotation isLockedToScreen会被设置为false。
///若isLockedToScreen为true,拖动地图时annotaion不会跟随移动;
///若isLockedToScreen为false,拖动地图时annotation会跟随移动。
@property (nonatomic, assign) BOOL isLockedToScreen;
///标注在屏幕中锁定的位置,注意:地图初始化后才能设置screenPointToLock。可以在地图加载完成的回调方法:mapViewDidFinishLoading中使用此属性。
@property (nonatomic, assign) CGPoint screenPointToLock;
3.新增接口:设定地理范围在屏幕中的显示区域
BMKMapView新增:
/**
根据当前mapView的窗口大小,预留insets指定的边界区域后,将mapRect指定的地理范围显示在剩余的区域内,并尽量充满
@param mapRect 要显示的地图范围,用直角坐标系表示
@param insets 屏幕四周预留的最小边界(mapRect的内容不会显示在该边界范围内)
@param animate 是否采用动画效果
/
- (void)fitVisibleMapRect:(BMKMapRect)mapRect edgePadding:(UIEdgeInsets)insets withAnimated:(BOOL)animate;
- 支持世界地图循环显示
优化
1.解决反复创建和销毁mapView时内存泄漏的问题。
2.对拖动标注时的弹跳动画效果进行优化。
3.修复mapView调用selectAnnotation方法时,回调didSelectAnnotationView不调用的问题。
4.修复行政区域检索福建和浙江区域没有返回数据的问题。
5.修复部分使用场景下,设置mapPadding时,overlay位置偏移的问题。
6.修复部分使用场景下,加载mapView闪黑屏的问题。
7.修复室内图更新不及时的问题。
由此可见,更新到最新版本是有必要的。除非遇到不可抗力。
2.定位
定位SDK下载地址
-
2018.01.01 v1.1
iOS定位SDK v1.1版本更新:
优化:
- 适配iOS11永久定位的设置。
a. 开发者如果需要永久定位,请在Info.plist里配置NSLocationWhenInUseUsageDescription,NSLocationAlwaysUsageDescription,NSLocationAlwaysAndWhenInUseUsageDescription三项;
b. 如果仅需要使用期间的定位,则需要配置NSLocationWhenInUseUsageDescription,NSLocationAlwaysAndWhenInUseUsageDescription两项;
- 优化WIFI移动热点识别方法的内部逻辑;
新增:
-
新增获取定位唯一标识的方法BMKLocation.locationID,这个标识只与定位本身相关。当开发者遇到定位问题时,可将这个唯一标识、出现问题时间及问题描述信息发送至loc-bugs@baidu.com邮件组,我们会有专人支持解决;
-
在开发者Debug过程中,增加首次定位的日志,便于开发者排查问题使用;
-
2017.10.24 v1.0
iOS定位SDK v1.0产品发布:
新增:
-
获取当前位置:基于iOS系统原生定位能力,提供单次定位、连续定位、后台定位能力;
-
坐标转换:支持直接返回 gcj02、bd09ll、bd09mc、wgs84 类型的坐标。及坐标之间的转换能力;
-
国内外判断:支持经纬度坐标,在空间上属于国内 / 海外;
-
移动热点识别:能够识别当前设备所链接的 WIFI 是否为其他设备所开放的移动热点;
-
地理围栏:在系统原生地理围栏能力之上,支持多边形围栏;
-
地址信息获取:获取经纬度的同时,可获取当前地址信息(省、市、区、县等),全球同步支持;
-
周边POI获取:获取经纬度的同时,可获取当前点周边POI(如周边商场、饭店等);
-
当前位置描述:获取经纬度的同时,可获取更人性化的当前地点描述(如在百度大厦北侧等);
3.鹰眼轨迹
鹰眼轨迹SDK下载地址
-
2017.10.23 v3.0.6
修复问题:
-
修复采集周期和打包周期持久化失败的BUG,设置完采集和打包周期之后,下次开启服务或开始采集时,将使用之前设置的值,而不再使用默认值
-
修复从非主线程调用 -(void)changeGatherAndPackIntervals:(NSUInteger)gatherInterval packInterval:(NSUInteger)packInterval delegate:(id <BTKTraceDelegate>)delegate; 方法时,采集和打包周期不生效的BUG
-
修复某些复杂使用场景下,无法停止采集的BUG
4.导航
导航SDK下载地址
-
2017.06.15 v3.2.0
同步百度地图9.7版本,解决定位问题
起终点距离过近算路支持,支持“1米”导航
TTS鉴权方案优化,接入语音平台标准鉴权机制
新增导航结束是否自动退出导航设置接口
增加分发功能,如果地图app版本比导航sdk新很多,调起地图
5.全景
全景SDK下载地址
-
2017.09.19 v2.6.1
修复:
iOS11+Xcode9下全景白屏问题