Я понял это только сейчас,
func mapView(mapView: MKMapView!, didUpdateUserLocation userLocation: MKUserLocation!) {
// Define a span (for zoom)
let span: MKCoordinateSpan = MKCoordinateSpan(latitudeDelta: 0.005, longitudeDelta: 0.005)
// Get user location
let location = CLLocationCoordinate2D(
latitude: userLocation.coordinate.latitude,
longitude: userLocation.coordinate.longitude
)
// Get the close region for the user's location
// This zooms into the user's tracked location
let region = MKCoordinateRegion(center: location, span: span)
let adjusted = mapView.regionThatFits(region)
mapView.setRegion(adjusted, animated: true)
// Here we set the offset of the map to be 75% to the right
// and 15% from the top. Gives us a nice top right view.
var rect = mapView.visibleMapRect
let point = MKMapPointForCoordinate(location)
rect.origin.x = point.x - rect.size.width * 0.75
rect.origin.y = point.y - rect.size.height * 0.15
mapView.setVisibleMapRect(rect, animated: true)
}
Ответ Pablo A. был хорошей отправной точкой, но, к сожалению, этого было недостаточно, чтобы делать то, что я искал.
Я пошел вперед и добавил вид маски в верхней части карты, чтобы лучше визуализировать, какой интерфейс я собирался в конце.
Так что это в основном означает, что я бы скрыть местоположение пользователя, но сохранить следующий пользователь и использовать свой собственный палец? –
На самом деле, прочитав дважды то, что вы пытаетесь сделать, вы сможете получить разницу между пользовательской координатой пользователя и предыдущей вычисленной координатой и центрировать карту в 'user location - diff'. –
Раньше вычисленная координата означает значение fakecenter? –