Computer >> 컴퓨터 >  >> 프로그램 작성 >> Android

Kotlin을 사용하여 Android의 Google 지도에 현재 위치를 표시하는 방법은 무엇입니까?

<시간/>

이 예는 Kotlin을 사용하여 Android의 Google 지도에 현재 위치를 표시하는 방법을 보여줍니다.

1단계 − Android Studio에서 새 프로젝트를 생성하고 파일 ⇒ 새 프로젝트로 이동하여 필요한 모든 세부 정보를 입력하여 새 프로젝트를 생성합니다.

2단계 − res/layout/activity_main.xml에 다음 코드를 추가합니다.

<fragment xmlns:android="https://schemas.android.com/apk/res/android"
   xmlns:tools="https://schemas.android.com/tools"
   android:id="@+id/myMap"
   android:name="com.google.android.gms.maps.SupportMapFragment"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity" />

3단계 − build.gradle에 주어진 종속성을 추가합니다(모듈:앱)

implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.google.android.gms:play-services-maps:17.0.0'

4단계 − src/MainActivity.kt

에 다음 코드 추가
import android.Manifest
import android.content.pm.PackageManager
import android.location.Location
import android.os.Bundle
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.fragment.app.FragmentActivity
import com.google.android.gms.location.FusedLocationProviderClient
import com.google.android.gms.location.LocationServices
import com.google.android.gms.maps.CameraUpdateFactory
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.OnMapReadyCallback
import com.google.android.gms.maps.SupportMapFragment
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.MarkerOptions
class MainActivity : FragmentActivity(), OnMapReadyCallback {
   private lateinit var currentLocation: Location
   private lateinit var fusedLocationProviderClient: FusedLocationProviderClient
   private val permissionCode = 101
   override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      setContentView(R.layout.activity_main)
      fusedLocationProviderClient =  LocationServices.getFusedLocationProviderClient(this@MainActivity)
      fetchLocation()
   }
   private fun fetchLocation() {
      if (ActivityCompat.checkSelfPermission(
      this, Manifest.permission.ACCESS_FINE_LOCATION) !=
      PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
      this, Manifest.permission.ACCESS_COARSE_LOCATION) !=
      PackageManager.PERMISSION_GRANTED) {
         ActivityCompat.requestPermissions(this,
         arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), permissionCode)
         return
      }
      val task = fusedLocationProviderClient.lastLocation
      task.addOnSuccessListener { location −>
         if (location != null) {
            currentLocation = location
            Toast.makeText(applicationContext, currentLocation.latitude.toString() + "" +
            currentLocation.longitude, Toast.LENGTH_SHORT).show()
            val supportMapFragment = (supportFragmentManager.findFragmentById(R.id.myMap) as
            SupportMapFragment?)!!
            supportMapFragment.getMapAsync(this@MainActivity)
         }
      }
   }
   override fun onMapReady(googleMap: GoogleMap?) {
      val latLng = LatLng(currentLocation.latitude, currentLocation.longitude)
      val markerOptions = MarkerOptions().position(latLng).title("I am here!")
      googleMap?.animateCamera(CameraUpdateFactory.newLatLng(latLng))
      googleMap?.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 5f))
      googleMap?.addMarker(markerOptions)
   }
   override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String?>,
   grantResults: IntArray) {
      when (requestCode) {
         permissionCode −> if (grantResults.isNotEmpty() && grantResults[0] ==
         PackageManager.PERMISSION_GRANTED) {
            fetchLocation()
         }  
      }
   }
}

5단계 − Google API 키(map_key)를 얻으려면 아래 단계를 따르세요.

Google Cloud Platform 콘솔을 방문하세요.

  • 프로젝트 드롭다운을 클릭하고 API 키를 추가할 프로젝트를 선택하거나 생성합니다.

  • 메뉴 버튼 클릭 Kotlin을 사용하여 Android의 Google 지도에 현재 위치를 표시하는 방법은 무엇입니까? API 및 서비스> 자격 증명을 선택합니다.

  • 자격 증명 페이지에서 자격 증명 만들기> API 키를 클릭합니다. API 키 생성 대화 상자에 새로 생성된 API 키가 표시됩니다.

  • 닫기를 클릭합니다.

  • 새 API 키는 API 키 아래의 자격 증명 페이지에 나열됩니다. (프로덕션에서 사용하기 전에 API 키를 제한하는 것을 잊지 마십시오.)

  • 6단계와 같이 매니페스트 파일 에 API 키를 추가합니다.

6단계 − androidManifest.xml에 다음 코드 추가

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.example.q15">
   <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      <activity android:name=".MainActivity">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
      <meta-data
      android:name="com.google.android.geo.API_KEY"
      android:value="AIzaSyCiSh4VnnI1jemtZTytDoj2X7Wl6evey30" />
   </application>
</manifest>

응용 프로그램을 실행해 보겠습니다. 실제 Android 모바일 장치를 컴퓨터에 연결했다고 가정합니다. Android 스튜디오에서 앱을 실행하려면 프로젝트의 활동 파일 중 하나를 열고 실행 아이콘을 클릭하세요. Kotlin을 사용하여 Android의 Google 지도에 현재 위치를 표시하는 방법은 무엇입니까? 도구 모음에서. 모바일 장치를 옵션으로 선택한 다음 기본 화면을 표시할 모바일 장치를 확인하십시오.

Kotlin을 사용하여 Android의 Google 지도에 현재 위치를 표시하는 방법은 무엇입니까?