はじめに
今回はタイトルにもある通り、Androidアプリ内で使われるGoogleMapで表示されるマーカーを画面内に全て押されたい!と思い調べたところ、ちょうど良いkotlinの記事が見つからなかったので、自分で記事にしようと思いました。
マーカーの全体表示
マーカーのリストを作り、リストに現在設定されているマーカーを入れます
private val markerList: ArrayList? = null
private fun googleMapMarkerCreate(location: LatLng) {
val marker = googleMap.addMarker(
MarkerOptions().position(location)
)
markerList.add(marker)
}
あとはマーカーの全体表示をしたいタイミングで下のコードを入れます。
CameraUpdateFactory.newLatLngBoundsの第二引数の数字はマーカーの全体表示をする際のpaddingを指定します。
個人的にマーカーが複数ある場合は300くらいがちょうどいいかなと思います。
(これより小さい数字だとマーカーと画面の外側が近すぎてマーカーが見にくくなってしまうなと思いました。)
val builder = LatLngBounds.Builder()
for (marker in markerList) {
builder.include(marker.position)
}
googleMap.animateCamera(
CameraUpdateFactory.newLatLngBounds(
builder.build(), 300
)
)
参考