浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

iOS 地图SDK

百度地图SDK是一套应用程序接口, 通过调用地图SDK接口,开发者可以轻松访问百度地图的服务和数据,构建功能丰富、交互性强的地图类应用程序。

展示定位

定位的展示与定位的获取方式无关。展示定位功能位于“基础地图(Map)”功能模块。 控制定位展示的核心代码如下:

//以下_mapView为BMKMapView对象
//显示定位图层
_mapView.showsUserLocation = YES;

效果图如下:

xsdw001.png


获取定位信息

iOS地图SDK 4.2.0版本后不再提供Location定位组件,百度地图开放平台在系统定位基础之上,为广大开发者全新提供了iOS端独立的定位SDK产品, 欢迎广大开发者的使用。 在定位SDK的定位结果回调方法中,调用地图SDK的相应方法,更新地图上展示的定位图标的位置和朝向等显示效果,具体核心代码如下:(完整代码请参考Demo中的BMKLocationModePage)

@property (nonatomic, strong) BMKUserLocation *userLocation; //当前位置对象
//由于以下代理方法中分别且仅只返回heading或location信息,请开发者务必将该对象定义为全局类型,避免在以下回调用使用局部的BMKUserLocation对象,导致出现定位显示错误位置的情况。
// 定位SDK中,方向变更的回调
- (void)BMKLocationManager:(BMKLocationManager *)manager didUpdateHeading:(CLHeading *)heading {
if (!heading) {
return;
}
if (!self.userLocation) {
self.userLocation = [[BMKUserLocation alloc] init];
}
self.userLocation.heading = heading;
[self.mapView updateLocationData:self.userLocation];
}

// 定位SDK中,位置变更的回调
- (void)BMKLocationManager:(BMKLocationManager *)manager didUpdateLocation:(BMKLocation *)location orError:(NSError *)error {
if (error) {
NSLog(@"locError:{%ld - %@};", (long)error.code, error.localizedDescription);
}
if (!location) {
return;
}
if (!self.userLocation) {
self.userLocation = [[BMKUserLocation alloc] init];
}
self.userLocation.location = location.location;
[self.mapView updateLocationData:self.userLocation];
}

其他定位相关的开发指南,请参考iOS定位SDK文档注意:iOS定位SDK返回纬度默认为国测局坐标系BMKLocationCoordinateTypeGCJ02,iOS地图SDK默认全局坐标系为百度坐标系BMKLocationCoordinateTypeBMK09LL

定位模式设置

BMKMapView的定位模式(userTrackingMode)有4种。

普通定位模式

显示我的位置,我的位置图标和地图都不会旋转

_mapView.userTrackingMode = BMKUserTrackingModeNone; 

效果如下图:

xsdw002.png

定位方向模式

显示我的位置,我的位置图标会旋转,地图不会旋转

 _mapView.userTrackingMode = BMKUserTrackingModeHeading; 

效果如下图:

xsdw003.png

定位跟随模式

我的位置始终在地图中心,我的位置图标会旋转,地图不会旋转

_mapView.userTrackingMode = BMKUserTrackingModeFollow;

效果如下图:

xsdw004.png

定位罗盘模式

我的位置始终在地图中心,我的位置图标和地图都会跟着旋转

_mapView.userTrackingMode = BMKUserTrackingModeFollowWithHeading;

效果如下图:

xsdw005.png

定位图标和精度圈自定义设置

BMKLocationViewDisplayParam类提供了定位图层的配置项,可以通过BMKMapView的updateLocationViewWithParam方法自定义定位图层,代码示例如下:

// self.mapView是BMKMapView对象
BMKLocationViewDisplayParam *param = [[BMKLocationViewDisplayParam alloc] init];
//根据配置参数更新定位图层样式
[self.mapView updateLocationViewWithParam:param];

定位图标设置

//定位图标名称,需要将该图片放到 mapapi.bundle/images 目录下
param.locationViewImgName = @"icon_nav_bus";;
//用户自定义定位图标,V4.2.1以后支持
param.locationViewImage = [UIImage imageNamed:@"location.png"];

效果图如下:

xsdw006.png

精度圈设置

//设置显示精度圈,默认YES
param.isAccuracyCircleShow = YES;
//精度圈 边框颜色
param.accuracyCircleStrokeColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:0.5];
//精度圈 填充颜色
param.accuracyCircleFillColor = [UIColor colorWithRed:0 green:1 blue:0 alpha:0.3];

效果如下图:

xsdw007.png

  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消