Jak przekonwertować GeoPoint na punkt ekranu Sprzęt
Chciałbym przekonwertować GeoPoint na punkt ekranu, aby zidentyfikować wszystkie obiekty, które znajdują się powyżej zdarzenia dotykowego. Próbowałem tego:
Projection projection = this.mapView.getProjection();
GeoPoint gie = new GeoPoint(lat, lon);
Point po = new Point();
projection.toPixels(gie, po);
Ale po.x i po.y nie są ekranami, lecz mapviewami w pikselach zamiast lat, lon.
Na stronie programisty Androida:
toPixels (GeoPoint in, android.graphics.Point out) Konwertuje podany GeoPoint na ekranowe współrzędne pikseli, w stosunku do lewego górnego rogu MapView, który zawierał tę Projekcję.
Czy jest więc możliwe przekonwertowanie go na poprawne kable ekranowe?
Chcę wiedzieć wszystkox GeoPoint, które są obok+ dotknij zdarzenia jak w powyższym przykładzie:
----------------------------------------------------------------
(0,0) -----------> x |
| |
| |
| | <-- My screen
| + (touch event) |
\/ x (my GeoPoint) |
y |
|
----------------------------------------------------------------
Dostaję takie zdarzenie dotykowe:
@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();
Tutaj, w tym kodzie, x i y są prawdziwymi kordami ekranowymi (sprzętowymi, a nie mapowymi)
Wiem, że mogę również przekonwertować współrzędne ekranu x, y w GeoPoint, aby porównać je z moim GeoPoint, ale z powodu poziomu powiększenia nie mogę uzyskać tego, co chcę.