지금 간만에 안드로이드 어플 개발 관련하여 포스팅을 하고 있는 이유...
갑작스레 맵... 지도 기반의 뭔가를 만들어 보고 싶어서!
그러면,
제일 먼저 해야할 일은?
구글에서 제공해주는 API를 사용할 수 있어야지!!
구글님께 허락 받으러 가보자 !!!
#01. API 프로젝트 만들기
아래 링크로 접속 고고씽~
https://console.developers.google.com/
당연히 "만들기"를 누르자~!!
조금 기다리면 생성완료된다
왼쪽 위를 보면 방금 만든 프로젝트로 설정되어 있는 것을 볼 수 있다
#02. API 및 사용 서비스 사용 설정
"+ API 및 서비스 사용 설정"을 눌러보자.
우리는 구글맵을 사용하는 안드로이드 앱을 만들거니까
따로 검색할 필요 없이 나와있는 것을 딱 고르면 된다
"Maps SDK for Android"
누르면...
"사용 설정"을 누르면 된다.
뭔가 나온다.... 있어보인다.
#03. 사용자 인증 정보 1
"사용자 인증 정보"를 눌러보자
"사용자 인증 정보 만들기"
눌러보자
"API 키"
선택하면 된다
"키 제한"
선택해야 한다
여기에서 "애플리케이션 제한사항" 부분을 설정해보자
"Android 앱"을 선택하고
밑 부분의 "+ 패키지 이름 및 지문 추가"를 선택하자
'패키지 이름'과 'SHA-1 인증서 지문'은 샘플로 들어가있다.
실제 개발 환경의 정보로 업데이트 해야한다.
#04. Create Project
위에서 필요한 정보를 입력하기 위해서는
어플리케이션 프로젝트가 필요하다
Android Studio를 실행하자
당연히
"+ Start a new Android Studio project"
선택
"Empty Activity"로 선택
'Name' 부분만 적당히 지어주면 된다.
밑의 API 부분도 그냥 그대로 놔두자~
'Finish'
뭔가 필요한걸 설치한다~
'Finish' ~
오~ 이제 좀 뭔가 프로그래머 스러운 화면이다~~~
app - src - main - java - ... 각자 환경에 따라서 ...
"MainActivity.java" 파일에 써있는 패키지만 잘 확인하면 된다.
"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
인증서 지문이라고 뭐라고 블라블라 나온다.
"인증서 지문:" 라인 중에서 "SHA1"이라고 나온 부분을 참조하면 된다.
#06. 사용자 인증 정보 2
패키지 이름과 SHA-1 인증서 지문을 입력하면 된다
잘 복사해서 붙여넣기~
"API 제한사항" 부분도 넣어보자
"Select API"를 클릭해서
"Maps SDK for Android"를 골라주면 된다.
그리고 저장~
#07. API 키 저장하기
이제 만들어진 API 키 값을
우리가 만들고자 하는 어플에 넣어줘야 한다
키 값을 잘 복사한 다음에...
Android Studio를 살펴보자
"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"를
설치해야한다.
"Android Studio"에서
Tools - SDK Manager
메뉴를 실행하자
"SDK Tools" 탭에서
"Google Play services" 항목을 선택 후
Apply ~
당연히 "Accept" 후 Next~
#09. build.gradle
하아~ 힘들다.
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 오류라면서 지도가 나오지 않았다.
변경한 다음에는 위와 같이 있는 "Sync Now"를 눌러주자 !!!
응?! 그런데 ?!
기분 나쁘게 빨간줄이 나온다.
뭔가 버전이 안맞는단다.
풍선팁에 나온 내용을 바탕으로 28.0.0 버전으로 맞춰주면 된다.
빨간줄이 모두 사라졌다.
#10. layout
"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
이 부분도 아래 내역으로 붙여넣자
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
위에 있는 메뉴 부분 중에서 중간에서 약간 오른쪽에 있는 "▷" 부분을 눌러보자
에뮬레이터로 Nexus가 보인다~ OK !!!
우앙.... 드디어 나왔다~~~~!!!!
지쳐서 일단 여기까지만... !!!
위의 내용은 전적으로 아래 포스팅 내용으로 공부하면서 진행했다.
오리지널은 아래 포스팅이다!!!
"Google Maps Android API 사용 방법 및 예제"
https://webnautes.tistory.com/647
'잘난놈되기 > 안또라이들' 카테고리의 다른 글
안드로이드 어플 개발 환경 만들기 (0) | 2019.03.31 |
---|---|
새로운 판 만들기 (0) | 2012.03.12 |
버튼을 더 추가해보기 (0) | 2012.03.11 |
버튼을 추가해보기 (0) | 2012.03.06 |
첫 소스 분석 - HelloAndroid (0) | 2012.03.05 |