繁体   English   中英

MapKit iPhone显示缩放控件

[英]MapKit iPhone display Zoom Controls

是否可以像我一样使用MapKit在iPhone中显示地图,以便在地图上显示缩放控件?

如果没有,我应该使用哪些标志或方法来增大和减小缩放,因此我可以创建按一下按钮即可执行此操作的方法。

没有任何内置控件。

一些建议:

  1. 您可以预定义一些跨度,并将它们存储在数组中的某个位置,然后再将位置存储在该数组中。 放大/缩小会更改位置并获取跨度。
  2. 放大将当前跨度除以2,将缩小乘以2。

您可以在mapView的区域中更改跨度。 因此,您必须:

  • 获取mapView的区域。
  • 获取区域的范围。
  • 将跨度更改为所需的范围。
  • 将区域范围设置为新范围。
  • 将mapView的区域设置为新区域。

这是一些建议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 ,然后使用它们修改MKMapViewregion属性。

对于Swift 4,这是我使用的方法:

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);
}

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

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

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

编辑: http : //developer.apple.com/library/ios/#documentation/MapKit/Reference/MKMapView_Class/MKMapView/MKMapView.html#//apple_ref/doc/uid/TP40008205

根据文档,没有显示控件的开关,但是启用了zoom的属性使您可以打开或关闭该功能。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM