오래 만에 Google MapView를 다시 쓰게 되면서 문제가 되었던 부분을 정리합니다.
Google의 지도 API를 사용하기 위해서는 두 가지 객체가 있으며 MapView와 MapFragment 두 객체 중 적당한 것을 골라 사용하면 됩니다.

Google 예제는 MapFragment로 되어 있으며 저는 MapView를 사용하였습니다.


Google Maps Android API 소개    -    https://developers.google.com/maps/documentation/android-api/intro?hl=ko

지도 객체                                -    https://developers.google.com/maps/documentation/android-api/map?hl=ko

프로젝트 시작하기                     -    https://developers.google.com/maps/documentation/android-api/start?hl=ko

등록 및 API 키                          -    https://developers.google.com/maps/documentation/android-api/signup?hl=ko

MapView                                 -    https://developers.google.com/android/reference/com/google/android/gms/maps/MapView
MapFragment                           -    https://developers.google.com/android/reference/com/google/android/gms/maps/MapFragment



[Google Map App 개발을 위한 전체 절차]

1. Android Studio, Android SDK 설치하기 ==> 다운로드 : https://developer.android.com/studio/index.html?hl=ko


2. 설치 후 SDK Manager를 실행하여 Google Play Service package 설치


3. Android studio에서 지도App 프로젝트 생성


4. Google Developers Console에서 MAP API 사용을 위한 설정.

    4.1 콘솔 접속 : https://console.developers.google.com/?hl=ko

    4.2 프로젝트 만들기 : 화면 좌측 상단에서 프로젝트 만들기 클릭 후 프로젝트 이름을 입력하고 만들기를 클릭합니다.

 

         

        

    4.3 Maps Android API 사용 추가

    4.3.1 좌측 메뉴에 라이브러리 클릭 후 우측에서 Google Maps API에서 사용하고자 하는 형태(Google Maps Android API)를 클릭합니다.

            

 

    4.3.2 대시 보드화면으로 자동 전환되면 우측 화면에서 Google Maps Android API >사용 설정 버튼을 클릭합니다.

            

 

    4.4 사용자 인증 정보 생성

    4.4.1 좌측 메뉴에서 사용자 인증 정보 클릭 > 우측 화면 상단에 사용자 인증 정보 클릭 > 사용자 인증정보 만들기 클릭 > API키 클릭

            

    4.4.2 API 키가 자동 생성되면 생성창 우측 하단에 '키 제한'을 클릭(안드로이드 전용 설정을 위해)

          

 

    4.4.3 API 키 이름을 입력하고 키 제한 사항에서 'Android 앱'을 선택

           

 

    4.4.4 패키지 이름(ex:com.tistory.ocsoosoo.map)을 입력하고 프로젝트를 빌드할 때 사용할 빌드 키 스토어의 지문을 확인하여 입력합니다.

           cmd 창에서 keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

           자세한 App 인증서 지문 확인 방법은 위의 등록 및 API 키 링크를 참조하세요. ==> https://developers.google.com/maps/documentation/android-api/signup?hl=ko
           

 

           ※ 제 경우 지도 앱에서 인증관련하여 fail log가 표시되면서 지도 뷰는 정상적으로 Google로고를 포함하여 표시되지만 지도가 보이지 않는 문제가 있어서 키 제한을 없음으로 설정하였습니다.

              키 제한 없음으로 설정하는 방법은 사용자 인증정보 화면에서 해당 인증 항목의 우측에 있는 연필을 눌러서 수정화면으로 이동한 뒤 '키 제한사항'을 '없음'으로 선택한뒤 저장합니다.

          

 

          

             

    4.4.5 OAuth 동의 화면 설정 : 사용자에게 권한을 요청할 때 표시할 정보를 입력합니다.

           

 

    4.4.6 API 키를 복사합니다.

 

5. string.xml 파일에 복사한 API 키를 추가합니다.


6. AndroidManifest.xml 파일 작성


7. app/build.gradle 수정 : MapView는 Google Play service에 포함되어 있으므로 빌드에 추가합니다.

직접 수정 또는 Android studio에서 Open Module Settings > dependencies > + 버튼 > 1. Library dependency > com.google.android.gms 를 입력하면 google play service library 항목이 표시되며 항목 선택 후 추가하면 됩니다.

       


8. LocationMapActivity.java 파일 작성

    MapView를 사용하는 Activity나 Fragment는 라이프 사이클에 해당하는 메소드에서 MapView의 동일한 메소드를 호출해 주어야합니다.

    에를 들어 Activity의 onCreate메소드에서는 mapView.onCreate()를 호출하고 Activity의 onResume 메소드에서는 mapView.onResume 메소드를 호출해주어야 합니다.

    이러한 필수 사항이 누락되면 MapView화면에 White Screen과 Google 로고만 표시되는 현상이 나타납니다.

    자세한 사항은 이 글 상단의 MapView 링크를 참조하세요. ==> https://developers.google.com/android/reference/com/google/android/gms/maps/MapView

    제 예제는 라이플 사이클에 필요한 기본적인 설정을 한 LocationMapActivity를 상속받은 MainActivity가 실제 동작하는 Activity가 됩니다.

    Google Map 사용은 MapView가 아닌 GoogleMap 객체를 통해 제어를 하게 됩니다.

       

 



9. MainActivity.java 파일 작성


10. Util.java 파일 작성


+ Recent posts