From 91ab497bffb14aa1951f9fca64da7a987c447b26 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 19 Mar 2008 12:09:26 +0000 Subject: [PATCH] Correções no aplicativo datadownload. Agora o nome do shape file é igual ao do tema. --- classesjs/datadownload.js | 6 +++--- classesphp/classe_menutemas.php | 2 +- classesphp/funcoes_gerais.php | 32 +++++++++++++++++++++----------- classesphp/mapa_controle.php | 18 ++++++++++++++++-- menutemas/menutemas.xml | 1 + temas/bioma.map | 1 + 6 files changed, 43 insertions(+), 17 deletions(-) diff --git a/classesjs/datadownload.js b/classesjs/datadownload.js index 0656197..ac60215 100644 --- a/classesjs/datadownload.js +++ b/classesjs/datadownload.js @@ -102,7 +102,7 @@ function DDinicia() { if (g_tipo == "menutemas") { - var p = g_locaplic+"/classesphp/mapa_controle.php?funcao=pegalistadegrupos&map_file=''"; + var p = g_locaplic+"/classesphp/mapa_controle.php?funcao=pegalistadegrupos&map_file="; var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); @@ -359,7 +359,7 @@ tema - código do tema para download function download(tema) { document.getElementById("corpo").innerHTML = "Aguarde. Gerando arquivos..." - var p = g_locaplic+"/classesphp/mapa_controle.php?map_file=''&funcao=download&tema="+tema; + var p = g_locaplic+"/classesphp/mapa_controle.php?map_file=&funcao=download&tema="+tema; var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); @@ -376,7 +376,7 @@ function mostraDownload(retorno) { var retorno = retorno.data var arqs = retorno.split(",") - var ins = "Clique nos links para pegar os arquivos:

" + var ins = "Clique nos links para pegar os arquivos. Para obter os metadados, veja o link na árvore ao lado.

" for (var arq=0;arqxmlsistemas = ""; if ($locsistemas != "") $this->xmlsistemas = simplexml_load_file($locsistemas); - if ($map_file != "") + if (($map_file != "") && (file_exists($map_file))) { $this->mapa = ms_newMapObj($map_file); $this->arquivo = $map_file; diff --git a/classesphp/funcoes_gerais.php b/classesphp/funcoes_gerais.php index d5ae96d..7994eaa 100644 --- a/classesphp/funcoes_gerais.php +++ b/classesphp/funcoes_gerais.php @@ -1476,8 +1476,10 @@ $map_file -Nome do arquivo map file. Inclua o caminho completo no servidor. $locaplic - Diretório onde está a aplicação no servidor. $dir_tmp - Diretório temporário + +$nomeRand - Gera um nome randomico para o shapefile (TRUE) ou utiliza o nome do tema (FALSE) */ -function criaSHP($tema,$map_file,$locaplic,$dir_tmp) +function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE) { //para manipular dbf if(file_exists($locaplic."/pacotes/phpxbase/api_conversion.php")) @@ -1491,8 +1493,13 @@ function criaSHP($tema,$map_file,$locaplic,$dir_tmp) $tipol = MS_SHP_POINT; if ($layer->type == MS_LAYER_LINE){$tipol = MS_SHP_ARC;} if ($layer->type == MS_LAYER_POLYGON){$tipol = MS_SHP_POLYGON;} + if ($nomeRand) $novonomelayer = nomeRandomico(20); + else + $novonomelayer = $tema; $nomeshp = $dir_tmp."/".$novonomelayer; + if(file_exists($nomeshp.".shp")) + {return $nomeshp;} if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {$mapt = ms_newMapObj($locaplic."\\aplicmap\\novotema.map");} else @@ -1590,12 +1597,12 @@ Include: function downloadTema($map_file,$tema,$locaplic,$dir_tmp) { ini_set("max_execution_time","1800"); - if (!@ms_newMapObj($map_file)) //a funcao foi chamada do aplicativo datadownload + if(file_exists($locaplic."/ms_configura.php")) + require_once($locaplic."/ms_configura.php"); + else + require_once("../ms_configura.php"); + if (($map_file == "") || (!@ms_newMapObj($map_file))) //a funcao foi chamada do aplicativo datadownload { - if(file_exists($locaplic."/ms_configura.php")) - require_once($locaplic."/ms_configura.php"); - else - require_once("../ms_configura.php"); if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {$map_tmp = ms_newMapObj($locaplic."/aplicmap/geral1windows.map");} else @@ -1672,17 +1679,20 @@ function downloadTema($map_file,$tema,$locaplic,$dir_tmp) {$arq = $sp.$dados;} if ($arq != "") { - $novonomelayer = nomeRandomico(20); + $novonomelayer = $tema; //nomeRandomico(20); $nomeshp = $dir_tmp."/".$novonomelayer; $arq = explode(".shp",$arq); - copy($arq[0].".shp",$nomeshp.".shp"); - copy($arq[0].".shx",$nomeshp.".shx"); - copy($arq[0].".dbf",$nomeshp.".dbf"); + if(!file_exists($nomeshp.".shp")) + { + copy($arq[0].".shp",$nomeshp.".shp"); + copy($arq[0].".shx",$nomeshp.".shx"); + copy($arq[0].".dbf",$nomeshp.".dbf"); + } $resultado[] = str_replace($radtmp,"",$nomeshp); } else { - $restemp = criaSHP($tema,$map_file,$locaplic,$dir_tmp); + $restemp = criaSHP($tema,$map_file,$locaplic,$dir_tmp,FALSE); $resultado[] = str_replace($radtmp,"",$restemp); } } diff --git a/classesphp/mapa_controle.php b/classesphp/mapa_controle.php index 17529c6..6728c7e 100644 --- a/classesphp/mapa_controle.php +++ b/classesphp/mapa_controle.php @@ -79,7 +79,7 @@ Include: , , , , , */ -//error_reporting(0); +error_reporting(0); //sleep(5); @@ -134,12 +134,22 @@ $_SESSION["ultimopid"] = getmypid(); if ($funcao == "criaMapa") { session_destroy(); - include("../ms_configura.php"); + // + //primeiro é necessário carregar o ms_configura.php para pegar a variável $locaplic + // + $d = ""; + if(!file_exists($d."ms_configura.php")) + $d = "../"; + include($d."ms_configura.php"); + // + //é necessário mudar o diretório em função dos includes que são feitos pelo ms_criamapa.php + // chdir($locaplic); $interface = "mashup"; include("ms_criamapa.php"); $cp->set_data(session_id()); $cp->return_data(); + return; } if (!isset($map_file)) { @@ -1493,6 +1503,9 @@ Include: case "pegalistadegrupos": include("classe_menutemas.php"); $m = new Menutemas($map_file,$perfil,$locsistemas); + if(!isset($idmenu)){$idmenu="";} + if(!isset($listasistemas)){$listasistemas="nao";} + if(!isset($listasgrupos)){$listasgrupos="sim";} $cp->set_data(array("grupos"=>$m->pegaListaDeGrupos($idmenu,$listasistemas,$listasgrupos))); break; /* @@ -2349,6 +2362,7 @@ Lista os arquivos de um diretório. } if (!connection_aborted()) { + if(isset($map_file) && isset($postgis_mapa)) restauraCon($map_file,$postgis_mapa); $cp->return_data(); } diff --git a/menutemas/menutemas.xml b/menutemas/menutemas.xml index 1edb325..d7bacef 100644 --- a/menutemas/menutemas.xml +++ b/menutemas/menutemas.xml @@ -105,6 +105,7 @@ File: i3geo/menutemas/menutemas.xml Biomas + SIM biomaerro diff --git a/temas/bioma.map b/temas/bioma.map index 0b0cc70..85308b9 100644 --- a/temas/bioma.map +++ b/temas/bioma.map @@ -14,6 +14,7 @@ LAYER TEMA "Bioma" CLASSE "SIM" ESCALA "5000000" + DOWNLOAD "SIM" END MINSCALE 50 TRANSPARENCY 80 -- libgit2 0.21.2