kotlin Повторно центрируйте Google Map, если пользователь переместился более чем на 5 метров. - PullRequest
0 голосов
/ 14 апреля 2020

Я новичок в FusedLocationProviderClient API. У меня есть карта Google с включенным местоположением. Маркер отображается на карте, а карта увеличивается до местоположения onCreate. Если пользователь перемещается, маркер перемещается, а карта - нет.

Я хочу, чтобы карта перецентрировалась, если пользователь сдвинулся на 5 метров. Я предполагаю, что это делается с помощью обновлений местоположения, но я могу видеть только временные интервалы, а не расстояние.

Вот мой код:

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main_navigation_home)

    val mapFragment = supportFragmentManager
        .findFragmentById(R.id.map) as SupportMapFragment
    mapFragment.getMapAsync(this)
    fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this)
    fusedLocationProviderClient.lastLocation.addOnSuccessListener (this){location ->
        getLocation(location)
    }
}

override fun onMapReady(googleMap: GoogleMap) {
    map = googleMap
    //function for permissions
    setupMap()
}

fun getLocation(location: Location){
    map.isMyLocationEnabled = true
    if (location != null){
        lastLocation = location
        val currentLatLon = LatLng(lastLocation.latitude, lastLocation.longitude)
        map.animateCamera(CameraUpdateFactory.newLatLngZoom(currentLatLon, 12f))
    }
}

Я ценю любую помощь.

...