지금 간만에 안드로이드 어플 개발 관련하여 포스팅을 하고 있는 이유...
갑작스레 맵... 지도 기반의 뭔가를 만들어 보고 싶어서!
그러면,
제일 먼저 해야할 일은?
구글에서 제공해주는 API를 사용할 수 있어야지!!
구글님께 허락 받으러 가보자 !!!
#01. API 프로젝트 만들기
아래 링크로 접속 고고씽~
https://console.developers.google.com/
![](https://t1.daumcdn.net/cfile/tistory/9927E6335C9F714C26)
당연히 "만들기"를 누르자~!!
![](https://t1.daumcdn.net/cfile/tistory/996083345C9F726031)
조금 기다리면 생성완료된다
![](https://t1.daumcdn.net/cfile/tistory/99C8063D5C9F800E06)
왼쪽 위를 보면 방금 만든 프로젝트로 설정되어 있는 것을 볼 수 있다
#02. API 및 사용 서비스 사용 설정
"+ API 및 서비스 사용 설정"을 눌러보자.
![](https://t1.daumcdn.net/cfile/tistory/99C16E365C9F823911)
우리는 구글맵을 사용하는 안드로이드 앱을 만들거니까
따로 검색할 필요 없이 나와있는 것을 딱 고르면 된다
"Maps SDK for Android"
누르면...
![](https://t1.daumcdn.net/cfile/tistory/998C92355C9F82D620)
"사용 설정"을 누르면 된다.
![](https://t1.daumcdn.net/cfile/tistory/99BA613F5C9F83241E)
뭔가 나온다.... 있어보인다.
#03. 사용자 인증 정보 1
"사용자 인증 정보"를 눌러보자
![](https://t1.daumcdn.net/cfile/tistory/9973853F5C9F86EF1D)
"사용자 인증 정보 만들기"
눌러보자
![](https://t1.daumcdn.net/cfile/tistory/99BE143B5C9F87AD19)
"API 키"
선택하면 된다
![](https://t1.daumcdn.net/cfile/tistory/994E213E5C9F889334)
"키 제한"
선택해야 한다
![](https://t1.daumcdn.net/cfile/tistory/99A185435C9F90EE29)
여기에서 "애플리케이션 제한사항" 부분을 설정해보자
![](https://t1.daumcdn.net/cfile/tistory/99163E455C9F916823)
"Android 앱"을 선택하고
밑 부분의 "+ 패키지 이름 및 지문 추가"를 선택하자
'패키지 이름'과 'SHA-1 인증서 지문'은 샘플로 들어가있다.
실제 개발 환경의 정보로 업데이트 해야한다.
#04. Create Project
위에서 필요한 정보를 입력하기 위해서는
어플리케이션 프로젝트가 필요하다
Android Studio를 실행하자
![](https://t1.daumcdn.net/cfile/tistory/99B0233D5CA069A017)
당연히
"+ Start a new Android Studio project"
선택
![](https://t1.daumcdn.net/cfile/tistory/99BFF7415CA069D233)
"Empty Activity"로 선택
![](https://t1.daumcdn.net/cfile/tistory/994E893D5CA06A921C)
'Name' 부분만 적당히 지어주면 된다.
밑의 API 부분도 그냥 그대로 놔두자~
'Finish'
![](https://t1.daumcdn.net/cfile/tistory/99AE9C345CA06E7B37)
뭔가 필요한걸 설치한다~
'Finish' ~
![](https://t1.daumcdn.net/cfile/tistory/991946345CA06E7C2D)
오~ 이제 좀 뭔가 프로그래머 스러운 화면이다~~~
![](https://t1.daumcdn.net/cfile/tistory/99180B345CA06E7D34)
app - src - main - java - ... 각자 환경에 따라서 ...
"MainActivity.java" 파일에 써있는 패키지만 잘 확인하면 된다.
![](https://t1.daumcdn.net/cfile/tistory/99B2AB345CA06E7E06)
"Build" 메뉴에서 "Make Project"를 실행해보자.
이걸 해야지 '키 저장소' 파일이 생성된다.
(SHA-1 인증서 지문 확인을 위해서 필요한...)
#05. SHA-1 인증서 지문
명령어 프롬프트 창으로 가야한다.
그리고 아래 명령어를 그대로 입력하면 된다.
> "C:\Program Files\Android\Android Studio\jre\bin\keytool" -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
![](https://t1.daumcdn.net/cfile/tistory/99FA91355CA072D104)
인증서 지문이라고 뭐라고 블라블라 나온다.
"인증서 지문:" 라인 중에서 "SHA1"이라고 나온 부분을 참조하면 된다.
#06. 사용자 인증 정보 2
패키지 이름과 SHA-1 인증서 지문을 입력하면 된다
![](https://t1.daumcdn.net/cfile/tistory/9943374D5CA074440C)
잘 복사해서 붙여넣기~
"API 제한사항" 부분도 넣어보자
![](https://t1.daumcdn.net/cfile/tistory/99C7504B5CA0749D03)
"Select API"를 클릭해서
"Maps SDK for Android"를 골라주면 된다.
그리고 저장~
#07. API 키 저장하기
이제 만들어진 API 키 값을
우리가 만들고자 하는 어플에 넣어줘야 한다
![](https://t1.daumcdn.net/cfile/tistory/9953C8495CA0754718)
키 값을 잘 복사한 다음에...
Android Studio를 살펴보자
![](https://t1.daumcdn.net/cfile/tistory/99578F375CA0BD062C)
"manifests - AndroidManifest.xml" 파일을 찾아야 한다.
...
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="..." />
...
<uses-library ...>, <meta-data ... >
내용을 삽입해야 한다.
그리고
위에서 준비한 API 값을 넣어주면 된다
#08. Google Play services
구글맵을 사용하기 위해서는
"Google Play services"를
설치해야한다.
![](https://t1.daumcdn.net/cfile/tistory/993256365CA0878C25)
"Android Studio"에서
Tools - SDK Manager
메뉴를 실행하자
![](https://t1.daumcdn.net/cfile/tistory/9948523E5CA087D024)
"SDK Tools" 탭에서
"Google Play services" 항목을 선택 후
Apply ~
![](https://t1.daumcdn.net/cfile/tistory/995C8E3A5CA0883E20)
당연히 "Accept" 후 Next~
#09. build.gradle
하아~ 힘들다.
![](https://t1.daumcdn.net/cfile/tistory/99FC783C5CA0BE7E1E)
Android Studio 에서 build.gradle 을 열고선
2개 라인을 추가하자
...
implementation 'com.google.android.gms:play-services-maps:16.0.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'
...
위 2줄을 넣으면 된다
변경된 라인에 마우스 포인터를 위치시켰을 때
새로운 버전이 보이면 해당 버전으로 맞춰주면 되는데,
여기에서 주의해야할 사항이 있다!!!
버전을 같이 맞춰야 한다.
implementation 'com.google.android.gms:play-services-maps:16.1.0'
위와 같이 하나만 버전을 올리니까....
App 실행을 하면, Google Play services 오류라면서 지도가 나오지 않았다.
![](https://t1.daumcdn.net/cfile/tistory/99DBE9475CA0905D10)
변경한 다음에는 위와 같이 있는 "Sync Now"를 눌러주자 !!!
응?! 그런데 ?!
![](https://t1.daumcdn.net/cfile/tistory/991687425CA0940A07)
기분 나쁘게 빨간줄이 나온다.
뭔가 버전이 안맞는단다.
풍선팁에 나온 내용을 바탕으로 28.0.0 버전으로 맞춰주면 된다.
![](https://t1.daumcdn.net/cfile/tistory/999D594A5CA0BEC12F)
빨간줄이 모두 사라졌다.
#10. layout
![](https://t1.daumcdn.net/cfile/tistory/9942B4495CA0BFBF0E)
"app - res - layout - activity_main.xml"
내용을 아래 내역으로 바꿔치기 하자
(가운데 밑의 Text로 화면을 바꿔놓고선 붙여넣기하면 된다)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
</LinearLayout>
#11. MainActivity.java
![](https://t1.daumcdn.net/cfile/tistory/9925E1425CA0C09202)
이 부분도 아래 내역으로 붙여넣자
package com.whatwant.sallymap;
import android.app.FragmentManager;
import android.support.v7.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.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 {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fragmentManager = getFragmentManager();
MapFragment mapFragment = (MapFragment)fragmentManager
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(final GoogleMap map) {
LatLng SEOUL = new LatLng(37.56, 126.97);
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(SEOUL);
markerOptions.title("서울");
markerOptions.snippet("한국의 수도");
map.addMarker(markerOptions);
map.moveCamera(CameraUpdateFactory.newLatLng(SEOUL));
map.animateCamera(CameraUpdateFactory.zoomTo(10));
}
}
당연히 제일 위의 package 내용은 각자의 상황에 맞춰서~
#12. Run
위에 있는 메뉴 부분 중에서 중간에서 약간 오른쪽에 있는 "▷" 부분을 눌러보자
![](https://t1.daumcdn.net/cfile/tistory/99CBA5415CA0C12303)
에뮬레이터로 Nexus가 보인다~ OK !!!
![](https://t1.daumcdn.net/cfile/tistory/998FCD375CA0C1D025)
우앙.... 드디어 나왔다~~~~!!!!
지쳐서 일단 여기까지만... !!!
위의 내용은 전적으로 아래 포스팅 내용으로 공부하면서 진행했다.
오리지널은 아래 포스팅이다!!!
"Google Maps Android API 사용 방법 및 예제"
https://webnautes.tistory.com/647