code: public void accept(PainterVisitor visitor, Object group, Bbox bounds, boolean recursive) {
  		map.getVectorContext().drawGroup(group, this);
  
  		// Draw a dummy at 0,0 so that Internet Explorer knows where coordinate 0,0 is. If this is not drawn, the text
  		// will disappear, because the parent group will have coordinate 0,0 at the upper left corner of the union of
  		// all the rectangles that are drawn here.
  		map.getVectorContext().drawRectangle(this, dummy.getId(), dummy.getBounds(), dummy.getStyle());
  
  		image.getBounds().setX(getUpperLeftCorner().getX());
  		image.getBounds().setY(getUpperLeftCorner().getY());
  
  		map.getVectorContext().drawRectangle(this, getId() + "-bg", image.getBounds(),
  				new ShapeStyle("#FFFFFF", 0.6f, "#FFFFFF", 0, 0));
  		map.getVectorContext().drawImage(this, image.getId(), image.getHref(), image.getBounds(),
  				(PictureStyle) image.getStyle());
  	}
docs: MapAddon implementation: