Commit bf1380e0470dd8a706a0e19b133a7d6ebc615fdc
1 parent
118d99ea
Exists in
master
and in
7 other branches
Inclusão de projeto gvsig na aplicação de download
Showing
2 changed files
with
99 additions
and
88 deletions
Show diff stats
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ã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ção de download pode estar sendo executada da á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ção de download pode estar sendo executada da á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é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 é um array com os NAMEs dos LAYERS que serã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á pronto, definido no metadata arquivodownload, irá 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ã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ão existir arquivo definido | |
| 1690 | - { | |
| 1703 | + else{ //se nã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"]);} | ... | ... |