【Android】「osmdroid」を使って地図にマーカーを追加する方法

昨日の記事の続きです。
前回は、「osmdroid」を使って Android アプリに OpenStreetMap を表示するまでを実装しましたので、今回はその地図上にマーカーを追加する方法です。
何故か公式のサンプルコードをそのままコピー&ペーストしてもエラーになってしまっていましたが、原因が分かったのでまとめ。

 

原因は build.gradle に追加した下記の記述でした。

dependencies {
    implementation 'org.osmdroid:osmdroid-android:6.1.0'
}

再確認したところ、バージョンが古かったので最新バージョンの 6.1.0 に直し、Sync Now を実行したところ、エラーが解消されました!
…はい、わかってしまえばとっても間抜けでした…。

ちなみに、マーカーを表示するときは下記のように記述します。

Marker marker = new Marker(mapView);
marker.setPosition(new GeoPoint([緯度], [経度]));
marker.setIcon(getResources().getDrawable([表示したい画像]));
mapView.getOverlays().add(marker);

なお、3行目のアイコン画像を指定しなくても問題ありません。
その場合は、デフォルトのアイコンが表示されます。

ちなみに、マーカーの数が多い時は、特定の範囲内に表示されるマーカーを一つにまとめてしまう方法もあります。
私は「osmbonuspack」というサードパーティーライブラリを使いました。
良ければこちらもご参考にしてください。

GitHub – MKergall/osmbonuspack: A third-party library of (very) useful additional objects for osmdroid
https://github.com/MKergall/osmbonuspack/wiki/Tutorial_3

 

以上、「osmdroid」を使って地図にマーカーを追加する方法でした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG