From c9e21bda0d726106a6c631e6b2d7fd48c98383ff Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Sat, 15 Sep 2012 19:36:31 +0000 Subject: [PATCH] Otimização das rotinas do tipo getalllayersname --- admin/admin.db | Bin 131072 -> 0 bytes admin/php/editormapfile.php | 21 ++++++++++----------- admin/php/menutemas.php | 6 +++--- classesphp/classe_atlas.php | 22 +++++++++++----------- classesphp/classe_atributos.php | 16 +++++++++------- classesphp/classe_legenda.php | 60 ++++++++++++++++++++++++++++++------------------------------ classesphp/classe_mapa.php | 7 ++++--- classesphp/classe_vermultilayer.php | 30 ++++++++++++++++-------------- classesphp/funcoes_gerais.php | 16 ++++++++-------- classesphp/mapa_googleearth.php | 9 +++++---- classesphp/mapa_googlemaps.php | 21 ++++++++++++--------- ferramentas/imprimir/svg.php | 8 ++++---- geraminiatura.php | 6 +++--- ms_criamapa.php | 13 ++++++++----- pacotes/gvsig/gvsig2mapfile/upload.php | 9 +++++---- testamapfile.php | 18 +++++++++--------- teste.php | 7 +++++++ 17 files changed, 144 insertions(+), 125 deletions(-) create mode 100644 teste.php diff --git a/admin/admin.db b/admin/admin.db index b12c6e4..2ca94eb 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/php/editormapfile.php b/admin/php/editormapfile.php index 161eed6..61e9a11 100644 --- a/admin/php/editormapfile.php +++ b/admin/php/editormapfile.php @@ -212,12 +212,11 @@ switch (strtoupper($funcao)) $mapfile = $locaplic."/temas/".$codigoMap.".map"; $mapa = ms_newMapObj($mapfile); $nomes = $mapa->getalllayernames(); - if($cachedir != "") - { + if($cachedir != ""){ $d = $cachedir; } - else - {$d = $dir_tmp."/cache"; + else{ + $d = $dir_tmp."/cache"; } foreach($nomes as $nome) { @@ -1080,7 +1079,7 @@ function refazerLayer() $nl = ms_newLayerObj($mapatema,$layernovo); $nl->set("name",$codigomap); $nl->setmetadata("nomeoriginal",""); - $nl->setmetadata("temaoriginal",""); + $nl->setmetadata("arquivotemaoriginal",""); $nl->setmetadata("olopacity",""); $nl->setmetadata("olstatus",""); $nl->setmetadata("gmopacity",""); @@ -1216,17 +1215,17 @@ function autoClassesLayer() {$geral = $locaplic."/aplicmap/geral1.map"; } $mapageral = ms_newMapObj($geral); - $nomestemp = $mapageral->getalllayernames(); - foreach($nomestemp as $l) + $numlayers = $mapageral->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $layertemp = $mapageral->getlayerbyname($l); + $layertemp = $mapageral->getlayer($i); $layertemp->set("status",MS_DELETE); } $mapatemp = ms_newMapObj($mapfile); - $nomestemp = $mapatemp->getalllayernames(); - foreach($nomestemp as $l) + $numlayers = $mapatemp->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $layertemp = $mapatemp->getlayerbyname($l); + $layertemp = $mapatemp->getlayer($i); ms_newLayerObj($mapageral, $layertemp); } $mapageral->save($nometemp); diff --git a/admin/php/menutemas.php b/admin/php/menutemas.php index 9b39c03..a873ef0 100644 --- a/admin/php/menutemas.php +++ b/admin/php/menutemas.php @@ -1130,10 +1130,10 @@ function alteraTemas() if($mapa = @ms_newMapObj($mapfile)) { $mapa = ms_newMapObj($mapfile); - $nomes = $mapa->getalllayernames(); - foreach($nomes as $n) + $numlayers = $mapa->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $layer = $mapa->getlayerbyname($n); + $layer = $mapa->getlayer($i); $layer->setmetadata("permitedownload",strtolower($download)); $layer->setmetadata("permiteogc",strtolower($ogc)); $layer->setmetadata("permitekml",strtolower($kml)); diff --git a/classesphp/classe_atlas.php b/classesphp/classe_atlas.php index 6470dcd..c6ea518 100644 --- a/classesphp/classe_atlas.php +++ b/classesphp/classe_atlas.php @@ -40,12 +40,12 @@ class Atlas /* Function: __construct -Cria um objeto atlas +Cria um objeto atlas parameters: $atlasxml - Objeto xml com o atlas. -*/ +*/ function __construct($xml) { error_reporting(E_ALL); @@ -152,10 +152,10 @@ locaplic - localização do i3geo no servidor $temasa = array(); $layers = array(); $mapa = ms_newMapObj($map_file); - $nomes = $mapa->getalllayernames(); - foreach ($nomes as $n) + $numlayers = $mapa->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $l = $mapa->getlayerbyname($n); + $l = $mapa->getlayer($i); if (($l->getmetadata("ATLAS")) != "nao") {$l->set("status",MS_DELETE);} } @@ -203,12 +203,12 @@ locaplic - localização do i3geo no servidor $m = new Mapa($map_file); $m->adicionaTema((implode(",",$temasa)),$locaplic,"nao"); $m->salva(); - + $mapa = ms_newMapObj($map_file); - $nomes = $mapa->getalllayernames(); - foreach ($nomes as $n) + $numlayers = $mapa->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $l = $mapa->getlayerbyname($n); + $l = $mapa->getlayer($i); if (($l->getmetadata("ATLAS")) != "nao") {$l->set("status",MS_OFF);} } @@ -233,12 +233,12 @@ locaplic - localização do i3geo no servidor } if (count($newext) == 4) {$ext->setextent($newext[0], $newext[1], $newext[2], $newext[3]);} - $mapa->save($map_file); + $mapa->save($map_file); } if(!function_exists("sobeAnno")){ include_once("funcoes_gerais.php"); } - sobeAnno($map_file); + sobeAnno($map_file); if ($w == ""){$w = 300;} if($h == ""){$h = 300;} return (array("link"=>$link,"w"=>$w,"h"=>$h,"mapexten"=>implode(" ",$newext))); diff --git a/classesphp/classe_atributos.php b/classesphp/classe_atributos.php index 996439d..45e36d0 100644 --- a/classesphp/classe_atributos.php +++ b/classesphp/classe_atributos.php @@ -742,9 +742,11 @@ $resolucao - Resolucao de busca. */ function identifica($opcao,$xy,$resolucao) { - $temas = $this->mapa->getalllayernames(); - foreach ($temas as $tem) + $numlayers = $mapa->numlayers; + for ($i=0;$i < $numlayers;$i++) { + $layer = $mapa->getlayer($i); + $tem = $l->name; $vermultilayer = new vermultilayer(); $vermultilayer->verifica($this->arquivo,$tem); if ($vermultilayer->resultado == 1) // o tema e multi layer @@ -758,8 +760,7 @@ $resolucao - Resolucao de busca. } else { - $l = $this->mapa->getlayerbyname($tem); - if (($l->getmetadata("escondido") == "") && ($l->getmetadata("identifica") != "nao")) + if (($layer->getmetadata("escondido") == "") && ($layer->getmetadata("identifica") != "nao")) {$listatemas[] = $tem;} } } @@ -971,10 +972,11 @@ $wkt - (opcional) {boolean} inclui ou não o valor do wkt da geometria if ($opcao == "tip") { $ltemp = array(); - $listatemas = $this->mapa->getalllayernames(); - foreach ($listatemas as $tema) + $numlayers = $this->mapa->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $tl = $this->mapa->getlayerbyname($tema); + $tl = $mapa->getlayer($i); + $tema = $tl->name; $itemtip = $tl->getmetadata("TIP"); if ($itemtip != "") { diff --git a/classesphp/classe_legenda.php b/classesphp/classe_legenda.php index b8dc3ec..d08cb94 100644 --- a/classesphp/classe_legenda.php +++ b/classesphp/classe_legenda.php @@ -41,68 +41,68 @@ class Legenda { /* Variavel: $mapa - + Objeto mapa */ protected $mapa; /* Variavel: $arquivo - + Arquivo map file */ protected $arquivo; /* Variavel: $layer - + Objeto layer */ protected $layer; /* Variavel: $nome - + Nome do layer */ protected $nome; /* Variavel: $grupo - + Array com os temas do grupo, se houver */ protected $grupo; /* Variavel: $visiveis - + Temas do grupo que são visíveis em função da escala */ protected $visiveis; /* Variavel: $indices - + Indices dos layers do grupo */ protected $indices; /* Variavel: $templateleg - + Template da legenda */ - protected $templateleg; + protected $templateleg; /* Variavel: $localaplicacao - + Localização da aplicação */ protected $localaplicacao; /* Variavel: $v - + Versão atual do Mapserver (primeiro dígito) */ - public $v; + public $v; /* Function: __construct -Cria um objeto Legenda +Cria um objeto Legenda parameters: @@ -126,7 +126,7 @@ $template - nome do template para processar a legenda $this->v = $this->v["principal"]; $this->localaplicacao = $locaplic; if($map_file == "") - {return;} + {return;} $this->mapa = ms_newMapObj($map_file); $this->arquivo = $map_file; if($tema != "" && @$this->mapa->getlayerbyname($tema)) @@ -166,8 +166,8 @@ $template - nome do template para processar a legenda /* function: salva -Salva o mapfile atual -*/ +Salva o mapfile atual +*/ function salva() { if (connection_aborted()){exit();} @@ -194,7 +194,7 @@ Constrói o SLD que é aplicado ao metadata wms_sld_body. O SLD resultante if($sld != "") {$this->layer->setmetadata("wms_sld_body",str_replace('"',"'",$sld));} $this->layer->set("type",$tipotemp); - } + } } /* @@ -248,7 +248,7 @@ string com a legenda HTML {$desligar[] = $conta;} $conta = $conta + 1; } - } + } } $legenda = $this->mapa->legend; $legenda->set("template",$this->templateleg); @@ -269,10 +269,10 @@ string de variaveis no formato javascript que permitem montar a legenda. */ function legendaGrafica() { - $nomeslayers = $this->mapa->getalllayernames(); - foreach ($nomeslayers as $nomelayer) + $numlayers = $mapa->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $layer = $this->mapa->getlayerbyname($nomelayer); + $layer = $mapa->getlayer($i); if (($layer->data != "") && (strtoupper($layer->getmetadata("escondido")) != "SIM") && (strtoupper($layer->getmetadata("tema")) != "NAO")) { if ($layer->numclasses > 0) @@ -286,7 +286,7 @@ string de variaveis no formato javascript que permitem montar a legenda. $nomeImagem = nomeRandomico(); $imgo = $this->mapa->drawlegend(); if($imgo->imagepath == "") - {echo "Erro IMAGEPATH vazio";exit;} + {echo "Erro IMAGEPATH vazio";exit;} $nomer = ($imgo->imagepath)."leg".$nomeImagem.".png"; $imgo->saveImage($nomer); $nomer = ($imgo->imageurl).basename($nomer); @@ -314,11 +314,11 @@ array $layer = $this->mapa->getlayerbyname($l); //verifica se é wms ou wfs $c = $layer->connectiontype; - + $s = $layer->getmetadata("wms_sld_url"); $im = $layer->getmetadata("legendaimg"); $nc = $layer->numclasses; - + // //se for wms e tiver classes define o tipo de layer para poder gerar a legenda corretamente // @@ -329,7 +329,7 @@ array if($tiporep == "linear") {$layer->set("type",MS_LAYER_LINE);} if ($tiporep == "pontual") - {$layer->set("type",MS_LAYER_POINT);} + {$layer->set("type",MS_LAYER_POINT);} } // //se for WMS e não tiver classes, tenta pegar a legenda via requisição WMS @@ -506,7 +506,7 @@ Retorna uma lista de símbolos clicáveis no formato HTML. Para cada tipo de simbologia deve haver um arquivo .map com as definições básicas. -Todos os símbolos do arquivo symbols/simbolos serão retornados como imagens. +Todos os símbolos do arquivo symbols/simbolos serão retornados como imagens. parameters: @@ -570,7 +570,7 @@ String no formato HTML com as imagens dos símbolos $nomel = $l->name; $tematemp= $this->mapa->getlayerbyname($nomel); $c = $tematemp->getClass(0); - $e = $c->getstyle(0); + $e = $c->getstyle(0); $e->set("symbolname",$nomes); $e->set("size",$tamanho); $e->set("width",$width); @@ -654,7 +654,7 @@ $symbolname - Nome do símbolo. $size - Tamanho que será aplicado ao símbolo. -$opacidade - Opacidade +$opacidade - Opacidade */ function aplicaParametro($classe,$estilo,$outlinecolor,$backgroundcolor,$color,$symbolname,$size,$opacidade,$width,$pattern,$angle) { @@ -755,7 +755,7 @@ array - "imagecolor"=>$imagecolor,"transparent"=>transparent,"position"=>$positi } else $labelsize = $label->size; - + $tipofonte = $label->type; return(array("tipofonte"=>$tipofonte,"font"=>$font,"imagecolor"=>$imagecolor,"transparent"=>transparent,"position"=>$position,"status"=>$status,"outlinecolor"=>$outlinecolor,"keyspacingy"=>$keyspacingy,"keyspacingx"=>$keyspacingx,"keysizey"=>$keysizey,"keysizex"=>$keysizex,"height"=>$height,"width"=>$width,"labelsize"=>$labelsize)); } @@ -812,7 +812,7 @@ $width $cor = explode(",",$imagecolor); $corres->setRGB($cor[0],$cor[1],$cor[2]); $label = $legenda->label; - + if ($fonte != "bitmap") { $label->set("type",MS_TRUETYPE); diff --git a/classesphp/classe_mapa.php b/classesphp/classe_mapa.php index 6bc5d5e..3f1fd33 100644 --- a/classesphp/classe_mapa.php +++ b/classesphp/classe_mapa.php @@ -107,7 +107,7 @@ Salva o mapfile atual */ function salva() { - if (connection_aborted()){exit();} + if(connection_aborted()){exit();} $this->mapa->save($this->arquivo); } /* @@ -928,7 +928,7 @@ Os layers que formam grupos também são processados, tendo seus nom Cada novo layer receberá um novo nome, definido de forma aleatória. Os nomes dos temas podem conter o caminho completo do mapfile. O nome original do LAYER (NAME) sera armazenado no metadata nomeoriginal -O nome do tema (mapfile) original sera armazenado no metadata temaoriginal +O nome do tema (mapfile) original sera armazenado no metadata arquivotemaoriginal Parametros: @@ -985,8 +985,9 @@ $random - indica se os nomes dos novos layers serão modificados ou nao {$nlayer->setmetadata("classe","");} autoClasses($nlayer,$this->mapa); $nlayer->set("status",MS_DEFAULT); + $nNome = str_replace(".map","",basename($nomemap)); + $nlayer->setmetadata("arquivotemaoriginal",$nNome); $nlayer->setmetadata("nomeoriginal",$nlayer->name); - $nlayer->setmetadata("temaoriginal",str_replace(".map","",basename($nomemap))); $nlayer->set("name",$nomeunico[$n]); //altera o nome do grupo se existir if ($nlayer->group != " " && $nlayer->group != "" ) diff --git a/classesphp/classe_vermultilayer.php b/classesphp/classe_vermultilayer.php index b31f860..d65a5c2 100644 --- a/classesphp/classe_vermultilayer.php +++ b/classesphp/classe_vermultilayer.php @@ -40,48 +40,48 @@ class vermultilayer { /* Variavel: $resultado - + Indica se é multi-layer ou não (0 ou 1) */ var $resultado; /* Variavel: $temas - + Lista de códigos dos temas */ var $temas; //lista de nomes de temas se for um grupo /* Variavel: $layers - + Lista de objetos layers */ var $layers; //lista de objetos temas se for um grupo /* Variavel: $nomes - + Lista de nomes dos temas */ var $nomes; //lista de nomes se for um grupo /* Variavel: $nomesvisiveis - + Lista dos nomes dos temas visíveis */ var $nomesvisiveis; //nomes dos temas visíveis na escala /* Variavel: $temasvisiveis - + Lista com os códigos dos temas visíveis */ var $temasvisiveis; //temas vi'siveis na escala /* function: verifica - + Verifica se um tema é multilayer - + parameters: $mapfile - arquivo mapfile - + $tema - código do tema que será verificado */ function verifica($mapfile,$tema) //$mapfile = arquivo .map, $tema = nome do layer @@ -89,16 +89,17 @@ class vermultilayer $map = ms_newMapObj($mapfile); $map->preparequery(); $escala = $map->scaledenom ; - $todoslayers = $map->getAlllayernames(); $multilayer = 0; $temas = array(); $layers = array(); $nomes = array(); $nomesvisiveis = array(); $temasvisiveis = array(); - foreach ($todoslayers as $temai) + + $numlayers = $map->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $layer = $map->getlayerbyname($temai); + $layer = $map->getlayer($i); $testa = 0; //verifica se o tema é visivel na escala $mins = $layer->minscaledenom; @@ -131,10 +132,11 @@ class vermultilayer $multilayer = 1; $temas[] = $temai; $layers[] = $layer; - $nomes[] = pegaNome($layer); + $pn = pegaNome($layer); + $nomes[] = $pn; if ($testa == 0) { - $nomesvisiveis[] = pegaNome($layer); + $nomesvisiveis[] = $pn; $temasvisiveis[] = $temai; } } diff --git a/classesphp/funcoes_gerais.php b/classesphp/funcoes_gerais.php index a8ad682..d657480 100644 --- a/classesphp/funcoes_gerais.php +++ b/classesphp/funcoes_gerais.php @@ -2100,10 +2100,10 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) if($teste == "") { $maptemp = ms_newMapObj($temasdir."/".$tema.".map"); - $temastemp = $maptemp->getalllayernames(); - foreach ($temastemp as $tt) + $numlayers = $maptemp->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $ll = $maptemp->getlayerbyname($tt); + $ll = $maptemp->getlayer($i); $permite = $ll->getmetadata("permitedownload"); if($permite != "nao") {ms_newLayerObj($map, $ll);} @@ -2255,10 +2255,10 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) $nomemapfileurl = ""; if(file_exists($temasdir."/".$tema.".map")){ $maptemp = ms_newMapObj($temasdir."/".$tema.".map"); - $temas = $maptemp->getAllLayerNames(); - foreach ($temas as $l) + $numlayers = $maptemp->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $gl = $maptemp->getlayerbyname($l); + $gl = $maptemp->getlayer($i); $gl->set("data",""); $gl->set("connection",""); } @@ -3101,10 +3101,10 @@ function listaLayersIndevidos($map_file){ $c = $m->numlayers; for ($i=0;$i < $c;++$i) { $layer = $m->getlayer($i); - $meta = $layer->getmetadata("temaoriginal"); + $meta = $layer->getmetadata("arquivotemaoriginal"); if($meta != ""){ $t = $restritos[$meta]; - if(!in_array($t,$gruposusr)){ + if($t && !in_array($t,$gruposusr)){ array_push($indevidos,$layer->name); } } diff --git a/classesphp/mapa_googleearth.php b/classesphp/mapa_googleearth.php index 7521d96..5247d77 100644 --- a/classesphp/mapa_googleearth.php +++ b/classesphp/mapa_googleearth.php @@ -116,19 +116,20 @@ function retornaWms($map_fileX,$postgis_mapa){ // $qyfile = dirname($map_fileX)."/".$_GET["layer"].".php"; $qy = file_exists($qyfile); - $layersNames = $mapa->getalllayernames(); $o = $mapa->outputformat; $o->set("imagemode",MS_IMAGEMODE_RGBA); if(!isset($_GET["telaR"])){//no caso de projecoes remotas, o mapfile nao´e alterado - foreach ($layersNames as $layerName) + $numlayers = $mapa->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $l = $mapa->getLayerByname($layerName); + $l = $mapa->getlayer($i); if ($l->getmetadata("classesnome") != "") { if(!function_exists("autoClasses")) {include_once("funcoes_gerais.php");} autoClasses($l,$mapa); } + $layerName = $l->name; if($layerName != $_GET["layer"]) {$l->set("status",MS_OFF);} if($layerName == $_GET["layer"] || $l->group == $_GET["layer"] && $l->group != "") @@ -213,7 +214,7 @@ function retornaWms($map_fileX,$postgis_mapa){ $cor = $classe0->getstyle(0)->color; $cor->setrgb($c->red,$c->green,$c->blue); $cor = $classe0->getstyle(0)->outlinecolor; - $cor->setrgb($c->red,$c->green,$c->blue); + $cor->setrgb($c->red,$c->green,$c->blue); $status = $l->open(); $status = $l->whichShapes($mapa->extent); while ($shape = $l->nextShape()) diff --git a/classesphp/mapa_googlemaps.php b/classesphp/mapa_googlemaps.php index 14a1454..da88362 100644 --- a/classesphp/mapa_googlemaps.php +++ b/classesphp/mapa_googlemaps.php @@ -126,13 +126,14 @@ $mapa = ms_newMapObj($map_fileX); $ret = $mapa->extent; $qyfile = dirname($map_fileX)."/".$_GET["layer"].".php"; $qy = file_exists($qyfile); - -$layersNames = $mapa->getalllayernames(); $cache = false; if(!isset($_GET["telaR"])){//no caso de projecoes remotas, o mapfile nao´e alterado - foreach ($layersNames as $layerName) + + $numlayers = $mapa->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $l = $mapa->getLayerByname($layerName); + $l = $mapa->getlayer($i); + $layerName = $l->name; if ($l->getmetadata("classesnome") != "") { if(!function_exists("autoClasses")) @@ -176,8 +177,10 @@ if(!isset($_GET["telaR"])){//no caso de projecoes remotas, o mapfile nao´e alter } else{ $mapa->setProjection("proj=merc,a=6378137,b=6378137,lat_ts=0.0,lon_0=0.0,x_0=0.0,y_0=0,k=1.0,units=m"); - foreach ($layersNames as $layerName){ - $l = $mapa->getLayerByname($layerName); + $numlayers = $mapa->numlayers; + for ($i=0;$i < $numlayers;$i++) + { + $l = $mapa->getlayer($i); if($l->getProjection() == "" ) {$l->setProjection("proj=latlong,a=6378137,b=6378137");} } @@ -260,7 +263,7 @@ else } $l->close(); } - + } if (!function_exists('imagepng')) { @@ -297,7 +300,7 @@ else{ header('Content-Length: '.filesize($nomer)); header('Content-Type: image/png'); fpassthru(fopen($nomer, 'rb')); - exit; + exit; } function salvaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){ global $img,$map_size; @@ -333,7 +336,7 @@ function carregaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){ header('Content-Type: image/png'); fpassthru(fopen($nome, 'rb')); exit; - } + } } function nomeRand($n=10) { diff --git a/ferramentas/imprimir/svg.php b/ferramentas/imprimir/svg.php index 425444d..5316c52 100644 --- a/ferramentas/imprimir/svg.php +++ b/ferramentas/imprimir/svg.php @@ -3,7 +3,7 @@ body {margin:20px;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 14px;width:300px} A {text-align:left;font-family: Verdana, Arial, Helvetica, sans-serif;color: #2F4632;} -A:hover +A:hover {color: #4142ff;font-weight: normal;font-family: Verdana, Arial, Helvetica, sans-serif;} @@ -75,10 +75,10 @@ if($leb->type == "MS_BITMAP"){ $leb->set("font","Arial"); } //altera o nome das classes vazias -$temas = $map->getalllayernames(); -foreach ($temas as $tema) +$numlayers = $map->numlayers; +for ($i=0;$i < $numlayers;$i++) { - $layer = $map->getlayerbyname($tema); + $layer = $map->getlayer($i); if (($layer->data != "") && (strtolower($layer->getmetadata("escondido")) != "sim") && (strtolower($layer->getmetadata("tema")) != "sim")) { if ($layer->numclasses > 0) diff --git a/geraminiatura.php b/geraminiatura.php index bf1d95a..893a1be 100644 --- a/geraminiatura.php +++ b/geraminiatura.php @@ -186,11 +186,11 @@ function verificaMiniatura($map,$tipo,$admin=false) echo "erro no arquivo $tema
"; return; } - $temasn = $nmapa->getAllLayerNames(); $dados = ""; - foreach ($temasn as $teman) + $numlayers = $nmapa->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $layern = $nmapa->getLayerByName($teman); + $layern = $nmapa->getlayer($i); $layern->set("status",MS_DEFAULT); ms_newLayerObj($mapa, $layern); autoClasses($layern,$mapa,$locaplic); diff --git a/ms_criamapa.php b/ms_criamapa.php index d64291f..e874f13 100644 --- a/ms_criamapa.php +++ b/ms_criamapa.php @@ -480,7 +480,8 @@ function adaptaLayers(){ global $tmpfname; $mapa = ms_newMapObj($tmpfname); $path = $mapa->shapepath; - for($i=0;$i<($mapa->numlayers);++$i) + $numlayers = $mapa->numlayers; + for($i=0;$i<$numlayers;++$i) { $layer = $mapa->getLayer($i); $ok = true; @@ -648,7 +649,8 @@ function incluiTemasIniciais() if ($layern->name == "estadosl") {$layern->set("data",$locaplic."/aplicmap/dados/estados.shp");} $layern->setmetadata("nomeoriginal",$layern->name); - $layern->setmetadata("temaoriginal",str_replace(".map","",basename($arqtemp))); + $nNome = str_replace(".map","",basename($arqtemp)). + $layern->setmetadata("arquivotemaoriginal",$nNome); autoClasses($layern,$mapn); // //necessário para não alterar a extensão do mapa por esse parâmetro @@ -1103,9 +1105,10 @@ function incluiMapaGvsig($gvsiggvp,$gvsigview){ $gm = new gvsig2mapfile($gvsiggvp); $dataView = $gm->getViewData($gvsigview); //var_dump($dataView);exit; - $lnames = $mapn->getalllayernames(); - foreach($lnames as $name){ - $layer = $mapn->getlayerbyname($name); + $numlayers = $mapn->numlayers; + for ($i=0;$i < $numlayers;$i++) + { + $layer = $mapn->getlayer($i); $layer->set("status",MS_DELETE); } $next = $dataView["extent"]; diff --git a/pacotes/gvsig/gvsig2mapfile/upload.php b/pacotes/gvsig/gvsig2mapfile/upload.php index 454f9c1..76f23d4 100644 --- a/pacotes/gvsig/gvsig2mapfile/upload.php +++ b/pacotes/gvsig/gvsig2mapfile/upload.php @@ -47,9 +47,10 @@ if (isset($_FILES['i3GEOuploadfile']['name'])) $gm = new gvsig2mapfile($Arquivon); $views = $gm->getViewsNames(); $dataView = $gm->getViewData($views[0]); - $lnames = $mapn->getalllayernames(); - foreach($lnames as $name){ - $layer = $mapn->getlayerbyname($name); + $numlayers = $mapn->numlayers; + for ($i=0;$i < $numlayers;$i++) + { + $layer = $mapn->getlayer($i); $layer->set("status",MS_DELETE); } $next = $dataView["extent"]; @@ -59,7 +60,7 @@ if (isset($_FILES['i3GEOuploadfile']['name'])) $mapn->save(str_replace(".gvp",".map",$Arquivon)); $handle = fopen(str_replace(".gvp",".map",$Arquivon), "r"); echo ""; - while (!feof($handle)) + while (!feof($handle)) { $linha = fgets($handle); echo $linha."
"; diff --git a/testamapfile.php b/testamapfile.php index 1f7c273..ced71f0 100644 --- a/testamapfile.php +++ b/testamapfile.php @@ -190,12 +190,12 @@ function verifica($map,$solegenda) } //echo $base;exit; $mapa = ms_newMapObj($base); - + error_reporting(0); - $temasn = $mapa->getAllLayerNames(); - foreach ($temasn as $teman) + $numlayers = $mapa->numlayers; + for ($i=0;$i < $numlayers;$i++) { - $layern = $mapa->getLayerByName($teman); + $layern = $mapa->getlayer($i); if (!empty($postgis_mapa)) { if ($layern->connectiontype == MS_POSTGIS) @@ -211,7 +211,7 @@ function verifica($map,$solegenda) } } } - + if(!stristr($tema, '.php') === FALSE){ echo "
Arquivo $tema é um programa PHP. O teste pode não funcionar.
"; include_once($locaplic."/".$tema); @@ -234,7 +234,7 @@ function verifica($map,$solegenda) printf("
Error in %s: %s
\n", $error->routine, $error->message); $error = $error->next(); } - return; + return; } } else{ @@ -255,11 +255,11 @@ function verifica($map,$solegenda) return; } } - $temasn = $nmapa->getAllLayerNames(); + $numlayers = $nmapa->numlayers; $dados = ""; - foreach ($temasn as $teman) + for ($i=0;$i < $numlayers;$i++) { - $layern = $nmapa->getLayerByName($teman); + $layern = $mapa->getlayer($i); $layern->set("status",MS_DEFAULT); if (!empty($postgis_mapa)) { diff --git a/teste.php b/teste.php new file mode 100644 index 0000000..58139be --- /dev/null +++ b/teste.php @@ -0,0 +1,7 @@ +"; +} + +?> \ No newline at end of file -- libgit2 0.21.2