Commit bf1380e0470dd8a706a0e19b133a7d6ebc615fdc

Authored by Edmar Moretti
1 parent 118d99ea

Inclusão de projeto gvsig na aplicação de download

classesphp/funcoes_gerais.php
@@ -1530,10 +1530,12 @@ Include: @@ -1530,10 +1530,12 @@ Include:
1530 function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) 1530 function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1531 { 1531 {
1532 ini_set("max_execution_time","1800"); 1532 ini_set("max_execution_time","1800");
1533 - if(file_exists($locaplic."/ms_configura.php"))  
1534 - include($locaplic."/ms_configura.php");  
1535 - else  
1536 - include("../ms_configura.php"); 1533 + if(file_exists($locaplic."/ms_configura.php")){
  1534 + include($locaplic."/ms_configura.php");
  1535 + }
  1536 + else{
  1537 + include("../ms_configura.php");
  1538 + }
1537 $versao = versao(); 1539 $versao = versao();
1538 $versao = $versao["principal"]; 1540 $versao = $versao["principal"];
1539 $dataArquivos = array(); 1541 $dataArquivos = array();
@@ -1542,14 +1544,13 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) @@ -1542,14 +1544,13 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1542 // 1544 //
1543 $nomeRand = true; 1545 $nomeRand = true;
1544 //echo $versao;exit; 1546 //echo $versao;exit;
1545 - if (($map_file == "") || (!@ms_newMapObj($map_file))) //a funcao foi chamada do aplicativo datadownload  
1546 - { 1547 + if (($map_file == "") || (!@ms_newMapObj($map_file))){ //a funcao foi chamada do aplicativo datadownload
1547 if($base == "" or !isset($base)){ 1548 if($base == "" or !isset($base)){
1548 $base = ""; 1549 $base = "";
1549 - if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN'))  
1550 - {$base = $locaplic."/aplicmap/geral1windowsv".$versao.".map";}  
1551 - else  
1552 - { 1550 + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){
  1551 + $base = $locaplic."/aplicmap/geral1windowsv".$versao.".map";
  1552 + }
  1553 + else{
1553 if($base == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv'.$versao.'.map')){ 1554 if($base == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv'.$versao.'.map')){
1554 $base = "/var/www/i3geo/aplicmap/geral1debianv".$versao.".map"; 1555 $base = "/var/www/i3geo/aplicmap/geral1debianv".$versao.".map";
1555 } 1556 }
@@ -1559,13 +1560,15 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) @@ -1559,13 +1560,15 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1559 if($base == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){ 1560 if($base == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){
1560 $base = "/opt/www/html/i3geo/aplicmap/geral1v".$versao.".map"; 1561 $base = "/opt/www/html/i3geo/aplicmap/geral1v".$versao.".map";
1561 } 1562 }
1562 - if($base == "")  
1563 - {$base = $locaplic."/aplicmap/geral1v".$versao.".map";} 1563 + if($base == ""){
  1564 + $base = $locaplic."/aplicmap/geral1v".$versao.".map";
  1565 + }
1564 } 1566 }
1565 } 1567 }
1566 else{ 1568 else{
1567 - if(!file_exists($base))  
1568 - {$base = $locaplic."/aplicmap/".$base;} 1569 + if(!file_exists($base)){
  1570 + $base = $locaplic."/aplicmap/".$base;
  1571 + }
1569 } 1572 }
1570 $map_tmp = ms_newMapObj($base); 1573 $map_tmp = ms_newMapObj($base);
1571 $map_file = $dir_tmp."/".nomerandomico(20).".map"; 1574 $map_file = $dir_tmp."/".nomerandomico(20).".map";
@@ -1580,43 +1583,55 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) @@ -1580,43 +1583,55 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1580 $temasdir = $locaplic."/temas"; 1583 $temasdir = $locaplic."/temas";
1581 $map = ms_newMapObj($map_file); 1584 $map = ms_newMapObj($map_file);
1582 $rectextent = $map->extent; 1585 $rectextent = $map->extent;
1583 - //  
1584 - //problema aqui  
1585 - //$tema pode ser diferente do nome do mapfile  
1586 - //  
1587 - $teste = @$map->getlayerbyname($tema);  
1588 - //caso o usuario tenha usado caixa alta no nome do layer  
1589 - if ($teste == "")  
1590 - {$teste = @$map->getlayerbyname(strtoupper($tema));}  
1591 - //se o layer não existir no mapfile, pega da pasta i3geo/temas e adiciona em $map  
1592 - if($teste == "")  
1593 - {  
1594 - $maptemp = ms_newMapObj($temasdir."/".$tema.".map");  
1595 - $numlayers = $maptemp->numlayers;  
1596 - for ($i=0;$i < $numlayers;++$i)  
1597 - {  
1598 - $ll = $maptemp->getlayer($i);  
1599 - $permite = $ll->getmetadata("permitedownload");  
1600 - if($permite != "nao")  
1601 - {ms_newLayerObj($map, $ll);}  
1602 - } 1586 + $extensao = ".map";
  1587 + if(file_exists($locaplic."/temas/".$tema.".gvp")){
  1588 + $extensao = ".gvp";
  1589 + }
  1590 + if($extensao == ".map"){
  1591 + //
  1592 + //problema aqui
  1593 + //$tema pode ser diferente do nome do mapfile
  1594 + //
1603 $teste = @$map->getlayerbyname($tema); 1595 $teste = @$map->getlayerbyname($tema);
1604 - if ($teste == "")  
1605 - {  
1606 - $ll = $maptemp->getlayer(0);  
1607 - $permite = $ll->getmetadata("permitedownload");  
1608 - if($permite != "nao")  
1609 - {  
1610 - ms_newLayerObj($map, $ll);  
1611 - $tema = $ll->name; 1596 + //caso o usuario tenha usado caixa alta no nome do layer
  1597 + if ($teste == ""){
  1598 + $teste = @$map->getlayerbyname(strtoupper($tema));
  1599 + }
  1600 + //se o layer n&atilde;o existir no mapfile, pega da pasta i3geo/temas e adiciona em $map
  1601 + if($teste == ""){
  1602 + $maptemp = ms_newMapObj($temasdir."/".$tema.".map");
  1603 + $numlayers = $maptemp->numlayers;
  1604 + for ($i=0;$i < $numlayers;++$i){
  1605 + $ll = $maptemp->getlayer($i);
  1606 + $permite = $ll->getmetadata("permitedownload");
  1607 + if($permite != "nao"){
  1608 + ms_newLayerObj($map, $ll);
  1609 + }
  1610 + }
  1611 + $teste = @$map->getlayerbyname($tema);
  1612 + if ($teste == ""){
  1613 + $ll = $maptemp->getlayer(0);
  1614 + $permite = $ll->getmetadata("permitedownload");
  1615 + if($permite != "nao"){
  1616 + ms_newLayerObj($map, $ll);
  1617 + $tema = $ll->name;
  1618 + }
1612 } 1619 }
1613 } 1620 }
  1621 + else{
  1622 + //remove o metadata com um nome de arquivo opcional, pois a fun&ccedil;&atilde;o de download pode estar sendo executada da &aacute;rvore de camadas
  1623 + $teste = $map->getlayerbyname($tema);
  1624 + $teste->setmetadata("arquivodownload","");
  1625 + }
1614 } 1626 }
1615 - else  
1616 - {  
1617 - //remove o metadata com um nome de arquivo opcional, pois a fun&ccedil;&atilde;o de download pode estar sendo executada da &aacute;rvore de camadas  
1618 - $teste = $map->getlayerbyname($tema);  
1619 - $teste->setmetadata("arquivodownload",""); 1627 + else{
  1628 + include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php");
  1629 + $gm = new gvsig2mapfile($locaplic."/temas/".$tema.".gvp");
  1630 + $gvsigview = $gm->getViewsNames();
  1631 + $gvsigview = $gvsigview[0];
  1632 + $dataView = $gm->getViewData($gvsigview);
  1633 + $map = $gm->addLayers($map,$gvsigview,$dataView["layerNames"]);
  1634 + $temas = $gm->nomesLayersAdicionados;
1620 } 1635 }
1621 // 1636 //
1622 //salva o mapfile com um outro nome para evitar que o mapa atual, se estiver aberto, seja modificado 1637 //salva o mapfile com um outro nome para evitar que o mapa atual, se estiver aberto, seja modificado
@@ -1630,30 +1645,31 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) @@ -1630,30 +1645,31 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1630 //verifica se existe mais de um tema (grupo) montando o array com os temas 1645 //verifica se existe mais de um tema (grupo) montando o array com os temas
1631 //os grupos podem ter o nome do layer em GROUP ao inv&eacute;s de NAME 1646 //os grupos podem ter o nome do layer em GROUP ao inv&eacute;s de NAME
1632 // 1647 //
1633 - $multilayer = 0;  
1634 - $grupos = $map->getAllGroupNames();  
1635 - foreach ($grupos as $grupo)  
1636 - {  
1637 - if ($grupo == $tema)  
1638 - {$multilayer = 1;}  
1639 - }  
1640 - if ($multilayer == 1)  
1641 - {  
1642 - $temasnx = $map->getAllLayerNames();  
1643 - foreach ($temasnx as $l)  
1644 - {  
1645 - $gl = $map->getlayerbyname($l);  
1646 - $g = $gl->group;  
1647 - if (($g == $tema) || ($l == $tema))  
1648 - {$temas[] = $l;} 1648 + if($extensao == ".map"){
  1649 + $multilayer = 0;
  1650 + $grupos = $map->getAllGroupNames();
  1651 + foreach ($grupos as $grupo){
  1652 + if ($grupo == $tema){
  1653 + $multilayer = 1;
  1654 + }
  1655 + }
  1656 + if ($multilayer == 1){
  1657 + $temasnx = $map->getAllLayerNames();
  1658 + foreach ($temasnx as $l){
  1659 + $gl = $map->getlayerbyname($l);
  1660 + $g = $gl->group;
  1661 + if (($g == $tema) || ($l == $tema)){
  1662 + $temas[] = $l;
  1663 + }
  1664 + }
  1665 + }
  1666 + if ($multilayer == 0){
  1667 + $temas[] = $tema;
1649 } 1668 }
1650 } 1669 }
1651 - if ($multilayer == 0)  
1652 - {$temas[] = $tema;}  
1653 //$temas agora &eacute; um array com os NAMEs dos LAYERS que ser&atilde;o baixados 1670 //$temas agora &eacute; um array com os NAMEs dos LAYERS que ser&atilde;o baixados
1654 $radtmp = dirname($dir_tmp); 1671 $radtmp = dirname($dir_tmp);
1655 - foreach ($temas as $tema)  
1656 - { 1672 + foreach ($temas as $tema){
1657 $l = $map->getlayerbyname($tema); 1673 $l = $map->getlayerbyname($tema);
1658 $novonomelayer = $tema; 1674 $novonomelayer = $tema;
1659 $nomeshp = $dir_tmp."/".$novonomelayer; 1675 $nomeshp = $dir_tmp."/".$novonomelayer;
@@ -1673,35 +1689,29 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) @@ -1673,35 +1689,29 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1673 //se existir um arquivo j&aacute; pronto, definido no metadata arquivodownload, ir&aacute; ser utilizado 1689 //se existir um arquivo j&aacute; pronto, definido no metadata arquivodownload, ir&aacute; ser utilizado
1674 // 1690 //
1675 $meta = $l->getmetadata("arquivodownload"); 1691 $meta = $l->getmetadata("arquivodownload");
1676 - if($meta != "")  
1677 - { 1692 + if($meta != ""){
1678 // 1693 //
1679 //se o arquivo n&atilde;o tiver sido copiado 1694 //se o arquivo n&atilde;o tiver sido copiado
1680 // 1695 //
1681 $nomecopia = $dir_tmp."/".basename($meta); 1696 $nomecopia = $dir_tmp."/".basename($meta);
1682 - if(file_exists($meta))  
1683 - { 1697 + if(file_exists($meta)){
1684 if(!file_exists($nomecopia)) 1698 if(!file_exists($nomecopia))
1685 {copy($meta,$nomecopia);} 1699 {copy($meta,$nomecopia);}
1686 } 1700 }
1687 $resultado[] = basename($dir_tmp)."/".basename($nomecopia); 1701 $resultado[] = basename($dir_tmp)."/".basename($nomecopia);
1688 } 1702 }
1689 - else //se n&atilde;o existir arquivo definido  
1690 - { 1703 + else{ //se n&atilde;o existir arquivo definido
1691 $dados = $l->data; 1704 $dados = $l->data;
1692 // 1705 //
1693 //se for imagem, copia o arquivo 1706 //se for imagem, copia o arquivo
1694 // 1707 //
1695 - if($l->type == MS_LAYER_RASTER)  
1696 - {  
1697 - if (file_exists($dados))  
1698 - { 1708 + if($l->type == MS_LAYER_RASTER){
  1709 + if (file_exists($dados)){
1699 $dir = dirname($dados); 1710 $dir = dirname($dados);
1700 $arq = explode(".",basename($dados)); 1711 $arq = explode(".",basename($dados));
1701 $nomecopia = $dir_tmp."/".$arq[0]; 1712 $nomecopia = $dir_tmp."/".$arq[0];
1702 $exts = array("jpg","jpw","tif","tifw","tfw","png","pngw","jpgw","wld","img"); 1713 $exts = array("jpg","jpw","tif","tifw","tfw","png","pngw","jpgw","wld","img");
1703 - foreach($exts as $ext)  
1704 - { 1714 + foreach($exts as $ext){
1705 $copia = $nomecopia.".".$ext; 1715 $copia = $nomecopia.".".$ext;
1706 if(!file_exists($copia) && file_exists($dir."/".$arq[0].".".$ext)) 1716 if(!file_exists($copia) && file_exists($dir."/".$arq[0].".".$ext))
1707 {copy($dir."/".$arq[0].".".$ext,$copia);} 1717 {copy($dir."/".$arq[0].".".$ext,$copia);}
@@ -1709,15 +1719,15 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) @@ -1709,15 +1719,15 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1709 $resultado[] = basename($dir_tmp)."/".basename($copia); 1719 $resultado[] = basename($dir_tmp)."/".basename($copia);
1710 } 1720 }
1711 } 1721 }
1712 - else  
1713 - {return "erro";} 1722 + else{
  1723 + return "erro";
  1724 + }
1714 } 1725 }
1715 - else //se for vetorial, extrai o arquivo  
1716 - { 1726 + else{ //se for vetorial, extrai o arquivo
1717 $nomeshp = criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand); 1727 $nomeshp = criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand);
1718 - if($nomeshp == false)  
1719 - {return array("arquivos"=>"<span style=color:red >Ocorreu um erro, tente novamente","nreg"=>0);}  
1720 - 1728 + if($nomeshp == false){
  1729 + return array("arquivos"=>"<span style=color:red >Ocorreu um erro, tente novamente","nreg"=>0);
  1730 + }
1721 $resultado[] = str_replace($radtmp."/","",$nomeshp).".shp"; 1731 $resultado[] = str_replace($radtmp."/","",$nomeshp).".shp";
1722 $dataArquivos[] = date ("F d Y H:i:s.",filemtime($nomeshp.".shp")); 1732 $dataArquivos[] = date ("F d Y H:i:s.",filemtime($nomeshp.".shp"));
1723 1733
@@ -1748,8 +1758,7 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) @@ -1748,8 +1758,7 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1748 if(file_exists($temasdir."/".$tema.".map")){ 1758 if(file_exists($temasdir."/".$tema.".map")){
1749 $maptemp = ms_newMapObj($temasdir."/".$tema.".map"); 1759 $maptemp = ms_newMapObj($temasdir."/".$tema.".map");
1750 $numlayers = $maptemp->numlayers; 1760 $numlayers = $maptemp->numlayers;
1751 - for ($i=0;$i < $numlayers;++$i)  
1752 - { 1761 + for ($i=0;$i < $numlayers;++$i){
1753 $gl = $maptemp->getlayer($i); 1762 $gl = $maptemp->getlayer($i);
1754 $gl->set("data",""); 1763 $gl->set("data","");
1755 $gl->set("connection",""); 1764 $gl->set("connection","");
pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 class gvsig2mapfile{ 7 class gvsig2mapfile{
8 var $arquivoGvp; 8 var $arquivoGvp;
9 var $xml; 9 var $xml;
  10 + var $nomesLayersAdicionados = array();
10 /** 11 /**
11 * Construtor da classe 12 * Construtor da classe
12 * @param string $gvp arquivo de projeto gvsig 13 * @param string $gvp arquivo de projeto gvsig
@@ -230,6 +231,7 @@ class gvsig2mapfile{ @@ -230,6 +231,7 @@ class gvsig2mapfile{
230 } 231 }
231 function data2layer($oLayer,$dataLayer){ 232 function data2layer($oLayer,$dataLayer){
232 $oLayer->set("name",$this->nomeRandomico()); 233 $oLayer->set("name",$this->nomeRandomico());
  234 + $this->nomesLayersAdicionados[] = $oLayer->name;
233 $oLayer->set("data",$dataLayer["data"]); 235 $oLayer->set("data",$dataLayer["data"]);
234 if($dataLayer["connectiontype"] != "") 236 if($dataLayer["connectiontype"] != "")
235 {$oLayer->setConnectionType($dataLayer["connectiontype"]);} 237 {$oLayer->setConnectionType($dataLayer["connectiontype"]);}