Я пытаюсь ограничить панорамирование и масштабирование для просмотра карты, чтобы оставаться в пределах предопределенной максимальной и минимальной высоты камеры и четырех углов ограничительной рамки.
Решения, предложенные здесь , позволяют пользователю выполнять панорамирование за пределами области, а затем используют regionDidChangeAnimated
, чтобы панорамировать их обратно в заданные границы.
Я хотел бы знать, возможно ли вообще никогда не позволять пользователю панорамировать за пределы границ.Могу ли я, например, перехватить жесты панорамирования / масштабирования и решить, разрешить ли им продолжение?
Мне кажется, я ищу что-то вроде следующего псевдокода:
func blockMapViewPanEvent(_ mapView: MKMapView){
return mapView.visibleMapRect.isContainedWithin(topLeft, bottomRight)
}
IЯ знаю, что MapBox Swift SDK достигает этого, поэтому я думаю, что это возможно.Могу ли я сделать это с простым старым MapKit?
Редактировать для Clarity:
Я хочу ограничить панорамирование и масштабирование, чтобы пользователь мог панорамировать и масштабировать столько, сколько онихочу внутри ограничительной рамки .Например, если ограничивающая рамка относится к Германии, я хочу, чтобы пользователь мог перемещаться и изменять масштаб в пределах Германии, но он никогда не должен видеть Испанию, поскольку Испания находится за пределами ограничительной рамки Германии.
Я не хочу отключать все взаимодействия с пользователем в представлении карты.