khon98 2020. 8. 29. 15:27

1. 구글맵 콘솔 검색

 

2. Maps SDK for Android 클릭

사용 클릭

 

3. 좌측에 사용자 인증 정보 클릭

API 및 서비스의 사용자 인증 정보 클릭

사용자 인증 정보 만들기 클릭

API 키 클릭

키 제한 클릭

 

4. 애플리케이션 제한사항에서 Android 앱 체크

 

5. Android 앱의 사용량 제한

패키지 이름 설정

- 안드로이드 스튜디오 MainActivity.java 파일에서 패키지 이름을 복사 (package com...... 으로 시작되는 코드)

 

6. SHA1 지문 추가

CMD 실행 > SHA1 서명 인증키 받는 커맨드 입력

- CMD(명령프롬프트 창)에서 SHA1 서명 인증키 받는 커맨드

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

 

7. API 제한사항에서 키 제한 체크

Maps SDK for Android 선택

 

8. API Key 복사

 

9. 저장

 

10. 메타 데이터 추가

AndroidManifest.xml

<meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="AIzaSyDfqqusA5ZcIevs9TyBCpuRMmJq-uAd-iA"/> // API 키 복사한거 붙여넣기

 

11. Google Play services 라이브러리 패키지 설치

안드로이드 스튜디오 상단 메유에 Tools 클릭

SDK Manager 클릭

SDK Tools 에서 Google Play services 체크 후 Apply 클릭하고 설치

 

------------------------------------

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <fragment
        android:id="@+id/googlemap"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.MapFragment"/>

</LinearLayout>

------------------------------------

 

 

------------------------------------

MainActivity.java

package com.example.googlemap;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;


import android.app.FragmentManager;
import android.os.Bundle;

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

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {

    private FragmentManager fragmentManager;
    private MapFragment mapFragment;


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

        fragmentManager = getFragmentManager();
        mapFragment = (MapFragment)fragmentManager.findFragmentById(R.id.googlemap);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        LatLng location = new LatLng(46.057171, 14.505591); // 류블랴나
        MarkerOptions markerOptions = new MarkerOptions();
        markerOptions.title("류블랴나");
        markerOptions.snippet("해외");
        markerOptions.position(location);
        googleMap.addMarker(markerOptions);

        // googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location, 16));
        googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(location, 16));
    }
}

------------------------------------

 

 

------------------------------------

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.googlemap">

    <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">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

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

    </application>

</manifest>

------------------------------------

 

 

------------------------------------

build.gradle (:app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.1"

    defaultConfig {
        applicationId "com.example.googlemap"
        minSdkVersion 28
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
    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.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

}