BMKVersion.h 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982
  1. //
  2. // BMKVersion.h
  3. // BMapKit
  4. //
  5. // Copyright 2011 Baidu Inc. All rights reserved.
  6. //
  7. #import <UIKit/UIKit.h>
  8. /*****更新日志:*****
  9. V0.1.0: 测试版
  10. 支持地图浏览,基础操作
  11. 支持POI搜索
  12. 支持路线搜索
  13. 支持地理编码功能
  14. --------------------
  15. V1.0.0:正式发布版
  16. 地图浏览,操作,多点触摸,动画
  17. 标注,覆盖物
  18. POI、路线搜索
  19. 地理编码、反地理编码
  20. 定位图层
  21. --------------------
  22. V1.1.0:
  23. 离线地图支持
  24. --------------------
  25. V1.1.1:
  26. 增加suggestionSearch接口
  27. 可以动态更改annotation title
  28. fix小内存泄露问题
  29. --------------------
  30. V1.2.1:
  31. 增加busLineSearch接口
  32. 修复定位圈范围内不能拖动地图的bug
  33. --------------------
  34. V2.0.0
  35. 新增:
  36. 全新的3D矢量地图渲染
  37. BMKMapView设定地图旋转俯视角度:rotation、overlooking
  38. BMKMapView设定指南针显示位置:compassPosition
  39. BMKMapView控制生命周期:viewWillAppear、viewWillDisappear
  40. 地图标注可点,BMKMapViewDelegate新增接口回调接口onClickedMapPoi
  41. BMKAnnotationView设置annotation是否启用3D模式:enabled3D
  42. overlay绘制方式改变,采用opengl绘制:
  43. BMKOverlayView使用opengl渲染接口:glRender子类重载此函数实现gl绘制
  44. 基本opengl线绘制:renderLinesWithPoints
  45. 基本opengl面绘制:renderRegionWithPointsl
  46. 全新的矢量离线地图数据:
  47. BMKOfflineMap下载离线地图:start
  48. BMKOfflineMap更新离线地图:update
  49. BMKOfflineMap暂停下载或更新:pasue
  50. 获得热点城市列表:getHotCityList
  51. 获得支持离线数据的城市:getOfflineCityList
  52. 根据城市名查询城市信息:searchCity
  53. 更新:
  54. BMKMapView的缩放级别zoomLevel更新为float型,实现无级缩放
  55. 更新地图类型枚举:
  56. enum { BMKMapTypeStandard = 1, ///< 标准地图
  57. BMKMapTypeTrafficOn = 2, ///< 实时路况
  58. BMKMapTypeSatellite = 4, ///< 卫星地图
  59. BMKMapTypeTrafficAndSatellite = 8, ///< 同时打开实时路况和卫星地图
  60. };
  61. --------------------
  62. v2.0.1
  63. 新增:
  64. § MapView增加事件监听
  65. BMKMapviewDelegate中- mapView: onClickedMapBlank:方法监听地图单击事件
  66. BMKMapviewDelegate中- mapView: onDoubleClick:方法监听地图双击事件
  67. BMKMapviewDelegate中- mapView: onLongClick:方法监听地图长按事件
  68. § 地图截图功能
  69. BMKmapview中 -(UIImage*) takeSnapshot;
  70. § 路径规划增加途经点
  71. BMKSearch中- (BOOL)drivingSearch: startNode: endCity: endNode: throughWayPoints:
  72. § suggestion搜索支持按城市搜索
  73. 优化:
  74. § 全面支持iPad
  75. § 优化添加海量annotation逻辑
  76. § BMKOfflineMap中:
  77. - (BOOL)pasue:(int)cityID;
  78. 改为
  79. - (BOOL)pause:(int)cityID
  80. § BMKMapview中:
  81. @property (nonatomic) CGPoint compassPositon;
  82. 改为
  83. @property (nonatomic) CGPoint compassPosition;
  84. § BMKRouteAddrResult结构添加属性:
  85. @synthesize wayPointPoiList;
  86. @synthesize wayPointCityList;
  87. § BMKPlanNode中添加属性:
  88. @synthesize cityName; 添加城市属性
  89. § BMKSuggestionresult结构添加属性:
  90. @synthesize districtList; 返回区域列表
  91. 修复:
  92. § 修复与第三方类库冲突的问题
  93. 修复与gzip、Reachability、png、jpeg、json、xml、sqlite等第三方类库冲突问题
  94. --------------------
  95. v2.0.2
  96. 新增:
  97. 1.全新的key验证体系
  98. 2.增加短串分享接口
  99. 1)在BMKType中新增数据结构:BMK_SHARE_URL_TYPE(分享串数据类型)
  100. 2)在BMKSearch中新增接口-(BOOL)poiDetailShareUrl:(NSString*) uid; 发起poi短串搜索
  101. 3)在BMKSearch中新增接口-(BOOL)reverseGeoShareUrl:(CLLocationCoordinate2D)coor
  102. poiName:(NSString*)name
  103. poiAddress:(NSString*)address; 发起反geo短串搜索
  104. 4)在BMKSearchDelegate中新增接口-(void)onGetShareUrl:(NSString*) url
  105. withType:(BMK_SHARE_URL_TYPE) urlType
  106. errorCode:(int)error; 返回短串分享url
  107. 3.比例尺控件
  108. 1)在BMKMapview中新增属性@property (nonatomic) BOOL showMapScaleBar;比例尺是否显示
  109. 2)在BMKMapview中新增属性@property (nonatomic) CGPoint mapScaleBarPosition;比例尺显示位置
  110. 4.定位罗盘效果
  111. 1)在BMKMapview中新增数据结构:BMKUserTrackingMode(定位模式)
  112. 2)在BMKMapview中新增属性@property (nonattomic) BMKUserTrackingMode userTrackingMode; 设定定位模式
  113. 5.驾车避让拥堵策略
  114. 1)在BMKSearch中新增驾车检索策略常量BMKCarTrafficFIRST = 60,///<驾车检索策略常量:躲避拥堵
  115. 6.路径查询增加时间、打车费用结果
  116. 1)在BMKSearch中新增类:BMKTime(此类代表一个时间段,每个属性都是一个时间段。)
  117. 2)在BMKTransitRoutePlan中新增属性@property (nonatomic) float price; 白天打车估价,单位(元)
  118. 3)在BMKTransitRoutePlan中新增属性@property (nonatomic, retain) BMKTime* time; 方案所用时间
  119. 4)在BMKRoutePlan中新增属性@property (nonatomic, retain) BMKTime* time; 方案预计的行驶时间
  120. 优化:
  121. 1)对在BMKMapview中的接口- (void)removeAnnotations:(NSArray *)annotations;(移除一组标注)进行了优化
  122. 修复:
  123. 1)修复离线地图――支持离线包的城市列表中省份下无子城市的问题
  124. 2)修复前台数据请求后退至后台opengl继续渲染,应用Crash的问题
  125. --------------------
  126. v2.1.0
  127. 新增:
  128. 1.全面接入LBS.云V2.0,全面开放LBS.云检索能力
  129. 1)在BMKCloudSearchInfo中新增类BMKBaseCloudSearchInfo,BMKCloudSearchInfo,BMKCloudLocalSearchInfo,BMKCloudNearbySearchInfo,BMKCloudBoundSearchInfo,BMKCloudDetailSearchInfo来存储云检索参数
  130. 2)在BMKCloudPOIList中新增类BMKCloudPOIList来存储云检索结果
  131. 3)在BMKCloudSearch中新增数据结构:BMKCloudSearchType(云检索类型)
  132. 4)在BMKCloudSearch中新增接口- (BOOL)localSearchWithSearchInfo:;发起本地云检索
  133. 5)在BMKCloudSearch中新增接口- (BOOL) nearbySearchWithSearchInfo:;发起周边云检索
  134. 6)在BMKCloudSearch中新增接口- (BOOL) boundSearchWithSearchInfo:;发起矩形云检索
  135. 7)在BMKCloudSearch中新增接口- (BOOL) detailSearchWithSearchInfo:;发起详情云检索
  136. 8)在BMKCloudSearch中新增接口- (void)onGetCloudPoiResult: searchType: errorCode:;返回云检索列表结果
  137. 9)在BMKCloudSearch中新增接口- (void) onGetCloudPoiDetailResult: searchType: errorCode:;返回云检索详情结果
  138. 2.增加图片图层BMKGroundOverlay、BMKGroundOverlayView
  139. 1)在BMKGroundOverlay中新增属性@property (nonatomic,assign) CLLocationCoordinate2D pt;两种绘制GroundOverlay的方式之一:绘制的位置地理坐标,与anchor配对使用
  140. 2)在BMKGroundOverlay中新增属性@property (nonatomic,assign) CGPoint anchor;用位置绘制时图片的锚点,图片左上角为(0.0f,0.0f),向右向下为正
  141. 3)在BMKGroundOverlay中新增属性@property (nonatomic,assign) BMKCoordinateBounds bound;两种绘制GroundOverlay的方式之二:绘制的地理区域范围,图片在此区域内合理缩放
  142. 4)在BMKGroundOverlay中新增属性@property(nonatomic, strong) UIImage *icon;绘制图片
  143. 5)在BMKGroundOverlay中新增接口+(BMKGroundOverlay*)groundOverlayWithPosition:zoomLevel:anchor:icon:;根据指定经纬度坐标生成一个groundOverlay
  144. 6)在BMKGroundOverlay中新增接口+(BMKGroundOverlay*) groundOverlayWithBounds:icon:;根据指定区域生成一个groundOverlay
  145. 3.增加自定义泡泡
  146. 1)在BMKActionPaopaoView中新增接口- (id)initWithCustomView:(UIView*)customView;泡泡显示View自定义
  147. 4.增加地图中心点映射屏幕点
  148. 1)在BMKMapView中新增接口- (void)setMapCenterToScreenPt:;设置地图中心点在地图中的屏幕坐标位置
  149. 5.增加以手势触摸点中心为基准旋转缩放底图功能和控制开关
  150. 1)在BMKMapView中新增属性@property(nonatomic, getter=isChangeWithTouchPointCenterEnabled) BOOL ChangeWithTouchPointCenterEnabled;设定地图View能否支持以手势中心点为轴进行旋转和缩放(默认以屏幕中心点为旋转和缩放中心)
  151. 6.增加同时改变地图俯角,旋转角度,缩放比例,中心点接口
  152. 1)新增类BMKMapStatus来表示地图状态参数
  153. 2)在BMKMapView中新增接口- (void)setMapStatus:;设置地图状态
  154. 3)在BMKMapView中新增接口- (void)setMapStatus: withAnimation:;设置地图状态(指定是否需要动画效果)
  155. 4)在BMKMapView中新增接口- (void)setMapStatus: withAnimation: withAnimationTime:;设置地图状态(指定是否需要动画效果+指定动画时间)
  156. 5)在BMKMapView中新增接口- (BMKMapStatus*)getMapStatus;获取地图状态
  157. 7.增加地图状态改变实时通知
  158. 1)在BMKMapView中新增接口- (void)mapStatusDidChanged:;地图状态改变完成后会调用此接口
  159. 优化:
  160. 1.点击Annotation置顶
  161. 1)在BMKMapView中新增属性@property (nonatomic, assign) BOOL isSelectedAnnotationViewFront;设定是否总让选中的annotaion置于最前面
  162. 2.定位脱离MapView
  163. 1)在BMKUserLocation中新增接口-(void)startUserLocationService;打开定位服务
  164. 2)在BMKUserLocation中新增接口-(void)stopUserLocationService;关闭定位服务
  165. 3)在BMKUserLocation中新增接口- (void)viewDidGetLocatingUser:;开启定位后,会自动调用此接口返回当前位置的经纬度
  166. 3.定位图层样式自定义灵活性优化
  167. 1)新增类BMKLocationViewDisplayParam来存储定位图层自定义参数
  168. 2)在BMKMapView中新增接口- (void)updateLocationViewWithParam:;动态定制定位图层样式
  169. 修复:
  170. 1)修复点击annotation回调长按监听接口- (void)mapview: onLongClick:的问题
  171. 2)修复TransitRoutePlan中Content属性为空的问题
  172. 3)修复缩放底图,接口- (void)mapView: regionDidChangeAnimated:不回调的问题
  173. 4)修复从其他页面返回原页面泡泡被压盖的问题
  174. 5)解决WiFi无网络信号时首次加载卡屏的问题
  175. --------------------
  176. v2.1.1
  177. 新增:
  178. 1.新增调启百度地图导航的接口(百度地图导航和Web端导航)
  179. 在BMKNavigation中新增类枚举类型的数据结构BMK_NAVI_TYPE来定义调起导航的两种类型:BMK_NAVI_TYPE_NATIVE(调起客户端导航)和BMK_NAVI_TYPE_WEB(调起web导航)
  180. 在BMKNavigation中新增类NaviPara来管理调起导航时传入的参数
  181. 在类NaviPara中新增属性@property (nonatomic, retain) BMKPlanNode* startPoint;定义导航的起点
  182. 在类NaviPara中新增属性@property (nonatomic, retain) BMKPlanNode* endPoint;定义导航的终点
  183. 在类NaviPara中新增属性@property (nonatomic, assign) BMK_NAVI_TYPE naviType;定义导航的类型
  184. 在类NaviPara中新增属性@property (nonatomic, retain) NSString* appScheme;定义应用返回scheme
  185. 在类NaviPara中新增属性@property (nonatomic, retain) NSString* appName;定义应用名称
  186. 在BMKNavigation中新增接口+ (void)openBaiduMapNavigation:;根据传入的参数调启导航
  187. 2.几何图形绘制中,增加弧线绘制方法
  188. 在BMKArcline中新增接口+ (BMKArcline *)arclineWithPoints:;根据指定坐标点生成一段圆弧
  189. 在BMKArcline中新增接口+ (BMKArcline *)arclineWithCoordinates:;根据指定经纬度生成一段圆弧
  190. 在类BMKArclineView中新增属性@property (nonatomic, readonly) BMKArcline *arcline;来定义该View对应的圆弧数据对象
  191. 在BMKArclineView中新增接口- (id)initWithArcline:;根据指定的弧线生成一个圆弧View
  192. 3.几何图形绘制中,扩增凹多边形绘制能力
  193. 4.新增Key验证返回值
  194. 在BMKMapManager中新增枚举数据类型EN_PERMISSION_STATUS类来定义key验证错误码
  195. 服务端具体返回的错误码请参见http://developer.baidu.com/map/lbs-appendix.htm#.appendix2
  196. 5.新增公交换乘查询中的结果字段
  197. 在类BMKLine中新增属性@property (nonatomic) int zonePrice;定义路段价格
  198. 在类BMKLine中新增属性@property (nonatomic) int totalPrice;定义线路总价格
  199. 在类BMKLine中新增属性@property (nonatomic) int time;定义线路耗时,单位:秒
  200. 在类BMKRoute中新增属性@property (nonatomic) int time;定义此路段的消耗时间,单位:秒
  201. 优化:
  202. 优化Key鉴权认证策略
  203. 优化几何图形绘制中,折线段绘制末端圆滑
  204. 提升添加、删除几何图形覆盖物的效率
  205. 修复:
  206. 修复iOS7系统下,定位图层拖图时卡顿的bug
  207. 修复POI检索结果中,结果页索引始终为0的bug
  208. 修复驾车线路规划中,最后一个节点提示信息有误的bug
  209. --------------------
  210. v2.2.0
  211. 新增:
  212. 1. 新增地图多实例能力,开发者可在同一个页面上构建多张相互独立的地图,各地图上的覆盖物互不干扰;
  213. 2. 新增检索多实例能力,开发者可并行发起多个检索来满足自己实际的业务需求
  214. 由于新增检索多实例能力,因此需要在BMKSearchDelegate的回调中增加searcher参数来表明是哪个检索对象发起的检 索。所以应用检索多实例时需要将检索结果和searcher来进行一一对应。示例如下:
  215. - (void)onGetPoiResult:(BMKSearch*)searcher result:(NSArray*)poiResultListsearchType:(int)type errorCode:(int)error{
  216. if(searcher==_search){
  217. NSLog(@"这是_search 对应的POI搜索结果");
  218. }else if(searcher==_search2){
  219. NSLog(@"这是_search2对应的POI搜索结果");
  220. }
  221. }
  222. 3. 新增地图最大、最小缩放等级的控制方法
  223. 在类BMKMapView中新增属性@property (nonatomic) float minZoomLevel;来设定地图的自定义最小比例尺级别
  224. 在类BMKMapView中新增属性@property (nonatomic) float maxZoomLevel;来设定地图的自定义最大比例尺级别
  225. 4. 新增地图操作的手势控制开关
  226. 在类BMKMapView中新增属性@property(nonatomic, getter=isZoomEnabledWithTap) BOOL zoomEnabledWithTap;来设定地图View能否支持用户单指双击放大地图,双指单击缩小地图
  227. 在类BMKMapView中新增属性@property(nonatomic, getter=isOverlookEnabled) BOOL overlookEnabled;来设定地图View能否支持俯仰角
  228. 在类BMKMapView中新增属性@property(nonatomic, getter=isRotateEnabled) BOOL rotateEnabled;来设定地图View能否支持旋转
  229. 修复:
  230. 1. 修复遗留zip库冲突问题
  231. 2. 解决Documents下的非用户数据上传iCloud的问题
  232. 3. 修复BMKMapViewDelegate中regionDidChangeAnimated / regionWillChangeAnimated图区变化问题
  233. --------------------
  234. v2.2.1
  235. 修复:
  236. 1. 修复v2.2.0版本覆盖安装后,地图无法正常显示的问题
  237. 2. 修复地图高级别下,道路名称不显示的问题
  238. 3. 修复BMKMapManage的stop方法不可用的问题
  239. 4. 修复setMapStatus中设置地图等级异常的问题
  240. 5. 修复地图中心点偏移时,拖动地图覆盖物异常的问题
  241. 6. 修复BMKMapView中手势控制相关的enable属性获取不正确的问题
  242. 7. 修复与XML库冲突的问题
  243. --------------------
  244. v2.3.0
  245. 新增:
  246. 可根据开发者的实际需求,下载满足需求的定制功能开发包
  247. 1. 基础地图:包括基本矢量地图、卫星图、实时路况图、离线地图及各种地图覆盖物,此外还包括各种与地图相关的操作和事件监听
  248. 2. 检索功能:包括POI检索、公交信息查询、路线规划、正向/反向地理编码、在线建议查询、短串分享等功能
  249. 针对检索业务设计了全新更易用、学习成本更低的程序功能接口
  250. 3. LBS云检索:提供周边、区域、城市内、详情多种方式检索用户存储在LBS云内的自有数据
  251. 4. 定位功能:提供便捷的接口,帮助用户快捷获取当前位置信息
  252. 实现全面升级优化,定位功能可脱离地图单独使用
  253. 5. 计算工具:包括测距(两点之间地理距离)、坐标转换、调起百度地图导航等功能
  254. --------------------
  255. v2.4.0
  256. 新增:
  257. 基础地图
  258. 1. 开放热力图绘制能力,帮助用户绘制自有数据热力图;
  259. 在文件BMKHeatMap.h中新增类BMKHeatMapNode来表示热力图数据的单个数据节点
  260. 在类BMKHeatMapNode中新增属性@property (nonatomic) CLLocationCoordinate2D pt;定义点的位置坐标
  261. 在类BMKHeatMapNode中新增属性@property (nonatomic) double intensity;定义点的强度权值
  262. 在BMKHeatMap中新增类BMKHeatMap来存储热力图的绘制数据和自定义热力图的显示样式
  263. 在类BMKHeatMap中新增属性@property (nonatomic, assign) int mRadius; 设置热力图的柔化半径
  264. 在类BMKHeatMap中新增属性@property (nonatomic, retain) BMKGradient* mGradient; 设置热力图的渐变色
  265. 在类BMKHeatMap中新增属性@property (nonatomic, assign) double mOpacity; 设置热力图的透明度
  266. 在类BMKHeatMap中新增属性@property (nonatomic, retain) NSMutableArray* mData; 设置热力图数据
  267. 在类BMKMapView中新增方法- (void)addHeatMap:;来添加热力图
  268. 在类BMKMapView中新增方法- (void)removeHeatMap;来删除热力图
  269. 检索功能
  270. 1. 开放POI的Place详情信息检索能力;
  271. 在BMKPoiSearchOption.h文件中新增poi详情检索信息类BMKPoiDetailSearchOption
  272. 在类 BMKPoiDetailSearchOption中新增属性@property (nonatomic, retain) NSString* poiUid; poi的uid
  273. 在BMKPoiSearchType.h文件中新增poi详情检索结果类BMKPoiDetailResult
  274. 在类BMKPoiSearch中新增方法- (BOOL)poiDetailSearch:;来根据poi uid 发起poi详情检索
  275. 在BMKPoiSearchDelegate中新增回调- (void)onGetPoiDetailResult: result: errorCode:;来返回POI详情搜索结果
  276. 定位功能
  277. 1. 新增定位多实例,满足开发者在多个页面分别使用定位的需求;
  278. 优化:
  279. 1. 高级别地图下做平移操作时,标注覆盖物移动流畅性优化;
  280. 修复:
  281. 1. 修复相邻地形图图层拼接时,接缝过大的问题;
  282. 2. 修复检索内存泄露的问题;
  283. 3. 修复定位图层内存泄露的问题;
  284. --------------------
  285. v2.4.1
  286. 优化:
  287. 1. 优化底图相关的内存使用问题;
  288. --------------------
  289. v2.5.0
  290. 使用Xcode6创建工程时注意事项如下:
  291. 在info.plist中添加:Bundle display name (Xcode6新建的项目没有此配置,若没有会造成manager start failed)
  292. 【 新 增 】
  293. 1. 新增对arm64 CPU架构的适配;
  294. 基础地图
  295. 1. 新增对iPhone6、iPhone6 plus的屏幕适配;
  296. 定位功能
  297. 1. 新增对iOS8定位的适配;
  298. 在使用SDK为您提供的定位功能时,注意事项如下:
  299. 需要在info.plist里添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):
  300. NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述
  301. NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述
  302. 【 修 复 】
  303. 修复Tabber控制器中使用定位弹出框异常的问题;
  304. 修复scrollenable=no,仍可以移动地图的问题;
  305. 修复多边形在特定坐标下显示异常问题;
  306. 修复定位时间戳错误的问题;
  307. 修复autolayout时,BMKMapView横屏时无法自动扩展的问题;
  308. 修复从B页返回到A页后,在A页的viewWillAppear方法中setCenterCoordinate无效的问题;
  309. --------------------
  310. v2.6.0
  311. 注意:新版本开发包头文件中部分接口和枚举类型有变更,请确保使用最新版本的头文件。
  312. 【 变 更 】
  313. 定位功能
  314. 1、修改BMKLocationServiceDelegate:
  315. - (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation; //修改用户位置更新后的回调
  316. 【 新 增 】
  317. 基础地图
  318. 1. 地图类型修改为:enum {
  319. BMKMapTypeStandard = 1, ///<标准地图
  320. BMKMapTypeSatellite = 2, ///<卫星地图
  321. };
  322. typedefNSUIntegerBMKMapType;
  323. 2. 在类BMKMapView中新增:
  324. 属性:baiduHeatMapEnabled,设定地图是否打开百度城市热力图图层(百度自有数据)
  325. 接口:- isSurpportBaiduHeatMap,判断当前图区是否支持百度热力图
  326. 属性:buildingsEnabled ,设定地图是否现实3D楼块效果
  327. 属性:trafficEnabled, 设定地图是否打开路况图层
  328. 接口:- (void)showAnnotations: animated:,设置地图使显示区域显示所有annotations
  329. 接口:+(void)willBackGround,当应用即将后台时调用,停止一切调用opengl相关的操作
  330. 接口:+(void)didForeGround,当应用恢复前台状态时调用
  331. 3. 在类BMKMapViewDelegate中新增接口:
  332. - (void)mapViewDidFinishLoading: 地图初始化完毕时会调用
  333. - (void)mapView: onDrawMapFrame: 地图渲染每一帧画面过程中(地图更新)会调用
  334. 4. 在BMKGroundOverlay.h中新增透明度设置属性: alpha
  335. 5. 新增虚线绘制样式polyline/polygon的边框/circle的边框均可设定为虚线样式并指定颜色,自定义overlay也可在glrender中实现。
  336. 新增资源:
  337. 在mapapi.bundle的images文件夹中增加lineDashTexture.png,用于生成虚线纹理
  338. 新增属性:
  339. 在BMKOverlayGLBaseView.h中,@propertyBOOLlineDash;// 是否为虚线样式
  340. 在BMKOverlayView.h中新增方法:
  341. -(void)renderLinesWithPoints:(BMKMapPoint *)points pointCount:(NSUInteger)pointCount
  342. strokeColor:(UIColor *)strokeColor
  343. lineWidth:(CGFloat)lineWidth
  344. looped:(BOOL)looped
  345. lineDash:(BOOL)lineDash;
  346. 注:该方法再BMKPolylineView/BMKPolygonView/BMKCircleView绘制中会自动调用,用户自定义view也可以调用这个方法实线虚线样式。
  347. 6. 新增自定义纹理绘制线:polyline/polygon的边框/circle的边框均可设定指定纹理,自定义overlay也可在glrender中实现。
  348. 在BMKOverlayView.h中新增属性:
  349. @property (nonatomic, readonly) GLuintstrokeTextureID;//关联的纹理对象ID
  350. 在BMKOverlayView.h中新增方法:
  351. -(GLuint)loadStrokeTextureImage:(UIImage *)textureImage;
  352. 定位功能
  353. 1、在BMKLocationService新增接口:
  354. +setLocationDistanceFilter: //设置定位的最小更新距离(米)
  355. +getCurrentLocationDistanceFilter //获取定位的最小更新距离(米)
  356. +setLocationDesiredAccuracy: //设置定位精准度
  357. +getCurrentLocationDesiredAccuracy //获取定位精准度
  358. 【 优 化 】
  359. 1. SDK配置使用ARC;
  360. 2. 更新鉴权错误码;
  361. 【 修 复 】
  362. 1. 修复定位服务中,开启定位和停止定位没有成对使用造成的问题;
  363. 2. 修复使用circleWithCenterCoordinate:radius:画圆时半径误差偏大的问题;
  364. 3. 修复在6plus上标注显示过小的问题;
  365. 4. 修复annotation拖拽结束后向下偏移的问题;
  366. --------------------
  367. v2.7.0
  368. 自当前版本起,百度地图iOS SDK推出 .framework形式的开发包。此种类型的开发包配置简单、使用方便,欢迎开发者选用!
  369. 【 新 增 】
  370.  基础地图
  371. 1. 增加地图缩放等级到20级(10米);
  372. 2. 新增地理坐标与OpenGL坐标转换接口:
  373. BMKMapView新增接口:
  374. - (CGPoint)glPointForMapPoint:(BMKMapPoint)mapPoint;//将BMKMapPoint转换为opengles可 以直接使用的坐标
  375. - (CGPoint *)glPointsForMapPoints:(BMKMapPoint *)mapPoints count:(NSUInteger)count;// 批量将BMKMapPoint转换为opengles可以直接使用的坐标
  376. 3. 开放区域截图能力:
  377. BMKMapView新增接口:
  378. - (UIImage*)takeSnapshot:(CGRect)rect;// 获得地图区域区域截图
  379.  检索功能
  380. 1. 开放驾车线路规划,返回多条线路的能力;
  381. BMKDrivingRouteResult中,routes数组有多条数据,支持检索结果为多条线路
  382. 2. 驾车线路规划结果中,新增路况信息字段:
  383. BMKDrivingRoutePlanOption新增属性:
  384. ///驾车检索获取路线每一个step的路况,默认使用BMK_DRIVING_REQUEST_TRAFFICE_TYPE_NONE
  385. @property (nonatomic) BMKDrivingRequestTrafficType drivingRequestTrafficType;
  386. BMKDrivingStep新增属性:
  387. ///路段是否有路况信息
  388. @property (nonatomic) BOOL hasTrafficsInfo;
  389. ///路段的路况信息,成员为NSNumber。0:无数据;1:畅通;2:缓慢;3:拥堵
  390. @property (nonatomic, strong) NSArray* traffics;
  391. 3.废弃接口:
  392. 2.7.0开始,BMKDrivingRouteLine中,废弃属性:isSupportTraffic
  393.  计算工具
  394. 1. 新增点与圆、多边形位置关系判断方法:
  395. 工具类(BMKGeometry.h)中新增接口:
  396. //判断点是否在圆内
  397. UIKIT_EXTERN BOOL BMKCircleContainsPoint(BMKMapPoint point, BMKMapPoint center, double radius);
  398. UIKIT_EXTERN BOOL BMKCircleContainsCoordinate(CLLocationCoordinate2D point, CLLocationCoordinate2D center, double radius);
  399. //判断点是否在多边形内
  400. UIKIT_EXTERN BOOL BMKPolygonContainsPoint(BMKMapPoint point, BMKMapPoint *polygon, NSUInteger count);
  401. UIKIT_EXTERN BOOL BMKPolygonContainsCoordinate(CLLocationCoordinate2D point, CLLocationCoordinate2D *polygon, NSUInteger count);
  402. 2. 新增获取折线外某点到这线上距离最近的点:
  403. 工具类(BMKGeometry.h)中新增接口:
  404. UIKIT_EXTERN BMKMapPoint BMKGetNearestMapPointFromPolyline(BMKMapPoint point, BMKMapPoint* polyline, NSUInteger count);
  405. 3、新增计算地理矩形区域的面积
  406. 工具类(BMKGeometry.h)中新增接口:
  407. UIKIT_EXTERN double BMKAreaBetweenCoordinates(CLLocationCoordinate2D leftTop, CLLocationCoordinate2D rightBottom);
  408. 【 优 化 】
  409. 1. 减少首次启动SDK时的数据流量;
  410. 2. 减少协议优化升级;
  411. 3. 优化Annotation拖拽方法(长按后开始拖拽);
  412. 【 修 复 】
  413. 1. 修复在线地图和离线地图穿插使用时,地图内存不释放的bug;
  414. 2. 修复云检索过程中偶现崩溃的bug;
  415. 3. 修复地图在autolayout布局下无效的bug;
  416. 4. 修复BMKAnnotationView重叠的bug;
  417. --------------------
  418. v2.8.0
  419. 注:百度地图iOS SDK向广大开发者提供了配置更简单的 .framework形式的开发包,请开发者选择此种类型的开发包使用。
  420. 【 新 增 】
  421.  周边雷达
  422. 利用周边雷达功能,开发者可在App内低成本、快速实现查找周边使用相同App的用户位置的功能。
  423. 新增周边雷达管理类:BMKRadarManager
  424. 新增周边雷达protocol:BMKRadarManagerDelegate
  425. 1.提供单次位置信息上传功能;
  426. - (BOOL)uploadInfoRequest:(BMKRadarUploadInfo*) info;
  427. 2.提供位置信息连续自动上传功能;
  428. - (void)startAutoUpload:(NSTimeInterval) interval;//启动自动上传用户位置信息
  429. - (void)stopAutoUpload;//停止自动上传用户位置信息
  430. 3.提供周边位置信息检索功能;
  431. - (BOOL)getRadarNearbySearchRequest:(BMKRadarNearbySearchOption*) option;
  432. 4.提供清除我的位置信息功能
  433. - (BOOL)clearMyInfoRequest;
  434.  基础地图
  435. 1.新增折线多段颜色绘制能力;
  436. 1)BMKPolyline中新增接口:
  437. ///纹理索引数组
  438. @property (nonatomic, strong) NSArray *textureIndex;
  439. //分段纹理绘制,根据指定坐标点生成一段折线
  440. + (BMKPolyline *)polylineWithPoints:(BMKMapPoint *)points count:(NSUInteger)count textureIndex:(NSArray*) textureIndex;
  441. //根据指定坐标点生成一段折线
  442. + (BMKPolyline *)polylineWithCoordinates:(CLLocationCoordinate2D *)coords count:(NSUInteger)count textureIndex:(NSArray*) textureIndex;
  443. 2)BMKPolylineView新增接口
  444. /// 是否分段纹理绘制(突出显示)
  445. @property (nonatomic, assign) BOOL isFocus;
  446. 2.可以修改BMKPolyline、BMKPolygon、BMKCircle、BMKArcline的端点数据了
  447. 3.新增地图强制刷新功能:
  448. BMKMapView新增接口:
  449. - (void)mapForceRefresh;//强制刷新mapview
  450.  检索功能
  451. 1.在线建议检索结果开放POI经纬度及UID信息;
  452. BMKSuggestionResult新增接口:
  453. ///poiId列表,成员是NSString
  454. @property (nonatomic, strong) NSArray* poiIdList;
  455. ///pt列表,成员是:封装成NSValue的CLLocationCoordinate2D
  456. @property (nonatomic, strong) NSArray* ptList;
  457. 2.更新检索状态码
  458. BMKSearchErrorCode中新增:
  459. BMK_SEARCH_NETWOKR_ERROR,///网络连接错误
  460. BMK_SEARCH_NETWOKR_TIMEOUT,///网络连接超时
  461. BMK_SEARCH_PERMISSION_UNFINISHED,///还未完成鉴权,请在鉴权通过后重试
  462.  计算工具
  463. 1.新增调启百度地图客户端功能;
  464. 1)调起百度地图客户端 – poi调起
  465. 新增调起百度地图poi管理类:BMKOpenPoi
  466. //调起百度地图poi详情页面
  467. + (BMKOpenErrorCode)openBaiduMapPoiDetailPage:(BMKOpenPoiDetailOption *) option;
  468. //调起百度地图poi周边检索页面
  469. + (BMKOpenErrorCode)openBaiduMapPoiNearbySearch:(BMKOpenPoiNearbyOption *) option;
  470. 2)调起百度地图客户端 – 路线调起
  471. 新增调起百度地图路线管理类类:BMKOpenRoute
  472. //调起百度地图步行路线页面
  473. + (BMKOpenErrorCode)openBaiduMapWalkingRoute:(BMKOpenWalkingRouteOption *) option;
  474. //调起百度地图公交路线页面
  475. + (BMKOpenErrorCode)openBaiduMapTransitRoute:(BMKOpenTransitRouteOption *) option;
  476. //调起百度地图驾车路线检索页面
  477. + (BMKOpenErrorCode)openBaiduMapDrivingRoute:(BMKOpenDrivingRouteOption *) option;
  478. 2.新增本地收藏夹功能;
  479. 新增收藏点信息类:BMKFavPoiInfo
  480. 新增收藏点管理类:BMKFavPoiManager
  481. 新增接口:
  482. //添加一个poi点
  483. - (NSInteger)addFavPoi:(BMKFavPoiInfo*) favPoiInfo;
  484. //获取一个收藏点信息
  485. - (BMKFavPoiInfo*)getFavPoi:(NSString*) favId;
  486. //获取所有收藏点信息
  487. - (NSArray*)getAllFavPois;
  488. //更新一个收藏点
  489. - (BOOL)updateFavPoi:(NSString*) favIdfavPoiInfo:(BMKFavPoiInfo*) favPoiInfo;
  490. //删除一个收藏点
  491. - (BOOL)deleteFavPoi:(NSString*) favId;
  492. //清空所有收藏点
  493. - (BOOL)clearAllFavPois;
  494. 【 修 复 】
  495. 1、修复setMinLevel、setMaxLevel生效的是整型的问题;
  496. 2、修复setRegion精准度不高的问题;
  497. 3、修复POI检索结果,pageNum不正确的问题;
  498. 4、修复定位结果海拔始终为0的问题;
  499. 5、修复反地理编码检索在特定情况下,收不到回调的问题;
  500. --------------------
  501. v2.8.1
  502. 注:百度地图iOS SDK向广大开发者提供了配置更简单的 .framework形式的开发包,请开发者选择此种类型的开发包使用。自V2.8.1后,百度地图iOS SDK将不再提供 .a形式的开发包。
  503. 【 修 复 】
  504. 修复了升级IOS 9 beta 3系统后闪退的问题
  505. 【 提 示 】
  506. 1、由于iOS9改用更安全的https,为了能够在iOS9中正常使用地图SDK,请在"Info.plist"中进行如下配置,否则影响SDK的使用。
  507. <key>NSAppTransportSecurity</key>
  508. <dict>
  509. <key>NSAllowsArbitraryLoads</key>
  510. <true/>
  511. </dict>
  512. 2、如果在iOS9中使用了调起百度地图客户端功能,必须在"Info.plist"中进行如下配置,否则不能调起百度地图客户端。
  513. <key>LSApplicationQueriesSchemes</key>
  514. <array>
  515. <string>baidumap</string>
  516. </array>
  517. --------------------
  518. v2.9.0
  519. 注:百度地图iOS SDK向广大开发者提供了配置更简单的 .framework形式的开发包,请开发者选择此种类型的开发包使用。自v2.9.0起,百度地图iOS SDK将不再提供 .a形式的开发包。
  520. 自v2.9.0起,采用分包的形式提供 .framework包,请广大开发者使用时确保各分包的版本保持一致。其中BaiduMapAPI_Base.framework为基础包,使用SDK任何功能都需导入,其他分包可按需导入。
  521. 【 新版提示 】
  522. 1.自v2.9.0起,将启用新的地图资源服务,旧地图离线包在新版上不可使用;同时官方不再支持地图离线包下载,所以v2.9.0起,去掉“手动离线导入接口”,SDK离线下载接口维持不变。
  523. 2.自v2.9.0起,iOS SDK采用分包形式,旧包无法与新包同时混用,请将之前所有旧包(包含bundle资源)并全部替换为新包。
  524. 3.自v2.9.0起,iOS SDK使用新的矢量地图样式,地图显示更加清新,和百度地图客户端保持一致
  525. 【 新 增 / 废 弃 】
  526.  基础地图
  527. 1.适配iOS 9和 iPhone 6s
  528. 2.新增点聚合功能开源
  529. 增加点聚合功能,并在demo中开放源代码,具体请参考demo
  530. 3.支持线绘制功能扩展:支持纹理图片平铺绘制,缩放,分段颜色设置
  531. BMKOverlayGLBasicView新增属性:
  532. /// 是否纹理图片平铺绘制,默认NO
  533. @property (assign, nonatomic) BOOL tileTexture;
  534. /// 纹理图片是否缩放(tileTexture为YES时生效),默认NO
  535. @property (assign, nonatomic) BOOL keepScale;
  536. BMKOverlayView新增属性:
  537. /// 使用分段颜色绘制时,必须设置(内容必须为UIColor)
  538. @property (nonatomic, strong) NSArray *colors;
  539. 4.支持底图标注控制
  540. BMKMapView 新增属性:
  541. ///设定地图是否显示底图poi标注,默认YES
  542. @property(nonatomic, assign) BOOL showMapPoi;
  543. 5.新增TileOverlay图层,分为离线、在线tileOverlay绘制(使用方法请参考demo)。
  544. 新增类: BMKTileLayer、BMKURLTileLayer、BMKSyncTileLayer、BMKTileLayerView
  545. 6.BMKMapStatus新增只读属性:visibleMapRect
  546. 7.BMKOfflineMap废弃扫描导入离线包接口,不再支持离线包导入
  547. 废弃接口:
  548. - (BOOL)scan:(BOOL)deleteFailedr __deprecated_msg("废弃方法(空实现),自2.9.0起废弃,不支持扫描导入离线包");
  549. 8.更新离线城市BMKOLUpdateElement status状态
  550.  检索功能
  551. 反geo检索结果新增商圈
  552. BMKReverseGeoCodeResult新增属性:
  553. ///商圈名称
  554. @property (nonatomic, strong) NSString* businessCircle;
  555.  定位功能
  556. 废弃接口(空实现):
  557. + (void)setLocationDistanceFilter:(CLLocationDistance) distanceFilter __deprecated_msg("废弃方法 (空实现),使用distanceFilter属性替换");
  558. + (CLLocationDistance)getCurrentLocationDistanceFilter __deprecated_msg("废弃方法(空实现),使用distanceFilter属性替换");
  559. + (void)setLocationDesiredAccuracy:(CLLocationAccuracy) desiredAccuracy __deprecated_msg("废弃方法(空实现),使用desiredAccuracy属性替换");
  560. + (CLLocationAccuracy)getCurrentLocationDesiredAccuracy __deprecated_msg("废弃方法(空实现),使用desiredAccuracy属性替换");
  561. 新增属性:
  562. /// 设定定位的最小更新距离。默认为kCLDistanceFilterNone
  563. @property(nonatomic, assign) CLLocationDistance distanceFilter;
  564. /// 设定定位精度。默认为kCLLocationAccuracyBest。
  565. @property(nonatomic, assign) CLLocationAccuracy desiredAccuracy;
  566. /// 设定最小更新角度。默认为1度,设定为kCLHeadingFilterNone会提示任何角度改变。
  567. @property(nonatomic, assign) CLLocationDegrees headingFilter;
  568. /// 指定定位是否会被系统自动暂停。默认为YES。只在iOS 6.0之后起作用。
  569. @property(nonatomic, assign) BOOL pausesLocationUpdatesAutomatically;
  570. ///指定定位:是否允许后台定位更新。默认为NO。只在iOS 9.0之后起作用。设为YES时,Info.plist中 UIBackgroundModes 必须包含 "location"
  571. @property(nonatomic, assign) BOOL allowsBackgroundLocationUpdates;
  572. 【 修 复 】
  573. 1、修复不加载@3x图片的问题;
  574. 2、修复公交路线规划,换乘方案内容缺失的问题;
  575. 3、修复iOS 8.2系统版本以前,AnnotationView 中加入约束会卡住的问题;
  576. 4、修复使用xcode 7编译时SDK产生的编译警告;
  577. 5、修复BMKMapView在特定的使用条件下crash的问题
  578. --------------------
  579. v2.9.1
  580. 注:百度地图iOS SDK向广大开发者提供了配置更简单的 .framework形式的开发包,请开发者选择此种类型的开发包使用。自v2.9.0起,百度地图iOS SDK将不再提供 .a形式的开发包。
  581. 自v2.9.0起,采用分包的形式提供 .framework包,请广大开发者使用时确保各分包的版本保持一致。其中BaiduMapAPI_Base.framework为基础包,使用SDK任何功能都需导入,其他分包可按需导入。
  582. 【新版提示】
  583. 1.自V2.9.0起,将启用新的地图资源服务,旧地图离线包在新版上不可使用;同时官方不再支持地图离线包下载,所以V2.9.0起,去掉“手动离线导入接口”,SDK离线下载接口维持不变。
  584. 2.自V2.9.0起,iOS SDK采用分包形式,旧包无法与新包同时混用,请将之前所有旧包(包含bundle资源)并全部替换为新包。
  585. 3.自V2.9.0起,iOS SDK使用新的矢量地图样式,地图显示更加清新,和百度地图客户端保持一致
  586. 【 新 增 】
  587.  检索功能
  588. 1、新增类:BMKPoiAddressInfo(POI门址信息类)
  589. 2、BMKPoiResult新增接口:
  590. ///是否返回的有门址信息列表
  591. @property (nonatomic, assign) BOOL isHavePoiAddressInfoList;
  592. ///门址信息列表,成员是BMKPoiAddrsInfo(当进行的是poi城市检索,且检索关键字是具体的门址信息(如在北京搜"上地十街10号")时,会返回此信息)
  593. @property (nonatomic, strong) NSArray* poiAddressInfoList;
  594. 【 修 复 】
  595. 1、修复iOS9后台定位问题;
  596. 2、修复sug检索特殊case引起的crash的问题;
  597. 3、修复自定义AnnotationView,启用3D效果后(enabled3D=YES)点击标注没有响应的问题;
  598. 4、修复获取离线地图包大小信息时,包大小错误的问题。
  599. --------------------
  600. v2.10.0
  601. 注:百度地图iOS SDK向广大开发者提供了配置更简单的 .framework形式的开发包,请开发者选择此种类型的开发包使用。自v2.9.0起,百度地图iOS SDK将不再提供 .a形式的开发包。
  602. 自v2.9.0起,采用分包的形式提供 .framework包,请广大开发者使用时确保各分包的版本保持一致。其中BaiduMapAPI_Base.framework为基础包,使用SDK任何功能都需导入,其他分包可按需导入。
  603. 【 新版提示 】
  604. 1.自v2.9.0起,将启用新的地图资源服务,旧地图离线包在新版上不可使用;同时官方不再支持地图离线包下载,所以v2.9.0起,去掉“手动离线导入接口”,SDK离线下载接口维持不变。
  605. 2.自v2.9.0起,iOS SDK采用分包形式,旧包无法与新包同时混用,请将之前所有旧包(包含bundle资源)并全部替换为新包。
  606. 3.自v2.9.0起,iOS SDK使用新的矢量地图样式,地图显示更加清新,和百度地图客户端保持一致
  607. 【 新 增 / 废 弃 】
  608.  基础地图
  609. 1、新增3D-Touch的回调
  610. BMKMapView 新增属性:
  611. /// 设定地图是否回调force touch事件,默认为NO,仅适用于支持3D Touch的情况,开启后会回调 - mapview:onForceTouch:force:maximumPossibleForce:
  612. @property(nonatomic) BOOL forceTouchEnabled;
  613. BMKMapViewDelegate 新增:
  614. - (void)mapview:(BMKMapView *)mapView onForceTouch:(CLLocationCoordinate2D)coordinate force:(CGFloat)force maximumPossibleForce:(CGFloat)maximumPossibleForce;
  615. 2、新增个性化地图模板,支持黑夜模式、清新蓝等风格地图
  616. BMKMapView 新增方法:
  617. + (void)customMapStyle:(NSString*) customMapStyleJsonFilePath;
  618. 3、新增设置地图边界区域的方法:
  619. BMKMapView 新增属性:
  620. ///地图预留边界,默认:UIEdgeInsetsZero。设置后,会根据mapPadding调整logo、比例尺、指南针的位置,以及targetScreenPt(BMKMapStatus.targetScreenPt)
  621. @property (nonatomic) UIEdgeInsets mapPadding;
  622. 4、开放显示21级地图,但不支持卫星图、热力图、交通路况图层的21级地图。
  623. 5、BMKMapType新增BMKMapTypeNone类型:不加载百度地图瓦片,显示为空白地图。和瓦片图功能配合使用,减少加载数据
  624. 6、新增限制地图的显示范围的方法
  625. BMKMapView 新增属性:
  626. @property (nonatomic) BMKCoordinateRegion limitMapRegion;
  627. 7、支持自定义百度logo位置,共支持6个位置,使用枚举类型控制显示的位置
  628. BMKMapView 新增属性:
  629. @property (nonatomic) BMKLogoPosition logoPosition;
  630. 8、新增禁用所有手势功能
  631. BMKMapView 新增属性:
  632. @property(nonatomic) BOOL gesturesEnabled;
  633. 9、新增获取指南针大小的方法,并支持更换指南针图片
  634. BMKMapView 新增属性、方法:
  635. @property (nonatomic, readonly) CGSize compassSize;
  636. - (void)setCompassImage:(UIImage *)image;
  637. 10、新增获取比例尺大小的方法
  638. BMKMapView 新增属性:
  639. /// 比例尺的宽高
  640. @property (nonatomic, readonly) CGSize mapScaleBarSize;
  641. 11、增加自定义定位精度圈的填充颜色和边框
  642. BMKLocationViewDisplayParam 新增属性:
  643. ///精度圈 填充颜色
  644. @property (nonatomic, strong) UIColor *accuracyCircleFillColor;
  645. ///精度圈 边框颜色
  646. @property (nonatomic, strong) UIColor *accuracyCircleStrokeColor;
  647. 12、新增获取矩形范围内所有marker点的方法
  648. BMKMapView 新增方法:
  649. - (NSArray *)annotationsInCoordinateBounds:(BMKCoordinateBounds) bounds;
  650. 13、BMKMapView废弃接口:
  651. +(void)willBackGround;//逻辑由地图SDK控制
  652. +(void)didForeGround;//逻辑由地图SDK控制
  653.  检索功能
  654. 1、新增骑行规划检索
  655. BMKRouteSearch 新增骑行路线检索方法:
  656. - (BOOL)ridingSearch:(BMKRidingRoutePlanOption*) ridingRoutePlanOption;
  657. BMKRouteSearchDelegate 新增返回骑行检索结果回调:
  658. - (void)onGetRidingRouteResult:(BMKRouteSearch*)searcher result:(BMKRidingRouteResult*)result errorCode:(BMKSearchErrorCode)error;
  659. 新增类:
  660. BMKRidingRoutePlanOption 骑行查询基础信息类
  661. BMKRidingRouteResult 骑行路线结果类
  662. 2、新增行政区边界数据检索
  663. 新增类:
  664. BMKDistrictSearch 行政区域搜索服务类
  665. BMKDistrictSearchDelegate 行政区域搜索结果Delegate
  666. BMKDistrictSearchOption 行政区域检索信息类
  667. BMKDistrictResult 行政区域检索结果类
  668. 3、新增驾车、公交、骑行、步行路径规划短串分享检索
  669. BMKShareURLSearch 新增获取路线规划短串分享方法:
  670. - (BOOL)requestRoutePlanShareURL:(BMKRoutePlanShareURLOption *)routePlanShareUrlSearchOption;
  671. BMKShareURLSearchDelegate 新增返回路线规划分享url结果回调:
  672. - (void)onGetRoutePlanShareURLResult:(BMKShareURLSearch *)searcher result:(BMKShareURLResult *)result errorCode:(BMKSearchErrorCode)error;
  673.  计算工具
  674. 支持调起百度地图客户端骑行、步行导航功能(百度地图App 8.8 以上版本支持)
  675. BMKNavigation 新增方法:
  676. //调起百度地图客户端骑行导航页面
  677. + (BMKOpenErrorCode)openBaiduMapRideNavigation:(BMKNaviPara*)para;
  678. //调起百度地图客户端步行导航页面
  679. + (BMKOpenErrorCode)openBaiduMapWalkNavigation:(BMKNaviPara*)para;
  680. 【 修 复 】
  681. 1、修复只使用检索时,首次鉴权失败(网络问题),再次发起鉴权无效的问题
  682. 2、修复使用地图前使用离线地图,首次安装应用地图白屏的问题
  683. 3、修复拖拽地图时,点击到标注,会触发didSelectAnnotationView:的回调,不回调regionDidChangeAnimated的问题
  684. 4、修复BMKTransitStep 里的stepType中地铁和公交未做区分的问题
  685. --------------------
  686. --------------------
  687. v2.10.2
  688. 注:百度地图iOS SDK向广大开发者提供了配置更简单的 .framework形式的开发包,请开发者选择此种类型的开发包使用。自v2.9.0起,百度地图iOS SDK将不再提供 .a形式的开发包。
  689. 自v2.9.0起,采用分包的形式提供 .framework包,请广大开发者使用时确保各分包的版本保持一致。其中BaiduMapAPI_Base.framework为基础包,使用SDK任何功能都需导入,其他分包可按需导入。
  690. 【 新版提示 】
  691. 1.自v2.9.0起,将启用新的地图资源服务,旧地图离线包在新版上不可使用;同时官方不再支持地图离线包下载,所以v2.9.0起,去掉“手动离线导入接口”,SDK离线下载接口维持不变。
  692. 2.自v2.9.0起,iOS SDK采用分包形式,旧包无法与新包同时混用,请将之前所有旧包(包含bundle资源)并全部替换为新包。
  693. 3.自v2.9.0起,iOS SDK使用新的矢量地图样式,地图显示更加清新,和百度地图客户端保持一致
  694. 【 新 增 】
  695.  基础地图
  696. 1、新增个性化地图道路文字颜色设置(包括高速及国道、城市主路、普通道路)
  697. 【 变 更 】
  698.  检索功能
  699. 1、行政区边界数据检索:为兼容不连续的行政区,行政区边界数据检索结果(BMKDistrictResult),行政区边界坐标点变更为:
  700. /// 行政区边界直角地理坐标点数据(NSString数组,字符串数据格式为: @"x,y;x,y")
  701. @property (nonatomic, strong) NSArray *paths;
  702. 原接口作废
  703. 【 优 化 】
  704. 1、优化瓦片图性能:支持同时下载多张瓦片图、优化下载中断的重加载机制
  705. 【 修 复 】
  706. 1、修复sug检索某些特殊case,city、district为空的情况
  707. 2、修复同步瓦片图内存问题
  708. 3、修复在iOS6运行crash的问题
  709. 4、修复 CVHttpResponse::ReadData 极其偶现的crash
  710. 5、修复某些case下,点击polyline不会回调的问题
  711. 6、修复调起客户端驾车导航后,关闭导航后,不会弹出“是否返回原应用”提示的问题
  712. --------------------
  713. v3.0.0
  714. 注:百度地图iOS SDK向广大开发者提供了配置更简单的 .framework形式的开发包,请开发者选择此种类型的开发包使用。自v2.9.0起,百度地图iOS SDK将不再提供 .a形式的开发包。
  715. 自v2.9.0起,采用分包的形式提供 .framework包,请广大开发者使用时确保各分包的版本保持一致。其中BaiduMapAPI_Base.framework为基础包,使用SDK任何功能都需导入,其他分包可按需导入。
  716. 【 新版提示 】
  717. 1.自v3.0.0起,iOS SDK全面支持ipv6网络
  718. 【 新 增 】
  719.  基础地图
  720. 1、新增室内地图功能
  721. 新增室内地图信息类:BMKBaseIndoorMapInfo
  722. BMKMapView新增接口:
  723. /// 设定地图是否显示室内图(包含室内图标注),默认不显示
  724. @property (nonatomic, assign) BOOL baseIndoorMapEnabled;
  725. /// 设定室内图标注是否显示,默认YES,仅当显示室内图(baseIndoorMapEnabled为YES)时生效
  726. @property (nonatomic, assign) BOOL showIndoorMapPoi;
  727. // 设置室内图楼层
  728. - (BMKSwitchIndoorFloorError)switchBaseIndoorMapFloor:(NSString*)strFloor withID:(NSString*)strID;
  729. // 获取当前聚焦的室内图信息
  730. - (BMKBaseIndoorMapInfo*)getFocusedBaseIndoorMapInfo;
  731. BMKMapViewDelegate新增接口:
  732. //地图进入/移出室内图会调用此接口
  733. - (void)mapview:(BMKMapView *)mapView baseIndoorMapWithIn:(BOOL)flag baseIndoorMapInfo:(BMKBaseIndoorMapInfo *)info;
  734. 2、普通地图与个性化地图切换可以自由切换,BMKMapView新增接口:
  735. + (void)enableCustomMapStyle:(BOOL) enable;
  736. 3、个性化地图配置json文件出错时,打印log提示
  737. 4、设置mapPadding时可控制地图中心是否跟着移动,BMKMapView新增接口:
  738. @property (nonatomic) BOOL updateTargetScreenPtWhenMapPaddingChanged;
  739. 5、BMKMapPoi中新增属性:
  740. ///点标注的uid,可能为空
  741. @property (nonatomic,strong) NSString* uid;
  742.  检索功能
  743. 1、新增室内POI检索
  744. 新增室内POI检索参数信息类:BMKPoiIndoorSearchOption
  745. 新增室内POI搜索结果类:BMKPoiIndoorResult
  746. 新增室内POI信息类:BMKPoiIndoorInfo
  747. BMKPoiSearch新增接口:
  748. //poi室内检索
  749. - (BOOL)poiIndoorSearch:(BMKPoiIndoorSearchOption*)option;
  750. BMKPoiSearchDelegate新增接口:
  751. //返回POI室内搜索结果
  752. - (void)onGetPoiIndoorResult:(BMKPoiSearch*)searcher result:(BMKPoiIndoorResult*)poiIndoorResult errorCode:(BMKSearchErrorCode)errorCode;
  753. 2、驾车路线规划结果新增3个属性:打车费用信息、拥堵米数、红路灯个数,BMKDrivingRouteLine新增接口:
  754. ///路线红绿灯个数
  755. @property (nonatomic, assign) NSInteger lightNum;
  756. ///路线拥堵米数,发起请求时需设置参数 drivingRequestTrafficType = BMK_DRIVING_REQUEST_TRAFFICE_TYPE_PATH_AND_TRAFFICE 才有值
  757. @property (nonatomic, assign) NSInteger congestionMetres;
  758. ///路线预估打车费(元),负数表示无打车费信息
  759. @property (nonatomic, assign) NSInteger taxiFares;
  760. 3、busline检索新增参考票价和上下线行信息,BMKBusLineResult新增接口:
  761. ///公交线路方向
  762. @property (nonatomic, strong) NSString* busLineDirection;
  763. ///起步票价
  764. @property (nonatomic, assign) CGFloat basicPrice;
  765. ///全程票价
  766. @property (nonatomic, assign) CGFloat totalPrice;
  767. 4、poi检索结果新增是否有全景信息,BMKPoiInfo新增接口:
  768. @property (nonatomic, assign) BOOL panoFlag;
  769.  计算工具
  770. 新增调起百度地图客户端全景功能
  771. 新增调起百度地图全景类:BMKOpenPanorama
  772. 新增调起百度地图全景参数类:BMKOpenPanoramaOption
  773. 新增调起百度地图全景delegate:BMKOpenPanoramaDelegate
  774. 【 修 复 】
  775. 1、修复反复添加移除离线瓦片图时偶现的crash问题
  776. 2、修复上传AppStore时提示访问私有api:-setOverlayGeometryDelegate:的问题
  777. 3、修复地图网络解析时偶现的crash问题
  778. --------------------
  779. v3.1.0
  780. 注:百度地图iOS SDK向广大开发者提供了配置更简单的 .framework形式的开发包,请开发者选择此种类型的开发包使用。自v2.9.0起,百度地图iOS SDK将不再提供 .a形式的开发包。
  781. 自v2.9.0起,采用分包的形式提供 .framework包,请广大开发者使用时确保各分包的版本保持一致。其中BaiduMapAPI_Base.framework为基础包,使用SDK任何功能都需导入,其他分包可按需导入。
  782. 【 新 增 】
  783.  基础地图
  784. 1、开放高清4K地图显示(无需设置)
  785. 2、瓦片图新增异步加载方法:
  786. 新增异步加载类:BMKAsyncTileLayer
  787. 3、新增地图渲染完成回调方法:
  788. - (void)mapViewDidFinishRendering:(BMKMapView *)mapView;
  789. 4、新增定位显示类型:BMKUserTrackingModeHeading(在普通定位模式的基础上显示方向)
  790.  检索功能
  791. 1、新增室内路径规划
  792. BMKRouteSearch新增发起室内路径规划接口:
  793. - (BOOL)indoorRoutePlanSearch:(BMKIndoorRoutePlanOption*) indoorRoutePlanOption;
  794. BMKRouteSearchDelegate新增室内路径规划结果回调:
  795. - (void)onGetIndoorRouteResult:(BMKRouteSearch*)searcher result:(BMKIndoorRouteResult*)result errorCode:(BMKSearchErrorCode)error;
  796. 新增室内路径规划检索参数类:BMKIndoorRoutePlanOption
  797. 新增室内路径规划检索结果类:BMKIndoorRouteResult
  798. 2、增加新的公共交通线路规划(支持同城和跨城)
  799. BMKRouteSearch增加新的公共交通线路规划接口:
  800. - (BOOL)massTransitSearch:(BMKMassTransitRoutePlanOption*)routePlanOption;
  801. BMKRouteSearchDelegate增加新的公共交通线路规划结果回调:
  802. - (void)onGetMassTransitRouteResult:(BMKRouteSearch*)searcher result:(BMKMassTransitRouteResult*)result errorCode:(BMKSearchErrorCode)error;
  803. 增加新的公共交通线路规划检索参数类:BMKMassTransitRoutePlanOption
  804. 增加新的公共交通线路规划检索结果类:BMKMassTransitRouteResult
  805.  LBS云检索
  806. 1、新增云RGC检索功能
  807. BMKCloudSearch新增发起云RGC检索接口:
  808. - (BOOL)cloudReverseGeoCodeSearch:(BMKCloudReverseGeoCodeSearchInfo*)searchInfo;
  809. BMKCloudSearchDelegate新增云RGC检索结果回调:
  810. - (void)onGetCloudReverseGeoCodeResult:(BMKCloudReverseGeoCodeResult*)cloudRGCResult searchType:(BMKCloudSearchType) type errorCode:(NSInteger) errorCode;
  811. 新增云RGC检索参数类:BMKCloudReverseGeoCodeSearchInfo
  812. 新增云RGC检索结果类:BMKCloudReverseGeoCodeResult
  813. 【 优 化 】
  814. 1、优化Marker加载性能:添加Marker和加载大量Marker时,性能大幅提高。
  815. 2、优化地图内存
  816. 【 修 复 】
  817. 1、长按地图某区域,OnLongClick会被不停调用的问题
  818. 2、绘制弧线,特殊case提示画弧失败的问题
  819. 3、一次点击事件,点击地图空白处回调和点击覆盖物回调都会调用的问题
  820. --------------------
  821. v3.2.0
  822. 注:自v3.2.0起,百度地图iOS SDK全面支持HTTPS,需要广大开发者导入第三方openssl静态库:libssl.a和libcrypto.a(存放于thirdlib目录下)。
  823. 【 新版提示 】
  824. 1、自v3.2.0起,全面支持HTTPS
  825. 2、自v3.2.0起,地图引擎全面升级,主要升级特征有:
  826. 渲染架构技术升级,OpenGL ES从1.0升级到2.0
  827. 地图数据加载升级,加载性能大幅提升
  828. 【 新 增 】
  829.  检索功能
  830. 1、建议检索支持港澳台;建议检索可控制只返回指定城市的检索结果
  831. BMKSuggestionSearchOption新增属性:
  832. ///是否只返回指定城市检索结果(默认:NO)(提示:海外区域暂不支持设置cityLimit)
  833. @property (nonatomic, assign) BOOL cityLimit;
  834. 2、反地址编码结果BMKReverseGeoCodeResult新增属性:
  835. ///结合当前位置POI的语义化结果描述
  836. @property (nonatomic, strong) NSString* sematicDescription;
  837. 【 优 化 】
  838. 1、建议检索和反地址编码检索服务升级,提供更加优质的服务
  839. 【 修 复 】
  840. 1、修复国外定位偏移的问题
  841. 2、修复特殊情况下,移除BMKGroundOverlay时的问题
  842. --------------------
  843. v3.2.1
  844. 注:自v3.2.0起,百度地图iOS SDK全面支持HTTPS,需要广大开发者导入第三方openssl静态库:libssl.a和libcrypto.a(存放于thirdlib目录下)。
  845. 【 新版提示 】
  846. 1、自v3.2.0起,全面支持HTTPS
  847. 2、自v3.2.0起,地图引擎全面升级,主要升级特征有:
  848. 渲染架构技术升级,OpenGL ES从1.0升级到2.0
  849. 地图数据加载升级,加载性能大幅提升
  850. 【 修 复 】
  851. 修复下载离线地图时,delegate方法返回state错误问题
  852. *********************/
  853. /**
  854. *获取当前地图API的版本号
  855. *return 返回当前API的版本号
  856. */
  857. UIKIT_STATIC_INLINE NSString* BMKGetMapApiVersion()
  858. {
  859. return @"3.2.1";
  860. }
  861. /**
  862. *获取当前地图API base组件 的版本号
  863. *当前base组件版本 : 3.2.1
  864. *return 返回当前API base组件 的版本号
  865. */
  866. UIKIT_EXTERN NSString* BMKGetMapApiBaseComponentVersion();