检测相机是否在移动,然后取消功能的调用

时间:2019-02-15 09:14:40

标签: api kotlin android-asynctask maps

对于我的地图,我正在调用一个向我返回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获取数据。

要做我想做的事我需要改变什么?找不到与此相关的正确主题...

0 个答案:

没有答案