MapView - Berührten standort ermitteln?

  • Antworten:4
ExKcir
  • Forum-Beiträge: 115

10.10.2012, 20:31:23 via Website

hallo,
ich habe gestern nach einer kurzen pause wieder mal an meiner neusten App gearbeitet und bin dabei auch schon auf ein Problem gestoßen:
Ich will die Location ermitteln die Berührt wurde (auf einer MapView).
Ich habe folgendes Beispiel gefunden, jedoch habe ich es nicht geschaft es zum laufen zu bringen:

1class MapOverlay extends com.google.android.maps.Overlay
2 {
3 @Override
4 public boolean draw(Canvas canvas, MapView mapView,
5 boolean shadow, long when)
6 {
7 //...
8 }
9
10 @Override
11 public boolean onTouchEvent(MotionEvent event, MapView mapView)
12 {
13 //---when user lifts his finger---
14 if (event.getAction() == 1) {
15 GeoPoint p = mapView.getProjection().fromPixels(
16 (int) event.getX(),
17 (int) event.getY());
18 Toast.makeText(getBaseContext(),
19 p.getLatitudeE6() / 1E6 + "," +
20 p.getLongitudeE6() /1E6 ,
21 Toast.LENGTH_SHORT).show();
22 }
23 return false;
24 }
25 }

Die App stürtzt nicht ab und es gibt auch keine Fehlermeldung, jedoch bekomme ich auch keine Meldung mit der Location.


Ich vermute das Problem ist das mir (wie ich leider gestehen muss) teilweise noch einige Grundkentnisse fehlen in Java und ich wahrscheinlich zeitweise einfach nur scheiße code...

Das oben genannte beispiel müsste ich eigentlich eh nur in meine haupt Activity einbauen dann müsste das doch eigentlich schon funktionieren oder?
Oder muss ich für den genannten Code eine neue Activity erstellen und aufrufen?

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

10.10.2012, 20:54:52 via Website

* Du benötigst eine MapActivity.

* uses-library android:name="com.google.android.maps" im Manifest nicht vergessen.

* Der MapActivity fügst Du eine Instanz des Overlays per add hinzu.

* Für die 1 gibt es eine sinnvolle Bezeichnung: MotionEvent.ACTION_UP

— geändert am 10.10.2012, 20:56:22

Antworten
ExKcir
  • Forum-Beiträge: 115

10.10.2012, 21:12:22 via Website

Harald Wilhelm
* Du benötigst eine MapActivity.

* uses-library android:name="com.google.android.maps" im Manifest nicht vergessen.

* Der MapActivity fügst Du eine Instanz des Overlays per add hinzu.

* Für die 1 gibt es eine sinnvolle Bezeichnung: MotionEvent.ACTION_UP
Die ersten 2 punkte habe ich bereits.

Zum 3ten: Was ist nochmal eine Instanz?

Zu 4: Meinst du ich soll das 1 durch MotionEvent.ACTION_UP ersetzen oder was meintest du damit genau?

Ps: Danke für die schnelle Antwort .)

Antworten
ExKcir
  • Forum-Beiträge: 115

11.10.2012, 19:15:28 via Website

Felice M.
Guck mal hier, da wird (meiner Meinung nach) ganz gut erklärt, wie man Google Maps nutzt:
http://www.youtube.com/watch?v=lywa-2-lQCg&feature=edu&list=PL2F07DBCDCC01493A
2-3 Videos weiter erstellt er auch ein Overlay ;-)

Danke, das Video hat mir sehr weitergeholfen.
Dadurch habe ich auch die erste Antwort verstanden und das Problem lösen können.

Vielen dank für die Hilfe

Antworten