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);
}
}
});
当地图有 "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);
}
}
});