티스토리 뷰

네이버 맵(Naver Map) Swift에서 사용하기!

 

Record

 작성일

2019. 09. 02 (월)

Swift 버전

Swift 5

Xcode 버전

10.3


안녕하세요.

Fury입니다 :]

 

누군가가 예전 글에 네이버 맵에 대해서 포스팅을 한다고 해놓고

안 했다고..

사기 아니냐고..

보고 있나?? 데이지?? ㅋㅋㅋ

 

네. 그러한 사연으로

바로 네이버 맵 사용하는 법을 공부해볼게요.

 

가즈아~~

 

 1. 네이버 클라우드 플랫폼(Naver Cloud Platform)

 

먼저, 네이버 클라우드 플랫폼 사이트를 볼게요.

 

https://www.ncloud.com

 

NAVER CLOUD PLATFORM

cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification

www.ncloud.com

 

원래 네이버는 "네이버 개발자센터"를 운영했는데요.

 

 

한층 더 새로워진 맵을 위해서?!

네이버 클라우드 플랫폼으로 옮겨 갔습니다!

 

개발자센터 지도 Open API는 19년 4월 15일부로 지원을 종료했어요!!

 

클라우드 플랫폼에서는 엄청나게 많은 서비스들이 있네요.

 

그중, 우리는 Maps를 볼 거예요.

 

 

오? 최근에 업데이트가 있었나 보네요.

Updatee 표시가 있네...ㅋㅋ

 

맵도 종류가 많은데

무료로 사용할 수 있는 "Mobile Dynamic Map"을 알아볼게요.

 

Q. 서비스 이용 한도는?

 

Q. 요금은?

 

자, 그러면 이용신청을 해볼게요!

 

Maps로 들어가면

이용 신청하기 버튼이 있어요.

 

그러면 새로운 Application을 등록할 수 있어요.

 

 

애플리케이션 이름을 작성하고!

 

Maps의 MobileDynamic Map을 체크해주세요.

 

 

다음으로 제일 아래!

서비스 환경 등록을 봐주세요.

 

네이버 맵을 사용할 iOS Bundle ID를 입력해주세요.

최대 10개로 제한되어 있어요!

 

[주의!]

iOS Bundle ID 입력 후,

오른쪽의 추가 버튼을 꼭 눌러주셔야 추가가 됩니다.

안 누르면 추가 안돼요!!

 

 

새로운 애플리케이션이 등록이 끝났네요!!

 

모든 API를 이용할 때 필요한 건 뭐??

Key값이죠?ㅋㅋㅋㅋ

 

위의 이미지에서 "인증 정보" 버튼을 누르면

키값을 볼 수 있고

재발급을 받을 수도 있어요!

 

 2. 네이버 클라우드 플랫폼(Naver Cloud Platform)

 

이제 "iOS 시작 가이드"를 봅시다!

 

http://docs.ncloud.com/ko/naveropenapi_v3/maps/ios-sdk/v3/start.html

 

설명서

시작하기 네이버 지도 SDK를 사용하기 위해서는 네이버 클라우드 플랫폼에서 클라이언트 ID를 발급받고, 발급받은 ID를 SDK에 지정해야 합니다. 클라이언트 ID 발급 네이버 지도 모바일 SDK API를 사용하려면 다음과 같이 애플리케이션을 등록하고 클라이언트 ID를 발급받아야 합니다. 콘솔의 AI·Application Service > AI·NAVER API > Application에서 애플리케이션을 등록합니다.(자세한 방법은 "Application 사

docs.ncloud.com

 

먼저, pod으로 네이버맵 의존성을 추가하겠습니다!

 

잠깐! 의존성을 추가하기 전에!!!

 

대용량 파일을 받기 위해 git-lfs 설치가 필요합니다.

 

설치해주세요!!

 

lfs는 large file handling을 하기 위해 github 만든 오픈소스인데

pod을 통해서 네이버 맵을 받는데

그 용량이 크다 보니

그걸 처리해주기 위해서 필요합니다!

 

자 이제,

pod 'NMapsMap' 추가하고

pod install 해주세요.

 

 

작성할 때 "엔맵스맵"입니다!!

스!! 주의하세요!!ㅋㅋㅋ

 

 

그리고 info.plist를 수정할 거예요.

 

 

"YOUR_CLIENT_ID_HERE"에

CLIENT_ID 값을 넣어주세요.

 

네이버 클라우드 플랫폼에서 생성한

우리 프로젝트 있죠?

 

인증정보에서 CLIENT_ID도 확인했었잖아요.

그 값이에요!!

 

info.plist에 작성하지 않는 방법도 있네요.

AppDelegate에서

 

NMFAuthManager라는 싱글톤 클래스를 호출하고

shared()를 호출하여 인스턴스를 얻어옵니다.

 

그리고 clientID를 지정해줍니다.

 

 

근데 저는 key값을 입력하는 것이기에

plist에 지정해놓는 게 훨씬 좋아 보이네요.

 

이제 맵을 띄어보도록 할게요.

 

 

NMapsMap을 import 해주세요.

그리고 NMFMapView를 추가하면 끝!

 

잘 나오네요 ㅎㅎ

 

 3. 인증 처리 실패

 

인증 처리 실패 시

아래와 같은 에러코드를 반환한다고 해요.

 

 

이상입니다 :]

 

 

댓글