iOS:开放平台引用(五)--百度地图

总体原则,参考官方sdk文档说明+官方demo;

提供功能:

  • 地图:提供地图展示和地图操作功能;
    1. 地图展示包括:普通地图(2D,3D)、卫星图和实时交通图;
    2. 地图操作:可通过接口或手势控制来实现地图的点击、双击、长按、缩放、旋转、改变视角等操作。
  • POI检索:支持周边检索、区域检索和城市内兴趣点检索;
  • 地理编码:提供经纬度和地址信息相互转化的功能接口;
  • 线路规划:支持公交、驾车、步行三种方式的线路规划;
  • 覆盖物图层:支持在地图上添加覆盖物(标注、几何图形、热力图、地形图图层等),展示更丰富的LBS信息(显示POI检索结果、线路规划结果、自定义标绘等),此外还提供特有的图片图层,用于显示用户传入的图片信息。开放热力图绘制能力,通过用户自有数据,绘制属于自己的热力图;
  • 定位:获取当前位置信息,并在地图上展示(支持普通、跟随、罗盘三种模式);
  • 离线地图:使用离线地图可节省用户流量,提供更好的地图展示效果;
  • 导航:支持调启百度地图客户端导航和调启Web页面导航(H5导航);
  • LBS云检索:支持查询存储在LBS云内的自有数据(实现移动开发者存储海量位置数据的服务器零成本及维护压力,且支持高效检索用户数据,且实现地图展现);
  • 特色功能:提供短串分享、Place详情检索、热力图等特色功能;
    1. 短串分享:将POI搜索结果或反地理编码结果生成短串,当其他用户点击短串即可打开手机上的百度地图客户端或者手机浏览器进行查看。
    2. 热力图绘制:根据用户自有数据,提供相应绘制接口,实现热力图本地绘制;
    3. Place详情检索:根据POI的ID信息,检索指定POI点的Place详情数据;

配置环境(.a为例)

  • 引入头文件+静态库文件:配置-ObjC、Library Search Paths、mm文件命名/Objective-C++
  • 引入系统framework
  • 引入mapapi.bundle。其中存储了定位、默认大头针标注View及路线关键点的资源图片,还存储了矢量地图绘制必需的资源文件。如果您不需要使用内置的图片显示功能,则可以删除bundle文件中的image文件夹。您也可以根据具体需求任意替换或删除该bundle中image文件夹的图片文件。

注意问题

  • 静态库中采用ObjectC++实现,因此需要保证您工程中至少有一个.mm后缀的源文件或者 Compile Sources As设置为”Objective-C++”
  • -ObjC符号
  • 管理地图的生命周期:自2.0.0起,BMKMapView新增viewWillAppear、viewWillDisappear方法来控制BMKMapView的生命周期,并且在一个时刻只能有一个BMKMapView接受回调消息,因此在使用BMKMapView的viewController中需要在viewWillAppear、viewWillDisappear方法中调用BMKMapView的对应的方法,并处理delegate。详见文档
  • 自iOS SDK v2.5.0起,为了对iOS8的定位能力做兼容,做了相应的修改,开发者在使用过程中注意事项如下: 需要在info.plist里添加(以下二选一:NSLocationWhenInUseUsageDescription/NSLocationAlwaysUsageDescription,俩者都有使用前者 );
  • 在使用Xcode6进行SDK开发过程中,需要在info.plist中添加:Bundle display name ,且其值不能为空(Xcode6新建的项目没有此配置,若没有会造成manager start failed)
  • 注意BMKManager对象的生命周期管理,在使用地图SDK期间不能释放该对象,否则网络模块将不可用,地图无法加载,检索失败。
  • app在前后台切换时,需要停止/回复地图的渲染和openGL的绘制:

地图展示

  1. 创建BMKMapView
  2. 基本配置mapView:zoomLevel+mapType;
  3. 创建BMKMapManager,需要用到百度秘钥(key)
    说明:bundle identifier必须跟的key对应,否则显示百度地图只是空白格子

路径规划、定位

详见demo、sdk文档;

地图导航

  • 导入bundle包、.a静态库文件等
  • 导入需要的framwork
  • 配置other linker flags、architecutre
  • 配置plist文件(NSLocationAlwaysUsageDescription)

使用
- 开启引擎
- 发起导航

你可能感兴趣的:(ios,地图SDK,BMKMap)