GPS + Canvas

Olá… Estou com uma pequena duvida, tenho que fazer um programa onde a partir de um Codigo GPS comum, onde eu altero valores pelo emulador (wireless Tolkit) possa fazer um ponto no display, e conforme a latitude e longetude for alterada o ponto se move.
Peço ajuda urgente!!!
Obrigado desde já!

Utilize translate(x, y);

.
.
.

g.translate(x, y);

.
.
.

Assim o ponto na tela mexe…

Talve isso ajuda.

O Código do GPS seria esse:

[code]import java.io.IOException;

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.location.AddressInfo;
import javax.microedition.location.Coordinates;
import javax.microedition.location.Criteria;
import javax.microedition.location.Landmark;
import javax.microedition.location.LandmarkException;
import javax.microedition.location.LandmarkStore;
import javax.microedition.location.Location;
import javax.microedition.location.LocationException;
import javax.microedition.location.LocationListener;
import javax.microedition.location.LocationProvider;
import javax.microedition.location.ProximityListener;
import javax.microedition.location.QualifiedCoordinates;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class Localiza extends MIDlet implements CommandListener, ProximityListener, LocationListener{

private Command c1;
private LocationProvider lp;
private Location l;
private Criteria cr;
private Coordinates coord;
private LandmarkStore store;
public Localiza() {
	// TODO Auto-generated constructor stub
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
	// TODO Auto-generated method stub

}

protected void pauseApp() {
	// TODO Auto-generated method stub

}

protected void startApp() throws MIDletStateChangeException {
	// TODO Auto-generated method stub
	Display display = Display.getDisplay(this);

// Seta os critérios para o provedor de localizacao:
// precisao de 500 m horizontalmente, …
cr= new Criteria();
cr.setHorizontalAccuracy(500);
cr.setVerticalAccuracy(25); // 25m
/* cr.setPreferredResponseTime(Criteria.NO_REQUIREMENT);
cr.setPreferredPowerConsumption(Criteria.NO_REQUIREMENT);
cr.setCostAllowed(false);
cr.setSpeedAndCourseRequired(true);
cr.setAltitudeRequired(true);
cr.setAddressInfoRequired(true);
*/

// Requisita localizacao com 1 minuto de timeout
try {
lp = LocationProvider.getInstance(cr);
l = lp.getLocation(60);
Coordinates c = l.getQualifiedCoordinates();
System.out.println(l.getCourse());
System.out.println(l.getSpeed());
if(c != null ) {
// Use coordinate information
double lat = c.getLatitude();
double lon = c.getLongitude();
System.out.println("latitude: “+lat+” longitude: "+lon);
}
} catch (LocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//
// cria informações de endereços para um marco
//
AddressInfo address = new AddressInfo();
address.setField(AddressInfo.CITY, “CIDADE”.trim());
address.setField(AddressInfo.COUNTRY, “PAÍS”.trim());
address.setField(AddressInfo.PHONE_NUMBER, “TELEFONE”.trim());
address.setField(AddressInfo.POSTAL_CODE, “CEP”.trim());
address.setField(AddressInfo.STATE, “ESTADO”.trim());
address.setField(AddressInfo.STREET, “RUA”.trim());
//
// Recupera armazem de marcos (landmark)
//
try {
store = LandmarkStore.getInstance(“armazem”);
}
catch (NullPointerException npe)
{}
//
// Cria armazem de marcos (landmark) se não houver algum
//
if (store == null)
{
try
{
LandmarkStore.createLandmarkStore(“armazem”);
store = LandmarkStore.getInstance(“armazem”);
}
catch (IllegalArgumentException iae)
{}
catch (IOException e)
{}
catch (LandmarkException e)
{}
}

	// Define coordenadas do marco (corresponde às 
	// coordenadas atuais)
	Coordinates c = l.getQualifiedCoordinates();
	Landmark lmk = new Landmark("Minha casa".trim(), 
	"Endereco residencial", (QualifiedCoordinates) c, address);

	try {
		store.addLandmark(lmk, null);
		System.out.println("Inseriu marco");
		
		LocationProvider.addProximityListener(this, c,
				(float) 0.01);
		System.out.println("Ativou Proximity listener");
		// a acada 10 seg,  com time-out adicional de 5 seg, e com posição obtida a menos de 20 seg
		lp = LocationProvider.getInstance(cr);
		lp.setLocationListener(this, -1, 5, 1);
		//lp.setLocationListener(this, -1, 0, 0);
		
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (LocationException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} 
	
	setaComando(display);
}
void setaComando(Display d){
	
	Form form = new Form("Posicionamento");
	c1 = new Command("Le Coordenadas", Command.EXIT, 0);
	
	
	form.addCommand(c1);

	form.setCommandListener(this);
	d.setCurrent(form);
}
public void commandAction(Command c, Displayable d){
	
	if (c == c1){
		String label = c.getLabel();
		//System.out.println("Lendo coordenadas "+label);
		try {
			lp = LocationProvider.getInstance(cr);
			l = lp.getLocation(60);
			
			// curso (direção) do movimento em graus (0-360 em relação 
			// ao Norte geográfico ou verdadeiro)
			System.out.println("Curso: "+l.getCourse()); 
			System.out.println("Velocidade: "+l.getSpeed());
			coord = l.getQualifiedCoordinates();

			if(c != null ) {
			  // Use coordinate information
			  double lat = coord.getLatitude();
			  double lon = coord.getLongitude();
			  System.out.println("latitude: "+lat+" longitude: "+lon);	  
			}
		} catch (LocationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

public void monitoringStateChanged(boolean arg0) {
	// TODO Auto-generated method stub
	
}

public void proximityEvent(Coordinates coord, Location loc) {
	
	//Landmark lm = findNearestLandMark(coord);
	System.out.println("Aviso: Você está próximo de um landmark");
	//		" "+lm.getName()+
	//". Descricao: "+lm.getDescription());
}

public void locationUpdated(LocationProvider lp, Location l) {
	System.out.println("Aviso: posição mudou");
	QualifiedCoordinates c = l.getQualifiedCoordinates();
	
	System.out.println("Latitude: "+c.getLatitude());
	System.out.println("Longitude: "+c.getLongitude());	
}

public void providerStateChanged(LocationProvider arg0, int arg1) {
	// TODO Auto-generated method stub
	
}

}
[/code]

Como poderia fazer um marco de um ponto…representando a movimentação?

To no trabalho agora.
vou testa seu codigo em casa !