安卓这里地图在地图上定居听众



我需要在地图"稳定"时运行反向地理编码请求。我能找到的最接近的东西是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。 即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);
}
}
});

相关内容

最新更新