Сохранить уровень масштабирования карты при отслеживании местоположения пользователя
У меня проблема с тем, что карта автоматически уменьшается, когда пользователь нажимает на кнопку, которая начнет отслеживать изменение местоположения пользователя, как, например, приложение Apple Map, когда вы нажимаете кнопку привязки один раз.
Я попытался установить регион еще раз, прежде чем установить режим отслеживания, но это не сработало. Я заметил одну вещь, хотя. Это происходит только в том случае, если пользователь не изменяет уровень масштабирования, т. Е. Если пользователь сжимает карту до нажатия кнопки, уровень масштабирования карты сохраняется.
Я пытался подражать этому в коде, но пока мне не повезло.
Мой вопрос прост: есть ли способ установить уровень масштабирования по умолчанию для режима отслеживания пользователей? Если нет, могу ли я каким-то образом имитировать повышение пользователя (возможно, действие распознавателя жестов?), Чтобы принудительно установить область действия?
Заранее спасибо!
Примечание. Я искал ответ в Stackru и нашел только такие ответы.
1 ответ
Я использовал режим отслеживания пользователей, и он увеличился, чтобы закрыть дизайн моих приложений. Если я правильно понимаю ваш вопрос, это то, что вы ищете.
@IBAction func getUserLocationPressed(_ sender: AnyObject) {
if CLLocationManager.authorizationStatus() == .authorizedWhenInUse {
let span = MKCoordinateSpanMake(1.0, 1.0)
let location = CLLocationCoordinate2D(latitude: mapView.userLocation.coordinate.latitude, longitude: mapView.userLocation.coordinate.longitude)
let coordinateRegion = MKCoordinateRegion(center: location, span: span)
mapView.setRegion(coordinateRegion, animated: true)
}
}