API | GEOConvertor – Transformação de Coordenadas Geodésicas em Planas

Recebi um trabalho recentemente um tanto complexo que foi desenvolver uma função dentro do ORACLE (agora estou apredendo PL/SQL) para conversão de coordenadas.

Precisei estudar algumas equações geodésicas para fazer este trabalho. (Me lembro do engenheiro trazendo um livro para estudar, escrito por Silveira, Luiz Carlos da . Cálculos Geodésicos no sistema UTM aplicados a topografia, Editora Luana. Morro da Fumaça – SC , 1990)

E após um árduo trabalho resolvi em meu tempo livre desenvolver uma API em java para facilitar os futuros trabalhos. Foi ai que nasceu o GEOConvertor.

GEOConvertor é uma API java para auxiliar a conversão de coordenadas decimais para Universal Transverse Mercator (UTM).

Durante o trabalho desenvolvi três tipos de conversões para API utilizando os DATUMs SAD69 e WGS-84.

Além de outros recursos como calcular o achatamento da terra entre outros cálculos.

Download da API

API está disponível com licença GPLv.3 e toda sua documentação, inclusive javadocs, pode ser obtida: http://code.google.com/p/geoconvertor

Está atualmente na versão 0.1 beta: http://geoconvertor.googlecode.com/files/geoconvertor-v0.1.jar

Download de um exemplo:  http://geoconvertor.googlecode.com/files/GEOConvertorExample.zip

O código já está disponível basta acessar e ajudar a melhorar.

*Por se tratar de coordenadas verifique sempre se está próxima do desejado.

Trabalhando com API

Adicione a API no projeto que estiver trabalhando. Em seguinda importe:

import org.geoconvertor.datum.Datum;
import org.geoconvertor.utm.GEOConvertor;

Construa o objeto para utilizar os métodos da API.

GEOConvertor gcv = new GEOConvertor();

Escolha um tipo de conversão:

  • Coordenada Decimal para UTM: Retornará a coordenada em UTM de acordo com o Datum escolhido.

.geoToUTM(decimal_latitude , decimal_longitude ,  datum ,  central_meridian);

  • Decimal Degree para DMS (Degrees, Minutes, Seconds): Retornará em graus

.decToDMS(decimal_coordinate);

  • DMS (Degrees, Minutes, Seconds) para Decimal Degree: Retornará em graus decimais

.dmsToDec(dms_coordinate);

Programando


import org.geoconvertor.datum.Datum;
import org.geoconvertor.utm.GEOConvertor;

public class Main {

 public static void main(String[] args) {

 GEOConvertor gcv = new GEOConvertor();

 System.out.println("----------SAD6984-------------------------");
 System.out.println(gcv.geoToUTM(21.88684199, 47.30414058, Datum.SAD69, 45));

 System.out.println("----------WGS84-------------------------");
 System.out.println(gcv.geoToUTM(21.88684199, 47.30414058, Datum.WGS84, 45));

 //Decimal Coordinate to DMS
 System.out.println("Degrees/Minutes/Second: " + coord.decToDMS(21.88684199));

 //DMS to Decimal Coordinate. (Not use special char).
 System.out.println("Decimal Convert: " + gcv.dmsToDEC(215392.631));
 }
}
<pre>

Se deseja conhecer um pouco mais sobre o assunto acesse: http://www.professores.uff.br/cristiane/Estudodirigido/Cartografia.htm


6 thoughts on “API | GEOConvertor – Transformação de Coordenadas Geodésicas em Planas

  1. Muito obrigado mesmo!

    Olhando seu código, consegui alterar uma classe que realizava a conversão de UTM para Geo utilizando WGS-84 para SAD-69 que o formato que os meus dados estão.

    1. Que show, fico muito feliz por colaborar, e contribuir com a comunidade open-source. Inclusive fique a vontade para alterar o código e adicionar novas funcionalidades, assim podemos até melhorar a API.

      Abração Rafael e Juliano, obrigado pelo feed back.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s