MapKit iPhone显示缩放控件

MapKit iPhone显示缩放控件,iphone,objective-c,map,zooming,Iphone,Objective C,Map,Zooming,是否可以像我现在做的那样,使用MapKit在iPhone中显示地图,在地图上显示缩放控件 如果没有,我应该使用哪些标志或方法来增加和减少缩放,这样我就可以创建方法,只需按下按钮即可完成此操作。在我的头顶上,我不记得(在windows框上工作时)是否有显示缩放控件的开关。我假设您谈论的是显示缩放级别,因为默认情况下,您可以收缩/展开视图进行缩放 如果没有显示控件的开关,则需要创建自定义视图图层并将其放置在mapkit视图的顶部。然后需要调用不同的函数来更改缩放级别 这些功能都记录在mapkit文档

是否可以像我现在做的那样,使用MapKit在iPhone中显示地图,在地图上显示缩放控件


如果没有,我应该使用哪些标志或方法来增加和减少缩放,这样我就可以创建方法,只需按下按钮即可完成此操作。

在我的头顶上,我不记得(在windows框上工作时)是否有显示缩放控件的开关。我假设您谈论的是显示缩放级别,因为默认情况下,您可以收缩/展开视图进行缩放

如果没有显示控件的开关,则需要创建自定义视图图层并将其放置在mapkit视图的顶部。然后需要调用不同的函数来更改缩放级别

这些功能都记录在mapkit文档中。只需在文档中心搜索MapKit

编辑:

根据文档,没有显示控件的开关,但“缩放启用”属性允许您打开和关闭该功能


因此,您可以订阅委托函数regionWillChange并使用mapView对象获取缩放级别,然后相应地设置图形。

没有任何内置控件

有几点建议:

  • 您可以预定义一些跨距并将其存储在某个位置的数组中,然后将您的位置也存储在该数组中。放大/缩小会更改位置并获取范围
  • 放大以当前跨度除以2,缩小乘以2
  • 您可以更改地图视图区域中的跨度。因此,你必须:

    • 获取地图视图的区域
    • 获取区域的跨度
    • 将范围更改为所需的范围
    • 将区域范围设置为新范围
    • 将地图视图的区域设置为新区域
    以下是建议2的一些代码:

    MKCoordinateRegion region = mapView.region;
    MKCoordinateSpan span;
    span.latitudeDelta = region.span.latitudeDelta*2;
    span.longitudeDelta = region.span.longitudeDelta*2;
    region.span = span;
    [mapView setRegion:region animated:TRUE];
    

    我认为你不应该这样做,预期的放大和缩小方式是使用捏手势。但是,如果您仍想继续操作,则应将按钮放置在
    MKMapView
    上,然后使用这些按钮修改swift 4的
    MKMapView
    区域属性,这就是我使用的:

    func zoom(_ zoomin : Bool) {
        var region = mapView.region;
        var span = MKCoordinateSpan();
        span.latitudeDelta = zoomin ? region.span.latitudeDelta / 2 :  region.span.latitudeDelta * 2;
        span.longitudeDelta = zoomin ? region.span.longitudeDelta / 2 : region.span.longitudeDelta * 2;
        region.span = span;
    
        mapView.setRegion(region, animated: true);
    }
    

    谢谢swift版本:
    var region=mapView.region;var span=MKCoordinateSpan();span.latitudeDelta=区域span.latitudeDelta*2;span.longitudeDelta=区域span.longitudeDelta*2;region.span=span;setRegion(区域,动画:true)