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