본문 바로가기

major/Android

[Android] Google Map 사용하기

예전에 텀프로젝트로 어플을 개발할 때 구글맵을 사용한 적이 있습니다.

하지만 제 담당이 아니어서 제가 구글맵을 사용해 본 적이 없어서 코드 리뷰 겸 공부중인데, 알게 된 것들을 포스팅으로 정리했습니다.

1. API 키 발급받기

구글 클라우드 플랫폼에 들어갑니다.

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

그리고 새로운 프로젝트를 생성합니다.

구글 클라우드 플랫폼 - 새 프로젝트 생성하기

Maps SDK for Android 사용을 설정해줍니다.

구글 클라우드 플랫폼

그리고 생성한 프로젝트 대쉬보드에서 API 및 서비스>사용자 인증 정보 화면에 들어갑니다.

아래의 화면에서 사용자 인증 정보 만들기를 클릭하고 API 키를 선택해서 새로운 키를 만듭니다.

구글 클라우드 플랫폼 - 사용자 인증 정보 생성

위 화면에서 API 키를 선택하면 아래와 같이 생성한 API 키를 보여줍니다.

이제 키 생성을 완료했습니다.

구글 클라우드 플랫폼 - API 키

2. 안드로이드 스튜디오에서 Google Map 사용하기

가장 쉬운 시작방법은 New>Activity>Gallery에서 Google Maps Activity를 생성하는 겁니다.

New>Activity>Gallery
Gallery

Google Maps Activity를 생성하면 google_maps_api.xml도 같이 생성됩니다. 

파일 내에서 YOUR_KEY_HERE 부분에 아까 생성한 API 키를 복붙해줍니다.

 

그리고 코드를 하나도 수정하지 않고 실행시키면 아래와 같습니다.

호주 시드니에 마커가 있고 초점이 맞춰져 있습니다.

실행 화면

3. 마커 추가 및 마커 클릭 이벤트

코드를 수정해서 서울에 마커를 추가하고 초점을 서울로 바꿔보겠습니다.

MapsActivity.java의 onMapReady 함수를 아래와 같이 수정합니다.

@Override
public void onMapReady(GoogleMap googleMap) {
	mMap = googleMap;

	// Add a marker in Sydney and move the camera
	LatLng sydney = new LatLng(-34, 151);
	mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));

	LatLng seoul = new LatLng(37.564,127.001);
	mMap.addMarker(new MarkerOptions().position(seoul).title("Seoul, Korea"));
	mMap.moveCamera(CameraUpdateFactory.newLatLng(seoul));
}

그리고 실행시키면 아래와 같이 서울에 마커가 추가되고 초점이 서울로 맞춰진 것을 확인할 수 있습니다.

실행 화면

이번에는 마커를 클릭했을 때, 마커의 Title을 Toast 메시지로 띄워보겠습니다.

onMapReady() 안에 setOnMarkerClickListener를 추가해줍니다.

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
	public boolean onMarkerClick(Marker marker) {
		Toast.makeText(getApplicationContext(),marker.getTitle(),Toast.LENGTH_SHORT).show();
		return true;
	}
});

 

제가 만든 마커를 클릭했을 때, 아래와 같이 마커의 Title인 "Seoul, Korea"가 메세지로 뜹니다.

실행 화면


잘못된 내용이 있다면 언제든지 댓글이나 메일로 알려주시면 감사하겠습니다.

이 포스팅이 도움이 되었다면 공감 부탁드립니다.

궁금한 점은 언제든지 댓글 남겨주시면 답변해드리겠습니다:D