美文网首页MKMapKit
MKMapKit学习总结(二)增加地图缩放功能

MKMapKit学习总结(二)增加地图缩放功能

作者: 生锈的浪花 | 来源:发表于2020-04-15 15:01 被阅读0次

    背景

    最近使用MKMapKit地图,替换原有的高德地图sdk,遇到了没有zoomlevel属性,用于设置地图的缩放等级。

    在MKMapView中对地图显示的中心和区域缩放的大小,进行设置的用的::MKCoordinateRegion 和 MKCoordinateSpan::这两个属性。

    详细的说明见,这个网址,博主说的很明白计算MKMapView的zoomlevel(地图缩放等级)里面详解了地图的缩放的等级,和zoomLevel的算法解析,这里就不做多说。

    博文中对,实现方式,只有swift的代码,而且只有get方法,我在oc的基础上实现了set和get方法。

    下面是正经代码啦

    下面是.m文件

    - (void)setZoomLevel:(NSUInteger)zoomLevel
    {
        [self setZoomLevel:zoomLevel animated:NO];
    }
    
    - (NSUInteger)zoomLevel
    {
        return round(log2(360 * (((double)self.frame.size.width/256) / self.region.span.longitudeDelta)));
    }
    
    - (void)setZoomLevel:(NSUInteger)zoomLevel animated:(BOOL)animated
    {
        
        MKCoordinateSpan span = MKCoordinateSpanMake(0,
                                                     360 / pow(2, (double)zoomLevel) * (double)self.frame.size.width / 256);
        [self setRegion:(MKCoordinateRegionMake(self.centerCoordinate, span)) animated:animated];
    }
    

    下面是.h文件

    @property (nonatomic) NSUInteger zoomLevel;
    
    // 缩放级别3-20
    - (void)setZoomLevel:(NSUInteger)zoomLevel animated:(BOOL)animated;
    
    

    相关文章

      网友评论

        本文标题:MKMapKit学习总结(二)增加地图缩放功能

        本文链接:https://www.haomeiwen.com/subject/uvucvhtx.html