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,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ã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 | //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és de NAME | 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 | //$temas agora é um array com os NAMEs dos LAYERS que serão baixados | 1670 | //$temas agora é um array com os NAMEs dos LAYERS que serã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á pronto, definido no metadata arquivodownload, irá ser utilizado | 1689 | //se existir um arquivo já pronto, definido no metadata arquivodownload, irá 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ão tiver sido copiado | 1694 | //se o arquivo nã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ão existir arquivo definido | ||
| 1690 | - { | 1703 | + else{ //se nã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"]);} |