code_junkie

Using ItemizedOverlay and OverlayItem In Android Beta 0.9

Nov 10th, 2011
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. // Add the ItemizedOverlay to the Map
  2. private void addItemizedOverlay() {
  3. Resources r = getResources();
  4. MapView mapView = (MapView)findViewById(R.id.mymapview);
  5. List<Overlay> overlays = mapView.getOverlays();
  6.  
  7. MyItemizedOverlay markers = new MyItemizedOverlay(r.getDrawable(R.drawable.icon));
  8. overlays.add(markers);
  9.  
  10. OverlayItem oi = markers.getItem(0);
  11. markers.setFocus(oi);
  12. mapView.postInvalidate();
  13. }
  14.  
  15. public class MyItemizedOverlay extends ItemizedOverlay<OverlayItem> {
  16. public MyItemizedOverlay(Drawable defaultMarker) {
  17. super(defaultMarker);
  18. populate();
  19. }
  20.  
  21. @Override
  22. protected OverlayItem createItem(int index) {
  23. Double lat = (index+37.422006)*1E6;
  24. Double lng = -122.084095*1E6;
  25. GeoPoint point = new GeoPoint(lat.intValue(), lng.intValue());
  26.  
  27. OverlayItem oi = new OverlayItem(point, "Marker", "Marker Text");
  28. return oi;
  29. }
  30.  
  31. @Override
  32. public int size() {
  33. return 5;
  34. }
  35. }
  36.  
  37. Drawable defaultMarker = r.getDrawable(R.drawable.icon);
  38.  
  39. // You HAVE to specify the bounds! It seems like the markers are drawn
  40. // through Drawable.draw(Canvas) and therefore must have its bounds set
  41. // before drawing.
  42. defaultMarker.setBounds(0, 0, defaultMarker.getIntrinsicWidth(),
  43. defaultMarker.getIntrinsicHeight());
  44.  
  45. MyItemizedOverlay markers = new MyItemizedOverlay(defaultMarker);
  46. overlays.add(markers);
Add Comment
Please, Sign In to add comment