Я пытаюсь реализовать функцию, где, если вы перетаскиваете карту, она пытается сопоставить ее с ранее определенными точками. В моем приемнике Touch я пытаюсь сравнить с точками LatLng. Однако ни один из моих журналов не печатает, что есть совпадение. Вы можете не сравнить значения в ACTION_MOVE
Соответствующие точки 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;
}
Итак, добавьте onClick в оператор switch? –
Добавьте его параллельно с OnTouch, поэтому он должен находиться под вашей функцией OnTouch. По какой-то причине это необходимо, когда вы пытаетесь поймать событие ACTION_MOVE. –