ios 지도 mkmap 1
텍스트 기반의 주소를 그 주소에 해당하는 좌표를 가지는 CLLocation 객체로 변환하는 CLGeocoder 클래스를 이용해서 미국 캘리포니아의 애플사의 좌표를 가져오는 예제를 살펴본다.
let addressString = "One Infinite Loop, Cupertino, CA 95014"
CLGeocoder().geocodeAddressString(addressString) { (placemarks, error) in
if error != nil{
print("에러발생 \(error!.localizedDescription)")
}else if placemarks!.count > 0{
let placemark = placemarks![0]
let location = placemark.location
let coords = location!.coordinate
print("위도 : \(coords.latitude)")
print("경도 : \(coords.longitude)")
}
위의 코드를 실행하면
위도 : 37.3316833
경도 : -122.0301031
각종 변수들을 찍어보면
placemark : 1 Infinite Loop, 1 Infinite Loop, 쿠쿠\355\215퍼티쿠\355\215퍼티\353\205노, CA 95014, 미 합중국 @ <+37.33168330,-122.03010310> +/- 100.00m, region CLCircularRegion (identifier:'<+37.33169175,-122.03021900> radius 62.40', center:<+37.33169175,-122.03021900>, radius:62.40m)
location : Optional(<+37.33168330,-122.03010310> +/- 100.00m (speed -1.00 mps / course -1.00) @ 16/05/2018, 15:05:16 Korean Standard Time)
coords : CLLocationCoordinate2D(latitude: 37.331683300000002, longitude: -122.03010310000001)
이같은 결과가 나온다.
이 코드는 간단하게 주소를 담은 문자열을 전달해서 CLGeocoder 인스턴스의 geocodeAddressString 메서드를 호출하고 변환이 끝나면 완료 핸들러를 호출 한다.
위치좌표 개수는 placemarks 배열 에 담아 반환되는데 하나 이상이면 위치좌표를 얻었다. 위의 코드에서는 위치좌표가 한 개라고 가정하고 배열 0 번째 방에 데이터를 가져와서 뿌려줬다. 이러한 방식을 어려운 말로 순방향 지오코딩이라고 한다. 실제로 위에서 얻은 좌표를 확인해 보니 캘리포니아에 있는 애플 회사가 나왔다.
'ios 뽀개기 > ios 강좌' 카테고리의 다른 글
ios 지도 mkmap 3 - 해당 주소 지도에 표시하기&현재위치 (0) | 2018.05.16 |
---|---|
ios 지도 mkmap 2 (0) | 2018.05.16 |
Ios AutoLayout 7 - AutoLayout Landscape 이슈 (0) | 2018.05.08 |
Ios AutoLayout 6 - UIButton 이벤트와 UIPageControl속성 (0) | 2018.05.07 |
Ios AutoLayout 5 - MVC 패턴 (0) | 2018.05.06 |
댓글