はじめに
今回はタイトルにもある通り、GoogleMapを使った時に自分の向いている向きを示す方法を記事にします。
GoogleMapの機能を使用して簡単に実装できそうなものですが、調べて見てもなかなか出てこなかったので記事に残して今後すぐに思い出せるようにしておこうと思います。
実践
以前記事にした
と、下の参考記事にあるGoogleMapのマーカーをアレンジする方法を併せて実装していきます。
private var myDirectionMarker :Marker? = null
override fun onSensorChanged(event: SensorEvent) {
val azimuth = event.values[0] // 方位
if (event.sensor.type == Sensor.TYPE_ORIENTATION) {
if (myDirectionMarker == null) {
// 初めての場合はaddMarkerでマーカーを表示する
myDirectionMarker = googleMap.addMarker(
MarkerOptions()
.position()// 自分の位置など表示させたい場所を引数に指定する。
.icon(
BitmapDescriptorFactory.fromResource() // 矢印などの画像を引数に指定する。
)
.rotation(azimuth) // マーカーの角度を指定する ここではセンサーで取得した方位を指定。
)
} else {
// 初めてじゃないならマーカーの角度と位置の更新
myDirectionMarker?.rotation = azimuth
myDirectionMarker?.position = location //自分の位置のlocation
}
}
}
参考