설정
1. 모듈 수준 builde.gradle 내용 추가
dependencies {
implementation 'com.google.android.gms:play-services-maps:18.1.0'
}
2. 프로젝트 수준 build.gradle 코드 추가
plugins {
id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false
}
3. 모듈 수준 build.gradle 코드 추가
plugins {
id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
}
4. local.properties에 API키 추가
MAPS_API_KEY=YOUR_API_KEY
5. Manifest에 API_KEY 추가
<application
>
<!-- 시크릿 키 설정 -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${MAPS_API_KEY}"/>
6. Manifest에 GooglePlay 서비스 버전 추가
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
7. Manifest에 위치 정보 액세스 권한
<!-- 사용차 위치 권한 설정-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
8. Manifest에 외부 저장소 권한
<!-- 특정 버전 이하 외부 저장소 권한 설정-->
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
사용하자!
1. 사용할 Layout의 공간을 설정해야한다.
- 이는 하나의 예시이다.
- fragment의 형식으로 변경하며, name과 id를 설정해줘야 한다.
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:id="@+id/map">
</fragment>
2. 작동 코드!
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SupportMapFragment mapFragment =
(SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
LatLng myLocation = new LatLng(37.5429, 126.6772);
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(myLocation, 17));
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(myLocation).title("연희맨");
googleMap.addMarker(markerOptions).setTag(0);
googleMap.addMarker(
new MarkerOptions()
.position(new LatLng(37.5438, 126.6772))
.title("마커마커맨2")
);
MarkerOptions markerOptions1 = new MarkerOptions();
markerOptions1.position(new LatLng(37.5428, 126.6762)).title("마커마커맨3");
googleMap.addMarker(markerOptions1);
googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(@NonNull Marker marker) {
Log.i("GOOGLE MAP", "id : " + marker.getId());
Log.i("GOOGLE MAP", "title : " + marker.getTitle());
Log.i("GOOGLE MAP", "tag : " + marker.getTag());
int tag = (int) marker.getTag();
if(tag == 0){
}else {
}
return false;
}
});
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
}
});
}