MapKit iPhone显示器Zoom Controls
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MapKit iPhone显示器Zoom Controls相关的知识,希望对你有一定的参考价值。
是否可以使用MapKit在iPhone中显示地图,就像我正在做的那样,在地图上显示缩放控件?
如果没有,我应该使用什么标志或方法来增加和减少缩放,所以我可以创建方法,只需按一下按钮即可完成。
答案
它没有任何内置控件。
一些建议:
- 您可以预定义一些跨距并将它们存储在某个数组中,然后将您的位置存储在该数组中。放大/缩小会改变位置并获得跨度。
- 放大获取当前跨度并除以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
上,然后用那些修改region
的MKMapView
属性
另一答案
如果有一个显示缩放控件的开关,我不记得(在Windows框上工作)。我假设您正在谈论显示缩放级别,因为默认情况下您可以捏合/展开视图以进行缩放。
如果没有显示控件的开关,则需要创建自定义视图图层并将其放在mapkit视图的顶部。然后,您需要调用不同的函数来更改缩放级别。
这些功能都记录在mapkit文档中。只需在文档中心搜索MapKit即可。
根据文档,没有显示控件的开关,但启用缩放属性可让您打开和关闭该功能。
因此,您可以订阅委托函数regionWillChange并使用mapView对象获取缩放级别,然后相应地设置图形。
另一答案
对于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);
}
以上是关于MapKit iPhone显示器Zoom Controls的主要内容,如果未能解决你的问题,请参考以下文章