Android HERE maps on map settled listener

Android HERE maps on map settled listener

当地图有 "settled" 时,我需要 运行 反向地理编码请求。我能找到的最接近的东西是 TransformListener:

mMap.addTransformListener(new Map.OnTransformListener() {
        @Override
        public void onMapTransformStart() {

        }

        @Override
        public void onMapTransformEnd(MapState mapState) {


        }
    });

问题是在拖动地图时 onMapTransformEnd 会触发多次。还尝试向地图视图添加手势侦听器,但这似乎也没有在适当的时间回调,因为直到用户再次触摸才调用 onPanEnd()。

mMapView.getMapGesture().addOnGestureListener(new MapGesture.OnGestureListener() {
        @Override
        public void onPanStart() {

        }

        @Override
        public void onPanEnd() {

        }

是否有地图移动完成和结算时的回调?

非常快速的回答,但如果它是您担心的具体拖动,为什么不将您自己的滞后添加到 OnTransformListener。 IE。 onMapTransformEnd 回调和执行代码之间的一小段等待时间。它将在另一个 onMapTransformStart 回调时被取消。

Map 结算后的一般回调实际上是 onMapTransformEnd

由于 api 没有提供稳定的听众,最终使用了延迟:

mMap.addTransformListener(new Map.OnTransformListener() {
            @Override
            public void onMapTransformStart() {}

            @Override
            public void onMapTransformEnd(MapState mapState) {
                // This works but is not optimal. I'd rather not wait a whole second before sending
                // the geocoder request, but a half second is too fast to send only one request.
                if(!mRunning) {
                    mRunning = true;
                    mSettledHandler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            updatePickupViewOnMapSettled();
                            mRunning = false;
                        }
                    }, 1000);
                }
            }
        });