您现在的位置:

控件交互

地图控件包括指南针、比例尺控件、缩放按钮。


指南针、比例尺和缩放控件

目前sdk需要客户端自己定义指南针比例尺及缩放控件,指南针和缩放控件为UIButton类型,比例尺为MBScaleView类型。MBScaleView定义方法如下:

  1. (完整代码详见SDKDemo工程的MBMapController.m
  2. // 比例尺
  3. scaleView = [[MBScaleView alloc]initWithFrame:CGRectZero];
  4. [baseMapView addSubview:scaleView];
  5. scaleView.logo = @"演示Demo";

地图旋转时,接收方向改变消息,处理如下,实现指南针功能。

  1. (完整代码详见SDKDemo工程的MBMapController.m
  2. /**
  3. * 使用手势旋转地图时触发
  4. * @param mapView 当前地图
  5. * @return 空
  6. */
  7. - (void)mbMapViewOnRotate:(MBMapView *)mapView {
  8. CGFloat angle = baseMapView.heading * (M_PI/180);
  9. compass.transform = CGAffineTransformMakeRotation(-angle);
  10. }

地图更新时,更新比例尺控件,处理如下,实现显示当前比例尺。

  1. (完整代码详见SDKDemo工程的MBMapController.m
  2. /** 更新比例尺 */
  3. - (void)updateScaleView {
  4. CGFloat scale = [baseMapView zoomLevel2Scale:ceil(baseMapView.zoomLevel)];
  5. scaleView.pixelSize = [baseMapView meter2Pixel:scale];
  6. scaleView.scale = baseMapView.scale;
  7. }

缩放控件点击时,处理如下,实现放大缩小地图。

  1. (完整代码详见SDKDemo工程的MBMapController.m
  2. - (void)zoomInButtonClick:(float)zoomLevel {
  3. [baseMapView setZoomLevel:baseMapView.zoomLevel + 1.0 animated:YES];
  4. }
  5.  
  6. - (void)zoomOutButtonClick:(float)zoomLevel {
  7. [baseMapView setZoomLevel:baseMapView.zoomLevel - 1.0 animated:YES];
  8. }

返回顶部