Plug in de NCL en Eclipse
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