안드로이드 스튜디오 구글 맵 | 안드로이드 앱 개발 – 구글지도를 표시하고, Api 키 안전하게 사용하는 방법 83 개의 새로운 답변이 업데이트되었습니다.

당신은 주제를 찾고 있습니까 “안드로이드 스튜디오 구글 맵 – 안드로이드 앱 개발 – 구글지도를 표시하고, API 키 안전하게 사용하는 방법“? 다음 카테고리의 웹사이트 https://you.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://you.maxfit.vn/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 슬기로운코딩생활 이(가) 작성한 기사에는 조회수 11,059회 및 좋아요 126개 개의 좋아요가 있습니다.

안드로이드 스튜디오 구글 맵 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 안드로이드 앱 개발 – 구글지도를 표시하고, API 키 안전하게 사용하는 방법 – 안드로이드 스튜디오 구글 맵 주제에 대한 세부정보를 참조하세요

구글 클라우드 서비스에서 제공하는 구글맵 SDK를 사용하면 전세계 어디든지 지도를 표시하고 그 위에 원하는 마커를 표시할 수 있습니다. 구글 클라우드 서비스에서 API 키를 발급하고 안전하게 사용하기 위해 키 사용에 여러가지 제한을 두는 방법을 설명합니다. 또한 구글 지도 위에 마커를 표시하고, GPS를 통해 현재 위치를 탐색하기 위한 버튼을 추가하는 방법도 함께 설명합니다.
깃허브 – https://github.com/wonderful-coding-life/sample.google.map

안드로이드 스튜디오 구글 맵 주제에 대한 자세한 내용은 여기를 참조하세요.

Android용 Maps SDK 빠른 시작

Andro 스튜디오에서 다음을 사용하여 Google 지도 프로젝트를 만듭니다. Cloud Console에서 설정하기; 앱에 API 키 추가 …

+ 더 읽기

Source: developers.google.com

Date Published: 9/3/2022

View: 2148

Google Maps Android API 사용 방법 및 예제 – 멈춤보단 천천히 …

줌을 하는 함수인데 사용하면 지도가 엉뚱한 곳으로 이동합니다. 2021. 5. 11 Andro Studio 4.1.3에서 테스트. 2022. 6. 18 Andro API 32에서 테스트 …

+ 여기를 클릭

Source: webnautes.tistory.com

Date Published: 5/24/2022

View: 1586

Android Studio 구글 지도 API 사용하기 – 소더코드

구글 Map API를 사용하여 Andro Studio에 지도를 삽입해보자. 1. Google APIs. https://console.developers.google.com/apis/dashboard.

+ 여기를 클릭

Source: sothecode.tistory.com

Date Published: 12/21/2021

View: 3881

안드로이드 구글 지도 사용하기 – 1 [구글 지도 띄우기]

구글 맵 적용. 먼저 build.gradle에 아래 코드를 추가해줍니다. implementation ‘com.google.andro.gms:play- …

+ 여기에 자세히 보기

Source: imleaf.tistory.com

Date Published: 12/5/2021

View: 1942

[android studio] google maps API 사용방법 정리 – TEXTBOX

구글 맵 연동을 한번 해보자. 우선 맵 api를 가져올 andro studio 프로젝트가 없다면 미리 생성을 해두자.

+ 여기에 표시

Source: textbox.tistory.com

Date Published: 10/6/2021

View: 7924

안드로이드 스튜디오 구글 맵 사용하기 – 1D1C

지도에서 Maps SDK for Andro를 눌러줍니다. 아래와 같이 창이 뜨면 사용 설정을 눌러줍니다. 다음으로 …

+ 여기에 보기

Source: 1d1cblog.tistory.com

Date Published: 12/1/2021

View: 2465

[Java][Android] 구글맵 빠르게 적용하기

이제 안드로이드 스튜디오를 켜서 구글맵 API를 적용할 프로젝트를 열고, 매니페스트에 아래 코드를 추가합니다. + 여기를 클릭

Source: stickode.tistory.com

Date Published: 11/1/2022

View: 8016

안드로이드 – 구글맵 기본사용법

안드로이드 스튜디오에서 구글맵 라이브러리를 연동하여 지도를 띄우는 방법에 대해 정리해보겠습니다. 우선 구글계정이 필요합니다.

+ 더 읽기

Source: game-happy-world.tistory.com

Date Published: 6/15/2021

View: 5707

주제와 관련된 이미지 안드로이드 스튜디오 구글 맵

주제와 관련된 더 많은 사진을 참조하십시오 안드로이드 앱 개발 – 구글지도를 표시하고, API 키 안전하게 사용하는 방법. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

안드로이드 앱 개발 - 구글지도를 표시하고, API 키 안전하게 사용하는 방법
안드로이드 앱 개발 – 구글지도를 표시하고, API 키 안전하게 사용하는 방법

주제에 대한 기사 평가 안드로이드 스튜디오 구글 맵

  • Author: 슬기로운코딩생활
  • Views: 조회수 11,059회
  • Likes: 좋아요 126개
  • Date Published: 2020. 6. 13.
  • Video Url link: https://www.youtube.com/watch?v=mLqBNdqYEQw

Android용 Maps SDK 빠른 시작

Android 스튜디오용 Google 지도 템플릿을 사용하여 지도를 표시하는 Android 앱을 만듭니다. 설정할 기존 Android 스튜디오 프로젝트가 있는 경우에는 프로젝트 구성을 참조하세요.

이 빠른 시작은 자바 또는 Kotlin을 사용한 기본 Android 개발에 익숙한 개발자를 대상으로 합니다.

개발 환경 설정하기

Android 기기 설정하기

Android용 Maps SDK를 사용하는 앱을 실행하려면 Google API를 포함하는 Android 4.0 이상의 Android 기기 또는 에뮬레이터에 Android용 Maps SDK를 배포해야 합니다.

Android 기기를 사용하려면 하드웨어 기기에서 앱 실행의 안내를 따르세요.

Android Emulator를 사용하려면 Android 스튜디오와 함께 제공되는 Android Virtual Device(AVD) Manager를 이용해 가상 기기를 만들고 에뮬레이터를 설치할 수 있습니다. 참고:Android Emulator를 사용하는 경우 Play 스토어 열 아래 표시된 Play 아이콘 이 있는 기기를 선택해야 합니다. 이 아이콘은 프로필이 CTS를 완전히 준수하며 Play 스토어 앱이 포함된 시스템 이미지를 사용할 수 있음을 나타냅니다.

Android 스튜디오에서 다음을 사용하여 Google 지도 프로젝트를 만듭니다.

Android 스튜디오를 열고 Welcome to Android Studio 창에서 Create New Project를 클릭합니다. New Project 창의 Phone and Tablet 카테고리에서 Google Maps Activity를 선택하고 Next를 클릭합니다. Google Maps Activity 양식을 작성합니다. Language 를 자바 또는 Kotlin으로 설정합니다. 두 언어 모두 Android용 Maps SDK에서 완벽하게 지원됩니다. Kotlin에 관한 자세한 내용은 Kotlin을 사용한 Android 앱 개발을 참고하세요.

Minimum SDK를 테스트 기기와 호환되는 SDK 버전으로 설정합니다. Android용 Maps SDK 버전 18.0.x, Android API 수준 19(Android 4.4, KitKat) 이상)에 필요한 최소 버전보다 높은 버전을 선택해야 합니다. SDK 버전 요구사항에 대한 최신 정보는 출시 노트를 참조하세요. 참고: 어떤 SDK 버전을 선택해야 할지 잘 모르겠다면 선택과 관련된 도움말 지원되는 Android SDK의 배포 정보를 표시하는 링크입니다. 예를 들어 API 19: Android 4.4 (KitKat)를 선택하면 Android 기기의 99% 이상에서 앱이 실행되어야 합니다. Finish를 클릭합니다. Android 스튜디오가 Gradle을 시작하고 프로젝트를 빌드합니다. 다소 시간이 걸릴 수 있습니다. 빌드가 완료되면 Android 스튜디오에서 AndroidManifest.xml 및 MapsActivity 파일을 엽니다. 활동은 이름이 다를 수는 있지만 설정 중에 구성한 활동입니다. AndroidManifest.xml 파일에는 Google Maps API 키를 가져온 다음 local.properties 파일에 추가하는 방법에 대한 안내가 포함되어 있습니다. API 키를 AndroidManifest.xml 파일에 추가하지 마세요. 그렇게 하면 API 키가 안전하지 못한 방식으로 저장됩니다. 대신 다음 섹션의 안내에 따라 Cloud 프로젝트를 만들고 API 키를 구성합니다.

Cloud Console에서 설정하기

다음 탭을 차례로 클릭하여 필요한 Cloud Console 설정 단계를 완료합니다.

앱에 API 키 추가

이 섹션에서는 앱이 더욱 안전하게 참조할 수 있도록 API 키를 저장하는 방법을 설명합니다. API 키는 버전 제어 시스템에 등록하면 안 되며, 프로젝트의 루트 디렉터리에 있는 local.properties 파일에 저장하는 것이 좋습니다. local.properties 파일에 관한 자세한 내용은 Gradle 속성 파일을 참고하세요.

이 작업을 간소화하려면 Android용 Secrets Gradle 플러그인을 사용하는 것이 좋습니다. 플러그인을 설치하여 API 키를 저장하는 방법은 다음과 같습니다.

Android 스튜디오에서 루트 수준 build.gradle 파일을 열고 다음 코드를 buildscript 아래 dependencies 요소에 추가합니다. plugins { // … id ‘com.google.android.libraries.mapsplatform.secrets-gradle-plugin’ version ‘2.0.1’ apply false } 그런 다음 앱 수준 build.gradle 파일을 열고 plugins 요소에 다음 코드를 추가합니다. id ‘com.google.android.libraries.mapsplatform.secrets-gradle-plugin’ 파일을 저장하고 프로젝트를 Gradle과 동기화합니다. 프로젝트 수준 디렉터리에서 local.properties 를 열고 다음 코드를 추가합니다. YOUR_API_KEY 를 API 키로 변경합니다. MAPS_API_KEY= YOUR_API_KEY 파일을 저장합니다. AndroidManifest.xml 파일에서 com.google.android.geo.API_KEY 로 이동한 후 android:value attribute 를 다음과 같이 업데이트합니다.

참고: 위의 내용처럼, com.google.android.geo.API_KEY 는 API 키의 권장 메타데이터 이름입니다. 이 이름의 키는 Android 플랫폼에서 Android용 Maps SDK 등 여러 Google 지도 기반 API를 인증하는 데 사용할 수 있습니다. 이전 버전과의 호환성을 위해 API에서는 com.google.android.maps.v2.API_KEY 이름도 지원합니다. 이 기존 이름을 사용하면 Android 지도 API v2만 인증할 수 있습니다. 애플리케이션에서는 API 키 메타데이터 이름을 하나만 지정할 수 있습니다. 두 개가 모두 지정되면 API에서 예외가 발생합니다.

코드 보기

템플릿에서 제공되는 코드를 살펴봅니다. 특히 Android 스튜디오 프로젝트에서 다음 파일을 살펴봅니다.

지도 활동 파일

지도 활동 파일은 앱의 기본 활동으로, 지도를 관리하고 표시하기 위한 코드를 포함합니다. 기본적으로 활동을 정의하는 파일의 이름은 MapsActivity.java 로 지정되거나, Kotlin을 앱의 언어로 설정하는 경우에는 MapsActivity.kt 로 지정됩니다.

지도 활동의 기본 요소는 다음과 같습니다.

SupportMapFragment 객체는 지도의 수명 주기를 관리하며 앱 UI의 상위 요소입니다.

GoogleMap 객체는 지도 데이터 및 뷰에 대한 액세스 권한을 제공합니다. Android용 Maps SDK의 기본 클래스입니다. 지도 객체 가이드에서 SupportMapFragment 객체와 GoogleMap 객체를 자세히 설명합니다.

moveCamera 함수는 오스트레일리아 시드니의 LatLng 좌표에 지도의 중심을 맞춥니다. 지도를 추가할 때 가장 먼저 구성해야 하는 설정은 지도 위치 및 카메라 설정(예:보기 각도, 지도 방향, 확대/축소 수준)입니다. 자세한 내용은 카메라 및 뷰 가이드를 참고하세요.

addMarker 함수가 시드니 좌표에 마커를 추가합니다. 자세한 내용은 마커 가이드를 참조하세요.

지도 활동 파일에는 다음 코드가 포함됩니다.

자바 import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback { private GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); // Obtain the SupportMapFragment and get notified when the map is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } /** * Manipulates the map once available. * This callback is triggered when the map is ready to be used. * This is where we can add markers or lines, add listeners or move the camera. In this case, * we just add a marker near Sydney, Australia. * * If Google Play services is not installed on the device, the user will be prompted to install * it inside the SupportMapFragment. This method will only be triggered once the user has * installed Google Play services and returned to the app. */ @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”)); mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); } } Kotlin import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import com.google.android.gms.maps.CameraUpdateFactory import com.google.android.gms.maps.GoogleMap import com.google.android.gms.maps.OnMapReadyCallback import com.google.android.gms.maps.SupportMapFragment import com.google.android.gms.maps.model.LatLng import com.google.android.gms.maps.model.MarkerOptions internal class MapsActivity : AppCompatActivity(), OnMapReadyCallback { private lateinit var mMap: GoogleMap override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_maps) // Obtain the SupportMapFragment and get notified when the map is ready to be used. val mapFragment = supportFragmentManager .findFragmentById(R.id.map) as SupportMapFragment mapFragment.getMapAsync(this) } /** * Manipulates the map once available. * This callback is triggered when the map is ready to be used. * This is where we can add markers or lines, add listeners or move the camera. In this case, * we just add a marker near Sydney, Australia. * If Google Play services is not installed on the device, the user will be prompted to install * it inside the SupportMapFragment. This method will only be triggered once the user has * installed Google Play services and returned to the app. */ override fun onMapReady(googleMap: GoogleMap) { mMap = googleMap // Add a marker in Sydney and move the camera val sydney = LatLng(-34.0, 151.0) mMap.addMarker(MarkerOptions() .position(sydney) .title(“Marker in Sydney”)) mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)) } }

모듈 Gradle 파일

모듈 build.gradle 파일에는 Android용 Maps SDK에서 요구하는 다음과 같은 지도 종속 항목이 포함됩니다.

dependencies { implementation ‘com.google.android.gms:play-services-maps:18.0.2’ // … }

참고: 정확한 버전은 Android용 Maps SDK의 현재 버전에 따라 변경될 수 있습니다.

지도 종속 항목 관리에 대한 자세한 내용은 버전 관리를 참조하세요.

XML 레이아웃 파일

activity_maps.xml 파일은 앱 UI의 구조를 정의하는 XML 레이아웃 파일입니다. 이 파일은 res/layout 디렉터리에 있습니다. activity_maps.xml 파일은 다음 요소를 포함하는 프래그먼트를 선언합니다.

tools:context 는 프래그먼트의 기본 활동을 지도 활동 파일에 정의된 MapsActivity 로 설정합니다.

는 프래그먼트의 기본 활동을 지도 활동 파일에 정의된 로 설정합니다. android:name 은 프래그먼트의 클래스 이름을 지도 활동 파일에서 사용하는 프래그먼트 유형인 SupportMapFragment 로 설정합니다.

XML 레이아웃 파일에는 다음 코드가 포함되어 있습니다.

앱 배포 및 실행하기

앱을 성공적으로 실행하면 다음 스크린샷에서처럼 중심에 오스트레일리아 시드니가 있고 시드니에 마커가 표시된 지도가 나타납니다.

앱을 배포하고 실행하려면 다음 안내를 따르세요.

Android 스튜디오에서 Run 메뉴 옵션(또는 재생 버튼 아이콘)을 클릭하여 앱을 실행합니다. 기기를 선택하라는 메시지가 나타나면 다음 옵션 중 하나를 선택합니다. 컴퓨터에 연결된 Android 기기를 선택합니다.

또는 Launch emulator 라디오 버튼을 선택하고 설정한 가상 기기를 선택합니다. OK를 클릭합니다. Android 스튜디오에서 Gradle을 시작하여 앱을 빌드한 후 기기 또는 에뮬레이터에 결과를 표시합니다. 앱이 시작되기까지 몇 분 정도 걸릴 수 있습니다.

다음 단계

Google Maps Android API 사용 방법 및 예제

반응형

Google Maps Android API를 사용하는 기본적인 방법과 사용시 발생할 수 있는 문제점에 대해 다룹니다.

1. 간단한 안드로이드 구글맵 예제 동작시키기

2. Google Maps Android API 예제 코드 설명

3. 관련 포스팅

3.1. Android Google Map에 현재 위치 표시하기( FusedLocationProviderClient 사용)

3.2. Android Google Map에 현재 위치 표시하기( GoogleApiClient, FusedLocationApi 사용)

3.2. Places API Web Service를 사용하여 Google Map에 현재 위치 주변의 음식점 표시하기

3.3. GenyMotion 가상머신에 Google Apps설치하여 Google Maps Android API 테스트 하기

2015. 2.10

. . . . . . . . .

2019. 5. 6 로그캣에서 에러 확인하는 법과 에뮬레이터에서 실행시 문제점 추가

2019. 7. 19 androidx 관련 내용 추가

2019. 8. 15 SupportMapFragment로 변경

2020. 9. 12 테스트 ( Android Studio 4.0.1, Android 10.0+ (R) API 30 )

CameraUpdateFactory.zoomTo가 오동작하는 현상이 발견되었습니다.

줌을 하는 함수인데 사용하면 지도가 엉뚱한 곳으로 이동합니다.

2021. 5. 11 Android Studio 4.1.3에서 테스트

2022. 6. 18 Android API 32에서 테스트

1. 간단한 안드로이드 구글맵 예제 동작시키기

먼저 구글맵 예제를 실행시켜 보고, 후반부에 예제 코드를 설명합니다.

1. Google Developers Console 사이트 (https://console.developers.google.com/apis/dashboard )에 접속하여 프로젝트 만들기를 클릭합니다.

자주 구성이 바뀌는 편이어서 포스팅에서 진행한 캡쳐 화면과 차이가 있을 수 있습니다.

2. 적당한 프로젝트 이름을 적고 만들기를 클릭합니다.

3. 잠시 기다리면 새로운 프로젝트 생성이 완료 됩니다.

Google Maps Android API를 사용하려면 추가 설정이 필요합니다. API 및 사용 서비스 사용 설정을 클릭합니다.

4. maps sdk for android를 검색하여 Maps SDK for Android를 선택합니다.

5. 사용을 클릭합니다.

6. API가 활성화 되었습니다.

마우스 커서를 왼쪽으로 이동하면 보이는 메뉴에서 사용자 인증 정보를 선택합니다.

사용자 인증 정보 만들기를 클릭합니다.

7. 사용자 인증 정보 만들기를 클릭하여 보이는 메뉴에서 API 키를 클릭합니다.

8. API 키를 수정을 클릭합니다.

9. 앞에서 생성된 API 키에 사용 제한을 둘 수 있는 웹페이지가 보입니다.

애플리케이션 제한사항, API 제한사항을 설정할 수 있습니다.

10. 애플리케이션 제한 사항에서 Android 앱을 선택하고 항목 추가를 클릭합니다.

11. Google Maps Android API를 사용할 안드로이드 프로젝트의 패키지 이름과 Android Studio가 설치된 컴퓨터에서 생성된 SHA-1 인증서 지문이 필요합니다.

12. SHA-1 인증서 지문을 얻기 위한 과정부터 진행합니다. 윈도우키 + R을 누른 후 cmd를 입력하고 엔터를 눌러서 명령 프롬프트 창을 엽니다.

윈도우에서는 다음 명령으로 SHA-1 인증서 지문을 획득할 수 있습니다.

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

참고로 우분투 리눅스에서는 다음 명령을 사용합니다.

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

출시할 때에는 다음 명령을 사용하세요. 테스트 해보지는 않았습니다.

your_keystore_name은 .keystore 확장자를 포함하여 키 저장소의 정규화된 경로와 이름으로 바꿉니다. your_alias_name은 인증서 생성 시 할당한 별칭으로 바꿉니다.

keytool -list -v -keystore your_keystore_name -alias your_alias_name

SHA1 옆에 있는 문자열을 복사해 놓으면 됩니다.

문제 없으면 14번을 진행하고, 그렇지 않으면 13번을 확인해보세요..

13. 안드로이드 스튜디오에서 앱을 빌드하여 안드로이드 디바이스에 설치한 적이 없어서 다음과 같은 에러가 발생합니다.

keytool 오류: java.lang.Exception: 키 저장소 파일이 존재하지 않음: C:\Users\webnautes\.android\debug.keystore

간단한 안드로이드 프로젝트를 생성하여 빌드 후, 안드로이드 디바이스에 설치하면 debug.keystore 파일이 사용자 디렉토리의 하위 디렉토리인 .android 디렉토리 안에 생성됩니다.

다시 12번을 진행해보면 SHA1 fingerprint 획득할 수 있습니다.

14. Google Maps Android API를 사용할 안드로이드 프로젝트를 준비해놓았다면 패키지 이름을 따로 복사해놓고 15번을 진행합니다.

그렇지 않다면 안드로이드 스튜디오를 실행하여 새로운 프로젝트를 생성합니다.

아래 화면에서 New Project를 선택하거나 메뉴에서 File > New > New Project를 선택합니다.

Empty Activity를 선택합니다.

Configure your project의 Name 항목에 프로젝트 이름을 적어줍니다.

Language 항목이 Java인지 확인하세요.

본 포스트에서는 Minimum SDK로 API 21를 사용했습니다.

안드로이드 프로젝트 생성이 완료되어 아래 화면처럼 보일때 MainActivity.java 파일에서 패키지 이름을 복사해둡니다.

15. Google Developers Console 사이트에 복사해두었던 패키지 이름과 SHA-1 인증서 지문을 붙여넣기하고 완료를 클릭합니다.

16. API 제한사항에서 키 제한을 선택하고 콤보박스에서 Maps SDK for Android를 체크하고 확인을 클릭합니다.

이제 저장을 클릭합니다.

17. 구글 맵 안드로이드 API를 사용하기 위한 API 키가 준비되었습니다. 따로 복사해둡니다.

18. 매네페스트 파일 AndroidManifest.xml의 태그 하위요소로 태그를 사용하여 17번에서 복사해둔 API키를 입력해줍니다.

아래 코드에서 API키 부분을 대체하면 됩니다.

19. 등록 받은 키 확인이 필요하다면 Google Developers Console 사이트 (https://console.developers.google.com/apis/dashboard )에서 상단에 있는 프로젝트명을 Google Maps Android API를 위한 것으로 바꾸어 선택합니다.

생성한 프로젝트가 하나라면 자동으로 선택됩니다.

왼쪽으로 마우스 커서를 가져가면 보이는 메뉴에서 사용자 인증 정보를 클릭합니다.

키 표시를 클릭하면 API 키를 확인할 수 있습니다.

20. Google Maps Android API를 사용하려면 Google Play services 라이브러리 패키지를 설치해줘야 합니다.

안드로이드 스튜디오로 돌아와서 메뉴에서 Tools > SDK Manager를 선택합니다.

SDK Tools 탭을 클릭하고 Google Play services 항목을 체크하고 OK를 클릭하여 설치를 진행합니다.

21. 모듈 app의 build.gradle에 Google Play Services 라이브러리를 프로젝트에서 사용한다고 추가해줘야 합니다.

implementation ‘com.google.android.gms:play-services-maps:18.0.2’

implementation ‘com.google.android.gms:play-services-location:20.0.0’

추가해 준 후 , Sync Now를 클릭합니다.

참고로 노란색으로 표시된 패키지 이름에 마우스 커서를 가져가면 최근 버전을 알려줍니다.

최근버전으로 교체합니다. 하지 않아도 상관없습니다.

최근 버전으로 교체하면 다음처럼 노란색 블럭이 모두 사라집니다.

Sync Now를 클릭해야 반영됩니다.

24. 레이아웃 파일 activity_main.xml 을 다음 내용으로 바꾸어 줍니다. 태그를 지도가 표시될 위치에 적어줍니다.

오른쪽 상단에 보이는 Code를 클릭하면 코드를 입력할 수 있습니다.

25. 자바 코드 파일 MainActivity.java 를 다음 내용으로 대체합니다.

첫번째 줄 package 로 시작하는 것은 남겨 두세요.

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import com.google.android.gms.maps.CameraUpdateFactory;

import com.google.android.gms.maps.GoogleMap;

import com.google.android.gms.maps.OnMapReadyCallback;

import com.google.android.gms.maps.SupportMapFragment;

import com.google.android.gms.maps.model.LatLng;

import com.google.android.gms.maps.model.MarkerOptions;

public class MainActivity extends AppCompatActivity

implements OnMapReadyCallback {

private GoogleMap mMap;

@Override

protected void onCreate (Bundle savedInstanceState) {

super .onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()

.findFragmentById(R.id.map);

mapFragment.getMapAsync( this );

}

@Override

public void onMapReady ( final GoogleMap googleMap) {

mMap = googleMap;

LatLng SEOUL = new LatLng(37.56, 126.97);

MarkerOptions markerOptions = new MarkerOptions();

markerOptions.position(SEOUL);

markerOptions.title( “서울” );

markerOptions.snippet( “한국의 수도” );

mMap.addMarker(markerOptions);

// 기존에 사용하던 다음 2줄은 문제가 있습니다.

// CameraUpdateFactory.zoomTo가 오동작하네요.

//mMap.moveCamera(CameraUpdateFactory.newLatLng(SEOUL));

//mMap.animateCamera(CameraUpdateFactory.zoomTo(10));

mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(SEOUL, 10));

}

}

26. 실행 결과 화면입니다. 서울 중앙에 빨간색 마커가 보이고 클릭하면 마커에 추가해두었던 설명이 보입니다.

2. Google Maps Android API 예제 코드 설명

1. MapFragment는 앱에 지도를 표시하기 위해 사용되는 컴포넌트로 관련 처리를 자동으로 해줍니다. 앱에서 사용하기 위해서는 레이아웃의 액티비티에 태그를 사용하여 추가시켜 주어야 합니다.

2. MainActivity 클래스에서 OnMapReadyCallback 인터페이스를 구현한다고 선언해놓고

public class MainActivity extends AppCompatActivity

implements OnMapReadyCallback {

OnMapReadyCallback 인터페이스의 onMapReady 메소드를 구현해줘야 합니다.

맵이 사용할 준비가 되었을 때(NULL이 아닌 GoogleMap 객체를 파라미터로 제공해 줄 수 있을 때) 호출되어지는 메소드입니다.

@Override

public void onMapReady(final GoogleMap map) {

. . . . . . . . . . . . . . . . . . . .

}

MarkerOptions으로 마커가 표시될 위치(position), 마커에 표시될 타이틀(title), 마커 클릭시 보여주는 간단한 설명(snippet)를 설정하고 addMarker 메소드로 GoogleMap 객체에 추가해주면 지도에 표시됩니다.

LatLng SEOUL = new LatLng(37.56, 126.97);

MarkerOptions markerOptions = new MarkerOptions();

markerOptions.position(SEOUL);

markerOptions.title(“서울”);

markerOptions.snippet(“한국의 수도”);

mMap.addMarker(markerOptions);

moveCamera 메소드를 사용하여 카메라를 지정한 경도, 위도로 이동합니다.

CameraUpdateFactory.zoomTo 메소드를 사용하여 지정한 단계로 카메라 줌을 조정합니다. 1 단계로 지정하면 세계지도 수준으로 보이고 숫자가 커질수록 상세지도가 보입니다.

mMap.moveCamera(CameraUpdateFactory.newLatLng(SEOUL));

mMap.animateCamera(CameraUpdateFactory.zoomTo(10));

글 업데이트한 시점에서는(2020. 9. 12) CameraUpdateFactory.zoomTo 함수가 오동작을 하여 사용하는 순간 엉뚱한 위치로 이동하는 현상이 있습니다.

다음처럼 코드를 변경하여 해결했습니다.

mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(SEOUL, 10));

3. 이제 onCreate 메소드에서 getMapAsync() 메소드를 호출하여 GoogleMap 객체가 준비될 때 실행될 콜백을 등록합니다.

그러기 위해서는 레이아웃에 추가했던 프래그먼트(com.google.android.gms.maps.SupportMapFragment)의 핸들을 가져와야 합니다.

FragmentManager.findFragmentById 메소드를 사용하여 지정한 ID를 갖는 프래그먼트의 핸들을 가져옵니다.

getMapAsync() 메소드가 메인 쓰레드에서 호출되어야 메인스레드에서 onMapReady 콜백이 실행됩니다.

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()

.findFragmentById(R.id.map);

mapFragment.getMapAsync(this);

}

3. 관련 포스팅

3.1. Android Google Map에 현재 위치 표시하기( FusedLocationProviderClient 사용)

FusedLocationProviderClient를 사용하여 구글맵에 현재 위치를 표시하는 예제입니다.

https://webnautes.tistory.com/1249

FusedLocationProviderClient는 Deprecated된 FusedLocationApi를 대체하게 되며 Google Play services 11.6.0 이상에서 사용하는 것을 권장하고 있습니다.

3.2. Android Google Map에 현재 위치 표시하기( GoogleApiClient, FusedLocationApi 사용)

GoogleApiClient와 FusedLocationApi를 사용하여 구글맵에 현재 위치를 표시하는 예제입니다.

https://webnautes.tistory.com/1011

3.3. Places API Web Service를 사용하여 Google Map에 현재 위치 주변의 음식점 표시하기

Places API Web Service를 이용하여 현재 위치 주변의 음식점 정보를 안드로이드의 구글맵에 표시하는 내용을 다룹니다.

https://webnautes.tistory.com/1080

3.4. GenyMotion 가상머신에 Google Apps설치하여 Google Maps Android API 태스트 하기

Genymotion에서 Google Map API을 가지고 작성한 Android 앱을 테스트하는 방법을 소개합니다.

https://webnautes.tistory.com/1064

반응형

Android Studio 구글 지도 API 사용하기

구글 Map API를 사용하여 Android Studio에 지도를 삽입해보자.

1. Google APIs

https://console.developers.google.com/apis/dashboard

먼저 위 사이트로 들어가서 로그인을 한 뒤 프로젝트 만들기 버튼을 클릭한다.

Google APIs 대시보드

프로젝트 이름을 작성하고 만들기 버튼을 클릭한다.

예시로 프로젝트 이름을 GoogleMap으로 지정하였다.

프로젝트 생성이 완료되면 API 및 서비스 사용 설정 버튼을 클릭한다.

API 라이브러리

Android Studio에서 사용할 것이기 때문에 API 라이브러리에서 Maps SDK for Android를 선택한다.

사용 버튼을 누르면 API가 활성화 되면서 아래와 같은 화면이 나온다.

API를 사용하기 위해서는 인증설정을 해야한다.

인증 설정을 하기 위해 사용자 인증 정보를 클릭한다.

사용자 인증 정보 만들기를 클릭한 뒤 API 키를 선택한다.

API 키가 생성되고 키 제한 버튼을 클릭한다.

Android 앱을 선택하고 항목 추가 버튼을 눌러 패키지명과 SHA-1 인증서 디지털 지문을 작성한다.

SHA-1 인증서 디지털 지문은 cmd 창에서 확인할 수 있다.

먼저 윈도우키 + R을 누른 후 cmd를 입력하여 명령 프롬프트 창을 연다.

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

위와 같이 두 줄로 작성된 코드를 한 줄에 작성하면 다음과 같은 출력문이 나온다.

여기에 출력된 SHA1 문자열을 복사해서 작성한다.

다음 API 제한사항에서 키 제한을 체크한 뒤에 저장 버튼을 클릭한다.

API 키 생성 완료 화면

완료되면 위와 같은 화면이 나오는데 API 키를 복사해둔다.

2. Android Studio

Google Maps Android Api를 사용하기 위해서는 Google Play services 라이브러리를 설치해야한다.

Tools > SDK Manager 선택

SDK Tools 탭 클릭한 뒤 Google Play services 항목을 체크하고 APPLY를 클릭하여 설치를 진행한다.

앱 수준의 build.gradle에 들어간 뒤 dependencies 안에 아래 코드를 추가한 뒤 동기화를 진행한다.

implementation ‘com.google.android.gms:play-services-maps:17.0.0’

implementation ‘com.google.android.gms:play-services-location:17.0.0’

그 다음 androidmanifest.xml에 코드를 추가하는데 application 태그 안에 아래와 같이 태그를 삽입한다.

value 값 안에는 인증 정보에서 복사해두었던 API 키를 작성한다.

Map을 삽입할 레이아웃에 MapView를 삽입한다

레이아웃에 해당하는 java 파일로 이동하여 코드를 추가로 작성한다.

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {

private GoogleMap mMap;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);

mapFragment.getMapAsync(this);

}

@Override

public void onMapReady(final GoogleMap googleMap) {

mMap = googleMap;

LatLng SEOUL = new LatLng(37.56, 126.97);

MarkerOptions markerOptions = new MarkerOptions(); // 마커 생성

markerOptions.position(SEOUL);

markerOptions.title(“서울”); // 마커 제목

markerOptions.snippet(“한국의 수도”); // 마커 설명

mMap.addMarker(markerOptions);

mMap.moveCamera(CameraUpdateFactory.newLatLng(SEOUL)); // 초기 위치

mMap.animateCamera(CameraUpdateFactory.zoomTo(15)); // 줌의 정도

googleMap.setMapType(GoogleMap. MAP_TYPE_HYBRID ); // 지도 유형 설정

}

}

이렇게 설정하면 지도가 출력된다.

실행 화면

마커 클릭 화면

안드로이드 구글 지도 사용하기

구글 API 발급

https://cloud.google.com/ 에 접속합니다.

로그인을 한 후에 상단에 있는 콘솔 버튼을 눌러줍니다.

그리고 API 및 서비스에 들어갑니다

그리고 프로젝트를 생성해줍니다.

상단에 있는 API 및 서비스 사용 설정을 누르고

Maps SDK for Android를 선택해줍니다.

사용 설정 버튼을 누른 뒤에

사용자 인증 정보로 와서

API 키를 생성해줍니다.

키 제한을 클릭하여 아래와 같이 제한 설정을 해줍니다.

SHA-1 인증키 발급받기

SHA-1 인증키는 아래와 같이 발급받을 수 있습니다.

Gradle > Tasks > android > signingReport를 더블 클릭하면

위와 같이 발급이 되고 복사하여 붙여 넣으시면 됩니다.

구글 맵 적용

먼저 build.gradle에 아래 코드를 추가해줍니다.

implementation ‘com.google.android.gms:play-services-maps:16.0.0’ implementation ‘com.google.maps.android:android-maps-utils:0.5+’ implementation ‘com.android.support:cardview-v7:28.0.0’ implementation ‘com.android.support:design:28.0.0’

그리고 AndroidManifest를 아래와 같이 수정해줍니다.

안드로이드에서 위치를 측정할 때 2가지로 봅니다.

하나는 네트워크 위치로 오차는 크지만 배터리가 적게 사용되고 실내에서도 측정이 가능하고,

다른 하나는 GSP 센서로 오차가 적은 대신에 배터리 사용이 많아지고 실내에서 측정이 불가능합니다.

그래서 둘이 보완하여 사용을 해야 합니다.

는 네트워크로만 위치를 측정하는 것이고

는 GPS 센서를 사용하는 것입니다.

위의 코드는 안드로이드 파이부터 새롭게 추가된 코드입니다.

구글 맵이 포함된 레이아웃 만들기

아래와 같이 작성해줍니다.

// activity_main.xml

구글 맵 코드 작성하기

먼저 권한 설정 코드입니다.

class MainActivity : AppCompatActivity() { val PERMISSIONS = arrayOf( Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION) val REQUEST_PERMISSION_CODE = 1 private fun checkPermissions(): Boolean { for (permission in PERMISSIONS) { if (ActivityCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) { return false } } return true } override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) initMap() } }

퍼미션 목록중에 권한이 하나라도 없으면 false를 반환합니다.

onCreate 안에 작성할 코드입니다.

class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) mapView.onCreate(savedInstanceState) if (checkPermissions()) { initMap() } else { ActivityCompat.requestPermissions(this, PERMISSIONS, REQUEST_PERMISSION_CODE) } myLocationButton.setOnClickListener { onMyLocationButtonClick() } } }

먼저 맵뷰에 onCreate 함수를 호출해주고,

퍼미션을 체크한 후 권한이 있으면 initMap()으로 맵을 초기화 해주고 없으면 권한을 요청하는 코드입니다.

맵을 초기화 해주는 initMap의 코드입니다.

class MainActivity : AppCompatActivity() { val DEFAULT_ZOOM_LEVEL = 17f val CITY_HALL = LatLng(37.5662952, 126.97794509999994) var googleMap: GoogleMap? = null @SuppressLint(“MissingPermission”) fun initMap() { mapView.getMapAsync { googleMap = it it.uiSettings.isMyLocationButtonEnabled = false when { checkPermissions() -> { it.isMyLocationEnabled = true it.moveCamera(CameraUpdateFactory.newLatLngZoom(getMyLocation(), DEFAULT_ZOOM_LEVEL)) } else -> { it.moveCamera(CameraUpdateFactory.newLatLngZoom(CITY_HALL, DEFAULT_ZOOM_LEVEL)) } } } } }

getMapAsync는 구글 맵을 불러오는 함수입니다.

구글 맵을 불러온 후에 googleMap = it을 통해 gooleMap 변수에 객체를 저장합니다.

it.uiSettings.isMyLocationButtonEnabled = false

현재 위치 이동 버튼 비활성화를 한 뒤에권한을 확인하여 권한이 있을 경우

it.isMyLocationEnabled = true it.moveCamera(CameraUpdateFactory.newLatLngZoom(getMyLocation(), DEFAULT_ZOOM_LEVEL))

현재 위치를 활성화 해주고, 카메라를 이동해줍니다.

만약 권한이 없다면 지정해둔 서울시청의 위치로 이동을 해줍니다.

현재 위치를 반환해주는 getMyLocation의 코드입니다.

class MainActivity : AppCompatActivity() { @SuppressLint(“MissingPermission”) fun getMyLocation(): LatLng { val locationProvider: String = LocationManager.GPS_PROVIDER val locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager val lastKnownLocation: Location = locationManager.getLastKnownLocation(locationProvider) return LatLng(lastKnownLocation.latitude, lastKnownLocation.longitude) } }

코드를 살펴보면 위치를 측정하는 프로바이더를 GPS로 설정을 하고, 위치 서버스 객체를 불러온 후, 마지막으로 업데이트된 위치를 가져오고 그것을 위도 경도로 반환합니다.

마지막으로 버튼을 클릭 하면 현재 위치로 이동하는 onMyLocationButtonClick의 코드입니다.

class MainActivity : AppCompatActivity() { private fun onMyLocationButtonClick() { when { checkPermissions() -> googleMap?.moveCamera( CameraUpdateFactory.newLatLngZoom(getMyLocation(), DEFAULT_ZOOM_LEVEL) ) else -> Toast.makeText(applicationContext, “위치사용권한 설정에 동의해주세요”, Toast.LENGTH_LONG).show() } } }

전체 코드

class MainActivity : AppCompatActivity() { val PERMISSIONS = arrayOf( Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION) val REQUEST_PERMISSION_CODE = 1 val DEFAULT_ZOOM_LEVEL = 17f val CITY_HALL = LatLng(37.5662952, 126.97794509999994) var googleMap: GoogleMap? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) mapView.onCreate(savedInstanceState) if (checkPermissions()) { initMap() } else { ActivityCompat.requestPermissions(this, PERMISSIONS, REQUEST_PERMISSION_CODE) } myLocationButton.setOnClickListener { onMyLocationButtonClick() } } override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) initMap() } private fun checkPermissions(): Boolean { for (permission in PERMISSIONS) { if (ActivityCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) { return false } } return true } @SuppressLint(“MissingPermission”) fun initMap() { mapView.getMapAsync { googleMap = it it.uiSettings.isMyLocationButtonEnabled = false when { checkPermissions() -> { it.isMyLocationEnabled = true it.moveCamera(CameraUpdateFactory.newLatLngZoom(getMyLocation(), DEFAULT_ZOOM_LEVEL)) } else -> { it.moveCamera(CameraUpdateFactory.newLatLngZoom(CITY_HALL, DEFAULT_ZOOM_LEVEL)) } } } } @SuppressLint(“MissingPermission”) fun getMyLocation(): LatLng { val locationProvider: String = LocationManager.GPS_PROVIDER val locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager val lastKnownLocation: Location = locationManager.getLastKnownLocation(locationProvider) return LatLng(lastKnownLocation.latitude, lastKnownLocation.longitude) } private fun onMyLocationButtonClick() { when { checkPermissions() -> googleMap?.moveCamera( CameraUpdateFactory.newLatLngZoom(getMyLocation(), DEFAULT_ZOOM_LEVEL) ) else -> Toast.makeText(applicationContext, “위치사용권한 설정에 동의해주세요”, Toast.LENGTH_LONG).show() } } override fun onResume() { super.onResume() mapView.onResume() } override fun onPause() { super.onPause() mapView.onPause() } override fun onDestroy() { super.onDestroy() mapView.onDestroy() } override fun onLowMemory() { super.onLowMemory() mapView.onLowMemory() } }

실행을 하게 되면 구글 맵이 나오게 됩니다.

예제 코드

https://github.com/Im-Tae/Blog_Example/tree/master/Android/Google_Map_Example

반응형

[android studio] google maps API 사용방법 정리

728×90

구글 맵 연동을 한번 해보자.

우선 맵 api를 가져올 android studio 프로젝트가 없다면 미리 생성을 해두자.

1. https://console.cloud.google.com/apis/dashboard 주소로 들어가,

새 프로젝트를 생성하고 API 및 서비스 항목에서 API 및 서비스 사용 설정을 클릭을 한다.

리스트 중 [Maps SDK for Android] 항목을 클릭하여 [사용] 버튼을 클릭하여 API를 활성화 한다.

2. API 및 서비스에서 [사용자 인증 정보]에 들어가 [+ 사용자 인증 정보 만들기]를 클릭하면

몇개의 메뉴가 나타난다.

API 키를 클릭하면 아래와 같이 API 키가 생성된다.

하단에 있는 [키 제한]을 클릭한다.

앞에서 생성된 키의 제한 이름 등 변경가능하다.

애플리케이션 제한사항에 있는 [Android 앱]을 클릭하고 클릭 후 나타나는 [Android 앱의 사용량 제한]목록에

앱의 패키지 명과 SHA-1 서명 인증서 디지털 지문을 입력하여야 한다.

앱의 패키지명은 현재 적용시킬 앱의 package name을 넣으면 될 것이고,

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

SHA-1 서명 인증서 디지털 지문은 cmd 창을 열어 위 명령어를 넣게되면 아래와 같이 SHA-1 코드가 나타난다.

SHA1 : 이후 코드값을 복사하여 넣어주고 완료를 클릭한다.

API 제한사항에서 [키 제한]을 클릭하고 dropdown메뉴에서 [Maps SDK for Android]를 선택한 후 저장해 준다.

3. 생성된 API Key를 복사하여 Andorid Studio로 돌아와 [AndroidManifest.xml]파일의 태그 밑에

아래와 같이 추가해 준다.

…. …. ….

4. build.gradle에 들어가 dependencies 안에 아래에 있는 라이브러리를 추가해 줍니다.

implementation ‘com.google.android.gms:play-services-maps:18.0.0’ implementation ‘com.google.android.gms:play-services-location:18.0.0’

5. 맵을 추가할 화면에 fragment 를 넣어준다.

<...> <...> <....>

6. java 코드로 지도에 표시할 부분(Maker)을 설정하고, 지도를 실행해준다.

//implements OnMapReadyCallback 를 추가 public class Frag_Map extends Fragment implements OnMapReadyCallback { GoogleMap gMap; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { ViewGroup rootview = (ViewGroup) inflater.inflate(R.layout.fragment_test, container, false); //activity일 경우 getChildFragmentManager대신 getSupportFragmentManager를 사용 SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); return rootview; } @Override public void onMapReady(@NonNull GoogleMap googleMap) { gMap = googleMap; String str_loc_Nm = “장소명”; double dbl_Lat = (지도상 위도값); double dbl_Lon = (지도상 경도값); String str_loc_DescNm = “장소설명”; LatLng Location = new LatLng(dbl_Lat, dbl_Lon); //지도에 표시할 Maker 만들기 MarkerOptions markerOptions = new MarkerOptions(); markerOptions.position(Location); markerOptions.title(str_loc_Nm); markerOptions.snippet(str_loc_DescNm); gMap.addMarker(markerOptions); //지도를 해당 위치로 이동, 줌 배수 설정 gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(Location, 10)); } }

앱으로 실행하여 확인 결과 원하는 결과를 얻을 수 있었다.

728×90

안드로이드 스튜디오 구글 맵 사용하기

728×90

먼저 구글 맵을 사용하기 전에 구글 API 사이트로 들어가 줍니다.

좌측 상단에 있는 프로젝트 선택을 눌러줍니다.

프로젝트 선택 창이 뜨면 새 프로젝트를 눌러줍니다.

프로젝트 이름을 누른 후 만들기를 눌러줍니다.

다시 메인화면에서 라이브러리를 눌러줍니다.

지도에서 Maps SDK for Android를 눌러줍니다.

아래와 같이 창이 뜨면 사용 설정을 눌러줍니다.

다음으로 사용자 인증 정보로 들어갑니다.

API 및 서비스의 사용자 인증 정보라고 쓰여있는 링크를 눌러줍니다.

상단의 사용자 인증 정보 만들기 > API 키를 선택합니다.

키가 성공적으로 만들어지면 오른쪽 아래의 키 제한을 눌러줍니다.

애플리케이션 제한사항을 Android 앱으로 선택하고 사용량 제한의 항목 추가를 눌러줍니다.

그러면 아래와 같이 패키지 이름과 인증서 디지털 지문을 입력하는 창이 나옵니다.

패키지 이름은 만들어놓은 프로젝트의 패키지명을 넣으면 되고 인증서 디지털 지문을 얻는 방법은 다음과 같습니다.

윈도우 + R키를 눌러 실행 창에서 cmd를 입력 후 확인을 눌러줍니다.

cmd 창에 아래의 명령어를 입력 후 엔터를 누르게 되면 다음과 같이 출력이 되는데 이때의 SHA1 옆의 16진수로 나열된 코드를 복사합니다.

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

코드와 인증서 디지털 지문을 넣고 완료를 눌러주고 저장을 눌러주면 됩니다.

이때 생성된 키를 복사하고 안드로이드 스튜디오로 넘어옵니다.

복사한 키를 AndroidManifest.xml 파일에 아래처럼 붙여 넣어 줍니다.

다음으로 Tool > SDK Manager으로 들어와 아래처럼 SDK Tools에서 Google Play services를 활성화시켜준 후 Apply를 눌러줍니다.

설치가 완료되었다면 좌측의 Gradle Scripts의 build.gradle 파일에서 코드를 추가해줍니다.

dependencies { implementation fileTree(dir: ‘libs’, include: [‘*.jar’]) implementation ‘com.android.support:appcompat-v7:28.0.0’ implementation ‘com.android.support.constraint:constraint-layout:1.1.3’ 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 ‘com.android.support.test:runner:1.0.2’ androidTestImplementation ‘com.android.support.test.espresso:espresso-core:3.0.2’ }

현재 release note에 따르면 com.google.android.gms:play-services-maps와 location의 최신버전은 17.0.0 입니다.

아래처럼 에러가 발생한다면 상단의 Refactor > Migrate to AndroidX… 를 눌러주면 됩니다.

마지막으로 activity_main.xml 파일과 MainActivity에 코드를 넣으면 됩니다.

activity_main.xml에 아래의 코드를 넣어줍니다.

MainActivity에는 아래의 코드를 넣어줍니다.

package com.example.coronaclinicmap; import androidx.appcompat.app.AppCompatActivity; import android.icu.lang.UScript; import android.os.Bundle; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; public class MainActivity extends AppCompatActivity implements OnMapReadyCallback { private GoogleMap mgoogleMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SupportMapFragment supportMapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); supportMapFragment.getMapAsync(this); } @Override public void onMapReady(final GoogleMap googleMap) { mgoogleMap = googleMap; final LatLng Pocheon = new LatLng(37.894936, 127.200344); // 마커 추가 MarkerOptions markerOptions = new MarkerOptions(); markerOptions.position(Pocheon); markerOptions.title(“포천시청”); // 마커 옵션 추가 googleMap.addMarker(markerOptions); // 마커 등록 googleMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() { @Override public void onMapLoaded() { mgoogleMap.moveCamera(CameraUpdateFactory.newLatLng(Pocheon)); mgoogleMap.animateCamera(CameraUpdateFactory.zoomTo(10)); } }); // 구글맵 로딩이 완료되면 카메라 위치 조정 } }

반응형

[Java][Android] 구글맵 빠르게 적용하기

이번 포스팅에선 스틱코드를 사용해서 구글맵을 앱에 적용하는 방법에 대해 포스팅하겠습니다.

앱을 키면 서울 부분에 마커가 찍혀 있는 지도를 보여주는 예제를 만들어 보겠습니다.

포스팅에서 사용된 모든 코드는 아래의 스틱코드 포스팅에서 확인하실 수 있습니다.

stickode.com/detail.html?no=2187

먼저 구글맵 API를 사용하기 위해 아래의 웹 페이지에 접속해서 프로젝트를 생성해야 합니다.

console.cloud.google.com/home/dashboard?folder=&organizationId=&project=our-shield-259208

위의 주소로 접속해서 구글 클라우드 플랫폼 우측을 클릭하면, 아래와 같은 화면이 나오며 프로젝트 생성이 가능합니다.

만약 생성 가능한 프로젝트 할당량을 모두 채웠다면 새 프로젝트를 만들 수 없으니 만들어둔 게 많다면 삭제한 후 진행해야 합니다.

프로젝트 이름을 설정한 후 만들기 버튼을 누르면 아래와 같은 화면이 나옵니다.

여기서 왼쪽 상단의 햄버거 버튼을 눌러 API 및 서비스 > 대시보드 순서로 클릭한 다음, 화면 상단의 API 및 서비스 사용 설정을 클릭합니다.

그러면 API들을 검색할 수 있는 화면이 나오는데 검색창에 maps sdk for android를 검색한 다음, 이것을 사용 설정합니다.

다음으로 API 및 서비스 > 사용자 인증 정보를 클릭해서 화면 상단의 사용자 인증 정보 만들기를 클릭하고 API 키를 클릭해 API 키를 생성해줍니다.

이 때 생성되는 API 키는 어딘가에 잘 보관해 둡니다. 그리고 우측 하단의 키 제한을 누르면 API 키 사용에 제한을 둘 수도 있는데 지금은 패스하겠습니다.

이제 안드로이드 스튜디오를 켜서 구글맵 API를 적용할 프로젝트를 열고, 매니페스트에 아래 코드를 추가합니다.

태그 안의 어느 곳이든 저 태그를 작성하고, value 우측에 위에서 확인한 API 키를 입력해줍니다.

그리고 아래의 의존성 문구를 앱 수준 gradle 파일에 추가해줍니다.

implementation ‘com.google.android.gms:play-services-maps:17.0.0’ implementation ‘com.google.android.gms:play-services-location:17.0.0’

다음으로 XML 파일을 먼저 코딩해줍니다.

구글맵만 보여줄 프래그먼트만 있는 간단한 형태입니다.

다음으로 자바 파일을 코딩해줍니다.

import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Marker; import com.google.android.gms.maps.model.MarkerOptions; public class MainActivity extends AppCompatActivity implements OnMapReadyCallback { private GoogleMap map; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); mapFragment.getMapAsync(MainActivity.this); } @Override public void onMapReady(GoogleMap googleMap) { map = googleMap; LatLng seoul = new LatLng(37.56, 126.97); MarkerOptions options = new MarkerOptions(); options.position(seoul) .title(“서울”) .snippet(“한국의 수도”); map.addMarker(options); map.moveCamera(CameraUpdateFactory.newLatLngZoom(seoul, 10)); } }

앱을 빌드하면 아래와 같이 서울에 마커가 찍혀있는 화면이 출력됩니다.

마커를 클릭하면 위에서 작성한 대로 서울, 한국의 수도가 나오는 걸 볼 수 있습니다.

구글맵 기본사용법

728×90

안드로이드 스튜디오에서 구글맵 라이브러리를 연동하여 지도를 띄우는 방법에 대해 정리해보겠습니다.

우선 구글계정이 필요합니다. 회원가입후 GCP 콘솔로 이동합니다.

상단에서 구글맵 라이브러리를 적용할 프로젝트를 선택합니다. 만약 프로젝트가 하나도 없다면 생성해야합니다.

위 표시를 해놓은 프로젝트 부분을 선택하면 이 사진과 같은 팝업창이 하나 뜨는데요. 여기서 우측 상단의 새 프로젝트를 눌러 생성할 수 있습니다. 프로젝트 이름은 자유롭게 작성해주시고 회사명은 필수사항이 아니니 입력해주지 않으셔도 무방합니다. 저는 현재 담당하여 진행중인 AcademyService 프로젝트에서 진행해보겠습니다.

프로젝트를 선택하였다면 우측 상단의 메뉴를 열고 API를 선택합니다.

이제 구글맵을 프로젝트에 추가하기 위해 API 및 서비스 사용 설정을 눌러줍니다.

그다음 검색창을 통해 Maps SDK for Android를 찾아 선택하겠습니다.

구글 맵을 선택하면 다음과 같은 화면이 나오는데 여기서 표시한 파란버튼에 여러분들은 추가라고 쓰여져 있을겁니다. 저는 이미 프로젝트에 추가된 상태이기 때문에 추가가 아닌 관리라고 되어있습니다. 버튼을 눌러 추가해줍니다.

이제 이 프로젝트를 특정 앱에서만 활용할 수 있도록 설정해야 합니다. 만약 이러한 설정없이 나중에 API키가 노출 되었을 경우 무단으로 본인의 API를 계속해서 사용하여 해킹뿐만 아니라 요금이 발생할 수 있습니다.

추가버튼 자리에 있던 관리버튼을 눌러 관리자 화면으로 이동합니다.

관리자 화면에서 3개의 탭중 가장 오른쪽의 사용자 인증정보를 선택합니다. 새로 라이브러리를 적용한 상태기 때문에 아직 어떤 사용자 인증키도 없을것입니다. 새로운 사용자 인증 정보 키를 생성하여야 합니다.

링크가 걸려있는 API 및 서비스의 사용자 인증 정보를 선택합니다. 화면을 이동하면 상단의 사용자 인증 정보 만들기 버튼이 있습니다. 해당 버튼을 누르면 3종류의 키가 있는데 이 중 API키를 선택하여 키를 생성합니다.

키를 생성하면 사진과 같이 하나의 API키가 생성되어야 합니다. 해당 키의 우측의 연필 아이콘을 눌러 특정 앱애서만 해당 API키를 사용할 수 있도록 설정해보겠습니다.

위에서 우선 android앱을 선택하고 제한사항 규칙을 만들어야합니다. 아래의 항목 추가를 눌러 제한규칙을 생성합니다.

패키지 이름과 SHA 인증서 지문을 입력하라고 나올것입니다. 패키지 이름은 여러분이 개발하고 있는 안드로이드 앱의 패키지명을 입력하면 되고 SHA 인증서 지문은 이제 어떤 작업을 해줘야 얻을 수 있는데요.

우선 윈도우의 cmd 콘솔창을 실행합니다.

그리고 C:\Program Files\Android\Android Studio1\jre\bin 디렉토리로 경로를 이동합니다.

해당 디렉토리로 이동을 하면 keytool.exe 라는 프로그램이 있습니다.

keytool -list -v -keystore “%USERPROFILE%\.android\debug.keystore” -alias androiddebugkey -storepass android -keypass android

해당 명령어를 입력하여 keytool을 실행하면 안드로이드 앱에 대한 SHA인증서 지문을 얻을 수 있습니다.

인증서 지문중 2번째에 있는 SHA1을 확인하고 복사해줍니다.

다시 구글 콘솔로 돌아와 패키지명과 얻은 SHA인증서 지문을 입력하고 제한 규칙 생성을 마칩니다.

그 후 하단의 저장을 누르면 현재 API키에대한 설정이 완료됩니다.

이제 구글맵을 사용할 준비는 마쳤습니다. 이제 안드로이드 스튜디오로 이동하여 구글지도를 띄워보도록 하겠습니다.

안드로이드 앱에서 구글맵을 사용하기 위해선 몇가지 설정을 해주어야 합니다.

우선 메니페스트 파일에 다음과 같은 코드를 추가합니다.

API키는 콘솔에서 제한 규칙을 적용했던 것의 키를 복사하여 입력합니다.

그 뒤 구글 플레이 서비스를 다운받아야합니다. 안드로이드 스튜디오에서 상단 탭중 Tools->SDK Maneger 선택

팝업창에서 두번째에 있는 SDK Tools를 선택하고 Google Play Services를 다운받아줍니다. 만약 이전에 다운받은적이 있다면 이미 체크표시가 되어있을 것입니다. 이럴 경우 다운로드를 하지 않아도 됩니다.

그 다음은 앱의 gradle파일에 Google Play Service를 추가 해줘야합니다. gradle파일으 dependencies에 다음 코드를 추가해줍니다.

implementation ‘com.google.android.gms:play-services-maps:17.0.0’ implementation ‘com.google.android.gms:play-services-location:17.0.0’

추가해주면 상단의 노란 안내 문구가 뜰 것입니다. 여기서 sync now를 눌러 수정된 gradle파일을 적용시켜줍니다.

만약 오류가 생긴다면 app의 gradle이 아닌 프로젝트의 gradle파일에 추가 한것이 아닌지 확인해보시기 바랍니다.

이제 구글맵을 띄어줄 액티비티의 xml파일에 다음과 같은 코드를 추가해줍니다.

여기서 수정가능한 부분은 id뿐입니다. width와 heigt를 수정하여도 무방하지만 보통 지도는 화면에 맞춰 보여주기 때문에 수정할 일이 없을 거라 생각합니다.

그 다음 지도를 생성할 액티비티 클래스를 수정합니다. 구글 지도를 생성할 액티비티는 OnMapReadyCallback 인터페이스를 구현해야 합니다.

그리고 해당 인터페이스의 public void onMapReady(final GoogleMap) 메소드를 오버라이딩 해야합니다.

이 메서드는 지도를 생성할 준비가 되었을 때 사전작업할 코드를 구현합니다. 코드의 예시는 다음과 같습니다.

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback { private GoogleMap googleMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.googleMap); mapFragment.getMapAsync(this); } @Override public void onMapReady(final GoogleMap googleMap) { this.googleMap = googleMap; } }

저는 어떠한 작업없이 액티비티에 지도 변수에 현재 생성된 지도 인스턴스를 저장하였습니다.

여기까지 한 후 실행하면 앱에 정상적으로 지도가 생성 될 것입니다.

만약 지도가 생성되지 않고 빈화면만 있다면 아직 API키에 제한 규칙이 적용되지 않았거나 실행한 디바이스 혹은 가상 에뮬레이터의 구글 플레이 서비스 버전이 안맞았을 수도 있습니다.

다음에는 마커를 활용하는법에 대해 다뤄보겠습니다.

잘 되지 않으신분은 댓글로 질문 남겨주시고 한분 한분 정성껏 답변 드리도록 하겠습니다.

키워드에 대한 정보 안드로이드 스튜디오 구글 맵

다음은 Bing에서 안드로이드 스튜디오 구글 맵 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 안드로이드 앱 개발 – 구글지도를 표시하고, API 키 안전하게 사용하는 방법

  • 구글맵
  • 구글지도
  • 안드로이드
  • Google Map
  • 마커
  • 네이버지도
  • 카카오지도
  • 네비게이션
  • 위치기반
  • 튜토리얼
  • 앱강의
  • 앱개발
  • 앱만들기
  • 어플만들기
  • 앱제작
  • 안드앱제작
  • 안드로이드 스튜디오
  • 하이브리드앱
  • 초보
  • 왕초보
  • 취준
  • 취준생
  • 신입
  • 신입개발자
  • 비전공자
  • 프로그래밍
  • 오픈소스
  • 앱 유튜버
  • 안드로이드 유튜버
  • 개발자 유튜버
  • 개발자
  • 앱 개발자
  • 홍드로이드
  • 센치한개발자

안드로이드 #앱 #개발 #- #구글지도를 #표시하고, #API #키 #안전하게 #사용하는 #방법


YouTube에서 안드로이드 스튜디오 구글 맵 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 안드로이드 앱 개발 – 구글지도를 표시하고, API 키 안전하게 사용하는 방법 | 안드로이드 스튜디오 구글 맵, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment