Vra

Het iemand dit reggekry om ItemizedOverlays gebruik in Android Beta 0.9? Ek kan nie kry om dit te werk, maar ek is nie seker of ek iets gedoen het verkeerd of as hierdie funksie is nog nie beskikbaar nie.

Ek het al probeer om die ItemizedOverlay en OverlayItem klasse gebruik. Die beoogde doel is om kaart merkers te boots (soos gesien in Google Maps mash-ups), maar ek het probleme om hulle op die kaart te vertoon.

Ek kan my eie persoonlike overlays voeg met behulp van 'n soortgelyke tegniek, dit is net die ItemizedOverlays wat nie werk nie.

As ek my eie ItemizedOverlay (en geïgnoreer createItem) geïmplementeer word, die skep van 'n nuwe geval van my klas lyk (Ek kan OverlayItems daaruit te onttrek) om te werk maar voeg dit om 'n kaart se Overlay lys maak dit nie verskyn as dit moet.

Dit is die kode wat ek gebruik om die ItemizedOverlay klas by te voeg as 'n Overlay op my MapView.

// Add the ItemizedOverlay to the Map
private void addItemizedOverlay() {
  Resources r = getResources();
  MapView mapView = (MapView)findViewById(R.id.mymapview);
  List<Overlay> overlays = mapView.getOverlays();

  MyItemizedOverlay markers = new MyItemizedOverlay(r.getDrawable(R.drawable.icon));
  overlays.add(markers);

  OverlayItem oi = markers.getItem(0);
  markers.setFocus(oi);
  mapView.postInvalidate();
}

Waar MyItemizedOverlay word gedefinieer as:

public class MyItemizedOverlay extends ItemizedOverlay<OverlayItem> {
  public MyItemizedOverlay(Drawable defaultMarker) {
    super(defaultMarker);
    populate();
  }

  @Override
  protected OverlayItem createItem(int index) {
    Double lat = (index+37.422006)*1E6;
    Double lng = -122.084095*1E6;
    GeoPoint point = new GeoPoint(lat.intValue(), lng.intValue());

    OverlayItem oi = new OverlayItem(point, "Marker", "Marker Text");
    return oi;
  }

  @Override
  public int size() {
    return 5;
  } 
}
Was dit nuttig?

Oplossing

Ter wille van volledigheid Ek sal die bespreking op Reto se post herhaal oor by die Android Groepe hier .

Dit blyk dat as jy die grense van jou tekenbaar stel dit doen die truuk:

Drawable defaultMarker = r.getDrawable(R.drawable.icon);

// You HAVE to specify the bounds! It seems like the markers are drawn
// through Drawable.draw(Canvas) and therefore must have its bounds set
// before drawing.
defaultMarker.setBounds(0, 0, defaultMarker.getIntrinsicWidth(),
    defaultMarker.getIntrinsicHeight());

MyItemizedOverlay markers = new MyItemizedOverlay(defaultMarker);
overlays.add(markers);

By the way, die bogenoemde is skaamteloos geruk uit die demo by MarcelP.info . Ook hier is 'n goeie howto .

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top