Conversor de coordenadas (C/C++)

Para conservar todas las aplicaciones que he realizado sobre transformación de coordenadas en un sólo programa, me di a la tarea de convertir cada aplicación en estos links:

Conversión de coordenadas geográficas a UTM usando los elipsoides Hayford, WGS 84 o SAD 69

Conversión de coordenadas UTM a geográficas usando los elipsoides Hayford o WGS 84

Conversión de coordenadas UTM con cambio de datum

Conversión de coordenadas UTM con el modelo de 10 parámetros

Conversión de coordenadas UTM a UTM con cambio de elipsoide

Conversión de coordenadas Gauss-Krüger a geográficas usando los elipsoides Hayford o WGS 84: caso Argentina

en funciones e incorporarlas en el siguiente programa principal.

// Programa para transformar coordenadas. Elaborado por Jose Guerrero 16/09/2010. Actualizado 23/09/2011
// Basado en las ecuaciones de Cotticchia-Surace tomadas de http://www.gabrielortiz.com/index.asp?Info=058b

#include <iostream>
#include <cmath>
#include <cstdlib>

using namespace std;

#include "geo_utm.h"
#include "utm_geo.h"
#include "utm_utm_ce.h"
#include "utm_utm_cd7p.h"
#include "utm_utm_cd10p.h"
#include "gaussk_geo.h"

int main(){

	system ("cls");

	system ("color 1f");

	int opcion;

	cout << "Introduzca el numero de opcion para el tipo de transformacion que desea\n\n";

	cout << "1. Transformar de coordenadas geograficas a UTM\n\n";

	cout << "2. Transformar de coordenadas UTM a geograficas\n\n";

	cout << "3. Transformar de coordenadas UTM a UTM con cambio de elipsoide\n\n";

	cout << "4. Transformar de coordenadas UTM a UTM con cambio de datum (7 parametros)\n\n";

	cout << "5. Transformar de coordenadas UTM a UTM con cambio de datum (10 parametros)\n\n";

	cout << "6. Transformar de coordenadas Gauss-Kruger a geograficas\n\n";

	cout << "Su opcion es = ? ";

	cin >> opcion;

	cout << "\n";

	switch (opcion){
		
		case 1: 
			
			geo_utm();

			break;

		case 2: 
			
			utm_geo();

			break;

		case 3: 
			
			utm_utm_ce();

			break;

		case 4: 
			
			utm_utm_cd7p();

			break;

		case 5: 
			
			utm_utm_cd10p();

			break;

		case 6: 
			
			gaussk_geo();

			break;

	}
	

	system ("pause");

	return 0;

}

Esto lo convierte en un mini conversor de coordenadas para varias situaciones. El ejecutable para Windows se puede bajar de aquí:

transf_coord0.1.zip

Se agradece comentar si se producen resultados no deseados o alguna sugerencia.

Esta entrada fue publicada en Código C++, SIG. Guarda el enlace permanente.

3 respuestas a Conversor de coordenadas (C/C++)

  1. Hector E. Moreno (Ajedrecista y Tecnico Catastral) dijo:

    Estimado Jose:
    Todo tu Blog es un mundo nuevo e inaccesible para mi; pero lo lei completo, pues soy empleado de Catastro y se que los “sabios” informaticos que tenemos estan tratando de hacer nuevas herramientas para el tratamiento de parcelas rurales y me da la impresion que “navegan a ciegas”. Le escribi al director y le hable de tus trabajos, ejemplos, conocimientos e ideas y no seria de extrañar que te consulten. Por hoy me he puesto a practicar con el conversor de coordenadas Gauss…a Geograficas. Si me pierdo te voy a preguntar. Gracias por todo.

    • Gracias, Héctor, por tu comentario. Tu interés en la transformación de Gauss-Krüger a Geográficas señala de entrada que debes ser de la hermana república de Argentina. El sistema de Gauss-Krüger es un sistema complejo basado en UTM y para mi, que vivo en Venezuela, la idea por programar este tipo especial de transformaciones obedeció más bien a un reto intelectual producto de algunos ejemplos que vi en el foro de Gabriel Ortíz. Sin embargo, las transformaciones con cambio de datum (Inchauspe y Posgar) no están consideradas porque requieren parámetros de transformación de Molodensky-Badekas y ejemplos de coordenadas en ambos datums para validar las transformaciones; de los cuales no dispongo. No obstante, si tienes inquietudes sobre esto último usaríamos el software libre QGIS para proceder a dichas transformaciones. Te señalaría como proceder en estos casos.

      Saludos

      • Javier dijo:

        Hola Es muy interesante tu trabajo, quiero compilarlo, pero no encuentro algunos .h, me gustaría saber si me los puedes facilitar… Muchas Gracias

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s