본문 바로가기
ios 뽀개기/ios 강좌

ios 지도 mkmap 1

by 인생여희 2018. 5. 16.
반응형

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 번째 방에 데이터를 가져와서 뿌려줬다. 이러한 방식을 어려운 말로 순방향 지오코딩이라고 한다.  실제로 위에서 얻은 좌표를 확인해 보니 캘리포니아에 있는 애플 회사가 나왔다.












반응형

댓글