Google Maps Standorte "beschriften"

  • Antworten:2
Simon S
  • Forum-Beiträge: 13

14.11.2012, 00:46:08 via Website

Hi leute!
Ich habe in meiner App eine Googlemaps anbindung, in die Standorte verschiedener Betriebe markiert sind. Beim draufklicken auf einen Standort kommt man auf eine Infoseite des Betriebes (Email, Öffnungszeiten,...). Natürlich habe ich alles mit einer Datenbankverknüpft, beim draufklicken wird einfach die jeweilige ID übergeben.

Jetzt möchte ich aber folgendes einbauen: Wenn man auf das Standortsymbol klickt, sollte ein Label erscheinen, in dem der Name des Betriebs aufscheint, beim Klicken auf den Namen sollte man dann auf die Infoseite weitergeleitet werden.

Ich hoffe mir kann jemand helfen, finde einfach gar nichts zu dem Thema -.-

danke schonmal im Vorraus

Antworten
Stefan S.
  • Forum-Beiträge: 560

14.11.2012, 07:42:49 via Website

Du musst mit einem ItemizedOverlay arbeiten. In dieser Klasse das draw überschreiben. Im Draw kannst du Text und sonst was zu deinem Punkt hinzufügen.
Ich hab was ähnliches gemacht und folgenden Code verwendet

1@Override
2 public void draw(android.graphics.Canvas canvas, MapView mapView, boolean shadow)
3 {
4 int nTextSize = 16;
5 //cycle through all overlays
6 for (int index = 0; index < overLayList.size(); index++)
7 {
8 OverlayItem item = overLayList.get(index);
9
10 // Converts lat/lng-Point to coordinates on the screen
11 GeoPoint point = item.getPoint();
12 Point ptScreenCoord = new Point() ;
13 mapView.getProjection().toPixels(point, ptScreenCoord);
14
15 Paint strokePaint = new Paint();
16 strokePaint.setARGB(255, 0, 0, 0);
17 strokePaint.setTextAlign(Paint.Align.CENTER);
18 strokePaint.setTextSize(nTextSize);
19 strokePaint.setFakeBoldText(true);
20 strokePaint.setStyle(Paint.Style.FILL_AND_STROKE);
21 strokePaint.setStrokeWidth(2);
22 strokePaint.setARGB(190, 204, 204, 204);
23
24
25 //Paint
26 Paint paint = new Paint();
27 paint.setTextAlign(Paint.Align.CENTER);
28 paint.setTextSize(nTextSize);
29 //paint.setTypeface(Typeface.DEFAULT_BOLD);
30 paint.setFakeBoldText(true);
31 paint.setARGB(190, 0, 0, 0); // alpha, r, g, b (Black, semi see-through)
32
33 //show text to the right of the icon
34 canvas.drawRect(ptScreenCoord.x + (strokePaint.measureText(item.getTitle())/2)+2,ptScreenCoord.y +2 ,ptScreenCoord.x - (strokePaint.measureText(item.getTitle())/2) -2, ptScreenCoord.y + nTextSize +2 , strokePaint );
35 canvas.drawText(item.getTitle(), ptScreenCoord.x, ptScreenCoord.y+nTextSize, paint);
36
37
38 super.draw(canvas, mapView, shadow);
39 }
40 }

Ich lese aus einem Cursor alle meine Standpunkte aus und schreibe darunter, wie weit sie von meiner Position entfernt sind.

Beim onTap könntest Du dann das Label anzeigen und einen onClick verknüpfen.

Simon S

Antworten
Simon S
  • Forum-Beiträge: 13

17.11.2012, 14:40:29 via Website

vielen dank!

Antworten