这是我的错误代码,它应该使您了解我想要实现的目标
let destCoordinates = CLLocationCoordinate2DMake(lat, long)
let annonation = MKPointAnnotation()
annonation.coordinate = destCoordinates
clientMap.addAnnotation(annonation)
self.clientMap.setRegion(MKCoordinateRegion(destCoordinates), animated: true)
答案 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)