From c53f9f280e2d2724441a794428979967f6c20475 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Fri, 4 Oct 2013 02:06:47 +0000 Subject: [PATCH] $1 --- admin/admin.db | Bin 212992 -> 0 bytes classesphp/classe_analise.php | 66 +++++++++++++++++++++++++++++++++++++----------------------------- ferramentas/buffer/dicionario.js | 10 ++++++++-- ferramentas/buffer/exec.php | 2 +- ferramentas/buffer/index.js | 56 ++++++++++++++++++++++++++++++++++++++++++++------------ 5 files changed, 90 insertions(+), 44 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index e1f1c3c..cd96823 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/classesphp/classe_analise.php b/classesphp/classe_analise.php index cb4cb3e..0f721b7 100644 --- a/classesphp/classe_analise.php +++ b/classesphp/classe_analise.php @@ -100,24 +100,24 @@ $ext - Extensão geográfica do mapa */ function __construct($map_file,$tema="",$locaplic="",$ext="") { - //error_reporting(0); + //error_reporting(0); $this->qyfile = str_replace(".map",".qy",$map_file); - include_once(dirname(__FILE__)."/funcoes_gerais.php"); + include_once(dirname(__FILE__)."/funcoes_gerais.php"); if(empty($locaplic)){ $locaplic = dirname(__FILE__)."/.."; } - $this->v = versao(); + $this->v = versao(); $this->v = $this->v["principal"]; $this->dbaseExiste = false; if(function_exists("dbase_create")) {$this->dbaseExiste = true;} - $this->locaplic = $locaplic; - $this->mapa = ms_newMapObj($map_file); - $this->arquivo = $map_file; - if($tema != "" && @$this->mapa->getlayerbyname($tema)) - {$this->layer = $this->mapa->getlayerbyname($tema);} - $this->nome = $tema; - $this->diretorio = dirname($this->arquivo); + $this->locaplic = $locaplic; + $this->mapa = ms_newMapObj($map_file); + $this->arquivo = $map_file; + if($tema != "" && @$this->mapa->getlayerbyname($tema)) + {$this->layer = $this->mapa->getlayerbyname($tema);} + $this->nome = $tema; + $this->diretorio = dirname($this->arquivo); if($ext && $ext != ""){ $e = explode(" ",$ext); $extatual = $this->mapa->extent; @@ -169,10 +169,10 @@ Method: salva Salva o mapfile atual */ - function salva() - { - if (connection_aborted()){exit();} - $this->mapa->save($this->arquivo); + function salva() + { + if (connection_aborted()){exit();} + $this->mapa->save($this->arquivo); } /* @@ -733,7 +733,7 @@ $locaplic - diretório da aplicação i3geo { if (file_exists($nomearq)) { - if($this->dbaseExiste == false){ + if($this->dbaseExiste == false){ if(file_exists($this->locaplic."/pacotes/phpxbase/api_conversion.php")) include_once($this->locaplic."/pacotes/phpxbase/api_conversion.php"); else @@ -827,7 +827,7 @@ $locaplic - diretório da aplicação i3geo { if (file_exists($nomearq)) { - if($this->dbaseExiste == false){ + if($this->dbaseExiste == false){ if(file_exists($this->locaplic."/pacotes/phpxbase/api_conversion.php")) include_once($this->locaplic."/pacotes/phpxbase/api_conversion.php"); else @@ -1303,11 +1303,15 @@ $unir - sim|nao indica se os elementos selecionados deverão ser unidos em $wkt - (opcional) elemento no formato wkt para o qual o buffer será gerado. Só de ve ser definido se $this->nome for vazio, ou seja se o parâmetro "tema" não tiver sido fornecido ao construtor da classe +$multiplicar - (opcional) multiplicar os valores por + +$itemdistancia - (opcional) coluna com os valores + return: nome do layer criado com o buffer. */ - function criaBuffer($distancia,$locaplic,$unir="nao",$wkt="") + function criaBuffer($distancia,$locaplic,$unir="nao",$wkt="",$multiplicar=1,$itemdistancia="") { set_time_limit(180); error_reporting(0); @@ -1345,18 +1349,22 @@ nome do layer criado com o buffer. $dd1->setXY($rect->minx, $rect->miny); $poPoint->project($projInObj, $projOutObj); $dd2 = ms_newpointobj(); - $dd2->setXY(($poPoint->x + $distancia), $poPoint->y); - $dd2->project($projOutObj,$projInObj); - $d = $dd1->distanceToPoint($dd2); - if ($distancia < 0){$d = $d * -1;} - //calcula a distancia 29100 - //gera o buffer - $buffers[] = $shape->buffer($d); - $shapes[] = $shape; + if($itemdistancia != ""){ + $distancia = $shape->values[$itemdistancia]; + } + if(is_numeric($distancia)){ + $dd2->setXY(($poPoint->x) + ($distancia * $multiplicar), $poPoint->y); + $dd2->project($projOutObj,$projInObj); + $d = $dd1->distanceToPoint($dd2); + if ($distancia < 0){$d = $d * -1;} + //calcula a distancia 29100 + //gera o buffer + $buffers[] = $shape->buffer($d); + $shapes[] = $shape; + } } //faz a união dos elementos se necessário - if($unir == "sim") - { + if($unir == "sim"){ $ns = $buffers[0]; for($s=1;$s < count($buffers);$s++) {$ns = $ns->union($buffers[$s]);} @@ -2419,7 +2427,7 @@ $operacao - Tipo de análise. $statusoriginal = $sb->status; $sb->set("status",MS_OFF); $ext->setextent(($bounds->minx),($bounds->miny),($bounds->maxx),($bounds->maxy)); - $imagem = gravaImagemMapa($this->mapa); + $imagem = gravaImagemMapa($this->mapa); $this->mapa->setsize($w,$h); $ext->setextent($minx,$miny,$maxx,$maxy); $nlayer->set("status",MS_DELETE); @@ -2461,7 +2469,7 @@ $operacao - Tipo de análise. //verifica a versão do mapserver //se for anterior a 5, utiliza a conexão com o postgis para fazer o processamento dos daods // - $v = versao(); + $v = versao(); if (($v["principal"] < 5)) {return ("erro. E necessario uma versão maior que 5.0 do Mapserver.");} foreach ($geos["dados"] as &$geo) diff --git a/ferramentas/buffer/dicionario.js b/ferramentas/buffer/dicionario.js index fb16527..ef735bd 100644 --- a/ferramentas/buffer/dicionario.js +++ b/ferramentas/buffer/dicionario.js @@ -19,7 +19,7 @@ es:"", it:"" }], 4: [{ -pt:"Distância do entorno em metros", +pt:"Distância do entorno em metros:", en:"", es:"", it:"" @@ -55,7 +55,13 @@ es:"", it:"" }], 10: [{ -pt:"", +pt:"Ou um item da tabela de atributos que contém as distâncias:", +en:"", +es:"", +it:"" +}], +11: [{ +pt:"Multiplicar por:", en:"", es:"", it:"" diff --git a/ferramentas/buffer/exec.php b/ferramentas/buffer/exec.php index 865531c..5bcf56e 100644 --- a/ferramentas/buffer/exec.php +++ b/ferramentas/buffer/exec.php @@ -19,7 +19,7 @@ Salva o mapa acrescentando um novo layer com o buffer. include_once(dirname(__FILE__)."/../../classesphp/classe_analise.php"); copiaSeguranca($map_file); $m = new Analise($map_file,$tema,$locaplic,$ext); - $retorno = $m->criaBuffer($distancia,$locaplic,$unir,$wkt); + $retorno = $m->criaBuffer($distancia,$locaplic,$unir,$wkt,$multiplicar,$itemdistancia); $m->salva(); $_SESSION["contadorsalva"]++; //limpa selecao diff --git a/ferramentas/buffer/index.js b/ferramentas/buffer/index.js index b874890..8dc0da3 100644 --- a/ferramentas/buffer/index.js +++ b/ferramentas/buffer/index.js @@ -160,10 +160,15 @@ i3GEOF.buffer = { }, t2: function(){ var ins = "

"+$trad(4,i3GEOF.buffer.dicionario); - ins += "


"; - ins += "

"+$trad(5,i3GEOF.buffer.dicionario); - ins += "

"; + ins += "

"; + + ins += "

"+$trad(10,i3GEOF.buffer.dicionario); + ins += "

"; + + ins += "

"+$trad(5,i3GEOF.buffer.dicionario); + ins += "

"; i3GEO.util.proximoAnterior("i3GEOF.buffer.t1()","i3GEOF.buffer.t3()",ins,"i3GEOF.buffer.t2","i3GEObufferresultado"); + i3GEOF.buffer.comboItens(); }, t3: function(){ var ins = "

"+$trad(6,i3GEOF.buffer.dicionario); @@ -189,11 +194,12 @@ i3GEOF.buffer = { {return;} var distancia = $i("i3GEObufferd").value, tema = $i("i3GEObuffertemasComSel").value, + multiplicar = $i("i3GEObufferdfator").value*1, + itemdistancia = $i("i3GEObuffertemasItem").value, p, fim, cp; - if (distancia*1 !== 0) - { + if (distancia*1 !== 0 || itemdistancia != ""){ i3GEOF.buffer.aguarde.visibility = "visible"; fim = function(retorno){ i3GEOF.buffer.aguarde.visibility = "hidden"; @@ -202,7 +208,12 @@ i3GEOF.buffer = { else {i3GEO.atualiza();} }; - p = i3GEO.configura.locaplic+"/ferramentas/buffer/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=criabuffer&tema="+tema+"&distancia="+distancia+"&unir="+$i("i3GEObufferunir").value; + p = i3GEO.configura.locaplic+"/ferramentas/buffer/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=criabuffer&tema="+tema+"&unir="+$i("i3GEObufferunir").value; + if(itemdistancia != ""){ + p += "&distancia=0&itemdistancia="+itemdistancia+"&multiplicar="+multiplicar; + }else{ + p += "&distancia=" + distancia*1 + "&itemdistancia=&multiplicar=1"; + } cp = new cpaint(); cp.set_response_type("JSON"); cp.call(p,"criaBuffer",fim); @@ -225,12 +236,12 @@ i3GEOF.buffer = { i3GEO.util.comboTemas( "i3GEObuffertemasComSel", function(retorno){ - $i("i3GEObufferSelTemas").innerHTML = retorno.dados; - $i("i3GEObufferSelTemas").style.display = "block"; - if ($i("i3GEObuffertemasComSel")){ - $i("i3GEObuffertemasComSel").onchange = function(){ - i3GEO.mapa.ativaTema($i("i3GEObuffertemasComSel").value); - }; + $i("i3GEObufferSelTemas").innerHTML = retorno.dados; + $i("i3GEObufferSelTemas").style.display = "block"; + if ($i("i3GEObuffertemasComSel")){ + $i("i3GEObuffertemasComSel").onchange = function(){ + i3GEO.mapa.ativaTema($i("i3GEObuffertemasComSel").value); + }; } if(i3GEO.temaAtivo !== ""){ $i("i3GEObuffertemasComSel").value = i3GEO.temaAtivo; @@ -242,5 +253,26 @@ i3GEOF.buffer = { false, "selecionados" ); + }, + /* + Function: comboItens + + Cria um combo para escolha de um item do tema + + Veja: + + + + */ + comboItens: function(){ + i3GEO.util.comboItens( + "i3GEObuffertemasItem", + $i("i3GEObuffertemasComSel").value, + function(retorno){ + $i("i3GEObufferondeItens").innerHTML = retorno.dados + " " + $trad(11,i3GEOF.buffer.dicionario)+" "; + $i("i3GEObufferondeItens").style.display = "block"; + }, + "i3GEObufferondeItens" + ); } }; \ No newline at end of file -- libgit2 0.21.2