From ec18d2cdc3dea8f0d1d92d1a6b5a1a4ae00aa5b3 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Fri, 4 Feb 2011 18:42:14 +0000 Subject: [PATCH] Inclusão da biblioteca Proj4 e incorporação na ferramenta de apresentação de coordenadas --- classesjs/classe_coordenadas.js | 473 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------- classesjs/classe_interface.js | 9 +++------ classesjs/compactajs.php | 1 + classesjs/i3geonaocompacto.js | 1 + ferramentas/epsg.txt | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- 5 files changed, 504 insertions(+), 80 deletions(-) diff --git a/classesjs/classe_coordenadas.js b/classesjs/classe_coordenadas.js index 2bc9f08..3235fce 100644 --- a/classesjs/classe_coordenadas.js +++ b/classesjs/classe_coordenadas.js @@ -37,7 +37,125 @@ Inclui elementos especiais no mapa para apresentação de coordenadas */ i3GEO.coordenadas = { /* - Propriedade: PARAMETROS + Propriedade: formato + + Formato de apresentação das coordenadas + + Type: + {string} + + Default: + "lista" + + Valores: + + bloco - mostra apenas um dos tipos e uma caixa de seleção + + separado - mostra todos os tipos em lugares diferentes conforme o valor de idhtml + + lista - mostra cada tipo em um lugar diferente conforme o valor de idhtml + */ + formato: "bloco", //bloco,separado,lista,janela + /* + Propriedade: padrao + + Indica qual tipo de coordenada é mostrado como padrão. Deve existir em i3GEO.coordenadas.config + + Default: + "geoProj" + */ + padrao: "geoProj", //so faz sentido se formato for bloco + /* + Propriedade: defOrigem + + CRS que define a projeção original das coordenadas capturadas na tela. Deve ser o mesmo + parâmetro definido no mapfile de inicialização do mapa (veja em i3geo/aplicmap/geral1.map ou geral1windows.map) + + Default: + "+proj=longlat +ellps=GRS67 +no_defs" + */ + defOrigem: "+proj=longlat +ellps=GRS67 +no_defs", //sad69 geo + /* + Propriedade: config + + Define as configurações de cada tipo de coordenada mostrada + + Para alterar os parâmetros ou acrescentar novas projeções, altere esse objeto por meio de javascript + + Para mais detalhes, veja i3geo/classesjs/classe_coordenada.js + + Para desativar a apresentação de uma projeção altere o valor de "ativo". + */ + config: { + "geoProj":{ + idhtml: "localizarxy", + tipo: "geo", + titulo: "Geo", + ativo: true, + defepsg: "" + }, + "policonicaSad69":{ + idhtml: "localizarxy", + tipo: "metrica", + titulo: "Policônica SAD-69", + ativo: true, + defepsg: "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=aust_SA +units=m +no_defs" + }, + "utmSad69Proj":{ + idhtml: "localizarxy", + tipo: "utm", + titulo: "UTM Sad-69", + ativo: true, + defepsg: "", + zona:{ + "19N":"+proj=utm +zone=19 +ellps=aust_SA +units=m +no_defs", + "20N":"+proj=utm +zone=20 +ellps=aust_SA +units=m +no_defs", + "21N":"+proj=utm +zone=21 +ellps=aust_SA +units=m +no_defs", + "22N":"+proj=utm +zone=22 +ellps=aust_SA +units=m +no_defs", + "17S":"+proj=utm +zone=17 +south +ellps=aust_SA +units=m +no_defs", + "18S":"+proj=utm +zone=18 +south +ellps=aust_SA +units=m +no_defs", + "19S":"+proj=utm +zone=19 +south +ellps=aust_SA +units=m +no_defs", + "20S":"+proj=utm +zone=20 +south +ellps=aust_SA +units=m +no_defs", + "21S":"+proj=utm +zone=21 +south +ellps=aust_SA +units=m +no_defs", + "22S":"+proj=utm +zone=22 +south +ellps=aust_SA +units=m +no_defs", + "23S":"+proj=utm +zone=23 +south +ellps=aust_SA +units=m +no_defs", + "24S":"+proj=utm +zone=24 +south +ellps=aust_SA +units=m +no_defs", + "25S":"+proj=utm +zone=25 +south +ellps=aust_SA +units=m +no_defs" + } + }, + "utmSirgas2000Proj":{ + idhtml: "localizarxy", + tipo: "utm", + titulo: "UTM Sirgas 2000", + ativo: true, + defepsg: "", + zona:{ + "11N":"+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "12N":"+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "13N":"+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "14N":"+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "15N":"+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "16N":"+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "17N":"+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "18N":"+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "19N":"+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "20N":"+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "21N":"+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "22N":"+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "17S":"+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "18S":"+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "19S":"+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "20S":"+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "21S":"+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "22S":"+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "23S":"+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "24S":"+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", + "25S":"+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs" + } + } + }, + /* + Propriedade: PARAMETROS (depreciado) Parametros de inicialização dos componentes. @@ -45,11 +163,9 @@ i3GEO.coordenadas = { Você pode acessar os parâmetros da seguinte forma: - i3GEO.coordenadas.PARAMETROS.mostraCoordenadasUTM.idhtml = ""; - - Para evitar o funcionamento de um componente, experimente utilizar o seguinte exemplo: + i3GEO.coordenadas.PARAMETROS.mostraCoordenadas.idhtml = ""; - i3GEO.coordenadas.PARAMETROS.mostraCoordenadasUTM.idhtml = ""; + Nas versões anteriores à 4.5 do i3Geo utilizava-se um Default: @@ -71,17 +187,16 @@ i3GEO.coordenadas = { "mostraCoordenadasUTM": {idhtml:"localizarxy"}, "mostraCoordenadasGEO": - {idhtml:"localizarxy"} + {idhtml:"localizarxy"} }, /* Function: mostraCoordenadasUTM - Obtém as coordenadas UTM da posição do mouse sobre o mapa. + Obtém e mostra as coordenadas UTM da posição do mouse sobre o mapa por meio de um cálculo realizado no servidor. - As coordenadas são obtidas por meio de uma chamada AJAX. + Essa função deixou de ser utilizada na versão 4.5 do i3Geo. - Para o funcionamento correto é necessário incluir essa função no evento que identifica quando o mouse - está estacionado sobre o mapa. Por default isso já é feito pelo i3Geo. + As coordenadas são obtidas por meio de uma chamada AJAX. Se você não quer essa função no mapa, elimine o elemento HTML existente no mapa que contenha o id definido em i3GEO.coordenadas.PARAMETROS (mostraCoordenadasUTM) ou altere a variável i3GEO.eventos.MOUSEPARADO @@ -154,10 +269,10 @@ i3GEO.coordenadas = { /* Function: mostraCoordenadasGEO - Obtém as coordenadas Geográficas da posição do mouse sobre o mapa. + Obtém e mostra as coordenadas Geográficas da posição do mouse sobre o mapa. - Se você não quer essa função no mapa, elimine o elemento HTML existente no mapa que contenha o - id definido em i3GEO.coordenadas.PARAMETROS (localizarxy) + Se você não quer essa função no mapa, elimine o elemento HTML que contenha o + id definido em i3GEO.coordenadas.PARAMETROS, por default é "localizarxy" Parametro: @@ -167,50 +282,314 @@ i3GEO.coordenadas = { mostraCoordenadasGEO: function(id){ if(typeof(console) !== 'undefined'){console.info("i3GEO.coordenadas.mostraCoordenadasGEO()");} try{ - // - //ativa o evento que preenche os campos de coordenadas - // var ins,temp; if(arguments.length === 0 || id === "" || id == undefined) {id = i3GEO.coordenadas.PARAMETROS.mostraCoordenadasGEO.idhtml;} else {i3GEO.coordenadas.PARAMETROS.mostraCoordenadasGEO.idhtml = id;} if($i(id)){ - if(!$i("xm")){ - ins = "" + - "" + - "" + - "" + - "" + - "" + - "" + - ""; - temp = 'var xxx = i3GEO.calculo.dms2dd($i("xg").value,$i("xm").value,$i("xs").value);' + - 'var yyy = i3GEO.calculo.dms2dd($i("yg").value,$i("ym").value,$i("ys").value);' + - 'i3GEO.navega.zoomponto(i3GEO.configura.locaplic,i3GEO.configura.sid,xxx,yyy);'; - ins += "" + - "
X: "+$inputText(id,"315","xg","grau","3","-00")+" "+$inputText("","","xm","minuto","3","00")+" "+$inputText("","","xs","segundo","5","00.00")+" Y:"+$inputText("","","yg","grau","3","-00")+" "+$inputText("","","ym","minuto","3","00")+" "+$inputText("","","ys","segundo","5","00.00")+"
"; - $i(id).innerHTML = ins; - atualizaLocalizarxy = function(){ - try{ - var x = objposicaocursor.dmsx.split(" "); - var y = objposicaocursor.dmsy.split(" "); - $i("xg").value = x[0]; - $i("xm").value = x[1]; - $i("xs").value = x[2]; - $i("yg").value = y[0]; - $i("ym").value = y[1]; - $i("ys").value = y[2]; - } - catch(m){ - if(typeof(console) !== 'undefined'){console.error(m);} - } + if(!$i("coordgeotabela")){ + $i(id).innerHTML = i3GEO.coordenadas.criaMascaraDMS("coordgeotabela"); + atualizaLocalizarGeo = function(){ + var temp = $i("coordgeotabela"); + if(temp && temp.style.display === "block") + {i3GEO.coordenadas.atualizaGeo(objposicaocursor.dmsx,objposicaocursor.dmsy,"coordgeotabela");} }; - if(i3GEO.eventos.MOUSEMOVE.toString().search("atualizaLocalizarxy()") < 0) - {i3GEO.eventos.MOUSEMOVE.push("atualizaLocalizarxy()");} + if(i3GEO.eventos.MOUSEMOVE.toString().search("atualizaLocalizarGeo()") < 0) + {i3GEO.eventos.MOUSEMOVE.push("atualizaLocalizarGeo()");} } } } catch(e){alert("mostraCoordenadasGeo: "+e.description);} + }, + /* + Function: geo2zonaUtm + + Determina qual é a zona UTM de um par de coordenadas geográficas + + Parametros: + + long - longitude em décimos de grau + + Return: + + {number} - zona UTM + */ + geo2zonaUtm: function(long){ + long = (long * 1) + 180; + long = long / 6; + return parseInt(long,10) + 1; + }, + /* + Function: criaMascaraDMS + + Cria uma tabela para mostrar as coordenadas no padrão grau minuto e segundo + + A tabela criada receberá o id = prefixo + + Parametro: + + prefixo {string} - prefixo para batizar os ids dos elementos que serão criados + + Retorno: + + {string} - html com a tabela + */ + criaMascaraDMS: function(prefixo,titulo,caixa){ + var ins = "" + + "" + + "" + + "" + + "" + + "" + + "" + + ""; + temp = 'var '+prefixo+'xxx = i3GEO.calculo.dms2dd($i("'+prefixo+'xg").value,$i("'+prefixo+'xm").value,$i("'+prefixo+'xs").value);' + + 'var '+prefixo+'yyy = i3GEO.calculo.dms2dd($i("'+prefixo+'yg").value,$i("'+prefixo+'ym").value,$i("'+prefixo+'ys").value);' + + 'i3GEO.navega.zoomponto(i3GEO.configura.locaplic,i3GEO.configura.sid,'+prefixo+'xxx,'+prefixo+'yyy);'; + ins += '' + + "
"+titulo+" X: "+$inputText("","315",prefixo+"xg","grau","3","-00")+" "+$inputText("","",prefixo+"xm","minuto","3","00")+" "+$inputText("","",prefixo+"xs","segundo","5","00.00")+" Y:"+$inputText("","",prefixo+"yg","grau","3","-00")+" "+$inputText("","",prefixo+"ym","minuto","3","00")+" "+$inputText("","",prefixo+"ys","segundo","5","00.00")+""+caixa+"" + + "
"; + return ins; + }, + /* + Function: atualizaGeo + + Atualiza os valores em uma tabela do tipo DMS + + Parametros: + + dmsx {string} - valors de longitude em "d m s" + + dmsy {string} - valors de latitude em "d m s" + + prefixo {string} - prefixo da tabela (veja criaMascaraDMS) + + */ + atualizaGeo: function(dmsx,dmsy,prefixo){ + var x = dmsx.split(" "), + y = dmsy.split(" "); + $i(prefixo+"xg").value = x[0]; + $i(prefixo+"xm").value = x[1]; + $i(prefixo+"xs").value = x[2]; + $i(prefixo+"yg").value = y[0]; + $i(prefixo+"ym").value = y[1]; + $i(prefixo+"ys").value = y[2]; + }, + /* + Function: criaMascaraMetrica + + Cria uma tabela para mostrar as coordenadas no padrão métrico (x e y) + + A tabela criada receberá o id prefixo+"tabela" + + Parametro: + + prefixo {string} - prefixo para batizar os ids dos elementos que serão criados + + cixa {string} - (opcional) caixa de seleção de tipos + + Retorno: + + {string} - html com a tabela + */ + criaMascaraMetrica: function(prefixo,titulo,caixa){ + var ins = "" + + "" + + "" + + "" + + "" + + "
"+titulo+" X: "+$inputText("","",prefixo+"X","X","12","00")+" Y:"+$inputText("","",prefixo+"Y","Y","12","00")+" Zn:"+$inputText("","",prefixo+"ZN","Zona","2","--")+" "+caixa+"" + + "
"; + return ins; + }, + /* + Function: atualizaProj4 + + Atualiza os valores em uma tabela do tipo x e y com base na biblioteca Proj4 + + http://trac.osgeo.org/proj4js/wiki/UserGuide + + Parametros: + + configProj {string} + + */ + atualizaProj4: function(configProj){ + eval("temp = i3GEO.coordenadas.config."+configProj+";"); + try{ + if($i(configProj).style.display == "none") + {return;} + } + catch(e){} + if(temp.tipo === "metrica"){ + var destino = temp.defepsg; + } + if(temp.tipo === "utm"){ + var zona = i3GEO.coordenadas.geo2zonaUtm(objposicaocursor.ddx); + $i(configProj+"ZN").value = zona + if(objposicaocursor.ddy*1 > 0) + {var destino = temp.zona[zona+"N"];} + else + {var destino = temp.zona[zona+"S"];} + if(destino == undefined){ + i3GEO.util.defineValor(configProj+"X","value","?"); + i3GEO.util.defineValor(configProj+"Y","value","?"); + return; + } + } + Proj4js.defs = { + 'ORIGEM' : i3GEO.coordenadas.defOrigem, + 'DESTINO': destino + }; + var source = new Proj4js.Proj("ORIGEM"), + dest = new Proj4js.Proj("DESTINO"), + p = new Proj4js.Point(objposicaocursor.ddx,objposicaocursor.ddy); + Proj4js.transform(source, dest, p); + i3GEO.util.defineValor(configProj+"X","value",p.x); + i3GEO.util.defineValor(configProj+"Y","value",p.y); + }, + /* + Function: ativaBloco + + Mostra um tipo de coordenada e esconde os outros. + + Mostra o que estiver definido em i3GEO.coordenadas.padrao + */ + ativaBloco: function(){ + var tipos = i3GEO.util.listaChaves(i3GEO.coordenadas.config), + n = tipos.length, + temp, + i = 0; + // + //cria o HTML e a caixa de seleção + // + for(i=0;i"+temp.titulo+""; + } + } + caixa += ""; + if(i3GEO.coordenadas.formato !== "bloco") + {caixa = "";} + // + //cria o HTML + // + for(i=0;i +proj=longlat +ellps=GRS67 +no_defs no_defs <> +# Geográfica SAD69 aust_SA 4618 (mais recente) +<4618> +proj=longlat +ellps=aust_SA +no_defs <> # WGS 84 <4326> +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs no_defs <> # Corrego Alegre / UTM zone 21S @@ -14,29 +16,73 @@ <22525> +proj=utm +zone=25 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs <> # SAD69 / Brazil Polyconic <29101> +proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=aust_SA +units=m +no_defs <> -# SAD69 / UTM zone 19N -<29119> +proj=utm +zone=19 +ellps=GRS67 +units=m +no_defs <> -# SAD69 / UTM zone 20N -<29120> +proj=utm +zone=20 +ellps=GRS67 +units=m +no_defs <> -# SAD69 / UTM zone 21N -<29121> +proj=utm +zone=21 +ellps=GRS67 +units=m +no_defs <> -# SAD69 / UTM zone 22N -<29122> +proj=utm +zone=22 +ellps=GRS67 +units=m +no_defs <> -# SAD69 / UTM zone 17S -<29177> +proj=utm +zone=17 +south +ellps=GRS67 +units=m +no_defs <> -# SAD69 / UTM zone 18S -<29178> +proj=utm +zone=18 +south +ellps=GRS67 +units=m +no_defs <> -# SAD69 / UTM zone 19S -<29179> +proj=utm +zone=19 +south +ellps=GRS67 +units=m +no_defs <> -# SAD69 / UTM zone 20S -<29180> +proj=utm +zone=20 +south +ellps=GRS67 +units=m +no_defs <> -# SAD69 / UTM zone 21S -<29181> +proj=utm +zone=21 +south +ellps=GRS67 +units=m +no_defs <> -# SAD69 / UTM zone 22S -<29182> +proj=utm +zone=22 +south +ellps=GRS67 +units=m +no_defs <> -# SAD69 / UTM zone 23S -<29183> +proj=utm +zone=23 +south +ellps=GRS67 +units=m +no_defs <> -# SAD69 / UTM zone 24S -<29184> +proj=utm +zone=24 +south +ellps=GRS67 +units=m +no_defs <> -# SAD69 / UTM zone 25S -<29185> +proj=utm +zone=25 +south +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 18N +<29168> +proj=utm +zone=18 +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 19N +<29169> +proj=utm +zone=19 +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 20N +<29170> +proj=utm +zone=20 +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 21N +<29171> +proj=utm +zone=21 +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 22N +<29172> +proj=utm +zone=22 +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 17S +<29187> +proj=utm +zone=17 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 18S +<29188> +proj=utm +zone=18 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 19S +<29189> +proj=utm +zone=19 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 20S +<29190> +proj=utm +zone=20 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 21S +<29191> +proj=utm +zone=21 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 22S +<29192> +proj=utm +zone=22 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 23S +<29193> +proj=utm +zone=23 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 24S +<29194> +proj=utm +zone=24 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 25S +<29195> +proj=utm +zone=25 +south +ellps=aust_SA +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 11N +<31965> +proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 12N +<31966> +proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 13N +<31967> +proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 14N +<31968> +proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 15N +<31969> +proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 16N +<31970> +proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 17N +<31971> +proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 18N +<31972> +proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 19N +<31973> +proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 20N +<31974> +proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 21N +<31975> +proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 22N +<31976> +proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 17S +<31977> +proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 18S +<31978> +proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 19S +<31979> +proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 20S +<31980> +proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 21S +<31981> +proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 22S +<31982> +proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 23S +<31983> +proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 24S +<31984> +proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 25S +<31985> +proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> \ No newline at end of file -- libgit2 0.21.2