본문 바로가기

Interesting IT

Android Studio 구글 지도 API 사용하기

구글 Map API를 사용하여 Android Studio에 지도를 삽입해보자.

 

1. Google APIs

 

https://console.developers.google.com/apis/dashboard

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

 

먼저 위 사이트로 들어가서 로그인을 한 뒤 프로젝트 만들기 버튼을 클릭한다.

 

 

Google APIs 대시보드 

 

 

 

프로젝트 이름을 작성하고 만들기 버튼을 클릭한다.

예시로 프로젝트 이름을 GoogleMap으로 지정하였다.

 

 

 

 

프로젝트 생성이 완료되면 API 및 서비스 사용 설정 버튼을 클릭한다.

 

 

API 라이브러리

 

Android Studio에서 사용할 것이기 때문에 API 라이브러리에서 Maps SDK for Android를 선택한다.

 

 

 

 

사용 버튼을 누르면 API가 활성화 되면서 아래와 같은 화면이 나온다.

 

 

 

 

 

API를 사용하기 위해서는 인증설정을 해야한다.

인증 설정을 하기 위해 사용자 인증 정보를 클릭한다.

 

 

 

 

사용자 인증 정보 만들기를 클릭한 뒤 API 키를 선택한다.

API 키가 생성되고 키 제한 버튼을 클릭한다.

 

 

 

 

 

 

 

Android 앱을 선택하고 항목 추가 버튼을 눌러 패키지명SHA-1 인증서 디지털 지문을 작성한다.

SHA-1 인증서 디지털 지문은 cmd 창에서 확인할 수 있다.

 

 

먼저 윈도우키 + R을 누른 후 cmd를 입력하여 명령 프롬프트 창을 연다.

 

"C:\Program Files\Android\Android Studio\jre\bin\keytool" -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

 

위와 같이 두 줄로 작성된 코드를 한 줄에 작성하면 다음과 같은 출력문이 나온다.

 

 

 

 

여기에 출력된 SHA1 문자열을 복사해서 작성한다.

 

 

 

 

다음 API 제한사항에서 키 제한을 체크한 뒤에 저장 버튼을 클릭한다.

 

 

 

API 키 생성 완료 화면

 

 

 

완료되면 위와 같은 화면이 나오는데 API 키를 복사해둔다.

 

 

 

2. Android Studio

 

Google Maps Android Api를 사용하기 위해서는 Google Play services 라이브러리를 설치해야한다.

Tools > SDK Manager 선택

SDK Tools 탭 클릭한 뒤 Google Play services 항목을 체크하고 APPLY를 클릭하여 설치를 진행한다.

 

 

 

 

앱 수준의 build.gradle에 들어간 뒤 dependencies 안에 아래 코드를 추가한 뒤 동기화를 진행한다.

 

implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'

 

 

 

그 다음 androidmanifest.xml에 코드를 추가하는데 application 태그 안에 아래와 같이 <meta-data> 태그를 삽입한다.

 

                           <application>       

                                    <meta-data
                                             android:name=
"com.google.android.geo.API_KEY"
                                             android:value=
"API" />

                           </application>

 

value 값 안에는 인증 정보에서 복사해두었던 API 키를 작성한다.

 

 

 

Map을 삽입할 레이아웃에 MapView를 삽입한다

 

<fragment
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
android:id="@+id/map"
   
tools:context=".MapsActivity"
   
android:name="com.google.android.gms.maps.SupportMapFragment" />

 

 

 

레이아웃에 해당하는 java 파일로 이동하여 코드를 추가로 작성한다.


public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {

        private GoogleMap mMap;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
                mapFragment.getMapAsync(this);

        }


        @Override
        public void onMapReady(final GoogleMap googleMap) {
                mMap = googleMap;

                LatLng SEOUL = new LatLng(37.56, 126.97);

                MarkerOptions markerOptions = new MarkerOptions();         // 마커 생성
                markerOptions.position(SEOUL);
                markerOptions.title("서울");                         // 마커 제목
                markerOptions.snippet("한국의 수도");         // 마커 설명
                mMap.addMarker(markerOptions);

                mMap.moveCamera(CameraUpdateFactory.newLatLng(SEOUL));                 // 초기 위치
                mMap.animateCamera(CameraUpdateFactory.zoomTo(15));                         // 줌의 정도
                googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);                           // 지도 유형 설정

        }

}

 

 

 

이렇게 설정하면 지도가 출력된다.

 

 

 

실행 화면

 

마커 클릭 화면