Picard Master


Registrado: 18 Ene 2004Mensajes: 218Ubicación: Palamos (Girona) España
|
Publicado: Vie 25 Jun, 2004 12:52 pm Asunto: tipos de datos |
|
|
hola compañeros, tengo unos datos de tipo double,latitud y longitud.
Tambien tengo unos datos del tipo Long double LatCur y longCur.
mi problema es el siguiente,al intentar hacer moving map si hago lo siguiente:
| Código: |
Map->BeginUpdate();
Map->CenterY = (Latitude);
Map->CenterX = (Longitude);
Map->Zoom = 30;
Map->EndUpdate(true);
|
Pero me temo que debo convertir los datos double a long double,ya que cuando los valores son 0 funciona correctamente de otra manera no va del todo bien.
puedo convertir los datos double a long double?
por si acaso pongo todo el bloque de codigo.
gracias
| 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 ";
}
/*establece Latitud y Longitud recibidas desde el Gps en el centro de la
pantalla*/
/*El problema esta aqui, para mayor precision necesito pasar Longitude y latitude a double*/
Map->BeginUpdate();
Map->CenterY = (Latitude);
Map->CenterX = (Longitude);
Map->Zoom = 20;
Map->EndUpdate(true);
}
} |
_________________ El hombre es el unico ser que tropieza dos veces en la misma piedra ( en mi caso infinitas veces) |
|