我的地图上有一个针脚的坐标。我尝试将地图放在那个引脚上,但我不想将引脚直接放在地图的中间,而是放在屏幕的1/3处。我尝试在以下解决方法中执行此操作:
let coordinateRegion = MKCoordinateRegionMakeWithDistance(coordinatesOfThePin, 500, 500)
mapView.setRegion(coordinateRegion, animated: true)
let frame = mapView.frame
let myPoint = CGPointMake(frame.midX, frame.midY/3)
let myCoordinate = mapView.convertPoint(myPoint, toCoordinateFromView: mapView)
let coordinateRegion2 = MKCoordinateRegionMakeWithDistance(myCoordinate, 500, 500)
mapView.setRegion(coordinateRegion2, animated: true)
但它显示随机位置,具体取决于地图的第一个位置。你可以帮我重写我的代码,这样我就可以放一个引脚位置并得到如下结果:
-------------------
| |
| |
| X | <-- my pin in the 1/3 of the visible map area.
| |
| |
| |
| |
| |
| |
| |
| |
-------------------
答案 0 :(得分:3)
如果您希望该点使用当前缩放比例,但只是以坐标为中心,使其在屏幕上方的1/3处,您可以设置centerCoordinate
,然后将其轻推一个第六位是latitudeDelta
的{{1}}:
span
根据您的需要调整func updateMapForCoordinate(coordinate: CLLocationCoordinate2D) {
var center = coordinate;
center.latitude -= self.mapView.region.span.latitudeDelta / 6.0;
mapView.setCenterCoordinate(center, animated: true);
}
的调整,但希望这说明了一种简单的方法。显然,这个小技巧只有在地图没有音高且没有旋转时才有效。
如果您想先放大,可以设置相机,然后重置center
:
centerCoordinate