控件交互
地图控件包括指南针、比例尺控件、缩放按钮。
指南针、比例尺和缩放控件
目前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];
- }