google map
1. 구글맵 콘솔 검색
2. Maps SDK for Android 클릭
사용 클릭
3. 좌측에 사용자 인증 정보 클릭
사용자 인증 정보 만들기 클릭
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'
}