Для моих карт я вызываю функцию 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.
Что мне нужно изменить, чтобы сделать то, что я хочу?Не могу найти нужную тему по этому поводу ...