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