【Kotlin】AndroidのLocation APIで現在地を追跡・表示する方法を徹底解説
本記事では、AndroidアプリでKotlinを使用し、Google Maps SDK(Location API)を活用して現在地を追跡・表示する方法を解説します。ステップごとにコード例を紹介するので、初心者の方でもそのまま手を動かして試せる内容です。
実装の全体像
大まかな流れは以下の4ステップです。
- Android Studioで新規プロジェクトを作成する
- レイアウトXML(activity_maps.xml)にマップを配置する
- MapsActivity.ktにマップ表示処理を実装する
- AndroidManifest.xmlに権限とAPIキーを設定する
ステップ1:新規プロジェクトを作成する
Android Studioを起動し、「File」→「New Project」を選択して、必要な項目を入力して新しいプロジェクトを作成します。マップを扱う場合は、テンプレートで「Google Maps Views Activity」を選んでおくと、以降の手順がスムーズになります。
ステップ2:activity_maps.xmlにマップを配置する
res/layout/activity_maps.xml に以下のコードを追加します。SupportMapFragment を配置することで、画面全体にGoogleマップを表示できるようになります。
<?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="https://schemas.android.com/apk/res/android" xmlns:tools="https://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=".MapsActivity" />
ステップ3:MapsActivity.ktを実装する
src/MapsActivity.kt に以下のコードを記述します。onMapReady() コールバックはマップの準備が整ったタイミングで呼び出されるため、ここでマーカーの追加やカメラ位置の移動を行います。サンプルでは現在地として緯度13.0827、経度80.2707(チェンナイ付近)を指定しています。
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
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 MapsActivity : AppCompatActivity(), OnMapReadyCallback {
private lateinit var mMap: GoogleMap
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_maps)
// SupportMapFragmentを取得し、マップの準備ができたら通知を受け取る
val mapFragment = supportFragmentManager
.findFragmentById(R.id.map) as SupportMapFragment
mapFragment.getMapAsync(this)
}
override fun onMapReady(googleMap: GoogleMap) {
mMap = googleMap
val myCurrentLocation = LatLng(13.0827, 80.2707)
mMap.addMarker(
MarkerOptions().position(myCurrentLocation).title("ここが現在地です")
)
mMap.moveCamera(CameraUpdateFactory.newLatLng(myCurrentLocation))
}
}
ステップ4:AndroidManifest.xmlに権限とAPIキーを設定する
位置情報を利用するには ACCESS_FINE_LOCATION パーミッションの宣言が必要です。さらに、Google Maps SDKを使用するため、meta-data としてAPIキーを登録します。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.example.q11"> <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="YOUR_API_KEY" /> </application> </manifest>
注意:APIキーは必ずご自身のGoogle Cloud Platform(GCP)プロジェクトで発行したものを使用してください。他人のキーやサンプルのキーをそのまま使うと動作しないほか、公開リポジトリにコミットすると不正利用される恐れもあります。
アプリを実行して動作を確認する
それではアプリを実行してみましょう。実機のAndroidスマートフォンをパソコンに接続していることを前提に説明します。Android Studioでプロジェクト内のアクティビティファイルを開き、ツールバーの「Run」アイコン
をクリックしてください。デバイス選択画面で接続したスマートフォンを指定すると、端末にアプリがインストールされて起動し、マップ上に指定した位置へマーカーが表示された初期画面が確認できます。

補足:実際の現在地を追跡するには
本サンプルでは説明を簡潔にするため、固定座標を「現在地」として扱っています。実際にデバイスの現在位置を継続的に追跡したい場合は、Google Play servicesが提供する FusedLocationProviderClient を併用し、requestLocationUpdates() で位置情報の更新を定期受信するのが一般的です。また、Android 6.0(API 23)以降では ACCESS_FINE_LOCATION の実行時パーミッション要求も必須となるため、こちらも忘れずに実装しておきましょう。
-
AndroidでClock APIクラスを使って現在のタイムゾーンを取得する方法
Androidアプリ開発において、java.time.Clockクラスを利用すると、端末に設定されている現在のタイムゾーンを簡単に取得できます。この記事では、Clock APIクラスを使って現在のタイムゾーンを表示するサンプルアプリの作成手順を、初心者の方にもわかりやすく解説します。なお、java.timeパッケージはAndroid 8.0(APIレベル26)以降で利用可能なため、コード内ではOSバージョンのチェックを行っています。ステップ1:新規プロジェクトの作成まず、Android Studioで新しいプロジェクトを作成します。メニューバーから[File] → [New Project]を
-
AndroidのLocation APIで現在地を追跡・表示する方法をステップごとに解説
概要この記事では、AndroidのLocation API(Google Maps SDK)を使って、現在地を取得し地図上に表示する方法を段階的に解説します。マーカーを立てて現在地を視覚的に確認できる、シンプルなサンプルアプリを一緒に作成していきましょう。ステップ1:新規プロジェクトの作成と依存関係の追加Android Studioを起動し、メニューから「File」→「New Project」を選択して新しいプロジェクトを作成します。必要な項目を入力してプロジェクトの雛形を生成してください。続いて、build.gradle(Module: app)に以下の依存関係を追加します。implemen