본문 바로가기

컴퓨터/안드로이드

[안드로이드] google maps api 사용하기

반응형

 

 

안녕하세요.

오늘은 구글맵 api를 사용하는 방법에 대해서 알아보겠습니다.

 

 

 

1. Google Developers Console 사이트 (https://console.developers.google.com/apis/dashboard )

에 접속하여 프로젝트 만들기를 클릭해줍니다.

 

 

 

 

2. 프로젝트 이름을 적고 만들기를 클릭해줍니다.

 

 

 

 

3. 프로젝트 생성이 완료 되었으면 다음과 같이 검색해 줍니다.

 

Maps SDK for Android

 

 

 

4. 사용설정을 눌려줍니다.

 

 

5. 사용자 인증 정보탭으로 들어가줍니다.

 

 

 

 

6. 사용자 인증 정보 만들기 + API키 버튼을 눌려줍니다.

 

 

 

 

7. 키제한버튼을 눌려줍니다.

 

 

 

8. android앱 선택후 항목 추가를 눌려줍니다.

 

 

 

 

9. 안드로이드 프로젝트의 패키지 이름과 Android studio가 저장된 컴퓨터의 SHA-1 인증서 디지털 지문을 입력합니다.

 

 

 

10. 먼저 SHA-1 인증서 디지털 지문을 얻어보겠습니다. 

 

윈도우키 + R키를 눌려 cmd를 입력합니다.

 

 

 

11. 아래 명령어를 복사 후 붙혀넣기 해줍니다.

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

 

 

12. SHA1 옆에 있는 문자열을 복사하여 붙혀넣습니다.

 

 

 

13. Google Maps Android API를 사용할 안드로이드 스튜디오 프로젝트의 패키지명을 복사하여 붙혀 넣고 완료를 눌려줍니다.

(패키지명은 중복하여 사용 할 수 없습니다.)

 

 

 

14. API 제한사항에 키 제한을 체크하고 Maps SDK for Android를 체크 한 후 저장을 눌려줍니다.

 

 

 

 

15. API 키를 복사해줍니다.

 

 

 

 

16. AndroidManifest.xml <application> 태그 하위요소로 <meta-data> 태그를 사용해 복사한 API키를 입력합니다.

 

 

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="     복사한 API키 입력      "

        <activity android:name=".MainActivity">

 

 

17. Google Maps Android API를 이용하라면 Google Play services 라이브러리 패키지 설치가 필요합니다.

 

Tools -> SDK Manager -> SDK tools -> Google Play services 를 클릭해줍니다.

 

 

 

 

18. 모듈 app의 build.gradle에 Google Play Services 라이브러리를 추가해줍니다.

 

 

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    
    //추가
    implementation 'com.google.android.gms:play-services-maps:17.0.0'
    implementation 'com.google.android.gms:play-services-location:17.0.0'
    //추가
    
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}

최신 버전은 https://mvnrepository.com/ 위 사이트에서 확인 가능합니다.

 

 

 

19. 추가를 하셨으면 Sync Now를 눌려줍니다.

 

 

 

20. 지도가 표시될 레이아웃 파일 activity_main.xml<fragment>태그와 함께 다음 내용을 추가합니다.

 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
    
    
    <fragment
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment" />
        
</LinearLayout>

 

21. 아래 코드를 복사하여 MainActivity.java에 붙혀 넣습니다.

 

 

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;


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(10));
    }
}

 

 

22. 성공적으로 진행되었다면 다음과 같은 화면이 나타납니다.

 

 

 

 

 

 

 

참고 사이트 : https://webnautes.tistory.com/647

https://developers.google.com/maps/documentation

반응형