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 1530 function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1531 1531 {
1532 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 1539 $versao = versao();
1538 1540 $versao = $versao["principal"];
1539 1541 $dataArquivos = array();
... ... @@ -1542,14 +1544,13 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1542 1544 //
1543 1545 $nomeRand = true;
1544 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 1548 if($base == "" or !isset($base)){
1548 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 1554 if($base == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv'.$versao.'.map')){
1554 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 1560 if($base == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){
1560 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 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 1573 $map_tmp = ms_newMapObj($base);
1571 1574 $map_file = $dir_tmp."/".nomerandomico(20).".map";
... ... @@ -1580,43 +1583,55 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1580 1583 $temasdir = $locaplic."/temas";
1581 1584 $map = ms_newMapObj($map_file);
1582 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 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 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 1645 //verifica se existe mais de um tema (grupo) montando o array com os temas
1631 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 1670 //$temas agora &eacute; um array com os NAMEs dos LAYERS que ser&atilde;o baixados
1654 1671 $radtmp = dirname($dir_tmp);
1655   - foreach ($temas as $tema)
1656   - {
  1672 + foreach ($temas as $tema){
1657 1673 $l = $map->getlayerbyname($tema);
1658 1674 $novonomelayer = $tema;
1659 1675 $nomeshp = $dir_tmp."/".$novonomelayer;
... ... @@ -1673,35 +1689,29 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1673 1689 //se existir um arquivo j&aacute; pronto, definido no metadata arquivodownload, ir&aacute; ser utilizado
1674 1690 //
1675 1691 $meta = $l->getmetadata("arquivodownload");
1676   - if($meta != "")
1677   - {
  1692 + if($meta != ""){
1678 1693 //
1679 1694 //se o arquivo n&atilde;o tiver sido copiado
1680 1695 //
1681 1696 $nomecopia = $dir_tmp."/".basename($meta);
1682   - if(file_exists($meta))
1683   - {
  1697 + if(file_exists($meta)){
1684 1698 if(!file_exists($nomecopia))
1685 1699 {copy($meta,$nomecopia);}
1686 1700 }
1687 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 1704 $dados = $l->data;
1692 1705 //
1693 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 1710 $dir = dirname($dados);
1700 1711 $arq = explode(".",basename($dados));
1701 1712 $nomecopia = $dir_tmp."/".$arq[0];
1702 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 1715 $copia = $nomecopia.".".$ext;
1706 1716 if(!file_exists($copia) && file_exists($dir."/".$arq[0].".".$ext))
1707 1717 {copy($dir."/".$arq[0].".".$ext,$copia);}
... ... @@ -1709,15 +1719,15 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
1709 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 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 1731 $resultado[] = str_replace($radtmp."/","",$nomeshp).".shp";
1722 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 1758 if(file_exists($temasdir."/".$tema.".map")){
1749 1759 $maptemp = ms_newMapObj($temasdir."/".$tema.".map");
1750 1760 $numlayers = $maptemp->numlayers;
1751   - for ($i=0;$i < $numlayers;++$i)
1752   - {
  1761 + for ($i=0;$i < $numlayers;++$i){
1753 1762 $gl = $maptemp->getlayer($i);
1754 1763 $gl->set("data","");
1755 1764 $gl->set("connection","");
... ...
pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php
... ... @@ -7,6 +7,7 @@
7 7 class gvsig2mapfile{
8 8 var $arquivoGvp;
9 9 var $xml;
  10 + var $nomesLayersAdicionados = array();
10 11 /**
11 12 * Construtor da classe
12 13 * @param string $gvp arquivo de projeto gvsig
... ... @@ -230,6 +231,7 @@ class gvsig2mapfile{
230 231 }
231 232 function data2layer($oLayer,$dataLayer){
232 233 $oLayer->set("name",$this->nomeRandomico());
  234 + $this->nomesLayersAdicionados[] = $oLayer->name;
233 235 $oLayer->set("data",$dataLayer["data"]);
234 236 if($dataLayer["connectiontype"] != "")
235 237 {$oLayer->setConnectionType($dataLayer["connectiontype"]);}
... ...