Как преобразовать GeoPoint в аппаратную точку экрана
Я хотел бы преобразовать GeoPoint в точку экрана, чтобы идентифицировать все объекты, которые находятся над событием касания. Итак, я попробовал это:
Projection projection = this.mapView.getProjection();
GeoPoint gie = new GeoPoint(lat, lon);
Point po = new Point();
projection.toPixels(gie, po);
Но po.x и po.y - это не координаты экрана, а координаты вида карты в пикселях, а не в широте и долготе.
С сайта разработчика Android:
toPixels(GeoPoint in, android.graphics.Point out) Converts the given GeoPoint to onscreen pixel coordinates, relative to the top-left of the MapView that provided this Projection.
Итак, возможно ли преобразовать его в правильные координаты экрана?
Я хочу знать всеx GeoPoint, которые находятся рядом с+ событие touch, как в примере выше:
----------------------------------------------------------------
(0,0) -----------> x |
| |
| |
| | <-- My screen
| + (touch event) |
\/ x (my GeoPoint) |
y |
|
----------------------------------------------------------------
Я получаю событие касания так:
@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();
Здесь, в этом коде, x и y - реальные координаты экрана (аппаратные, а не карты)
Я знаю, что я также могу конвертировать x, y экранные координаты в GeoPoint, чтобы сравнить их с моей GeoPoint, но из-за уровня масштабирования я не могу получить то, что хочу.