Android - 구글맵 사용
https://developers.google.com/maps/documentation/android-sdk/config
자세한 사용방법은 링크를 참고
우선은 이곳으로 들어가
좌측의 내용이 있는지 확인후 없으면 추가한다
작성자의 경우는 우측처럼 있어서 따로 추가하진 않았음
한번 더 좌측의 내용이 있는지 확인후 없으면 추가
이번에도 우측처럼 있어서 추가하지않음
다음은 아래의 파일로 들어가
implementation("com.google.android.gms:play-services-maps:18.2.0")
설치부터 해준뒤에
좌측의 경우와 맞는지 확인한다
컴파일sdk가 34보다 높은지
최소sdk가 19보다 높은지
작성자의 경우는 19보다 높아서 통과
이번에도 좌측이 있는지 체크 후 없으면 추가
없었기에 해당문구 추가
없다면 아래 문구 복사
buildFeatures {
buildConfig = true
}
이번에도 좌측의 문구가 없다면 우측처럼 추가
아래문구 복사
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
이번엔 아래의 파일로 이동
좌측의 텍스트가 없다면 추가
아래 텍스트 복사
buildscript {
dependencies {
classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1")
}
}
다음은 secrets.properties 파일에 텍스트를 추가해야하는데
존재하지 않고,
존재하지 않는다면 local.properties 파일과 같은 폴더에 추가해 주라고 한다
우선 안드로이드 폴더형식으로 보이던것을 프로젝트파일형식으로 읽기로 하고
새 파일을 만들자
그러면 로컬.프로퍼티 파일과 동일 폴더에 새 파일을 생성할 수 있다
MAPS_API_KEY=YOUR_API_KEY
라고 적어주면 되는데
YOUR_API_KEY는
아래의 링크를 들어가서 얻도록 하자
우선 사용전 이부분의 오른쪽 버튼을 클릭하여
새 프로젝트를 만들도록 하자
작성자는 이 기능만을 위한 API키를 만들기위함이고
기존에 프로젝트가 있고 API키를 여러곳에서
사용하려한다면 굳이 새로 만들지 않아도 상관없다
그런 다음
중앙에 보이는 이 버튼을 클릭
좌측의
API 및 서비스를 눌러
라이브러리에 들어간뒤에
maps sdk for android 선택
그리고 사용을 누르자
(작성자는 이미 사용을 눌렀더니 사용버튼이 사라졌다)
그 뒤 3선버튼 클릭하여 API및서비스의
라이브러리 클릭
그리고 API키를 들어가
어디서 훔쳐가도 이거말고 사용못하도록 키를 제한하도록 하자
구리고 우측의 이 API키를 위의 API키 넣는곳에 넣도록 하자
자, 다시 이번엔
local.defaults.properties 파일을 만들고
아래의 텍스트를 넣도록 하자
MAPS_API_KEY=DEFAULT_API_KEY
이번엔 매니페스트로 들어가서
이 위치에
아래 텍스트를 넣고
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${MAPS_API_KEY}" />
추가로 이 텍스트도 넣도록 하자
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
그리고 아래의 문구를 추가로 작성하여 권한을 주도록 하자
해당 권한은 정확한 위치사용권한과
대략적인 위치사용권한
그리고 저장공간의 권한
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
다시 이 파일로 들어가서
이 위치에 아래 텍스트를 넣도록 하자
secrets {
// Optionally specify a different file name containing your secrets.
// The plugin defaults to "local.properties"
propertiesFileName = "secrets.properties"
// A properties file containing default secret values. This file can be
// checked in version control.
defaultPropertiesFileName = "local.defaults.properties"
// Configure which keys should be ignored by the plugin by providing regular expressions.
// "sdk.dir" is ignored by default.
ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore"
ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*"
}
사용 예
이제 사용을 해볼텐데 사용할 xml로 들어가
<?xml version="1.0" encoding="utf-8"?>
<fragment 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:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:name="com.google.android.gms.maps.SupportMapFragment">
</fragment>
문구를 위와같이 수정한다
수정한 부분은 id의 map부분
그리고 추가된 부분은
android:name="com.google.android.gms.maps.SupportMapFragment"
그리고 사용할 java 파일에서
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
}
});
라고 입력 후
실행해보면
아래와같이 구글맵을 이용이 가능하다