在ACTION_MOVE时匹配LatLng点

时间:2016-03-09 00:31:28

标签: android google-maps

我正在尝试实现一项功能,如果您沿地图拖动它会尝试将其与之前定义的点匹配。在我的Touch Listener中,我试图与LatLng点进行比较。但是,我的日志都没有打印出匹配的内容。你能不能比较ACTION_MOVE

中的值
 @Override
 public boolean onTouch(View v, MotionEvent event) {
      float x = event.getX();
      float y = event.getY();

      Point x_y_points = new Point(Math.round(x), Math.round(y));

      LatLng dragPoint = map.getProjection().fromScreenLocation(x_y_points);

      int eventaction = event.getAction();

      switch (eventaction) {
           case MotionEvent.ACTION_MOVE:
                    for (int i = 0; i < markers.size(); ++i) {
                        LatLng temp = markers.get(i).getPosition();

                        if (dragPoint.latitude == temp.latitude && temp.longitude == dragPoint.longitude) {
                            Toast.makeText(getApplicationContext(), "Match", Toast.LENGTH_SHORT).show();
                        }

                        Log.d("Point: ", temp.toString());

                        if (dragPoint == markers.get(i).getPosition()) {
                            Log.d("Match: ", "Yes");
                        }
                    }

                    break;
             }

      return true;
}

1 个答案:

答案 0 :(得分:0)

尝试设置onClickListener以及触控侦听器。它不必在其中完成任何处理,但由于某种原因,ACTION_MOVE事件只会在您覆盖onClick函数时触发。

@Override
public void onClick(View v) { }

让我知道这是否适合您!