diff --git a/admin/admin.db b/admin/admin.db index 7b5223b..c6a92bd 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/classesphp/classe_selecao.php b/classesphp/classe_selecao.php index 668e6e1..462b2a8 100644 --- a/classesphp/classe_selecao.php +++ b/classesphp/classe_selecao.php @@ -789,8 +789,11 @@ $dir_tmp - localização do diretório temporário { if(!$this->layer){return "erro";} $this->layer->setfilter(""); - $nomeshp = criaSHP($this->nome,$this->arquivo,$locaplic,$dir_tmp); + $nomeshp = criaSHP($this->nome,$this->arquivo,$locaplic,$dir_tmp,true,"",false); $novolayer = criaLayer($this->mapa,$this->layer->type,MS_DEFAULT,"Seleção de ".(pegaNome($this->layer))." (".$this->nome.")",$metaClasse="SIM"); + if($this->layer->getprojection() != ""){ + $novolayer->setprojection($this->layer->getprojection()); + } $novolayer->set("data",$nomeshp.".shp"); $novolayer->set("name",basename($nomeshp)); $down = "nao"; diff --git a/classesphp/funcoes_gerais.php b/classesphp/funcoes_gerais.php index f7f5466..cefc4d1 100644 --- a/classesphp/funcoes_gerais.php +++ b/classesphp/funcoes_gerais.php @@ -1397,11 +1397,13 @@ $nomeRand {boleano} - Gera um nome randomico para o shapefile (TRUE) ou utiliza $prj {string} - String que sera gravada no arquivo prj +$projetaToMap {boolean} - Projeta os shapes para a projecao do mapa + Retorno: {string} - nome do arquivo criado ou false se ocorrer erro */ -function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE,$prj="") +function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE,$prj="",$projetaToMap=true) { $versao = versao(); $versao = $versao["principal"]; @@ -1510,7 +1512,9 @@ function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE,$prj="") if ($res_count > 0){ for ($i = 0; $i < $res_count; ++$i){ $shape = $shapesSel[$i]; - $shape->project($projInObj, $projOutObj); + if($projetaToMap == true){ + $shape->project($projInObj, $projOutObj); + } foreach ($items as $ni){ $vreg = $shape->values[$ni]; if(strlen($vreg) > 255){ @@ -1570,6 +1574,15 @@ function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE,$prj="") if($prj != ""){ gravaDados(array($prj),$nomeshp.".prj"); } + //se prj for vazio mas existir o arquivo prj original e a projecao do shape nao estiver ativa + //copia o arquivo prj original se existir + elseif ($projetaToMap == false){ + $nomePrjOriginal = str_replace(".shp",".prj",$layer->data); + $nomeDestino = $nomeshp.".prj"; + if(file_exists($nomePrjOriginal) && !file_exists($nomeDestino)){ + copy($nomePrjOriginal,$nomeDestino); + } + } return $nomeshp; } } -- libgit2 0.21.2