LoginSignup
1
4

More than 5 years have passed since last update.

[osmdroid を使って Android の OpenStreetMap 地図に 吹き出し付きのマーカーを表示する

Last updated at Posted at 2019-03-03

osmdroid を使って OpenStreetMap を Android に表示する
の続きです

osmdroid のマーカー 

osmdroid のマーカーは2つある。

  • ItemizedIconOverlay クラス

古いやり方

  • Marker クラス

Google Maps API に合わせてある新しいやり方

ItemizedIconOverlay の使い方は、下記を参考に。

osmdroid を使って Android の OpenStreetMap 地図に マーカーを表示する

Marker クラス

ソースコードのコメントが一番詳しい説明だったので、
要約を載せておく。

GoogleMaps Android API v2 にできる限り似せている。
主な違い

  • Z-Indexには対応していない。出現順に描画される。
  • アイコンは、Android Drawable が指定できる。
  • 吹き出しは、Android Viewを使用できる。
  • 吹き出しの説明の下に、小さいテキストフォントで表示される追加の説明(sub-description)を表示できる。
  • 吹き出し(InfoWindow)に画像を表示できる。
  • 表示する/しないが設定できる。
  • マーカーにタッチしたときは、地図の中央に配置する。
  • 吹き出しを開くと、他の吹き出しを自動的に閉じる。
  • マーカーごとにイベントリスナーを設定できる。

使い方

// 基本
        Marker marker = new Marker( mMapView );
        marker.setPosition( new GeoPoint(緯度, 経度 ) );
        marker.setTitle ( タイトル );
        marker.setSnippet( 説明 );
        mMapView.getOverlays().add(marker);

    // アイコンを変更する
    Drawable icon = getResources().getDrawable(R.drawable.marker);
    marker.setIcon(icon);

    // 吹き出しに画像を表示する
    Drawable image = getResources().getDrawable(R.drawable.image );
    marker_1.setImage ( image );

    // クリックリスナーを設定する
    marker.setOnMarkerClickListener( new Marker.OnMarkerClickListener() {
        public boolean onMarkerClick(Marker marker, MapView mapView) {
           // クリックした時の処理
            return true;
        }
    });

スクリーンショット

吹き出しを表示する
8_info.png

吹き出しに画像を表示する
8_image.png

github にサンプロコードを公開した

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4