Есть ли способ установить направление гугл карт по акселерометру? - PullRequest
0 голосов
/ 12 марта 2019

Я хотел бы знать, есть ли способ использования акселерометра устройства Android для установки направления отображаемых карт Google?

Вот как я могу получить ссылку на акселерометр:

val sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
val sensorAccelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
if (sensorAccelerometer != null) sensorManager.registerListener(this, sensorAccelerometer, SensorManager.SENSOR_DELAY_NORMAL)


override fun onSensorChanged(event: SensorEvent?) {
    if (event?.sensor?.type == Sensor.TYPE_ACCELEROMETER){
        Log.d(TAG, "onSensorChanger ACCELEROMETER")
        val accelX = event.values[0]
        val accelY = event.values[1]
        val accelZ = event.values[2]

        textViewAdView.text = "aX=${accelX.toString()}\r\naY=${accelY.toString()}\r\naZ=${accelZ.toString()}"
     }
}

Спасибо!

Ответы [ 2 ]

1 голос
/ 12 марта 2019

Вы можете просто показать текущее местоположение пользователя и направление движения, используя googleMap.setMyLocationEnabled (true);

Но если вы хотите повернуть всю карту, вы можете использовать updateCameraBearing():

https://stackoverflow.com/a/37486292/7434090

0 голосов
/ 12 марта 2019

Я уже использую эту функцию со следующим кодом Kotlin:

override fun onMapReady(googleMap: GoogleMap) {

    mMap = googleMap
    mMap.uiSettings.isCompassEnabled = true
    mMap.uiSettings.isMapToolbarEnabled = true
    mMap.uiSettings.isMyLocationButtonEnabled = true
    try {
        mMap.isMyLocationEnabled = true
    }catch (e: SecurityException) {
    }

}

Я проверю материал подшипников, спасибо

Я попробую это когда на улице:

При получении нового местоположения от клиента fusedLocation:

fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
...
updateCamera(location.bearing)
....
private fun updateCamera(bearing : Float) {
    val oldPos = mMap.getCameraPosition()
    val pos = CameraPosition.builder(oldPos).bearing(bearing).build()
    mMap.animateCamera(CameraUpdateFactory.newCameraPosition(pos))

    textViewAdView.text = "Bearing=$bearing"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...