From ca448575a2bf55ee43460f51d239ca8c8f5759c1 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Tue, 11 Feb 2014 00:07:19 +0000 Subject: [PATCH] $1 --- classesjs/datadownload.js | 8 ++++++-- classesphp/classe_selecao.php | 6 +++--- classesphp/funcoes_gerais.php | 33 ++++++++++++++++++++++++++++----- classesphp/mapa_controle.php | 10 ++++++++++ datadownload.htm | 2 +- 5 files changed, 48 insertions(+), 11 deletions(-) diff --git a/classesjs/datadownload.js b/classesjs/datadownload.js index 3fbbebe..03240c5 100644 --- a/classesjs/datadownload.js +++ b/classesjs/datadownload.js @@ -279,10 +279,14 @@ function datadownload_download(obj) YAHOO.datadownloadLista.panel.show(); //document.getElementById("corpo").innerHTML = "Aguarde. Gerando arquivos..." var p = g_locaplic+"/classesphp/mapa_controle.php?map_file=&funcao=download3&tema="+obj.title; - //caso a camada venha do sistema de metadados estatisticos + //caso a camada venha do sistema de metadados estatisticos e seja uma variavel if(obj.name && obj.name === "metaestat"){ p = g_locaplic+"/classesphp/mapa_controle.php?map_file=&funcao=download3&id_medida_variavel="+obj.title; } + if(obj.name && obj.name === "regioesmetaestat"){ + p = g_locaplic+"/classesphp/mapa_controle.php?map_file=&funcao=download3&codigo_tipo_regiao="+obj.title.replace("metaregiao_",""); + } + temaEscolhidoDownload = obj.title; var cp = new cpaint(); //cp.set_debug(2) @@ -375,4 +379,4 @@ function dataDownloadLinks(rss) cp.call(p,"listaRSSws2",monta); } } -} \ No newline at end of file +} diff --git a/classesphp/classe_selecao.php b/classesphp/classe_selecao.php index be027dd..43f0ced 100644 --- a/classesphp/classe_selecao.php +++ b/classesphp/classe_selecao.php @@ -627,12 +627,12 @@ function: selecaoLimpa Limpa a seleção do tema. */ - function selecaoLimpa() + function selecaoLimpa($apagaQyfile=false) { //apaga o arquivo do i3geo com os ids selecionados if(file_exists($this->qyfileTema)) {unlink($this->qyfileTema);} - if ($this->nome != "") //limpa de um tema + if ($this->nome != "" && $apagaQyfile == false) //limpa de um tema { if(!$this->layer){return "erro";} if (file_exists($this->qyfile)) @@ -955,4 +955,4 @@ $geos - array com os dados fclose($fp); } } -?> \ No newline at end of file +?> diff --git a/classesphp/funcoes_gerais.php b/classesphp/funcoes_gerais.php index 6f8b697..b76d9e3 100644 --- a/classesphp/funcoes_gerais.php +++ b/classesphp/funcoes_gerais.php @@ -1421,7 +1421,6 @@ function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE) else {$novonomelayer = $tema;} - $novonomelayer = str_replace(".","-",$novonomelayer); $nomeshp = $dir_tmp."/".$novonomelayer; @@ -1460,7 +1459,6 @@ function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE) } else{ $shapesSel = retornaShapesSelecionados($layer,$map_file,$map);// - $items = pegaItens($layer); // cria o dbf $def = array(); @@ -1483,7 +1481,6 @@ function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE) $novoshpf = ms_newShapefileObj($nomeshp.".shp", -2); $res_count = count($shapesSel); - if ($res_count > 0){ for ($i = 0; $i < $res_count; ++$i){ $shape = $shapesSel[$i]; @@ -1649,6 +1646,7 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) } //se o layer não existir no mapfile, pega da pasta i3geo/temas e adiciona em $map if($teste == ""){ + //tema pode ser o nome de um arquivo mapfile if(file_exists($tema.".map")){ $maptemp = ms_newMapObj($tema.".map"); $tema = basename($tema); @@ -1689,12 +1687,18 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) $map = $gm->addLayers($map,$gvsigview,$dataView["layerNames"]); $temas = array_merge($temas,$gm->nomesLayersAdicionados); } - //$temas = $gm->nomesLayersAdicionados; } // //salva o mapfile com um outro nome para evitar que o mapa atual, se estiver aberto, seja modificado // - $map_file = str_replace(".map","tmp.map",$map_file); + //verifica se tem query e copia o arquivo + $qyfile = str_replace(".map",".qy",$map_file); + $nr = nomerandomico(10); + $map_file = str_replace(".map",$nr."tmp.map",$map_file); + if(file_exists($qyfile)){ + $nqyfile = str_replace(".map",".qy",$map_file); + copy($qyfile,$nqyfile); + } $map->save($map_file); substituiCon($map_file,$postgis_mapa); //$map_file agora contem os LAYERS necessários @@ -1782,6 +1786,25 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) } } else{ //se for vetorial, extrai o arquivo + // + //verifica se existe selecao, caso contrario, faz a selecao baseada na extensao + //do mapfile + // + include(dirname(__FILE__)."/../classesphp/classe_selecao.php"); + $sel = New Selecao($map_file,$tema); + //carrega a query para ver se o layer possui selecao ou nao + $numSel = 0; + if(file_exists($sel->qyfile)){ + $map->loadquery($sel->qyfile); + $numSel = $l->getNumresults(); + } + // + //se nao existir selecao seleciona por box + // + if(!file_exists($sel->qyfile) || $numSel < 1){ + $box = $rectextent->minx." ".$rectextent->miny." ".$rectextent->maxx." ".$rectextent->maxy; + $sel->selecaoBOX("novo",$box); + } $nomeshp = criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand); if($nomeshp == false){ return array("arquivos"=>"Ocorreu um erro, tente novamente","nreg"=>0); diff --git a/classesphp/mapa_controle.php b/classesphp/mapa_controle.php index cfd0558..39093d9 100644 --- a/classesphp/mapa_controle.php +++ b/classesphp/mapa_controle.php @@ -890,6 +890,16 @@ Gera os arquivos para download de um tema forçando um mapfile vazio. */ case "DOWNLOAD3": //caso o tema tenha de vir do sistema de metadados estatisticos + + //pode ser uma regiao cadastrada no sistema de metadados + if(isset($codigo_tipo_regiao) && $codigo_tipo_regiao != ""){ + include(dirname(__FILE__)."/../admin/php/classe_metaestat.php"); + $m = new Metaestat(); + $m->nomecache = "ogcmetaestatreg".$codigo_tipo_regiao; + $tema = $m->mapfileTipoRegiao($codigo_tipo_regiao); + $tema = str_replace(".map","",$tema["mapfile"]); + } + //pode ser uma medida de uma variavel if(isset($id_medida_variavel) && $id_medida_variavel != ""){ include(dirname(__FILE__)."/../admin/php/classe_metaestat.php"); $m = new Metaestat(); diff --git a/datadownload.htm b/datadownload.htm index fc44867..658a019 100644 --- a/datadownload.htm +++ b/datadownload.htm @@ -6,7 +6,7 @@ - +