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 | 308 | { |
| 309 | 309 | var retorno = retorno.data |
| 310 | 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 | 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 | 330 | Function: dataDownloadLinks | ... | ... |
classesphp/funcoes_gerais.php
| ... | ... | @@ -1186,7 +1186,7 @@ function agrupaValores($lista,$indiceChave,$indiceValor,$tipo) |
| 1186 | 1186 | /* |
| 1187 | 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 | 1191 | parameter: |
| 1192 | 1192 | $layer - objeto layer |
| ... | ... | @@ -1199,14 +1199,6 @@ function pegaItens($layer) |
| 1199 | 1199 | else |
| 1200 | 1200 | $items = array(); |
| 1201 | 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 | 1204 | function: buscaRapida |
| ... | ... | @@ -1604,6 +1596,9 @@ function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE) |
| 1604 | 1596 | foreach ($items as $ni) |
| 1605 | 1597 | { |
| 1606 | 1598 | $temp = strtoupper($ni); |
| 1599 | + // | |
| 1600 | + //nao tem como descobrir o tamanho e tipo do campo | |
| 1601 | + // | |
| 1607 | 1602 | $def[] = array($temp,"C","254"); |
| 1608 | 1603 | } |
| 1609 | 1604 | $db = xbase_create($nomeshp.".dbf", $def); |
| ... | ... | @@ -1675,6 +1670,9 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) |
| 1675 | 1670 | include_once($locaplic."/ms_configura.php"); |
| 1676 | 1671 | else |
| 1677 | 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 | 1676 | if (($map_file == "") || (!@ms_newMapObj($map_file))) //a funcao foi chamada do aplicativo datadownload |
| 1679 | 1677 | { |
| 1680 | 1678 | if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) |
| ... | ... | @@ -1684,6 +1682,11 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) |
| 1684 | 1682 | $map_file = $dir_tmp."/".nomerandomico(20).".map"; |
| 1685 | 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 | 1690 | $temasdir = $locaplic."/temas"; |
| 1688 | 1691 | $map = ms_newMapObj($map_file); |
| 1689 | 1692 | $teste = @$map->getlayerbyname($tema); |
| ... | ... | @@ -1697,13 +1700,22 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) |
| 1697 | 1700 | ms_newLayerObj($map, $ll); |
| 1698 | 1701 | } |
| 1699 | 1702 | } |
| 1703 | + // | |
| 1704 | + //verifica novamente se o layer existe | |
| 1705 | + // | |
| 1700 | 1706 | $teste = @$map->getlayerbyname($tema); |
| 1701 | 1707 | if ($teste == "") |
| 1702 | 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 | 1712 | $map->save(str_replace(".map","tmp.map",$map_file)); |
| 1704 | 1713 | $map_file = str_replace(".map","tmp.map",$map_file); |
| 1705 | 1714 | $map = ms_newMapObj($map_file); |
| 1715 | + // | |
| 1706 | 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 | 1719 | $multilayer = 0; |
| 1708 | 1720 | $grupos = $map->getAllGroupNames(); |
| 1709 | 1721 | foreach ($grupos as $grupo) |
| ... | ... | @@ -1733,11 +1745,21 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) |
| 1733 | 1745 | { |
| 1734 | 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 | 1764 | else |
| 1743 | 1765 | { |
| ... | ... | @@ -1762,13 +1784,15 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) |
| 1762 | 1784 | copy($arq[0].".shx",$nomeshp.".shx"); |
| 1763 | 1785 | copy($arq[0].".dbf",$nomeshp.".dbf"); |
| 1764 | 1786 | } |
| 1765 | - $resultado[] = str_replace($radtmp,"",$nomeshp); | |
| 1766 | 1787 | } |
| 1767 | 1788 | else |
| 1768 | 1789 | { |
| 1769 | 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 | 1798 | return(implode(",",$resultado)); | ... | ... |
ferramentas/download/index.htm
| ... | ... | @@ -13,7 +13,7 @@ body { |
| 13 | 13 | </style> |
| 14 | 14 | </head> |
| 15 | 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 | 17 | <script language="JavaScript" type="text/javascript" src="../funcoes.js"></script> |
| 18 | 18 | <script src="../../pacotes/cpaint/cpaint2.inc.compressed.js" type="text/javascript"></script> |
| 19 | 19 | <script language="JavaScript" type="text/javascript" src="index.js"></script> | ... | ... |
ferramentas/download/index.js
| ... | ... | @@ -33,32 +33,28 @@ function download() |
| 33 | 33 | } |
| 34 | 34 | function mostraDownload(retorno) |
| 35 | 35 | { |
| 36 | + | |
| 37 | + aguarde("none") | |
| 36 | 38 | if (retorno.data != undefined) |
| 37 | 39 | { |
| 38 | 40 | var retorno = retorno.data |
| 39 | - aguarde("none") | |
| 40 | 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 | 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 | 61 | \ No newline at end of file | ... | ... |
menutemas/admin.db
No preview for this file type