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"]);} | ... | ... |