Thorsten
- Forum-Beiträge: 4
24.12.2012, 11:06:55 via Website
24.12.2012 11:06:55 via Website
Hallo!
Ich habe für meine App eine eigene MyMapView Klasse erstellt, die die standard MapView Klasse erweitert.
Das Layout meiner App ist hierbei folgendes LinearLayout (aus einer XML-Datei):
Jetzt habe ich meine MainActivity, die die MapActivity erweitert:
Innerhalb von MyMapView gibt es einen OnLongpressListener, der bei einem langen Druck auf eine Position in der Karte den dazu gehörenden GeoPoint zurück liefern soll. Dazu habe in der MyMapView Klasse im Listener folgendes stehen:
Mein Problem ist jetzt das die getProjection() Methode mir immer die Koordinaten relativ zum Bildschirmrand liefert und nicht relativ zur MapView. Dadurch stimmt der Geopoint natürlich nicht mehr. Ich habe auch ehrlich gesagt null Ahnung, wie ich innerhalb meines MainActivity Layouts das Offset der MapView zum Bildschirmrand herausfinden kann, damit ich in der MyMapView den X/Y-Werten einen Offset hinzufügen kann.
Hat jemand eine Idee?
Achja... schöne Weihnachtstage!!!
Ich habe für meine App eine eigene MyMapView Klasse erstellt, die die standard MapView Klasse erweitert.
Das Layout meiner App ist hierbei folgendes LinearLayout (aus einer XML-Datei):
1[ Buttons ]
2[ Text ]
3[ Buttons ]
4[ MapView]
2[ Text ]
3[ Buttons ]
4[ MapView]
Jetzt habe ich meine MainActivity, die die MapActivity erweitert:
1public class MainActivity extends MapActivity implements LocationListener {
2...
3private MyMapView mapView;
4...
5@Override
6public void onCreate(Bundle savedInstanceState) {
7....
8 mapView = (MyMapView) findViewById(R.id.mapview);
9 mapView.setBuiltInZoomControls(true);
10 mapView.setOnLongPressListener(this.mapLongpressListerner);
11....
12}
13}
2...
3private MyMapView mapView;
4...
5@Override
6public void onCreate(Bundle savedInstanceState) {
7....
8 mapView = (MyMapView) findViewById(R.id.mapview);
9 mapView.setBuiltInZoomControls(true);
10 mapView.setOnLongPressListener(this.mapLongpressListerner);
11....
12}
13}
Innerhalb von MyMapView gibt es einen OnLongpressListener, der bei einem langen Druck auf eine Position in der Karte den dazu gehörenden GeoPoint zurück liefern soll. Dazu habe in der MyMapView Klasse im Listener folgendes stehen:
1GeoPoint longpressLocation = getProjection().fromPixels((int) event.getX(), (int) event.getY());
Mein Problem ist jetzt das die getProjection() Methode mir immer die Koordinaten relativ zum Bildschirmrand liefert und nicht relativ zur MapView. Dadurch stimmt der Geopoint natürlich nicht mehr. Ich habe auch ehrlich gesagt null Ahnung, wie ich innerhalb meines MainActivity Layouts das Offset der MapView zum Bildschirmrand herausfinden kann, damit ich in der MyMapView den X/Y-Werten einen Offset hinzufügen kann.
Hat jemand eine Idee?
Achja... schöne Weihnachtstage!!!
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.