본문 바로가기
개발/안드로이드

Google Maps Android API v2

by darksilber 2016. 3. 21.
반응형

출처 - http://webnautes.tistory.com/647

 

Google Developers Console(https://console.developers.google.com/project )에서

프로젝트 만들기

를 선택합니다.





 

프로젝트 이름을 적어주고 만들기 클릭합니다.


 



중앙에 보이는 파란 사각형에서 API 사용설정 및 관리를 클릭합니다..



 



지도아이콘 옆에 보이는 Google Maps Android API를 클릭합니다...






API 사용 설정을 클릭하고 왼쪽에 있는 화살표를 클릭합니다.. 






이제 사용설정된 API수가 8개가 되었습니다.. 왼쪽에서 사용자 인증 정보를 클릭합니다.. 







화면 중앙에 보이는 사용자 인증 정보 추가를 클릭합니다.. 







API키를 선택합니다..




Android키를 선택해줍니다....




 

윈도우+R을 누른 후.. cmd를 입력하여 명령 프롬프트 창을 엽니다. 다음 명령으로 SHA1 fingerprint 획득할 수 있는데 키 저장소 비밀번호 입력하라고 나오면 android 를 입력하면 됩니다.



Keytool -exportcert -alias androiddebugkey -keystore c:\Users\webnautes\.android\debug.keystore -list -v

 


우분투 리눅스에서는

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

 




패키지 이름 및 지문 추가를 클릭합니다....






잠시 안드로이드 스튜디오를 열어서 새로운 프로젝트를 생성합니다.. 


그리고 나서 다시 돌아와서 새로 만든 패키지 이름과 앞에서 얻은 SHA-1을 입력해주고.. 생성을 클릭합니다..





API키가 생성되었습니다.. 확인을 클릭합니다.. 







오늘 날자로 API키가 생성된 것을 확인할 수 있습니다.. OAuth 동의화면을 클릭합니다.. 








이메일 주소를  확인하고 사용자에게 표시되는 제품 이름을 입력후.. 저장을 클릭합니다. 







다시 안드로이드 스튜디오로 돌아옵니다..  


메뉴에서 Tools-Android-SDK manager 선택해줍니다.


Android SDK manager에서 Google Play services 선택해서 설치해줍니다.




 

AndroidManifest.xml파일에 아래 내용을 manifest 태그 아래에 복사해서 붙여 넣습니다. 빨간색은 만든 패키지 이름으로 변경해야 합니다.


<permission

android:name="com.tistory.webnautes.googlemap.locationapi.maps.permission.MAPS_RECEIVE"

android:protectionLevel="signature" />

 

<uses-permission android:name="com.tistory.webnautes.googlemap.locationapi.maps.permission.MAPS_RECEIVE" />

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-feature

android:glEsVersion="0x00020000"

android:required="true" />



 

그리고 앞에서 생성된 인증서 지문을 AndroidManifest.xml파일에 입력해주야 합니다. </application>태그 앞에 다음 내용을 입력해줍니다.


<meta-data

android:name="com.google.android.maps.v2.API_KEY"

android:value="등록 받은 키" />

 

 


 

메뉴에서 File-Project Structure를 선택합니다. 왼쪽 사이드에서 Module 항목에 있는 app를 선택해주고 나서 탭에서 Dependancies를 선택합니다. 초록색 +를 클릭하고 Library dependency를 클릭합니다.





 

Play-services를 선택해주고 확인을 누릅니다.. 





 

 

Layout파일을 다음 내용으로 바꾸어 줍니다.

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     tools:context=".MainActivity" >  
  6.     <fragment  
  7.         android:id="@+id/map"  
  8.         android:layout_width="match_parent"  
  9.         android:layout_height="match_parent"  
  10.         class="com.google.android.gms.maps.MapFragment" />  
  11. </RelativeLayout>  

 


 

 

이제 안드로이드 소스코드를 작성합니다.


  1. package com.tistory.webnautes.googlemap;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import com.google.android.gms.maps.CameraUpdateFactory;  
  6. import com.google.android.gms.maps.GoogleMap;  
  7. import com.google.android.gms.maps.MapFragment;  
  8. import com.google.android.gms.maps.model.LatLng;  
  9. import com.google.android.gms.maps.model.Marker;  
  10. import com.google.android.gms.maps.model.MarkerOptions;  
  11.   
  12.   
  13. public class MainActivity extends Activity {  
  14.   
  15.     static final LatLng SEOUL = new LatLng( 37.56126.97);  
  16.     private GoogleMap map;  
  17.   
  18.     @Override  
  19.     protected void onCreate(Bundle savedInstanceState) {  
  20.         super.onCreate(savedInstanceState);  
  21.         setContentView(R.layout.activity_main);  
  22.         map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))  
  23.                 .getMap();  
  24.         Marker seoul = map.addMarker(new MarkerOptions().position(SEOUL)  
  25.                 .title("Seoul"));  
  26.   
  27.         map.moveCamera(CameraUpdateFactory.newLatLngZoom( SEOUL, 15));  
  28.   
  29.         map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000null);  
  30.     }  
  31.   
  32. }    

 



실행 결과 화면입니다...

 









현재 위치를 출력하고 싶으시면 아래 포스팅들을 참고하세요..


[Android/Google Map] - Android Google Map에 현재 위치 표시하기


[Android/Google Map] - Android에서 GPS와 NETWORK 정보로 현재위치 찾는 예제

반응형

댓글