CustomView in MapView darstellen

N

Neeldarax

Fortgeschrittenes Mitglied
32
Hallo zusammen,

ich versuch mich gerade mit Obtaining User Location | Android Developers.

Mein Problem ist, dass ich ein custom View in die Map einbauen will, so wie es zB Latidute macht:
82at75zm.png


Da seht ihr ein Foto von meiner Tastatur in einer Art Sprechblase auf ein GeoPoint ausgerichtet.
Kann mir wer verraten nach was ich Suchen muss, um sowas zu verwirklichen?

Ich nutze derzeit com.google.android.maps.Overlay um Drawables bzw. Bitmaps auf die Karte zu bringen.

regards
 
Hallo,

ich versuche mal zu beschreiben, wie ich das gemacht habe.

Code:
public class LocationMapView extends MapView {
           [...]
    public void setLocationMarker(GeoPoint point) {
            this.getOverlays().clear();
            OverlayItem overlayitem = new OverlayItem(point, "It's me", "I'm Here!");
            Drawable drawable = this.getResources().getDrawable(R.drawable.marker);
            locOverlay = new LocationOverlay(drawable, this.getContext());
            locOverlay.addOverlay(overlayitem);
            this.getOverlays().add(locOverlay);
            this.getController().animateTo(point);
            this.getController().setCenter(point);
    }
}
Code:
public class LocationOverlay extends ItemizedOverlay {
    private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
    private Context mContext;
    
    public LocationOverlay(Drawable defaultMarker, Context context) {
        super(boundCenterBottom(defaultMarker));
        mContext = context;
    }

    @Override
    protected boolean onTap(int index) {
        OverlayItem item = mOverlays.get(index);
        AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
        dialog.setTitle(item.getTitle());
        dialog.setMessage(item.getSnippet());
        dialog.show();
        return true;
    }

    @Override
    protected OverlayItem createItem(int idx) {
        return mOverlays.get(idx);
    }

    @Override
    public int size() {
        return mOverlays.size();
    }

    public void addOverlay(OverlayItem overlay) {
        mOverlays.add(overlay);
        populate();
    }
}
 

Ähnliche Themen

D
Antworten
23
Aufrufe
2.497
Data2006
D
OnkelLon
Antworten
13
Aufrufe
1.972
OnkelLon
OnkelLon
S
Antworten
9
Aufrufe
1.188
swa00
swa00
Zurück
Oben Unten