18 de fev. de 2009

UTêMêRê

Bem, como "muitos" perceberam, eu não cumpri a minha promessa de postar segunda. Mas vou explicar rapidamente, é que ontem ouvi no rádio a noticia de que o Bahia estava lançando o seu plano de marketing para 2009 e as novas camisas, também. Daí, fiquei procurando alguma noticia com fotos das novas camisas. Só que o cara da rádio deu a noticia errada, segunda só foi lançamento do plano de marketing.
Mas, vamos ao que prometi. Nas ultimas semanas eu estava com uma tarefa que, no começo, parecia simples. Eu precisava descobrir uma forma de criar programas para pockets pc’s com o uso de GPS, depois teria de desenvolver um exemplo para testar. Beleza, foi até fácil, descobri que a Microsoft tem uma api nativa para o Windows Móbile (http://msdn.microsoft.com/en-us/library/ms850332.aspx), só precisava usar ela. Para melhorar, existem códigos de exemplo na SDK do Windows Móbile 6 (http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&displaylang=en http://msdn.microsoft.com/pt-br/library/bb158708.aspx). Beleza, tudo pronto já podia validar o aparelho que compramos e partir para o desenvolvimento do sistema que nos interessava.
Porém, existia um pequeno problema: a api só disponibilizava as coordenadas do GPS em latitude e longitude, e nó precisamos delas em UTM SAD69. Deu-se a desgraça: como converter? Minha primeira idéia, entender a formula de conversão e criar um código com essa função. Descobri que ia precisar estudar um pouco mais para entender tudo aquilo, e tempo era algo que não estava muito ao meu favor. Procurei bibliotecas, códigos prontos, programas e não achava nada que desse para usar. Eu tava perdidinho, não sabia nem como procurar. Mas aos poucos fui entendo os conceitos e filtrando melhor as minhas pesquisas, até que encontrei o meu salvador (http://www.gpsy.com/gpsinfo/geotoutm/), os caras disponibilizaram um código em C++ (http://www.gpsy.com/gpsinfo/geotoutm/gantz/) todo estruturado e comentado, uma beleza.
Pronto, só precisei passar o código para C# e deixar ele orientado a objeto. Para isso, criei duas classes: Elipsoide e CoordenadaUTM. Confesso que não entendi todas as variáveis das formulas nem sou capaz de deduzi-las. Enfim, esse foi um dos casos em que o resultado era mais importante que a pesquisa. Quem quiser colaborar com algo ou corrigir algum erro meu, esteja à vontade. Para validar os resultados usei este programa.

Nenhum comentário:

Postar um comentário