From ec607a99213f8951f314513aa29b2e1d4c1d835a Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Thu, 3 Nov 2011 20:24:17 +0000 Subject: [PATCH] --- aplicmap/estadosl.map | 2 +- aplicmap/estadosldebian.map | 2 +- aplicmap/estadoslfedora.map | 2 +- aplicmap/estadoslwindows.map | 2 +- classesphp/classe_analise.php | 10 ++++++---- classesphp/classe_atributos.php | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------- classesphp/classe_selecao.php | 7 +++++-- classesphp/classe_temas.php | 3 ++- 8 files changed, 76 insertions(+), 70 deletions(-) diff --git a/aplicmap/estadosl.map b/aplicmap/estadosl.map index 8e5c90a..9eedcdc 100644 --- a/aplicmap/estadosl.map +++ b/aplicmap/estadosl.map @@ -23,7 +23,7 @@ LAYER CLASS NAME " " STYLE - WIDTH 2 + WIDTH 3 COLOR 255 255 0 OUTLINECOLOR -1 -1 -1 END diff --git a/aplicmap/estadosldebian.map b/aplicmap/estadosldebian.map index 997dd9c..af6deff 100644 --- a/aplicmap/estadosldebian.map +++ b/aplicmap/estadosldebian.map @@ -23,7 +23,7 @@ LAYER CLASS NAME " " STYLE - WIDTH 2 + WIDTH 3 COLOR 255 255 0 OUTLINECOLOR -1 -1 -1 END diff --git a/aplicmap/estadoslfedora.map b/aplicmap/estadoslfedora.map index 3d230a8..93913dc 100644 --- a/aplicmap/estadoslfedora.map +++ b/aplicmap/estadoslfedora.map @@ -23,7 +23,7 @@ LAYER CLASS NAME " " STYLE - WIDTH 2 + WIDTH 3 COLOR 255 255 0 OUTLINECOLOR -1 -1 -1 END diff --git a/aplicmap/estadoslwindows.map b/aplicmap/estadoslwindows.map index bb1df6c..5949669 100644 --- a/aplicmap/estadoslwindows.map +++ b/aplicmap/estadoslwindows.map @@ -24,7 +24,7 @@ LAYER TITLE "estadosl+0" NAME " " STYLE - WIDTH 22 + WIDTH 3 COLOR 255 255 0 OUTLINECOLOR -1 -1 -1 END diff --git a/classesphp/classe_analise.php b/classesphp/classe_analise.php index ba6a4d1..12e55d2 100644 --- a/classesphp/classe_analise.php +++ b/classesphp/classe_analise.php @@ -1059,6 +1059,7 @@ $locaplic - Localização do I3geo. $layer = $this->mapa->getlayerbyname($tema); $layer->set("template","none.htm"); $layer->set("status",MS_DEFAULT); + $items = pegaItens($layer); if($layer->type == MS_LAYER_RASTER) { $lineo = $spts[0]->line(0); @@ -1066,7 +1067,7 @@ $locaplic - Localização do I3geo. $layer->queryByPoint($pt, 0, 0); } $layers[] = $layer; - $items = pegaItens($layer); + if(!$items) {return "erro ao obter a lista de itens do tema $layer->name";} $listaItens[$layer->name] = $items; @@ -1332,6 +1333,7 @@ nome do layer criado com o buffer. function criaBuffer($distancia,$locaplic,$unir="nao",$wkt="") { set_time_limit(180); + $items = pegaItens($this->layer); //error_reporting(E_ALL); //para manipular dbf if($this->dbaseExiste == false){ @@ -1348,7 +1350,7 @@ nome do layer criado com o buffer. carregaquery2($this->arquivo,$this->layer,$this->mapa); $sopen = $this->layer->open(); if($sopen == MS_FAILURE){return "erro";} - $items = pegaItens($this->layer); + $this->layer->open(); $res_count = $this->layer->getNumresults(); $buffers = array(); @@ -1560,6 +1562,7 @@ $locaplic - Localização do I3geo. function criaCentroide($locaplic) { if(!$this->layer){return "erro";} + $items = pegaItens($this->layer); set_time_limit(180); //para manipular dbf if($this->dbaseExiste == false){ @@ -1574,7 +1577,7 @@ $locaplic - Localização do I3geo. carregaquery2($this->arquivo,$this->layer,$this->mapa); $sopen = $this->layer->open(); if($sopen == MS_FAILURE){return "erro";} - $items = pegaItens($this->layer); + $this->layer->open(); $res_count = $this->layer->getNumresults(); $centroides = array(); @@ -1600,7 +1603,6 @@ $locaplic - Localização do I3geo. //gera o novo arquivo shape file // cria o shapefile $novoshpf = ms_newShapefileObj($nomeshp, MS_SHP_POINT); - $items = pegaItens($this->layer); // cria o dbf $def = $this->criaDefDb($items); if($this->dbaseExiste == false) diff --git a/classesphp/classe_atributos.php b/classesphp/classe_atributos.php index 8c81e31..2f81d4d 100644 --- a/classesphp/classe_atributos.php +++ b/classesphp/classe_atributos.php @@ -100,7 +100,7 @@ $ext - (opcional) extensão geográfica que será aplicada ao mapa */ function __construct($map_file="",$tema="",$locaplic="",$ext="") { - //error_reporting(E_ALL); + error_reporting(0); if (!function_exists('ms_newMapObj')) {return false;} if(file_exists($locaplic."/funcoes_gerais.php")) include_once($locaplic."/funcoes_gerais.php"); @@ -1270,13 +1270,68 @@ $listaDeTemas - (opcional) Lista com os códigos dos temas que serão identificado $n[] = array("alias"=>"Link WMS","valor"=>"getfeatureinfo padrão do serviço","link"=>$res2,"img"=>""); return array($n); } + + $itens = $layer->getmetadata("ITENS"); // itens + $itensdesc = $layer->getmetadata("ITENSDESC"); // descrição dos itens + $lks = $layer->getmetadata("ITENSLINK"); // link dos itens + $itemimg = $layer->getmetadata("ITEMIMG"); //indica um item que será utilizado para colocar um ícone + $locimg = $layer->getmetadata("IMGLOC"); //indica o local onde estão os ícones + $tips = $layer->getmetadata("TIP"); + $itensLayer = pegaItens($layer); + $nitens = count($itensLayer); + if($itens == "") + {$itens = $itensLayer;} + else + {$itens = explode(",",$itens);} + + if($itensdesc == "") + {$itensdesc = $itensLayer;}//array_fill(0, $nitens-1,'');} + else + {$itensdesc = explode(",",$itensdesc);} + + if($lks == "") + {$lks = array_fill(0, $nitens-1,'');} + else + {$lks = explode(",",$lks);} + + if($itemimg == "") + {$itemimg = array_fill(0, $nitens-1,'');} + else + {$itemimg = explode(",",$itemimg);} + + if($locimg == "") + {$locimg = array_fill(0, $nitens-1,'');} + else + {$locimg = explode(",",$locimg);} + $tips = str_replace(" ",",",$tips); + $tips = explode(",",$tips); + //o retorno deve ser do tipo TIP + if($etip == true) + { + $temp = array_combine($itens,$itensdesc); + $templ = array_combine($itens,$lks); + $tempimg = array_combine($itens,$itemimg); + $temploc = array_combine($itens,$locimg); + $itensdesc = array(); + $itens = array(); + $lks = array(); + $itemimg = array(); + $locimg = array(); + foreach($tips as $t) + { + $itens[] = $t; + if($temp[$t] != ""){$itensdesc[] = $temp[$t];}else{$itensdesc[] = $t;} + if($templ[$t] != ""){$lks[] = $templ[$t];}else{$lks[] = "";} + if($tempimg[$t] != ""){$itemimg[] = $tempimg[$t];}else{$itemimg[] = "";} + if($temploc[$t] != ""){$locimg[] = $temploc[$t];}else{$locimg[] = "";} + } + } if(($layer->connectiontype != MS_WMS) && ($layer->type == MS_LAYER_RASTER)) { $layer->set("toleranceunits",MS_PIXELS); $layer->set("tolerance",$resolucao); $ident = @$layer->queryByPoint($pt, 0, 0); //0.01); } - //error_reporting(E_ALL); if (($layer->type == MS_LAYER_POINT) || ($layer->type == MS_LAYER_LINE) || ($layer->type == MS_LAYER_CHART)) { $layer->set("toleranceunits",MS_PIXELS); @@ -1291,64 +1346,9 @@ $listaDeTemas - (opcional) Lista com os códigos dos temas que serão identificado } if ($ident == MS_SUCCESS) { - $itens = $layer->getmetadata("ITENS"); // itens - $itensdesc = $layer->getmetadata("ITENSDESC"); // descrição dos itens - $lks = $layer->getmetadata("ITENSLINK"); // link dos itens - $itemimg = $layer->getmetadata("ITEMIMG"); //indica um item que será utilizado para colocar um ícone - $locimg = $layer->getmetadata("IMGLOC"); //indica o local onde estão os ícones - $tips = $layer->getmetadata("TIP"); - $itensLayer = pegaItens($layer); - //var_dump($itensLayer);exit; - $nitens = count($itensLayer); - if($itens == "") - {$itens = $itensLayer;} - else - {$itens = explode(",",$itens);} - - if($itensdesc == "") - {$itensdesc = $itensLayer;}//array_fill(0, $nitens-1,'');} - else - {$itensdesc = explode(",",$itensdesc);} - - if($lks == "") - {$lks = array_fill(0, $nitens-1,'');} - else - {$lks = explode(",",$lks);} - - if($itemimg == "") - {$itemimg = array_fill(0, $nitens-1,'');} - else - {$itemimg = explode(",",$itemimg);} - - if($locimg == "") - {$locimg = array_fill(0, $nitens-1,'');} - else - {$locimg = explode(",",$locimg);} - $tips = str_replace(" ",",",$tips); - $tips = explode(",",$tips); - //o retorno deve ser do tipo TIP - if($etip == true) - { - $temp = array_combine($itens,$itensdesc); - $templ = array_combine($itens,$lks); - $tempimg = array_combine($itens,$itemimg); - $temploc = array_combine($itens,$locimg); - $itensdesc = array(); - $itens = array(); - $lks = array(); - $itemimg = array(); - $locimg = array(); - foreach($tips as $t) - { - $itens[] = $t; - if($temp[$t] != ""){$itensdesc[] = $temp[$t];}else{$itensdesc[] = $t;} - if($templ[$t] != ""){$lks[] = $templ[$t];}else{$lks[] = "";} - if($tempimg[$t] != ""){$itemimg[] = $tempimg[$t];}else{$itemimg[] = "";} - if($temploc[$t] != ""){$locimg[] = $temploc[$t];}else{$locimg[] = "";} - } - } - $res_count = $layer->getNumresults(); + $ident = @$layer->queryByPoint($pt, 1, -1); $sopen = $layer->open(); + $res_count = $layer->getNumresults(); if($sopen == MS_FAILURE){return "erro";} for ($i = 0; $i < $res_count; ++$i) { diff --git a/classesphp/classe_selecao.php b/classesphp/classe_selecao.php index 4c10ecc..8b1cc32 100644 --- a/classesphp/classe_selecao.php +++ b/classesphp/classe_selecao.php @@ -494,6 +494,7 @@ $valor - Valor. */ function selecaoAtributos2($filtro,$tipo) { + $items = pegaItens($this->layer); if ($tipo == "novo") { $this->selecaoLimpa(); @@ -518,12 +519,13 @@ $valor - Valor. } $this->mapa->freequery($indxlayer); */ + $shp_atual = array(); if($this->qyfileTema != "" && file_exists($this->qyfileTema)) {$shp_atual = $this->unserializeQ($this->qyfileTema);} $shpi = array(); - $items = pegaItens($this->layer); + $filtro = str_replace("|","'",$filtro); if ($this->layer->connectiontype == MS_POSTGIS) { @@ -666,10 +668,11 @@ Inverte seleção do tema. function selecaoInverte() { if(!$this->layer){return "erro";} + $items = pegaItens($this->layer); if (file_exists($this->qyfile)) {$this->mapa->loadquery($this->qyfile);} $indxlayer = $this->layer->index; - $items = pegaItens($this->layer); + /* $res_count = $this->layer->getNumresults(); $shp_atual = array(); diff --git a/classesphp/classe_temas.php b/classesphp/classe_temas.php index f136417..ec811b0 100644 --- a/classesphp/classe_temas.php +++ b/classesphp/classe_temas.php @@ -797,8 +797,9 @@ $nome - nome que será dado a geometria $ext = $this->mapa->extent; $sb = $this->mapa->scalebar; $sb->set("status",MS_OFF); - carregaquery2($this->arquivo,$this->layer,$this->mapa); + $items = pegaItens($this->layer); + carregaquery2($this->arquivo,$this->layer,$this->mapa); $sopen = $this->layer->open(); if($sopen == MS_FAILURE){return "erro";} -- libgit2 0.21.2