【发布时间】:2014-02-13 17:39:26
【问题描述】:
我制作在线地图并尝试添加可触摸的路径/轨迹(当用户触摸它们时我会改变它们的颜色)。在一张地图上,我有 6-7 个 PathOverlays,并添加了 onDown 事件处理:
private class PathOverlayExtended extends PathOverlay
{
public PathOverlayExtended(int color, Context ctx, long trackId, HistoryDetailFragment currentFragment) {
super(color, ctx);
trackIndex = trackId;
fragment = currentFragment;
}
private long trackIndex;
private HistoryDetailFragment fragment;
@Override
public boolean onDown(final MotionEvent event, final MapView mapView) {
fragment.onRoadClicked(trackIndex);
return super.onDown(event,mapView);
}
}
然后我触摸屏幕上的一条路径,它会捕获事件并继续遍历每条路径。重要提示:它总是从相同的路径开始(最后添加到 Olerlays 的路径)。
当我将“return super.onDown(event,mapView)”替换为“return true”时,只有最后一条路径会捕获事件,这不是我触摸的那个(而是最后添加到叠加层的那个) .
如何检查/区分我触摸了哪条路径?
【问题讨论】:
-
您必须对其进行编码......它希望通过魔法发生。如果您的路径中有很多点,只需将位置与屏幕位置进行比较,然后测试距离是否足够近。如果你有很长的路径段,那就更难了,因为你必须检查每条线段到点的距离。
标签: android dictionary touch overlay osmdroid