Commit c36a6a2396b7c38b5caddf32d4537ed764d40863
1 parent
fa64b543
Exists in
master
and in
7 other branches
Aprimoramento das funções de download (documentação e rotinas de download de imagens)
Showing
6 changed files
with
63 additions
and
42 deletions
Show diff stats
classesjs/datadownload.js
| @@ -308,21 +308,23 @@ function mostraDownload(retorno) | @@ -308,21 +308,23 @@ function mostraDownload(retorno) | ||
| 308 | { | 308 | { |
| 309 | var retorno = retorno.data | 309 | var retorno = retorno.data |
| 310 | var arqs = retorno.split(",") | 310 | var arqs = retorno.split(",") |
| 311 | - var ins = "<b>Clique nos links para pegar os arquivos. Para obter os metadados, veja o link na árvore ao lado (o link é mostrado ao expandir o nó correspondente ao tema).</b><br><br>" | ||
| 312 | - for (var arq=0;arq<arqs.length;arq++) | 311 | + var n = arqs.length; |
| 312 | + if(retorno == "erro") | ||
| 313 | + {var ins = "<p style=color:red >Ocorreu um erro. O tema não foi encontrado. Pode ser que o código do tema não existe na definição do mapfile. Informe o administrador do sistema.<br>";} | ||
| 314 | + else | ||
| 313 | { | 315 | { |
| 314 | - var temp = arqs[arq].split("."); | ||
| 315 | - arqs[arq] = temp[0]; | ||
| 316 | - ins += "<a href='"+window.location.protocol+"//"+window.location.host+arqs[arq]+".shp'>"+arqs[arq]+".shp<br>" | ||
| 317 | - ins += "<a href='"+window.location.protocol+"//"+window.location.host+arqs[arq]+".dbf'>"+arqs[arq]+".dbf<br>" | ||
| 318 | - ins += "<a href='"+window.location.protocol+"//"+window.location.host+arqs[arq]+".shx'>"+arqs[arq]+".shx<br><br>" | 316 | + var ins = "<b>Clique nos links para pegar os arquivos. Para obter os metadados, veja o link na árvore ao lado (o link é mostrado ao expandir o nó correspondente ao tema).</b><br><br>" |
| 317 | + for (var arq=0;arq<n;arq++) | ||
| 318 | + { | ||
| 319 | + ins += "<a href='"+window.location.protocol+"//"+window.location.host+"/"+arqs[arq]+"'>"+arqs[arq]+"<br>" | ||
| 320 | + } | ||
| 319 | } | 321 | } |
| 320 | - document.getElementById("corpo").innerHTML = ins | ||
| 321 | } | 322 | } |
| 322 | else | 323 | else |
| 323 | { | 324 | { |
| 324 | - document.getElementById("corpo").innerHTML = "<p style=color:red >Ocorreu um erro<br>" | 325 | + var ins = "<p style=color:red >Ocorreu um erro<br>" |
| 325 | } | 326 | } |
| 327 | + document.getElementById("corpo").innerHTML = ins | ||
| 326 | } | 328 | } |
| 327 | /* | 329 | /* |
| 328 | Function: dataDownloadLinks | 330 | Function: dataDownloadLinks |
classesphp/funcoes_gerais.php
| @@ -1186,7 +1186,7 @@ function agrupaValores($lista,$indiceChave,$indiceValor,$tipo) | @@ -1186,7 +1186,7 @@ function agrupaValores($lista,$indiceChave,$indiceValor,$tipo) | ||
| 1186 | /* | 1186 | /* |
| 1187 | function: pegaItens | 1187 | function: pegaItens |
| 1188 | 1188 | ||
| 1189 | -Pega os itens de um tema e armazena em cache. | 1189 | +Pega os itens da tabela de atributos de um tema. |
| 1190 | 1190 | ||
| 1191 | parameter: | 1191 | parameter: |
| 1192 | $layer - objeto layer | 1192 | $layer - objeto layer |
| @@ -1199,14 +1199,6 @@ function pegaItens($layer) | @@ -1199,14 +1199,6 @@ function pegaItens($layer) | ||
| 1199 | else | 1199 | else |
| 1200 | $items = array(); | 1200 | $items = array(); |
| 1201 | return $items; | 1201 | return $items; |
| 1202 | -/* | ||
| 1203 | - if ($layer->type != 3) | ||
| 1204 | - {$layer->open();} | ||
| 1205 | - $items = $layer->getItems(); | ||
| 1206 | - if ($layer->type != 3) | ||
| 1207 | - {$layer->close();} | ||
| 1208 | - return $items; | ||
| 1209 | -*/ | ||
| 1210 | } | 1202 | } |
| 1211 | /* | 1203 | /* |
| 1212 | function: buscaRapida | 1204 | function: buscaRapida |
| @@ -1604,6 +1596,9 @@ function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE) | @@ -1604,6 +1596,9 @@ function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE) | ||
| 1604 | foreach ($items as $ni) | 1596 | foreach ($items as $ni) |
| 1605 | { | 1597 | { |
| 1606 | $temp = strtoupper($ni); | 1598 | $temp = strtoupper($ni); |
| 1599 | + // | ||
| 1600 | + //nao tem como descobrir o tamanho e tipo do campo | ||
| 1601 | + // | ||
| 1607 | $def[] = array($temp,"C","254"); | 1602 | $def[] = array($temp,"C","254"); |
| 1608 | } | 1603 | } |
| 1609 | $db = xbase_create($nomeshp.".dbf", $def); | 1604 | $db = xbase_create($nomeshp.".dbf", $def); |
| @@ -1675,6 +1670,9 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) | @@ -1675,6 +1670,9 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) | ||
| 1675 | include_once($locaplic."/ms_configura.php"); | 1670 | include_once($locaplic."/ms_configura.php"); |
| 1676 | else | 1671 | else |
| 1677 | include_once("../ms_configura.php"); | 1672 | include_once("../ms_configura.php"); |
| 1673 | + // | ||
| 1674 | + //cria o arquivo mapfile, caso ele não exista, que servirá de base para obtenção dos dados | ||
| 1675 | + // | ||
| 1678 | if (($map_file == "") || (!@ms_newMapObj($map_file))) //a funcao foi chamada do aplicativo datadownload | 1676 | if (($map_file == "") || (!@ms_newMapObj($map_file))) //a funcao foi chamada do aplicativo datadownload |
| 1679 | { | 1677 | { |
| 1680 | if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) | 1678 | if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) |
| @@ -1684,6 +1682,11 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) | @@ -1684,6 +1682,11 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) | ||
| 1684 | $map_file = $dir_tmp."/".nomerandomico(20).".map"; | 1682 | $map_file = $dir_tmp."/".nomerandomico(20).".map"; |
| 1685 | $map_tmp->save($map_file); | 1683 | $map_tmp->save($map_file); |
| 1686 | } | 1684 | } |
| 1685 | + // | ||
| 1686 | + //verifica se o tema existe no mapfile | ||
| 1687 | + //se não existir, tenta inserir com base no mapfile existente no diretório temas | ||
| 1688 | + //o tema pode existir se a função estiver sendo chamada da árvore de temas de um mapa já aberto | ||
| 1689 | + // | ||
| 1687 | $temasdir = $locaplic."/temas"; | 1690 | $temasdir = $locaplic."/temas"; |
| 1688 | $map = ms_newMapObj($map_file); | 1691 | $map = ms_newMapObj($map_file); |
| 1689 | $teste = @$map->getlayerbyname($tema); | 1692 | $teste = @$map->getlayerbyname($tema); |
| @@ -1697,13 +1700,22 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) | @@ -1697,13 +1700,22 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) | ||
| 1697 | ms_newLayerObj($map, $ll); | 1700 | ms_newLayerObj($map, $ll); |
| 1698 | } | 1701 | } |
| 1699 | } | 1702 | } |
| 1703 | + // | ||
| 1704 | + //verifica novamente se o layer existe | ||
| 1705 | + // | ||
| 1700 | $teste = @$map->getlayerbyname($tema); | 1706 | $teste = @$map->getlayerbyname($tema); |
| 1701 | if ($teste == "") | 1707 | if ($teste == "") |
| 1702 | {return "erro";} | 1708 | {return "erro";} |
| 1709 | + // | ||
| 1710 | + //salva o mapfile com um outro nome para evitar que o mapa atual, se estiver aberto, seja modificado | ||
| 1711 | + // | ||
| 1703 | $map->save(str_replace(".map","tmp.map",$map_file)); | 1712 | $map->save(str_replace(".map","tmp.map",$map_file)); |
| 1704 | $map_file = str_replace(".map","tmp.map",$map_file); | 1713 | $map_file = str_replace(".map","tmp.map",$map_file); |
| 1705 | $map = ms_newMapObj($map_file); | 1714 | $map = ms_newMapObj($map_file); |
| 1715 | + // | ||
| 1706 | //verifica se existe mais de um tema (grupo) montando o array com os temas | 1716 | //verifica se existe mais de um tema (grupo) montando o array com os temas |
| 1717 | + //os grupos podem ter o nome do layer em GROUP ao invés de NAME | ||
| 1718 | + // | ||
| 1707 | $multilayer = 0; | 1719 | $multilayer = 0; |
| 1708 | $grupos = $map->getAllGroupNames(); | 1720 | $grupos = $map->getAllGroupNames(); |
| 1709 | foreach ($grupos as $grupo) | 1721 | foreach ($grupos as $grupo) |
| @@ -1733,11 +1745,21 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) | @@ -1733,11 +1745,21 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) | ||
| 1733 | { | 1745 | { |
| 1734 | if (file_exists($dados)) | 1746 | if (file_exists($dados)) |
| 1735 | { | 1747 | { |
| 1736 | - $arq = basename($dados); | ||
| 1737 | - $resultado[] = str_replace("/img","/",$map->web->imageurl).$arq; | ||
| 1738 | - $arq = explode(".",$arq); | ||
| 1739 | - $resultado[] = str_replace("/img","/",$map->web->imageurl).$arq[0].".wld"; | 1748 | + $dir = dirname($dados); |
| 1749 | + $arq = explode(".",basename($dados)); | ||
| 1750 | + $nomecopia = $dir_tmp."/".$arq[0]; | ||
| 1751 | + $exts = array("jpg","jpw","tif","tifw","tfw","png","pngw","jpgw","wld"); | ||
| 1752 | + foreach($exts as $ext) | ||
| 1753 | + { | ||
| 1754 | + $copia = $nomecopia.".".$ext; | ||
| 1755 | + if(!file_exists($copia) && file_exists($dir."/".$arq[0].".".$ext)) | ||
| 1756 | + {copy($dir."/".$arq[0].".".$ext,$copia);} | ||
| 1757 | + if(file_exists($copia)) | ||
| 1758 | + $resultado[] = basename($dir_tmp)."/".basename($copia); | ||
| 1759 | + } | ||
| 1740 | } | 1760 | } |
| 1761 | + else | ||
| 1762 | + {return "erro";} | ||
| 1741 | } | 1763 | } |
| 1742 | else | 1764 | else |
| 1743 | { | 1765 | { |
| @@ -1762,13 +1784,15 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) | @@ -1762,13 +1784,15 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) | ||
| 1762 | copy($arq[0].".shx",$nomeshp.".shx"); | 1784 | copy($arq[0].".shx",$nomeshp.".shx"); |
| 1763 | copy($arq[0].".dbf",$nomeshp.".dbf"); | 1785 | copy($arq[0].".dbf",$nomeshp.".dbf"); |
| 1764 | } | 1786 | } |
| 1765 | - $resultado[] = str_replace($radtmp,"",$nomeshp); | ||
| 1766 | } | 1787 | } |
| 1767 | else | 1788 | else |
| 1768 | { | 1789 | { |
| 1769 | $restemp = criaSHP($tema,$map_file,$locaplic,$dir_tmp,FALSE); | 1790 | $restemp = criaSHP($tema,$map_file,$locaplic,$dir_tmp,FALSE); |
| 1770 | - $resultado[] = str_replace($radtmp,"",$restemp); | 1791 | + $novonomelayer = str_replace($radtmp,"",$restemp); |
| 1771 | } | 1792 | } |
| 1793 | + $resultado[] = basename($dir_tmp)."/".$novonomelayer.".shp"; | ||
| 1794 | + $resultado[] = basename($dir_tmp)."/".$novonomelayer.".dbf"; | ||
| 1795 | + $resultado[] = basename($dir_tmp)."/".$novonomelayer.".shx"; | ||
| 1772 | } | 1796 | } |
| 1773 | } | 1797 | } |
| 1774 | return(implode(",",$resultado)); | 1798 | return(implode(",",$resultado)); |
ferramentas/download/index.htm
| @@ -13,7 +13,7 @@ body { | @@ -13,7 +13,7 @@ body { | ||
| 13 | </style> | 13 | </style> |
| 14 | </head> | 14 | </head> |
| 15 | <body style='background-color:white;margin:0px'> | 15 | <body style='background-color:white;margin:0px'> |
| 16 | -<div style="top:0px;left:10px;width:90%;" id='resultado' > Aguarde...</div> | 16 | +<div style="top:0px;left:10px;width:90%;overflow:auto;height:150px;" id='resultado' > Aguarde...</div> |
| 17 | <script language="JavaScript" type="text/javascript" src="../funcoes.js"></script> | 17 | <script language="JavaScript" type="text/javascript" src="../funcoes.js"></script> |
| 18 | <script src="../../pacotes/cpaint/cpaint2.inc.compressed.js" type="text/javascript"></script> | 18 | <script src="../../pacotes/cpaint/cpaint2.inc.compressed.js" type="text/javascript"></script> |
| 19 | <script language="JavaScript" type="text/javascript" src="index.js"></script> | 19 | <script language="JavaScript" type="text/javascript" src="index.js"></script> |
ferramentas/download/index.js
| @@ -33,32 +33,28 @@ function download() | @@ -33,32 +33,28 @@ function download() | ||
| 33 | } | 33 | } |
| 34 | function mostraDownload(retorno) | 34 | function mostraDownload(retorno) |
| 35 | { | 35 | { |
| 36 | + | ||
| 37 | + aguarde("none") | ||
| 36 | if (retorno.data != undefined) | 38 | if (retorno.data != undefined) |
| 37 | { | 39 | { |
| 38 | var retorno = retorno.data | 40 | var retorno = retorno.data |
| 39 | - aguarde("none") | ||
| 40 | var arqs = retorno.split(",") | 41 | var arqs = retorno.split(",") |
| 41 | - var ins = "Clique nos links para pegar os arquivos e gravar em seu computador. Caso vc deseje alterar os nomes, mantenha as extensões e use o mesmo nome para cada arquivo.<br><br>" | ||
| 42 | - for (arq=0;arq<arqs.length;arq++) | 42 | + var n = arqs.length; |
| 43 | + if(retorno == "erro") | ||
| 44 | + {var ins = "<p style=color:red >Ocorreu um erro. O tema não foi encontrado. Pode ser que o código do tema não existe na definição do mapfile. Informe o administrador do sistema.<br>";} | ||
| 45 | + else | ||
| 43 | { | 46 | { |
| 44 | - var temp = arqs[arq].split("."); | ||
| 45 | - if ((temp[1] == "png") || (temp[1] == "tif") || (temp[1] == "wld")) | ||
| 46 | - { | ||
| 47 | - ins += "<a href='"+window.location.protocol+"//"+window.location.host+arqs[arq]+"'>"+arqs[arq]+"<br>" | ||
| 48 | - } | ||
| 49 | - else | 47 | + var ins = "<b>Clique nos links para pegar os arquivos.</b><br><br>" |
| 48 | + for (var arq=0;arq<n;arq++) | ||
| 50 | { | 49 | { |
| 51 | - arqs[arq] = temp[0]; | ||
| 52 | - ins += "<a href='"+window.location.protocol+"//"+window.location.host+arqs[arq]+".shp'>"+arqs[arq]+".shp<br>" | ||
| 53 | - ins += "<a href='"+window.location.protocol+"//"+window.location.host+arqs[arq]+".dbf'>"+arqs[arq]+".dbf<br>" | ||
| 54 | - ins += "<a href='"+window.location.protocol+"//"+window.location.host+arqs[arq]+".shx'>"+arqs[arq]+".shx<br><br>" | 50 | + ins += "<a href='"+window.location.protocol+"//"+window.location.host+"/"+arqs[arq]+"'>"+arqs[arq]+"<br>" |
| 55 | } | 51 | } |
| 56 | } | 52 | } |
| 57 | - $i("resultado").innerHTML = ins | ||
| 58 | } | 53 | } |
| 59 | else | 54 | else |
| 60 | { | 55 | { |
| 61 | - $i("resultado").innerHTML = "<p style=color:red >Ocorreu um erro<br>" | 56 | + var ins = "<p style=color:red >Ocorreu um erro<br>" |
| 62 | } | 57 | } |
| 63 | - aguarde("none") | 58 | + document.getElementById("resultado").innerHTML = ins |
| 59 | + | ||
| 64 | } | 60 | } |
| 65 | \ No newline at end of file | 61 | \ No newline at end of file |
menutemas/admin.db
No preview for this file type
temas/biomashp.map
| @@ -2,7 +2,6 @@ MAP | @@ -2,7 +2,6 @@ MAP | ||
| 2 | SYMBOLSET ../symbols/simbolos.sym | 2 | SYMBOLSET ../symbols/simbolos.sym |
| 3 | FONTSET "../symbols/fontes.txt" | 3 | FONTSET "../symbols/fontes.txt" |
| 4 | LAYER | 4 | LAYER |
| 5 | - CONNECTION "" | ||
| 6 | DATA "c:\ms4w\apache\htdocs\geodados\brasil\vegetacao\biomas.shp" | 5 | DATA "c:\ms4w\apache\htdocs\geodados\brasil\vegetacao\biomas.shp" |
| 7 | METADATA | 6 | METADATA |
| 8 | "CLASSE" "SIM" | 7 | "CLASSE" "SIM" |