package com.nutiteq.components; import javax.microedition.lcdui.Graphics; /** * Interface for defining custom placemarks. Defines the size and relative * position (anchor point) to place. If image is used and it will be centered on * place point then anchorX would be image.getWidth() / 2. * * Placemark can also have different properties based on zoom level. For example * in placemarks showing person location an icon can be shown at country level. * But on city level additional data, for example name, can be added to * placemark paint. (Check custom elements example for additional details). * * How and if the placemark will be shown will be calculated outside placemark. */ public interface Placemark { /** * Get width of the placemark, based on current zoom level * * @param zoom * view zoom level * @return placemark width */ int getWidth(final int zoom); /** * Get height of the placemark, based on current zoom level * * @param zoom * view zoom level * @return placemark height */ int getHeight(final int zoom); /** * Get placemarks relative position x * * @param zoom * current zoom level * @return anchor x */ int getAnchorX(final int zoom); /** * Get placemarks relative position y. * * @param zoom * current zoom level * @return anchor y */ int getAnchorY(final int zoom); /** * Paint placemark to screen. screenX and screenY are 0, 0 for placemark. How * it should be placed on screen is calculated outside placemark based on * placemark size and anchor point. * * @param g * graphics object to paint on * @param screenX * x point to paint on screen * @param screenY * y point to paint on screen */ void paint(final Graphics g, final int screenX, final int screenY, final int zoom); }