Plug in de NCL en Eclipse

|

Hace unos dias tuve la suerte de asistir a un curso de Ginga, donde vimos la potencialidad de la herramienta, y claro es muy interesante lo que se puede hacer, pero algo que no nos indicaron es como reproducir el ambiente de desarrollo en nuestras maquinas, cuando busque en Google como instalar el plugin de NCL en Eclipse pues no hubo tanta info, y la mayoria esta en portugues, asi es que quiero compartir la info que encontre y que hice yo para reproducir el ambiente de desarrollo en mi computadora:
1. Obtener Eclipse: me gusta el ultimo release (Helios), si no lo tienen vayan a http://www.eclipse.org y escojan el Eclipse de acuerdo a su plataforma.
2. Obtener el Plugin de NCL para Eclipse: la pagina que encontre en portugues es esta:
http://laws.deinf.ufma.br/~ncleclipse/installation.html
En resumen, debes agregar un repositorio de software en Eclipse que apunte al plugin de NCL, yo lo llame NCL Eclipse al repositorio, este es el repositorio: http://www.laws.deinf.ufma.br/ncleclipse/update
Despues de eso, tienes que en cuadro que sale cuando entras en el menu de Ayuda->Instalar nuevo software, buscar el repositorio que acabas de agregar y escoger el unico item que muestra, luego dar click en siguiente, aceptar la licencia, dar click en siguiente de nuevo y comienza la descarga e instalacion.
Luego es necesario tener las maquinas virtuales para poder crear tus ejemplos para Ginga, en esta pagina se encuentran las maquinas virtuales:
http://www.gingancl.org.br/ferramentas.html
Cuando ya tienes la maquina vitual necesitas VMware Player para usarlo, puedes encontrarla en http://www.vmware.com, es gratuito.
Con esto ya tienes tu ambiente de desarrollo Ginga, solo hace falta usar la imaginacion para comenzar a realizar muchas cosas con Ginga!
Eso es por lo pronto, seguire haciendo posts para preservar el conocimiento que algo voy adquiriendo.

Convertir Coordenadas DMS a Decimal

|

No se si a ustedes les ha pasado, pero he necesitado convertir coordenadas en grados, minutos y segundos a decimales, o lo que llaman UTM, especialmente esto suele estar almacenado en una base de datos, y claro convertirlo puede ser un problema y mas cuando son bases de datos de producción, la solución? Una función que haga esta conversion y esta incluirla en una vista, y bien aqui esta la función para SQL Server 2005 en adelante, si necesitan podría pasarla a Oracle tambien…

CREATE FUNCTION ConvertirDMS
(
    -- Add the parameters for the function here
    @strData varchar(500)
)
RETURNS decimal(10,8)
AS
BEGIN
    DECLARE @decResult decimal(10,8)
    declare @posD int
    declare @posDQ int
    declare @posM int
    declare @posS int
    declare @piece varchar(500)
    declare @decD decimal(10,8)
    declare @decM decimal(10,8)
    declare @decS decimal(10,8)
    declare @strSign varchar(2)
   
    --Ubica el signo de grados
    set @posD =  patindex('%°%' , @strData)
    --Ubica el signo de grados cuando esta mal puesto
    set @posDQ =  patindex('%?%' , @strData)   
    --Ubica el sigo de minutos
    set @posM =  patindex('%"%' , @strData)
    --Ubica el sigo de minutos
    set @posS =  patindex('%''%' , @strData)
   
    -- Saca los segundos y los convierte a decimal
    set @decS = CONVERT(decimal(10,8), substring(@strData, @posM + 1, @posS - @posM - 1))
    -- Saca los minutos y los convierte a decimal
    if(@posDQ = '0')   
        set @decM = CONVERT(decimal(10,8), substring(@strData, @posD + 1, @posM - @posD - 1))
    else
        set @decM = CONVERT(decimal(10,8), substring(@strData, @posDQ + 1, @posM - @posDQ - 1))
    -- Saca los minutos y los convierte a decimal
    if(@posDQ = '0')   
        set @decD = CONVERT(decimal(10,8), substring(@strData, 0, @posD))
    else
        set @decD = CONVERT(decimal(10,8), substring(@strData, 0, @posDQ))
    --Saca la orientacion para el signo
    set @strSign = SUBSTRING(@strData, @posS + 1, len(@strData) - @posS)   
    --Calcula los segundos a minutos
    set @decM = @decM + (@decS / 60.00)
    --Calcula los minutos a grados
    set @decResult = @decD + (@decM / 60.00)
    --Pone el signo
    if (upper(@strSign) <> 'N' and UPPER(@strSign) <> 'E')
        set @decResult = @decResult * -1
   

    RETURN @decResult;
END