MapKit 맵 제한
기본 설정
import MapKit
let mapView = MKMapView()
...
self.view.addSubview(mapView)
override func viewDidLayoutSubviews() {
mapView.frame = self.view.bounds
}
위 같은 코드를 이용하면 맵을 볼 수 있게 되는 데
문제는 처음 보게 되면 우리나라의 전체 지역이 보이게 됩니다
우리가 흔히 보게 되는 맵은 자기 자신의 위치를 중심으로 보게 되는 데 이 기능을 구현하려면 어떻게 해야 할까요?
시작 !
private extension MKMapView {
func centerToLocation(_ location: CLLocationCoordinate2D, regionRadius: CLLocationDistance = 1000) {
let coordinateRegion = MKCoordinateRegion(center: location,
latitudinalMeters: regionRadius,
longitudinalMeters: regionRadius)
setRegion(coordinateRegion, animated: true)
}
}
이렇게 MKMapView를 확장을 합니다.
코드를 설명하자면 location에 자신의 현재 위치 정보를 넣어서 이를 이용해서 MKCoordinateRegion 객체를 만들어서 지역 제한을 겁니다.
이때 center이라는 인스턴스는 어떤 위치를 중심으로 놓을지 말하는 것입니다.
그리고 latitudinalMeters 와 longitudinalMeters 라는 것은 중심을 기준으로 제한을 걸 거리를 뜻합니다.
뒤에 Meters가 붙었듯이 미터를 기준으로 합니다.
적용
mapView.centerToLocation(currentLocation)
이와 같이 확장을 이용해 만든 메서드에 현재 위치를 넣어주면 위치 + 위치 제한에 따른 맵이 보이게 됩니다.
제한이라고 했듯이... 맵이 이동은 가능하나 다시 원상태로 복귀가 됩니다.
Author And Source
이 문제에 관하여(MapKit 맵 제한), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@godo/MapKit-맵-제한저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)