Foros del Web » Programación para mayores de 30 ;) » C/C++ »

ayuda con programa

Estas en el tema de ayuda con programa en el foro de C/C++ en Foros del Web. tengo un programa en html y quiero hacer un scrip donde al ingresar la coordenada de latitud y longitud me transforme a su utm correspondiente ...
  #1 (permalink)  
Antiguo 04/11/2009, 09:28
 
Fecha de Ingreso: noviembre-2009
Mensajes: 9
Antigüedad: 14 años, 6 meses
Puntos: 0
Exclamación ayuda con programa

tengo un programa en html y quiero hacer un scrip donde al ingresar la coordenada de latitud y longitud me transforme a su utm correspondiente si alguien me ayuda porfa desde ya gracias...
este es el programa aunque esta medio desordenado pero el al principio es el programa y lo de despues es el scrip que quiero hacer como lo hago???

PARTE DEL PROGRAMA PARA CREAR SCRIP
<tr>
<td>&nbsp;</td>
<td><div align="left">
</div></td>
<td>Latitud</td>
<td><input name="georef_latitud" type="TEXT" id="georef_latitud" value="" size="10" maxlength="13"></td>
<td>Longitud</td>
<td colspan="8"><input name="georef_longitud" type="TEXT" id="georef_longitud" value="" size="10" maxlength="13">
<div align="left"></div></td>
<tr>
<td>Coordenadas UTM </td>
<td>&nbsp;</td>
<td>UTM Norte</td>
<td><input name="georef_utmy" type=TEXT value="" size="10" maxlength="15" ></td>
<td> UTM Este</td>
<td colspan="8"><input name="georef_utmx" type="TEXT" id="georef_utmx" value="" size="10" maxlength="15" ></td>
<tr>

CODIGO A ENLAZAR


* DEFINES
*/

#define PI 3.14159265358979323e0 /* PI */
#define MIN_LAT ( (-80.5 * PI) / 180.0 ) /* -80.5 degrees in radians */
#define MAX_LAT ( (84.5 * PI) / 180.0 ) /* 84.5 degrees in radians */
#define MIN_EASTING 100000
#define MAX_EASTING 900000
#define MIN_NORTHING 0
#define MAX_NORTHING 10000000
GLOBAL DECLARATIONS
*/

static double UTM_a = 6378137.0; /* Semi-major axis of ellipsoid in meters */
static double UTM_f = 1 / 298.257223563; /* Flattening of ellipsoid */
static long UTM_Override = 0; /* Zone override flag */
FUNCTIONS
*
*/

long Set_UTM_Parameters(double a,
double f,
long override)
{a : Semi-major axis of ellipsoid, in meters (input)
* f : Flattening of ellipsoid (input)
* override : UTM override zone, zero indicates no override (input)
*/

double inv_f = 1 / f;
long Error_Code = UTM_NO_ERROR;

if (a <= 0.0)
{ /* Semi-major axis must be greater than zero */
Error_Code |= UTM_A_ERROR;
}
if ((inv_f < 250) || (inv_f > 350))
{ /* Inverse flattening must be between 250 and 350 */
Error_Code |= UTM_INV_F_ERROR;
}
if ((override < 0) || (override > 60))
{
Error_Code |= UTM_ZONE_OVERRIDE_ERROR;
}
if (!Error_Code)
{ /* no errors */
UTM_a = a;
UTM_f = f;
UTM_Override = override;
}
return (Error_Code);
} /* END OF Set_UTM_Parameters */


void Get_UTM_Parameters(double *a,
double *f,
long *override)
{* a : Semi-major axis of ellipsoid, in meters (output)
* f : Flattening of ellipsoid (output)
* override : UTM override zone, zero indicates no override (output)
*/

*a = UTM_a;
*f = UTM_f;
*override = UTM_Override;
} /* END OF Get_UTM_Parameters */


long Convert_Geodetic_To_UTM (double Latitude,
double Longitude,
long *Zone,
char *Hemisphere,
double *Easting,
double *Northing)
{ Latitude : Latitude in radians (input)
* Longitude : Longitude in radians (input)
* Zone : UTM zone (output)
* Hemisphere : North or South hemisphere (output)
* Easting : Easting (X) in meters (output)
* Northing : Northing (Y) in meters (output)
long Lat_Degrees;
long Long_Degrees;
long temp_zone;
long Error_Code = UTM_NO_ERROR;
double Origin_Latitude = 0;
double Central_Meridian = 0;
double False_Easting = 500000;
double False_Northing = 0;
double Scale = 0.9996;

if ((Latitude < MIN_LAT) || (Latitude > MAX_LAT))
{ /* Latitude out of range */
Error_Code |= UTM_LAT_ERROR;
}
if ((Longitude < -PI) || (Longitude > (2*PI)))
{ /* Longitude out of range */
Error_Code |= UTM_LON_ERROR;
}
if (!Error_Code)
{ /* no errors */
if((Latitude > -1.0e-9) && (Latitude < 0))
Latitude = 0.0;
if (Longitude < 0)
Longitude += (2*PI) + 1.0e-10;

Lat_Degrees = (long)(Latitude * 180.0 / PI);
Long_Degrees = (long)(Longitude * 180.0 / PI);

if (Longitude < PI)
temp_zone = (long)(31 + ((Longitude * 180.0 / PI) / 6.0));
else
temp_zone = (long)(((Longitude * 180.0 / PI) / 6.0) - 29);

if (temp_zone > 60)
temp_zone = 1;
/* UTM special cases */
if ((Lat_Degrees > 55) && (Lat_Degrees < 64) && (Long_Degrees > -1)
&& (Long_Degrees < 3))
temp_zone = 31;
if ((Lat_Degrees > 55) && (Lat_Degrees < 64) && (Long_Degrees > 2)
&& (Long_Degrees < 12))
temp_zone = 32;
if ((Lat_Degrees > 71) && (Long_Degrees > -1) && (Long_Degrees < 9))
temp_zone = 31;
if ((Lat_Degrees > 71) && (Long_Degrees > 8) && (Long_Degrees < 21))
temp_zone = 33;
if ((Lat_Degrees > 71) && (Long_Degrees > 20) && (Long_Degrees < 33))
temp_zone = 35;
if ((Lat_Degrees > 71) && (Long_Degrees > 32) && (Long_Degrees < 42))
temp_zone = 37;

if (UTM_Override)
{
if ((temp_zone == 1) && (UTM_Override == 60))
temp_zone = UTM_Override;
else if ((temp_zone == 60) && (UTM_Override == 1))
temp_zone = UTM_Override;
else if ((Lat_Degrees > 71) && (Long_Degrees > -1) && (Long_Degrees < 42))
{
if (((temp_zone-2) <= UTM_Override) && (UTM_Override <= (temp_zone+2)))
temp_zone = UTM_Override;
else
Error_Code = UTM_ZONE_OVERRIDE_ERROR;
}
else if (((temp_zone-1) <= UTM_Override) && (UTM_Override <= (temp_zone+1)))
temp_zone = UTM_Override;
else
Error_Code = UTM_ZONE_OVERRIDE_ERROR;
}
if (!Error_Code)
{
if (temp_zone >= 31)
Central_Meridian = (6 * temp_zone - 183) * PI / 180.0;
else
Central_Meridian = (6 * temp_zone + 177) * PI / 180.0;
*Zone = temp_zone;
if (Latitude < 0)
{
False_Northing = 10000000;
*Hemisphere = 'S';
}
else
*Hemisphere = 'N';
Set_Transverse_Mercator_Parameters(UTM_a, UTM_f, Origin_Latitude,
Central_Meridian, False_Easting, False_Northing, Scale);
Convert_Geodetic_To_Transverse_Mercator(Latitude, Longitude, Easting,
Northing);
if ((*Easting < MIN_EASTING) || (*Easting > MAX_EASTING))
Error_Code = UTM_EASTING_ERROR;
if ((*Northing < MIN_NORTHING) || (*Northing > MAX_NORTHING))
Error_Code |= UTM_NORTHING_ERROR;
}
} /* END OF if (!Error_Code) */
return (Error_Code);
} /* END OF Convert_Geodetic_To_UTM */
  #2 (permalink)  
Antiguo 04/11/2009, 09:37
Avatar de Fairy_Boy  
Fecha de Ingreso: octubre-2009
Ubicación: Kokiri Forest
Mensajes: 235
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: ayuda con programa en php

algo asi???
  #3 (permalink)  
Antiguo 04/11/2009, 12:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a C/C++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:03.