Определите, движется ли камера, затем отмените вызов функции - PullRequest
0 голосов
/ 15 февраля 2019

Для моих карт я вызываю функцию API, которая возвращает мне данные JSON.

Эта функция вызывает API каждый раз, когда камера перестает двигаться (поэтому я реализую OnCameraIdleListener)

Что я хочу, это:

1) Когда пользователь прекращает перемещениекамера, она вызывает API.

НО

2) Если камера движется сразу после этого, прекратите вызывать первый вызов API (чтобы избежать вызова большого количества API).

Вот мой код:

    class MyMap: Fragment(), OnMapReadyCallback, GoogleMap.OnCameraIdleListener, GoogleMap.OnCameraMoveListener{
    ...
    override fun onCameraIdle() {
        val coords = mMap.cameraPosition.target
        getStops(coords)
    }
    ... 
    private fun getStops(coordonnees : LatLng) {
//        Log.i(TAG, "$coordonnees")
        var url = Constants.url
        val longitude = coordonnees.longitude
        val latitude = coordonnees.latitude
        if(longitude != 0.0 && latitude != 0.0){
            val resultActus = Fuel.get(url).responseJson { request, response, result ->
                result.fold({
                    json ->
                    parseStops(json.content) //this is my function to display marker and info window
                }, {
                    err ->
                    Log.i("error", err.toString())

                })
            }
        }

    }
}

Как видите, я использую Fuel go, чтобы получить свои данные из API.

Что мне нужно изменить, чтобы сделать то, что я хочу?Не могу найти нужную тему по этому поводу ...

...