From 77dd532009adac00d424cff1525220274ec1e699 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 19 Oct 2016 19:33:02 -0200 Subject: [PATCH] Otimização das operações de seleção com a remoção de código antigo --- admin/admin.db | Bin 340992 -> 0 bytes classesphp/classe_selecao.php | 40 +++++++++++++++++++++++++--------------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index 8055a63..541d945 100755 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 0ce0ee1..7f43aa5 100755 --- a/classesphp/classe_selecao.php +++ b/classesphp/classe_selecao.php @@ -171,12 +171,10 @@ $wkt - string wkt opcional ao uso de xs e ys $buffer - buffer que ser� aplicado */ - function selecaoPorPoligono($tipo,$xs="",$ys="",$wkt="",$buffer=0) - { + function selecaoPorPoligono($tipo,$xs="",$ys="",$wkt="",$buffer=0){ if(!$this->layer){return "erro";} $this->layer->set("tolerance",0); - if ($tipo == "novo") - { + if ($tipo == "novo"){ $this->selecaoLimpa(); $tipo = "adiciona"; } @@ -499,8 +497,7 @@ $valor - Valor. $tipo - Tipo de operação adiciona|retira|inverte|limpa|novo */ - function selecaoAtributos2($filtro,$tipo) - { + function selecaoAtributos2($filtro,$tipo){ $items = pegaItens($this->layer); if ($tipo == "novo") { @@ -531,23 +528,25 @@ $valor - Valor. $filtro = str_replace(")"," ",$filtro); } $teste = $this->layer->querybyattributes($items[0],$filtro,1); + if($teste != MS_SUCCESS){ - $teste = $this->layer->queryByAttributes($itens[0], mb_convert_encoding($filtro,"ISO-8859-1","UTF-8"), 1); - } + $teste = $this->layer->queryByAttributes($items[0], mb_convert_encoding($filtro,"ISO-8859-1","UTF-8"), 1); + } if($teste != MS_SUCCESS){ - $teste = $this->layer->queryByAttributes($itens[0], mb_convert_encoding($filtro,"UTF-8","ISO-8859-1"), 1); + $teste = $this->layer->queryByAttributes($items[0], mb_convert_encoding($filtro,"UTF-8","ISO-8859-1"), 1); } $res_count = $this->layer->getNumresults(); $shpi = array(); - for ($i = 0; $i < $res_count; ++$i) - { + for ($i = 0; $i < $res_count; ++$i){ $result = $this->layer->getResult($i); $shpi[] = $result->shapeindex; } - if ($tipo == "adiciona") - {return($this->selecaoAdiciona($shpi,$shp_atual));} - if ($tipo == "retira") - {return($this->selecaoRetira($shpi,$shp_atual));} + if ($tipo == "adiciona"){ + return($this->selecaoAdiciona($shpi,$shp_atual)); + } + if ($tipo == "retira"){ + return($this->selecaoRetira($shpi,$shp_atual)); + } return("ok"); } /* @@ -686,6 +685,17 @@ Inverte seleção do tema. if($this->qyfileTema != "" && file_exists($this->qyfileTema)){ $shp_atual = $this->unserializeQ($this->qyfileTema); } + //TODO utilizar atributos qd for postgis para melhorar a performance + /* + if($this->layer->connectiontype == MS_POSTGIS){ + $items = pegaItens($this->layer); + $this->layer->querybyattributes($items[0],$items[0].' > 0 ',1); + echo $this->layer->getNumresults();exit; + } + else { + $this->layer->queryByrect($this->mapa->extent); + } + */ $this->layer->queryByrect($this->mapa->extent); $res_count = $this->layer->getNumresults(); $shp_todos = array(); -- libgit2 0.21.2