您现在的位置:

控件交互

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


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

目前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];
                }                  
                

返回顶部