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