Swift4-如何将地图区域设置为位置

时间:2018-07-08 16:50:32

标签: swift mapkit

这是我的错误代码,它应该使您了解我想要实现的目标

        let destCoordinates = CLLocationCoordinate2DMake(lat, long)
    let annonation = MKPointAnnotation()
    annonation.coordinate = destCoordinates
    clientMap.addAnnotation(annonation)
    self.clientMap.setRegion(MKCoordinateRegion(destCoordinates), animated: true)

2 个答案:

答案 0 :(得分:3)

您不能“仅”将区域设置为坐标。地图区域不仅由坐标(区域中心所在的位置)组成,还由跨度(该区域的宽度和高度)组成。因此说诸如“设置此地图的区域以使中心为(0,0)”之类的说法毫无意义,因为您缺少该区域的宽度和高度。

这意味着您必须积极考虑您想要的区域跨度如何。换句话说,您希望地图放大多少?

例如,如果要保持相同的缩放级别,可以执行以下操作:

self.clientMap.setRegion(MKCoordinateRegion(center: destCoordindates, span: self.clientMap.region.span), animated: true)

但是大多数时候,您可能想放大到destCoordinates所在的任何位置,以获得良好的用户体验。尝试使用不同的跨度值,例如:

self.clientMap.setRegion(MKCoordinateRegion(center: destCoordindates, span: MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1)), animated: true)

答案 1 :(得分:0)

您不能简单地将坐标投射到某个区域。区域以坐标为中心,跨度为尺寸。阅读文档here

这是初始化程序:

MKCoordinateRegion(center: CLLocationCoordinate2D, span: MKCoordinateSpan)