控件交互
地图控件包括指南针、比例尺控件、缩放按钮。
指南针、比例尺和缩放控件
目前sdk需要客户端自己定义指南针比例尺及缩放控件,指南针和缩放控件为UIButton类型,比例尺为MBScaleView类型。MBScaleView定义方法如下:
(完整代码详见SDKDemo工程的MBMapController.m)
// 比例尺
scaleView = [[MBScaleView alloc]initWithFrame:CGRectZero];
[baseMapView addSubview:scaleView];
scaleView.logo = @"演示Demo";
地图旋转时,接收方向改变消息,处理如下,实现指南针功能。
(完整代码详见SDKDemo工程的MBMapController.m)
/**
* 使用手势旋转地图时触发
* @param mapView 当前地图
* @return 空
*/
- (void)mbMapViewOnRotate:(MBMapView *)mapView {
CGFloat angle = baseMapView.heading * (M_PI/180);
compass.transform = CGAffineTransformMakeRotation(-angle);
}
地图更新时,更新比例尺控件,处理如下,实现显示当前比例尺。
(完整代码详见SDKDemo工程的MBMapController.m)
/** 更新比例尺 */
- (void)updateScaleView {
CGFloat scale = [baseMapView zoomLevel2Scale:ceil(baseMapView.zoomLevel)];
scaleView.pixelSize = [baseMapView meter2Pixel:scale];
scaleView.scale = baseMapView.scale;
}
缩放控件点击时,处理如下,实现放大缩小地图。
(完整代码详见SDKDemo工程的MBMapController.m)
- (void)zoomInButtonClick:(float)zoomLevel {
[baseMapView setZoomLevel:baseMapView.zoomLevel + 1.0 animated:YES];
}
- (void)zoomOutButtonClick:(float)zoomLevel {
[baseMapView setZoomLevel:baseMapView.zoomLevel - 1.0 animated:YES];
}
