-
[Android] Fragment에서 Google Map Api 사용하기안드로이드 2022. 3. 18. 17:44728x90반응형
Android Fragment에서 Google Map API를 사용법을 정리해보았습니다.
1. 프로젝트 생성
Google Api Console에서 프로젝트를 생성해 줍니다.
프로젝트 생성 후 API 라이브러리로 이동하여 API 사용 등록합니다.
Maps SDK for Android 텝을 들어가 해당 API 사용을 클릭합니다.
2. API 키 생성 및 설정
Google API 대시보드 화면에서 사용자 인증 정보 텝으로 이동.
사용자 인증 정보 텝에서 사용자 인증정보 만들기 클릭.
그러면 위와 같이 API 키가 생성됩니다. 그런 다음 우측에 있는 API 키 수정 버튼을 클릭하여 애플리케이션 제한사항을 설정해줍니다.
Google Map API를 적용할 Android 앱의 패키지 명을 적어주고 SHA-1 키를 입력해주고 저장하면 됩니다.
SHA-1 키 얻는 방법🔍
아래의 명령어를 cmd창 또는 terminal에 실행하면 SHA-1 키를 얻을 수 있습니다‼️
- Linux or macOS :
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
- Windows:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
3. Android 프로젝트 설정
Android 프로젝트의 Manifest.xml에 <application></application> 태그 안에 API 키를 입력해줍니다.
<application> <activity> ... </activity> <meta-data android:name="com.google.android.geo.API_KEY" android:value="프로젝트 API키" /> </application>
Tool -> SDK Manager -> SDK Tools 로 들어가서 Google Play Servces를 체크하고 설치한다.
앱 수준의 build.gradle 파일에서 의존성을 추가해주고 Sync Now를 클릭합니다.
implementation 'com.google.android.gms:play-services-maps:18.0.2'
fragment_map.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <com.google.android.gms.maps.MapView android:id="@+id/mapFragment" android:layout_width="match_parent" android:layout_height="match_parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
MapFragment.kt
class MapFragment : Fragment(),OnMapReadyCallback { private lateinit var mapView : MapView override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { val rootView = inflater.inflate(R.layout.fragment_map,container,false) mapView = rootView.findViewById(R.id.mapFragment) as MapView mapView.onCreate(savedInstanceState) mapView.getMapAsync(this) return rootView } //지도 객체를 사용할 수 있을 때 자동으로 호출되는 함수 override fun onMapReady(map: GoogleMap) { val point = LatLng(37.514655, 126.979974) map.addMarker(MarkerOptions().position(point).titile("현위치") map.moveCamera(CameraUpdateFactory.newLatLngZoom(point,12f)) } override fun onStart() { super.onStart() mapView.onStart() } override fun onStop() { super.onStop() mapView.onStop() } override fun onResume() { super.onResume() mapView.onResume() } override fun onPause() { super.onPause() mapView.onPause() } override fun onLowMemory() { super.onLowMemory() mapView.onLowMemory() } override fun onDestroy() { super.onDestroy() mapView.onDestroy() } }
반응형4. 실행 화면🔥
출처
https://furang-note.tistory.com/16728x90반응형'안드로이드' 카테고리의 다른 글
[Android] 아키텍처 패턴(MVC,MVP,MVVM)에 대하여 (0) 2022.03.20 [Android] ConstraintLayout (0) 2022.03.19 [Android] SharedPreferences (0) 2022.03.17 [Android] Room 사용법 (0) 2022.03.16 [Android] ItemTouchHelper란 (0) 2022.03.11