martes, 9 de junio de 2009

Obter UTM a partir de coordenadas xeográficas en graos, minutos e segundos

select cod_escola,
    AsText(Transform(GeomFromEWKT('SRID=4326;POINT( -'
        || gr_lon + min_lon/60 + seg_lon/3600 || ' '
        || gr_lat + min_lat/60 + seg_lat/3600 || ')'), 23029))   
from (
select cod_escola,
    cast(split_part(lat, ' ', 1)  as numeric)  as gr_lat,
    cast(split_part(lat, ' ', 2)  as numeric)  as min_lat,
    cast(split_part(lat, ' ', 3)  as numeric)  as seg_lat,

    cast(split_part(lon, ' ', 1)  as numeric) as gr_lon,
    cast(split_part(lon, ' ', 2)  as numeric)  as min_lon,
    cast(split_part(lon, ' ', 3)  as numeric) as seg_lon
from (
SELECT cod_escola, corrdenadas,
    split_part(replace(corrdenadas, ',','.'), ';', 1) as lat,    
    split_part(replace(corrdenadas, ',','.'), ';', 2) as lon
  FROM coordenadas
) as vw ) as vw2

No hay comentarios: