티스토리 뷰

Mobile/iOS

[iOS/swift] Google Map 사용해보기

out of coding 2017. 10. 20. 11:34

시작


아마도 맵 관련해서 개발을 하게 되면, 구글맵을 가장 많이 사용을 하게 될것이다.
그래서 이번에 변경된 점도 확인해볼겸. 구글맵 사이트에서 접속을 하여 보았고 내가 하였던 짓을 설명하려 한다.


참조


https://developers.google.com/maps/documentation/ios-sdk/start?hl=ko


준비


글을 작성하는 날의 기준으로 구글맵은 xcode 7.3이상에서 동작하며, pod을 이용하여 레파지토리에서 가져와서 사용하면 되는 방식이다.


pod 가져오기


pod 파일을 만들고 이걸 가지고 오는 방법에 대해서는 대략 설명을 하지 않도록 하겠다. 왜냐면 위에 링크에 아주 자세하게 나와 있기 때문에...
난 이걸 이렇게 만들었다. 구글 페이지에도 있지만 target만 설정해주면 된다.

1
2
3
4
5
source 'https://github.com/CocoaPods/Specs.git'
target 'GMSTest' do
  pod 'GoogleMaps'
  pod 'GooglePlaces'
end
cs

코딩


간단하게 발급받은 코드를 가지고 맵을 띄울수 있다. 프레임워크는 역시 이렇게 만들어야 한다.

AppDelegate

1
2
3
4
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    GMSServices.provideAPIKey("발급받은키")
    return true
}
cs

ViewController

구글의 예제에는 loadView에서 바로 ViewController의 self.view에 mapView를 매핑하여 주는 방식으로 예제를 넣어두었는데, 이 부분은 자신의 프로젝트에 맞게 추가하면 될것같다. 예를 들어 IBOutlet을 이용하여 root View에 View를 넣어주고 거기에 매핑하여 주던지...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class ViewController: UIViewController {
    
    override func loadView() {
        // Create a GMSCameraPosition that tells the map to display the
        // coordinate -33.86,151.20 at zoom level 6.
        let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
        let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
        mapView.isMyLocationEnabled = true
        view = mapView
        
        // Creates a marker in the center of the map.
        let marker = GMSMarker()
        marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
        marker.title = "Sydney"
        marker.snippet = "Australia"
        marker.map = mapView
    }
 
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}
cs


구글의 예제를 그대로 따랐으며, 아주 손쉽게 마크를 하나찍을수 있다.

다음시간에는 내 위치를 가져와서 지도에 찍는 예제를 하나 만들어 볼까 한다.


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함