From d5c38d5bf61d265da7d3ee94ac25701069562a53 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Sun, 4 Sep 2016 12:45:05 -0300 Subject: [PATCH] Correção nas funcoes de inicialização do mapa quando são utilizados parâmetros definidos na própria interface do mapa. Correção na função de salvar o mapfile no editor de temas --- admin/admin.db | Bin 340992 -> 0 bytes admin/php/editormapfile.php | 2 ++ css/black6.css | 268 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ferramentas/carregamapa/upload.php | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------- ferramentas/safe.php | 6 +++++- ferramentas/salvamapa/forcedownload.php | 37 ++++++++++++++++++++++--------------- interface/black_editor.php | 12 ++++++++++-- ms_configura.php | 2 +- ms_criamapa.php | 67 ++++++++++++++++++++++++++++++++++--------------------------------- temas/_lbiomashp.map | 11 ++++++++++- 10 files changed, 438 insertions(+), 102 deletions(-) create mode 100755 css/black6.css mode change 100755 => 100644 temas/_lbiomashp.map diff --git a/admin/admin.db b/admin/admin.db index 0e2e60e..3de91a6 100755 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 e72343e..ef7b736 100755 --- a/admin/php/editormapfile.php +++ b/admin/php/editormapfile.php @@ -46,7 +46,9 @@ $id = $_GET["id"]; testaSafeNumerico([$id]); $codigoMap = $_GET["codigoMap"]; +$codigomap = $_GET["codigomap"]; $codigoLayer = $_GET["codigoLayer"]; +$nomelayer = $_GET["nomelayer"]; $movimento = $_GET["movimento"]; $funcoesEdicao = array( diff --git a/css/black6.css b/css/black6.css new file mode 100755 index 0000000..fbe45aa --- /dev/null +++ b/css/black6.css @@ -0,0 +1,268 @@ +/* +para o campo escala e coordenadas +*/ +.fundoRodape .digitar { + background-color: #222222 !IMPORTANT; + opacity: 0.9 !IMPORTANT; + box-shadow: none !IMPORTANT; +} + +.fundoRodape .digitar:hover { + background-color: #222222 !IMPORTANT; + opacity: 0.9 !IMPORTANT; +} + +.fundoRodape .digitarOver { + background-color: #222222 !IMPORTANT; + opacity: 0.9 !IMPORTANT; +} +/* +Barra de botoes de edicao vetorial do openlayers +*/ + +/* +no caso do OL3 +*/ +.ol-overlaycontainer-stopevent .olControlEditingToolbar1 { + left: auto; + position: absolute; + right: 0; + top: 10px; +} + +.olControlEditingToolbar1 div { + background-image: url(../mashups/openlayers.png); + background-repeat: no-repeat; + float: right; + right: 50px; + height: 29px; + margin: 2px; + width: 29px; + cursor: pointer; + top: 10px; +} +/* +Estilo geral do rodape da pagina que contem a barra de escala, coordenadas, etc +*/ +.fundoRodape { + border: 0 solid #DFDFDF; + border-collapse: collapse; + font-family: Verdana,Arial,Helvetica,sans-serif; + font-size: 12px; + margin: 0; + padding: 0; + position: relative; + text-align: center; + background: black; +} +.fundoRodape .ticfind { + background-image: url("../imagens/botao-tiny-zoomparacoordenadas.png"); +} +.fundoRodape .ticfind:hover { + background-image: url("../imagens/botao-tiny-zoomparacoordenadas-hover.png"); +} +/* +Configuracoes especificas dos elementos que ficam no rodape +*/ +#seletorIdiomas { + float: right; +} +#escala { + float: left; +} +#escala td { + background: black; + float: left; +} +#escala span { + border: 0px solid white; +} +#escala input { + background: black; + color: white; + font-family: Verdana,Arial,Helvetica,sans-serif; + font-size: 10px; + margin: 0; + border: 0px solid white; + box-shadow: none; + text-align: right; +} +#i3GEOcompartilhar { + border: 0px solid white; + z-index: 20000; +} +#i3GEOcompartilhar td { + background: black; +} +.i3GeoMascaraCoord { + width: 100%; +} +.i3GeoMascaraCoord td { + background: black; + color: white; +} +.i3GeoMascaraCoord input { + background: black; + color: white; + font-family: Verdana,Arial,Helvetica,sans-serif; + font-size: 10px; + margin: 0; + border: 0px solid white; + box-shadow: none; +} +.i3GeoMascaraCoord span { + border: 0px solid white; +} +.contemCaixaTipoCoord { + overflow: hidden; + width: 40px; + background-color: black; +} +.i3GeoMascaraCoord select { + border: 0px solid #B4B4B4; + font-size: 10px; + height: 17px; + left: 1px; + position: relative; + top: 7px; + width: 130%; + background-color: #222222 !important; + box-shadow: none !important; + opacity: 0.9 !important; + color: white; +} +.i3GeoMascaraCoord tr { + border: 0px solid white; +} +#localizarxy { + z-index : 50; +} +/* +Imagens de fundo da barra de botoes +Ao definir background, o default e redefinido +*/ +#euDock_euImage_2 { + background: black; + opacity: 1; + max-height: 28px; +} +#euDock_euImage_3 { + background: black; + opacity: 1; + max-height: 28px; +} +#euDock_euImage_4 { + background: black; + opacity: 1; + max-height: 28px; +} +#euDock_euImage_2 { + max-height: 28px; + border: 1px solid black; + border-radius: 35px 0 0 5px; + opacity: 1; + background: black; + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='black', endColorstr='black',GradientType=0 ); +} + +#euDock_euImage_3 { + max-height: 28px; + border: 1px solid black; + opacity: 1; + background: black; + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='black', endColorstr='black',GradientType=0 ); +} + +#euDock_euImage_4 { + max-height: 28px; + border: 1px solid black; + border-radius: 0px 35 5 0px; + opacity: 1; + background: black; + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='black', endColorstr='black',GradientType=0 ); +} +#euDock_0 { + margin-top: 5px; +} + +/* +Menu superior de opcoes +*/ +/* cor da barra */ +#menus .bd{ + background: black; +} +/* item de menu quando o mouse passa */ +.yui-skin-sam .yuimenubaritem-selected { + background: #707070; + color: white; +} +/* nomes dos itens do menu */ +.yui-skin-sam .yuimenubaritemlabel { + color:white; + margin: 8px 0; + background: black; + height:14px; +} +/* nomes dos itens do menu quando o mouse passa*/ +.yui-skin-sam .yuimenubaritemlabel-selected{ + background: #707070; + color: white; +} +/* itens dos submenus */ +.yui-skin-sam .yuimenuitemlabel{ + color: white; + padding: 2px 22px; +} +.yui-skin-sam .yuimenuitemlabel a{ + color: white; +} +/* itens dos submenus quando o mouse passa*/ +.yui-skin-sam .yuimenuitem-selected { + background: #707070; +} +/* itens de menu com link e que foram visitados */ +.yui-skin-sam .yuimenubaritemlabel:visited { + color: white; +} +.yui-skin-sam .yuimenuitemlabel:visited { + color: white; +} +#menuajudaMenu{ + color: white; +} +.comboTemasCabecalho .yuimenuitemlabel{ + color: black; +} +.comboTemasCabecalho .yuimenuitemlabel:visited{ + color: black; +} +/*janelas flutuantes*/ +/*arvore de camadas*/ +.i3GEOarvCam .ygtvcell .ygtvlp, .i3GEOarvCam .ygtvlp { + background: url("../css/treeview-sprite.gif") no-repeat scroll 0 -8897px transparent; +} +.i3GEOarvCam .ygtvcell .ygtvlph, .i3GEOarvCam .ygtvlph { + background: url("../css/treeview-sprite.gif") no-repeat scroll 0 -8917px transparent; +} +.i3GEOarvCam .ygtvcell .ygtvlm, .i3GEOarvCam .ygtvlm { + background: url("../css/treeview-sprite.gif") no-repeat scroll 0 -8937px transparent; +} +.i3GEOarvCam .ygtvcell .ygtvlmh, .i3GEOarvCam .ygtvlmh { + background: url("../css/treeview-sprite.gif") no-repeat scroll 0 -8957px transparent; +} + +.i3GEOarvCam .ygtvcell .ygtvtp, .i3GEOarvCam .ygtvtp { + background: url("../css/treeview-sprite.gif") no-repeat scroll 0 -8897px transparent; + height: 22px; +} +.i3GEOarvCam .ygtvcell .ygtvtph, .i3GEOarvCam .ygtvtph { + background: url("../css/treeview-sprite.gif") no-repeat scroll 0 -8917px transparent; + height: 22px; +} +.i3GEOarvCam .ygtvcell .ygtvtm, .i3GEOarvCam .ygtvtm { + background: url("../css/treeview-sprite.gif") no-repeat scroll 0 -8937px transparent; +} +.i3GEOarvCam .ygtvcell .ygtvtmh, .i3GEOarvCam .ygtvtmh { + background: url("../css/treeview-sprite.gif") no-repeat scroll 0 -8957px transparent; +} diff --git a/ferramentas/carregamapa/upload.php b/ferramentas/carregamapa/upload.php index 89e0e49..ed7d722 100755 --- a/ferramentas/carregamapa/upload.php +++ b/ferramentas/carregamapa/upload.php @@ -1,18 +1,14 @@ Erro ao enviar o arquivo."; + return; +} +include(dirname(__FILE__)."/../../classesphp/carrega_ext.php"); if(isset($logExec) && $logExec["upload"] == true){ i3GeoLog("prog: carregamapa filename:" . $_FILES['i3GEOcarregamapafilemap']['name'],$dir_tmp); @@ -27,8 +23,7 @@ if(isset($logExec) && $logExec["upload"] == true){

Carregando o arquivo...

"; $dirmap = $dir_tmp; $Arquivo = $_FILES['i3GEOcarregamapafilemap']['name']; @@ -47,8 +42,6 @@ if (isset($_FILES['i3GEOcarregamapafilemap']['name']) && strlen(basename($_FILES if($checkphp == true){ exit; } - $nome = basename($Arquivo); - $arqtemp = $dirmap."/".$Arquivo; $status = move_uploaded_file($_FILES['i3GEOcarregamapafilemap']['tmp_name'],$dirmap."/".$Arquivo); if($status != 1){ echo "

Ocorreu um erro no envio do arquivo"; @@ -57,54 +50,98 @@ if (isset($_FILES['i3GEOcarregamapafilemap']['name']) && strlen(basename($_FILES } if($status == 1){ echo "

Arquivo enviado. Verificando o mapa...

"; - - $mapt = ms_newMapObj($dirmap."/".$Arquivo); $map = ms_newMapObj($map_file); + // + //muda o arquivo de simbolo + // + $s = file_get_contents($dirmap."/".$Arquivo); + $s = "MAP\n SYMBOLSET ".$map->symbolsetfilename."\nFONTSET ".$map->fontsetfilename."\n" . $s; + + $handle = fopen($dirmap."/".$Arquivo, "w"); + fwrite($handle,$s); + fclose($handle); + $mapt = ms_newMapObj($dirmap."/".$Arquivo); + unlink($dirmap."/".$Arquivo); + // //apaga os layers do mapa atual + // $numlayers = $map->numlayers; for ($i=0;$i < $numlayers;$i++) { $layer = $map->getlayer($i); $layer->set("status",MS_DELETE); } $map->save($map_file); - $img = $map->draw(); + // + //copia os layers do mapfile temporario para o mapfile em uso + // $numlayers = $mapt->numlayers; for ($i=0;$i < $numlayers;$i++){ - $layer = $mapt->getlayer($i); - ms_newLayerObj($map, $layer); - $layertemp = $map->getlayerbyname($layer->name); - $st = $layertemp->status; - $layertemp->set("status",MS_DEFAULT); - $testa = $layertemp->draw($img); - $layertemp->set("status",$st); - $layertemp->setmetadata("permitekmz","nao"); - $layertemp->setmetadata("permitedownload","nao"); - $layertemp->setmetadata("download","nao"); - $layertemp->setmetadata("permitekml","nao"); - $layertemp->setmetadata("permiteogc","nao"); - $layertemp->setmetadata("animagif",""); - $layertemp->setmetadata("tme",""); - $layertemp->setmetadata("storymap",""); - $layertemp->setmetadata("editorsql","nao"); - $layertemp->setmetadata("EDITAVEL","nao"); - $layertemp->setmetadata("PLUGINI3GEO",""); - $layertemp->setmetadata("arquivodownload",""); - if ($testa == 1){ - echo "

Problemas em ".($layer->name).". Removido.


"; - $layertemp->set("status",MS_DELETE); + $layert = $mapt->getlayer($i); + // + //verifica se existe o tema em i3geo/temas + // + $arqoriginal = ""; + if(file_exists($locaplic."/temas/".$layert->name.".map")){ + $nomeoriginal = $layert->name; + $arqoriginal = $locaplic."/temas/".$layert->name.".map"; + } elseif (file_exists($locaplic."/temas/".$layert->getmetadata("nomeoriginal").".map")){ + $nomeoriginal = $layert->getmetadata("nomeoriginal"); + $arqoriginal = $locaplic."/temas/".$layert->getmetadata("nomeoriginal").".map"; + } + if($arqoriginal != ""){ + // + //o tema existe + // + $mapo = ms_newMapObj($arqoriginal); + $layero = $mapo->getlayerbyname($nomeoriginal); + $layero->setmetadata("cache","nao"); + // + //remove as classes do layer original + // + $nclasses = $layero->numclasses; + if ($nclasses > 0){ + for ($j=0; $j < $nclasses; ++$j){ + $classe = $layero->getClass($j); + $classe->set("status",MS_DELETE); + } + } + // + //copia as classes do layer do upload para o original + // + $nclasses = $layert->numclasses; + if ($nclasses > 0){ + for ($j=0; $j < $nclasses; ++$j){ + $classe = $layert->getClass($j); + //adiciona a classe no original + ms_newClassObj($layero, $classe); + } + } + // + //ajusta parametros que o usuario pode ter modificado + // + if($layert->status == 2){ + $layero->set("status",MS_DEFAULT); + } + else{ + $layero->set("status",MS_OFF); + } + + $layero->set("opacity",$layert->opacity); + $layero->setmetadata("TEMA",$layert->getmetadata("TEMA")); + // + //adiciona o layer ao mapa atual + // + ms_newLayerObj($map,$layero); + } elseif($layert->connectiontype == MS_INLINE || $layert->connectiontype == MS_WMS || $layert->connectiontype == MS_GRATICULE){ + ms_newLayerObj($map,$layert); } } - $map->setmetadata("CUSTOMIZACOESINIT",""); $map->save($map_file); - restauraCon($map_file,$postgis_mapa); - unlink($dirmap."/".$Arquivo); - $e = $mapt->extent; - $extatual = $e->minx." ".$e->miny." ".$e->maxx." ".$e->maxy; + validaAcessoTemas($map_file); echo "

Ok. redesenhando."; echo ""; - echo ""; - + //echo ""; } else{ echo "

Erro ao enviar o arquivo."; diff --git a/ferramentas/safe.php b/ferramentas/safe.php index 7ca2b59..6d3e86c 100755 --- a/ferramentas/safe.php +++ b/ferramentas/safe.php @@ -1,6 +1,9 @@ Erro ao enviar o arquivo."; + return; +} +// //faz uma copia temporaria do mapfile // $arquivo = dirname($map_file)."/mapfile_".nomeRandomico(6).".map"; @@ -22,18 +29,18 @@ for ($i=0;$i < $c;++$i){ if($ct != MS_INLINE && $ct != MS_WMS && $ct != MS_GRATICULE){ $l->set("connection",""); $l->set("data",""); - } - // - //remove os metadata - // - $hashTable = $l->metadata; - $key = null; - while ($key = $hashTable->nextkey($key)){ - if(!in_array(strtolower($key),array("tema","nomeoriginal"))){ - //echo "Key: ".$key." value: ".$hashTable->get($key)."
"; - $l->setmetadata($key,""); - if($ct != MS_WMS){ - $remover[] = strtoupper($key); + // + //remove os metadata + // + $hashTable = $l->metadata; + $key = null; + while ($key = $hashTable->nextkey($key)){ + if(!in_array(strtolower($key),array("tema","nomeoriginal"))){ + //echo "Key: ".$key." value: ".$hashTable->get($key)."
"; + $l->setmetadata($key,""); + if($ct != MS_WMS){ + $remover[] = strtoupper($key); + } } } } @@ -54,15 +61,15 @@ function removeCabecalho($arq,$remover){ $handle = fopen($arq, "r"); if ($handle){ $cabeca = array(); - $cabeca[] = "MAP\n"; + //$cabeca[] = "MAP\n"; $grava = false; while (!feof($handle)){ $linha = fgets($handle); if(strpos(strtoupper($linha),"SYMBOLSET") !== false){ - $cabeca[] = '"..'.explode($pasta,$linha)[1]; + //$cabeca[] = '"..'.explode($pasta,$linha)[1]; } if(strpos(strtoupper($linha),"FONTSET") !== false){ - $cabeca[] = '"..'.explode($pasta,$linha)[1]; + //$cabeca[] = '"..'.explode($pasta,$linha)[1]; } if(strtoupper(trim($linha)) == "LAYER"){ $grava = true; diff --git a/interface/black_editor.php b/interface/black_editor.php index d1691eb..36af3ff 100755 --- a/interface/black_editor.php +++ b/interface/black_editor.php @@ -18,9 +18,9 @@ top: 10px; } - + - + @@ -48,11 +48,19 @@
+ +
+ +
+ + + + diff --git a/ms_configura.php b/ms_configura.php index fbf6e7b..f7ba0d8 100755 --- a/ms_configura.php +++ b/ms_configura.php @@ -219,7 +219,7 @@ buscarapida,conectarservicos,convertemapakml,cortina,editorsql,filtroarvore,geol inseretxt,mostraexten,outputformat,perfil,tipoimagem */ -$i3geoBlFerramentas = array("carregamapa","saiku"); +$i3geoBlFerramentas = array("saiku"); /* Variable: $ogrOutput diff --git a/ms_criamapa.php b/ms_criamapa.php index 500b49f..f6f0d8c 100755 --- a/ms_criamapa.php +++ b/ms_criamapa.php @@ -221,10 +221,41 @@ filtros - filtros podem ser adicionados incluindo o parametro da seguinte forma: } //$_COOKIE = array(); // -//quando $funcao existe, é pq o ms_criamapa.php está sendo utilizado como um include em classesphp/mapa_controle.php +//quando $funcao existe, é pq o ms_criamapa.php está +//sendo utilizado como um include em classesphp/mapa_controle.php // - +$parurl = array_merge($_GET,$_POST); ms_ResetErrorList(); +$base = $parurl["base"]; +$temasa = $parurl["temasa"]; +$layers = $parurl["layers"]; +$desligar = $parurl["desligar"]; +$mapext = $parurl["mapext"]; +$executa = "";//$parurl["executa"]; +$perfil = $parurl["perfil"]; +$caminho = $parurl["caminho"]; +$pontos = $parurl["pontos"]; +$nometemapontos = $parurl["nometemapontos"]; +$linhas = $parurl["linhas"]; +$nometemalinhas = $parurl["nometemalinhas"]; +$poligonos = $parurl["poligonos"]; +$nometemapoligonos = $parurl["nometemapoligonos"]; +$simbolo = $parurl["simbolo"]; +$corsimbolo = $parurl["corsimbolo"]; +$tamanhosimbolo = $parurl["tamanhosimbolo"]; +$wkt = $parurl["wkt"]; +$nometemawkt = $parurl["nometemawkt"]; +$idioma = $parurl["idioma"]; +$kmlurl = $parurl["kmlurl"]; +$url_wms = $parurl["url_wms"]; +$layer_wms = $parurl["layer_wms"]; +$style_wms = $parurl["style_wms"]; +$nome_wms = $parurl["nome_wms"]; +$srs_wms = $parurl["srs_wms"]; +$image_wms = $parurl["image_wms"]; +$versao_wms = $parurl["versao_wms"]; +$gvsigview = $parurl["gvsigview"]; +$restauramapa = $parurl["restauramapa"]; if(!isset($funcao)){ ob_end_clean(); /* @@ -240,38 +271,8 @@ if(!isset($funcao)){ Inclui os programas php com funções utilizadas pelo ms_criamapa.php */ include_once (dirname(__FILE__)."/classesphp/sani_request.php"); - $parurl = array_merge($_GET,$_POST); - $base = $parurl["base"]; - $temasa = $parurl["temasa"]; - $layers = $parurl["layers"]; - $desligar = $parurl["desligar"]; - $mapext = $parurl["mapext"]; - $executa = "";//$parurl["executa"]; + $interface = $parurl["interface"]; - $perfil = $parurl["perfil"]; - $caminho = $parurl["caminho"]; - $pontos = $parurl["pontos"]; - $nometemapontos = $parurl["nometemapontos"]; - $linhas = $parurl["linhas"]; - $nometemalinhas = $parurl["nometemalinhas"]; - $poligonos = $parurl["poligonos"]; - $nometemapoligonos = $parurl["nometemapoligonos"]; - $simbolo = $parurl["simbolo"]; - $corsimbolo = $parurl["corsimbolo"]; - $tamanhosimbolo = $parurl["tamanhosimbolo"]; - $wkt = $parurl["wkt"]; - $nometemawkt = $parurl["nometemawkt"]; - $idioma = $parurl["idioma"]; - $kmlurl = $parurl["kmlurl"]; - $url_wms = $parurl["url_wms"]; - $layer_wms = $parurl["layer_wms"]; - $style_wms = $parurl["style_wms"]; - $nome_wms = $parurl["nome_wms"]; - $srs_wms = $parurl["srs_wms"]; - $image_wms = $parurl["image_wms"]; - $versao_wms = $parurl["versao_wms"]; - $gvsigview = $parurl["gvsigview"]; - $restauramapa = $parurl["restauramapa"]; } include_once (dirname(__FILE__)."/classesphp/funcoes_gerais.php"); diff --git a/temas/_lbiomashp.map b/temas/_lbiomashp.map old mode 100755 new mode 100644 index f36fed9..2578fb4 --- a/temas/_lbiomashp.map +++ b/temas/_lbiomashp.map @@ -9,13 +9,22 @@ MAP "TIP" "CD_LEGENDA" "CACHE" "sim" "CLASSE" "SIM" + "olopacity" "" "permitekmz" "sim" + "gmopacity" "" + "gmstatus" "" "ITENSDESC" "Bioma Teste de acentuação" "ESCALA" "1000000" "TILES" "SIM" "METAESTAT_CODIGO_TIPO_REGIAO" "" + "arquivotemaoriginal" "" "extensao" "-76 -39 -29 9" + "nomeoriginal" "" + "olstatus" "" "permitedownload" "sim" + "FILTROORIGINAL" "" + "DATAORIGINAL" "" + "PLUGINI3GEO" "" "metaestat" "" "download" "sim" "itembuscarapida" "CD_LEGENDA" @@ -38,7 +47,7 @@ MAP NAME "CAATINGA" EXPRESSION ('[CD_LEGENDA]'eq'CAATINGA') STYLE - COLOR 4 180 226 + COLOR 247 166 4 OUTLINECOLOR 255 255 255 END # STYLE TITLE "" -- libgit2 0.21.2