Picard Master


Registrado: 18 Ene 2004Mensajes: 218Ubicación: Palamos (Girona) España
|
Publicado: Mar 29 Jun, 2004 4:55 pm Asunto: Coordenadas de pantalla |
|
|
Hola compañeros, tengo un problema y la verdad es que no puedo entender el porque no me sale, en mi aplicacion abro un archivo con extension .mif, que en realidad es un mapa, este me da las coordenadas de cualquier punto en el evento onmousemove. en el evento onposition hago que las coordenadas que recibo desde el gps se situen en el centro de la pantalla pero cuando las coordenadas son 0º 0' 0" N y 0º 0' 0" E, todo perfecto, no siendo asi cuando estas coordenadas son distintas sabeis vosotros porque?
| Código: |
/*Esta estructura convierte los grados decimales recibidos en lblLatGps y lblLongGps
en grados,minutos y segundos*/
String DecASexa (double dec)
{
short grados = dec;
double temp = std::fabsl (dec - grados);
unsigned short minutos = (temp *= 60);
unsigned short segundos = (temp - minutos) * 60;
return Format ("%d\xB0 %d' %d\"", ARRAYOFCONST ((grados, minutos, segundos)));
}
void __fastcall TfrmPrincipal::GpsPosition(TObject *Sender,
TDateTime FixTime, double Latitude, double Longitude,
TGPSQuality Quality, int SatCount, double HDOP, double Altitude,
double GeodidHeight)
{
if(Quality == gpsqNone)
{
lblLatGps->Twinkle = true;
lblLongGps->Twinkle = true;
}
else
{
lblLatGps->Twinkle = false;
lblLongGps->Twinkle = false;
}
{
if(SatCount == 0)
{
lblSat->Caption = SatCount;
lblSat->Twinkle = true;
}
else
{
lblSat->Caption = SatCount;
lblSat->Twinkle = false;
}
}
{
lblHoraUtc->Caption = FixTime;
lblRumboGps->Caption = " Rumbo " + (FloatToStr(Course)) + " \xB0 ";
}
if(optNudos->Checked)
{
lblSpeedGps->Caption = (FloatToStr(Speed)) + " Nudos ";
}
else
{
lblSpeedGps->Caption = (FloatToStr(Speed)) + " Km/h ";
}
if(Latitude < 0)
{
lblLatGps->Caption = (DecASexa(-Latitude)) + " S ";
}
else
{
lblLatGps->Caption = (DecASexa(Latitude)) + " N ";
}
if(Longitude < 0)
{
lblLongGps->Caption = (DecASexa(-Longitude)) + " W ";
}
else
{
lblLongGps->Caption = (DecASexa(Longitude)) + " E ";
}
/*este codigo es el que hace que se situen las coordenadas del gps en el centro de la pantalla*/
Map->BeginUpdate();
Map->CenterY = Latitude;
Map->CenterX = Longitude;
Map->Zoom = 30;
Map->EndUpdate();
}
|
primero pense que al ser latCur y longcur datos del tipo Long double y latitude y longitude del tipo double podian influir, pero hice cambios y no solucione nada.
Gracias machotes _________________ El hombre es el unico ser que tropieza dos veces en la misma piedra ( en mi caso infinitas veces) |
|