AndroidのLocation APIで現在地を追跡・表示する方法をステップごとに解説
概要
この記事では、AndroidのLocation API(Google Maps SDK)を使って、現在地を取得し地図上に表示する方法を段階的に解説します。マーカーを立てて現在地を視覚的に確認できる、シンプルなサンプルアプリを一緒に作成していきましょう。
ステップ1:新規プロジェクトの作成と依存関係の追加
Android Studioを起動し、メニューから「File」→「New Project」を選択して新しいプロジェクトを作成します。必要な項目を入力してプロジェクトの雛形を生成してください。
続いて、build.gradle(Module: app)に以下の依存関係を追加します。
implementation 'com.google.android.gms:play-services-maps:17.0.0'
ステップ2:レイアウトファイル(activity_main.xml)の編集
res/layout/activity_main.xmlに以下のコードを記述します。Googleマップを表示するためのSupportMapFragmentを画面全体に配置しています。
<?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:MainActivity.javaの実装
src/MainActivity.javaに以下のコードを追加します。onMapReady()コールバック内でマップを初期化し、指定した緯度経度(サンプルではチェンナイの座標 13.0827, 80.2707)にマーカーを配置して、カメラをその位置へ移動させています。実際の現在地を反映させたい場合は、この座標をFusedLocationProviderClientなどで取得した位置情報に置き換えてください。
import androidx.fragment.app.FragmentActivity;
import android.os.Bundle;
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;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng myCurrentLocation = new LatLng(13.0827, 80.2707);
mMap.addMarker(new MarkerOptions().position(myCurrentLocation).title("This is My current Location"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(myCurrentLocation));
}
}ステップ4:strings.xmlへのAPIキーの登録
res/strings.xmlを開き、以下のようにGoogle Maps APIキーを追加します。「google_maps_key」の値は、Google Cloud Consoleで発行したご自身のAPIキーに置き換えてください。
<resources> <string name="app_name">Sample</string> <string name="title_activity_maps">Map</string> <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">AIzaSyC19gZFIlF5OVySzG9iMAeDFzOmUuCHZ5Q</string> </resources>
ステップ5:AndroidManifest.xmlの設定
最後に、androidManifest.xmlに以下のコードを追加します。ポイントは、MapsActivityの宣言、APIキーをシステムに渡すmeta-dataタグ、そして位置情報取得に必須となるACCESS_FINE_LOCATIONパーミッションの3点です。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample"> <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=".MapsActivity" android:label="@string/title_activity_maps"> <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="@string/google_maps_key" /> </application> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> </manifest>
アプリの実行と動作確認
それではアプリを実行してみましょう。実機のAndroidスマートフォンをPCに接続していることを前提とします。Android Studioでプロジェクト内のアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックしてください。デバイス選択画面で接続したスマートフォンを選ぶと、端末上でアプリが起動し、以下のように現在地のマーカーが表示されたマップ画面を確認できます。

-
【保存版】「探す(Find My)」アプリでiPhoneを保護・追跡する完全ガイド
多くのiPhoneユーザーにとって最悪のシナリオは、デバイスを紛失してしまうことです。そうなると、写真、連絡先、アプリ、あらゆるデータが一緒に失われてしまいます。幸い、Appleが提供する「探す(Find My)」アプリには新機能が搭載されており、紛失したiPhoneを見つけ出すのに役立ちます。iOS 15で「iPhoneを探す」を設定する方法iPhoneを使い始めたばかりの方や、「探す」アプリをまだ設定したことがない方は、少し混乱するかもしれません。かつては「iPhoneを探す」というアプリ名でしたが、現在は単に「探す」という名前に統合されています。ただし、iPhone上の設定項目としては「
-
Androidの位置情報を偽装する方法|開発者向けオプションの設定からおすすめアプリまで徹底解説
位置情報を活用したアプリを開発しているAndroidデベロッパーなら、機能が正しく動作するかを確認するために、スマートフォンの位置情報を偽装(スプーフィング)する必要があるかもしれません。実は、開発者でなくてもこの機能は簡単に利用できます(Androidの場合。iPhoneはやや手間がかかります)。これにより、地理的制限(ジオブロック)の回避、アプリのテスト、友人へのいたずら、監視の回避など、さまざまな可能性が広がります。サハラ砂漠を歩いていることにしたり、カナダ・マニトバ州でヘラジカと駆け抜けたり、タイタニック号に潜ったり……実際には移動していなくても、周囲にはそう「見せる」ことができるので