Please don't call me "sir"... I'm not your father. 
I know what you mean... it's not a tiny example. And the Maps API isn't exactly "minimal".
I managed to get a simple example working. It's quite different from the other example code you've looked at, as I didn't try taking that code apart, I just started from scratch. And I'm not sure it does what you want. But take a look...
MapMidlet.java
Code:
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import com.nokia.maps.common.ApplicationContext;
public class MapMidlet extends MIDlet implements CommandListener {
private Map map;
protected void startApp() throws MIDletStateChangeException {
if (map == null) {
ApplicationContext appcon = ApplicationContext.getInstance();
appcon.setAppID("SomeId");
appcon.setToken("SomeToken");
Display display = Display.getDisplay(this);
map = new Map(display);
map.addMarker(53.2944, -2.75, "Home");
map.addCommand(new Command("Exit", Command.EXIT, 0));
map.setCommandListener(this);
display.setCurrent(map);
}
}
protected void destroyApp(boolean must) throws MIDletStateChangeException {
// do nothing
}
protected void pauseApp() {
// do nothing
}
public void commandAction(Command c, Displayable d) {
if (c.getCommandType() == Command.EXIT) {
notifyDestroyed();
}
}
}
Map.java
Code:
import java.util.Hashtable;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import com.nokia.maps.common.GeoCoordinate;
import com.nokia.maps.map.MapCanvas;
import com.nokia.maps.map.MapFactory;
import com.nokia.maps.map.MapObject;
import com.nokia.maps.map.Point;
import com.nokia.mid.ui.DirectGraphics;
import com.nokia.mid.ui.DirectUtils;
public class Map extends MapCanvas {
private Hashtable captions = new Hashtable();
private String currentCaption;
public Map(Display display) {
super(display);
}
public void addMarker(double latitude, double longitude, String caption) {
MapFactory f = getMapFactory();
GeoCoordinate coord = new GeoCoordinate(latitude, longitude, 0);
MapObject marker = f.createStandardMarker(coord);
getMapDisplay().addMapObject(marker);
captions.put(marker, caption);
}
public void onMapContentComplete() {
// do nothing
}
public void onMapUpdateError(String description, Throwable detail, boolean critical) {
System.err.println(description + ": " + detail.getMessage());
}
protected void paint(Graphics g) {
super.paint(g);
if (currentCaption != null) {
Font font = Font.getDefaultFont();
g.setFont(font);
DirectGraphics dg = DirectUtils.getDirectGraphics(g);
dg.setARGBColor(0xccffffff);
g.fillRect(0, 0, getWidth(), font.getHeight());
dg.setARGBColor(0xff000000);
g.drawString(currentCaption, 0, 0, Graphics.TOP | Graphics.LEFT);
}
}
protected void pointerPressed(int x, int y) {
Point p = new Point(x, y);
MapObject marker = getMapDisplay().getObjectAt(p);
currentCaption = (String) captions.get(marker);
repaint();
}
protected void pointerReleased(int x, int y) {
currentCaption = null;
repaint();
}
}
Graham.