今回は、Mapboxを使って、Androidアプリで地図を表示する方法について。
導入は簡単でしたので、今回はそれプラス、地図にマップピンを立てたいと思います。
導入は本家サイトをご参考ください。
なお、マップの表示にはアクセストークンが必要なため、ユーザー登録を行ってください。
Install Maps SDK for android|Mapbox
https://www.mapbox.com/install/android/
上記で紹介している手順通りにSDKの導入やPermissionの設定、MapViewの指定を行えば、問題なく地図が表示できるはずです。
で、地図が表示されたら、いよいよマップピン表示!
コードは下記のとおりです。
重複している箇所があるので、必要なところのみコピー&ペーストしてください。
private MapView mapView; private MapboxMap mapboxMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Mapbox.getInstance(this, "[access_token]"); setContentView(R.layout.activity_map); mapView = findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(this); Double lng = [緯度]; Double lat = [経度]; mapView.getMapAsync(mapboxMap -> mapboxMap.addMarker(new MarkerOptions() .position(new LatLng(lat, lng)) .title("写真を撮影した場所"))); }
こちらを実行すると、下の写真のようにマップピンが地図上に表示されます。
会社で撮影した写真の位置情報を使用したので、若干の誤差はあれど、ほぼあっていますね!
以上、地図上にピンを立てる方法でした。
しかしこれだけだと、マップの中心位置≠マップピンが立っている場所、なので、マップの中心位置やピンの場所によっては、地図をかなりスワイプしたりドラッグする必要がある場合があります。
次回は、こちらを解消すべく、地図の中心位置をコード上で操作する方法についてご紹介できればと思います。