对于我的地图,我正在调用一个向我返回json数据的api函数。
每次相机停止移动时,此函数都会调用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来从API获取数据。
要做我想做的事我需要改变什么?找不到与此相关的正确主题...