昨日の予告通り、今回はMapboxの地図の中心位置を変更する方法についてです。
前回の記事については、下記から確認頂けます。
【Android】Mapboxを使って地図上にピンを立てる方法
https://cpoint-lab.co.jp/article/201810/【android】mapboxを使って地図上にピンを立てる方法/
では早速実装方法について。
なお、今回のコードは Mapbox が導入済みであることを前提に進めています。
まず onCreate() 内に、下記のコードを追加します。
mapView.getMapAsync(this);
ちなみに、この時、Android Studioでは、this の部分がエラーになり、赤い波下線が引かれますので、そこにカーソルを合わせて Alt + Enter を押します。
表示される対処法の項目中に、OnMapReadyCallback を implements するというような内容の候補があるので、こちらを選択します。
すると、onMapReady() という関数がオーバーライドされるので、その中に下記のコードを追加します。
@Override public void onMapReady(MapboxMap mapboxMap) { CameraPosition position = new CameraPosition.Builder() .target(new LatLng(lat, lng)) // Sets the new camera position .zoom(11) // Sets the zoom to level 10 .tilt(0) // Set the camera tilt to 0 degrees .build(); // Builds the CameraPosition object from the builder mapboxMap.animateCamera(CameraUpdateFactory.newCameraPosition(position), 1000); }
ズームレベルや、傾きなどは適宜変更してください。
こちらを実行すると、起動後、カメラの位置が上記で指定した位置が中心になるように移動します。
処理としては以上で完了です。
意外と回りくどい方法だな…と思うのは私だけでしょうか…?
レイアウトファイルのXMLでは、地図の初期位置を簡単に指定できるので、コード上でも簡単にできてほしいですね。
ですが、意図していたことは実現できたので問題なし!
もし、同じことに取り組んでいる方は、参考にしていただければと思います。