基础地图
开发者可利用SDK提供的接口,使用百度提供的基础地图数据。目前百度地图SDK所提供的地图等级为19级,所包含的信息有建筑物、道路、河流、学校、公园等内容。
百度地图支持多点触摸、双击放大、多点单击缩小、旋转等手势操作,此外自2.2.0版本起,支持相应的控制接口来开启/关闭这些手势操作;此外,在该版本地图对象实现了多实例特性,即开发者可以在一个页面中建立多个地图对象,并且针对这些对象分别操作且不会产生相互干扰。具体使用方法请参考MultiMapViewDemo的介绍。
地图上自定义的标注点和覆盖物我们统称为地图覆盖物。您可以通过定制BMKAnnotation和BMKOverlay来添加对应的标注点和覆盖物。地图覆盖物的设计遵循数据与View分离的原则,BMKAnnotation和BMKOverlay系列的类主要用来存放覆盖物相关的数据,BMKAnnotaionView和BMKOverlayView系列类为覆盖物对应的View。
SDK支持画点、折线、圆、多边形(包括凹凸两种)、图片图层和自定义覆盖物。从2.0.0开始矢量地图采用OpenGL绘制,新增支持OpenGL绘制的基本线绘制、面绘制接口。详见AnnotationDemo,SDK内置的BMKPolylineOverlay、BMKPolygonOverlay,BMKCircleOverlay均采用OpenGL绘制。
1. 卫星图
//切换为卫星图[_mapView setMapType:BMKMapTypeSatellite];
运行后效果如下:
2. 由卫星图切换为普通矢量图的核心代码如下:
//切换为普通地图[_mapView setMapType:BMKMapTypeStandard];
3. 实时交通图
利用地图SDK所提供的接口,开发者可显示当前地图城市内的实时路况信息(点击查看支持实时路况的城市)。此外,自2.0.0版本起,SDK还支持城际(城市之间,如高速)路况。
开启实时路况的核心代码如下:
//打开实时路况图层[_mapView setTrafficEnabled:YES];
运行后效果如下:
关闭实时路况的核心代码如下:
//关闭实时路况图层[_mapView setTrafficEnabled:NO];
4. 百度城市热力图
百度地图SDK继为广大开发者开放热力图本地绘制能力之后,再次进一步开放百度自有数据的城市热力图层,帮助开发者构建形式更加多样的移动端应用。
百度城市热力图的性质及使用与实时交通图类似,只需要简单的接口调用,即可在地图上展现样式丰富的百度城市热力图。
在地图上使用百度城市热力图的核心代码如下:
//打开百度城市热力图图层(百度自有数据)[_mapView setBaiduHeatMapEnabled:YES];
运行后效果如下:
//关闭百度城市热力图图层(百度自有数据)[_mapView setBaiduHeatMapEnabled:NO];
5. 地图标注
1). 标注
BMKAnnotation为标注对应的protocal,您可以自定义标注类实现该protocal。百度地图SDK也预置了基本的标注点(BMKPointAnnotation)和一个大头针标注View(BMKPinAnnotationView),您可以直接使用来显示标注。方法如下:
第一步,ViewController 遵守 BMKMapViewDelegate 协议:
第二步,修改ViewController.m文件,实现BMKMapViewDelegate的_mapView:viewForAnnotation:函数,并在viewDidAppear添加标注数据对象,核心代码如下:
运行后,会在地图显示对应的标注点,点击会弹出气泡,效果如图:
通过以上几步简单的操作,您就可以实现在地图上添加标注了,相应的删除标注方法如下:
2). 点聚合功能
自v2.9.0版本起,新增点聚合功能,可通过缩小地图层级