activity_maps.xml
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".menu.map.MapsActivity" />
MapsActivity.kt
// GoogleMap - 기본 지도 기능 및 데이터를 관리하기 위한 진입점
private lateinit var mMap: GoogleMap
private lateinit var binding: ActivityMapsBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 뷰바인딩
binding = ActivityMapsBinding.inflate(layoutInflater)
setContentView(binding.root)
...
}
MapsActivity.kt
// 프래그먼트에 핸들 가져오기 및 콜백 등록하기
val mapFragment = supportFragmentManager
.findFragmentById(R.id.map) as SupportMapFragment
mapFragment.getMapAsync(this)
MapsActivity.kt
override fun onMapReady(googleMap: GoogleMap) {
mMap = googleMap
// 초기 위치 설정 및 마커 표시
val latLng = LatLng(37.566168, 126.901609)
mMap.addMarker(MarkerOptions().position(latLng).title("여기"))
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15f))
}
animateCamera / moveCamera 차이
- animateCamera : 지정 시간동안 지정 위치로 부드럽게 이동
- moveCamera : 지정 위치로 바로 이동
다른 여러 메소드들 확인 : https://developers.google.com/android/reference/com/google/android/gms/maps/CameraUpdateFactory