From 7971535d3fe13ef4e17e46a35231223f9aa0703e Mon Sep 17 00:00:00 2001 From: edmarmoretti Date: Mon, 5 Dec 2016 12:43:41 -0200 Subject: [PATCH] Reformulação Editor de mapfiles --- admin/admin.db | Bin 340992 -> 0 bytes admin1/catalogo/mapfile/editor/exec.php | 233 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ admin1/catalogo/mapfile/editor/index.js | 36 ++++++++++++++++++++++++++++++++++++ admin1/catalogo/mapfile/editor/index.php | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ admin1/catalogo/mapfile/opcoes/templates/templateMaisOpcoes.php | 2 +- admin1/dicionario/core.js | 5 +++++ admin1/dicionario/editormapfile.js | 5 +++++ temas/_estadosbr.map | 57 +++++++++++++++++++++++++++------------------------------ temas/_lbiomashp.map | 32 ++++++++++++++++---------------- testamapfile.php | 2 ++ 10 files changed, 432 insertions(+), 47 deletions(-) create mode 100755 admin1/catalogo/mapfile/editor/exec.php create mode 100755 admin1/catalogo/mapfile/editor/index.js create mode 100755 admin1/catalogo/mapfile/editor/index.php diff --git a/admin/admin.db b/admin/admin.db index 27dc48a..e1d0597 100755 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin1/catalogo/mapfile/editor/exec.php b/admin1/catalogo/mapfile/editor/exec.php new file mode 100755 index 0000000..95d830a --- /dev/null +++ b/admin1/catalogo/mapfile/editor/exec.php @@ -0,0 +1,233 @@ +getlayerbyname ( $codigo ); + if ($layer == "") { + return "
Atenção: não existe nenhum LAYER com NAME igual a " . $codigo . "
"; + } else { + // pega o metadata + $meta = $layer->getmetadata ( "permitedownload" ); + $meta = strtoupper ( $meta ); + if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + // grava no banco + $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET download_tema='$meta' WHERE codigo_tema = '$codigo'" ); + } + $meta = $layer->getmetadata ( "permiteogc" ); + $meta = strtoupper ( $meta ); + if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET ogc_tema='$meta' WHERE codigo_tema = '$codigo'" ); + } + $meta = $layer->getmetadata ( "permitekml" ); + $meta = strtoupper ( $meta ); + if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET kml_tema='$meta' WHERE codigo_tema = '$codigo'" ); + } + $meta = $layer->getmetadata ( "permitekmz" ); + $meta = strtoupper ( $meta ); + if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET kmz_tema='$meta' WHERE codigo_tema = '$codigo'" ); + } + } + } + $texto = file_get_contents ( $mapfile ); + if (mb_detect_encoding ( $texto, 'UTF-8, ISO-8859-1' ) == "ISO-8859-1") { + return utf8_encode ( $texto ); + } else { + return $texto; + } +} +function salvaMapfile() { + global $locaplic, $dbhw, $codigo, $gravarTexto; + if (empty ( $gravarTexto )) { + return; + } + $mapfile = $locaplic . "/temas/" . $codigo . ".map"; + $original = file_get_contents ( $mapfile ); + $fp = fopen ( $mapfile, "w" ); + if ($fp == false) { + echo "Não foi possível salvar o arquivo. Verifique as permissões ou se há algum erro no mapfile

"; + exit (); + } else { + // remove itens vazios + $novoTexto = array (); + $testar = array ( + "TEMPORIZADOR", + "PALLETESTEP", + "LTEMPOITEMIMAGEM", + "METAESTAT_ID_MEDIDA_VARIAVEL", + "GMOPACITY", + "GMSTATUS", + "ICONETEMA", + "LTEMPOITEMTITULO", + "DESCRIPTION_TEMPLATE", + "LTEMPOITEMLINK", + "TILES", + "METAESTAT_CODIGO_TIPO_REGIAO", + "ARQUIVOTEMAORIGINAL", + "PALLETEFILE", + "NOMEORIGINAL", + "OLSTATUS", + "PERMITEDOWNLOAD", + "LTEMPOFORMATODATA", + "FILTROORIGINAL", + "PERMITECOMENTARIO", + "LTEMPOITEMICONE", + "DATAORIGINAL", + "PLUGINI3GEO", + "METAESTAT", + "ITEMBUSCARAPIDA", + "ARQUIVODOWNLOAD", + "ARQUIVOKMZ", + "PERMITEKML", + "PERMITEOGC", + "CONVCARACTER", + "CORTEPIXELS", + "EDITORSQL", + "LTEMPOCONVENCODE", + "LTEMPOITEMFIM", + "OLOPACITY", + "LEGENDAWMS", + "LEGENDAIMG", + "KEYIMAGE", + "TILEINDEX", + "TILEITEM", + "SYMBOL", + "LABELITEM", + "FILTERITEM", + "GROUP", + "ENCODING", + "TIP", + "CLASSE", + "ITENSDESC", + "CLASSESNOME", + "ITENSLINK", + "ESCALA", + "CLASSESSIMBOLO", + "MENSAGEM", + "EXTENSAO", + "CLASSESITEM", + "ESCONDIDO", + "CLASSESCOR", + "DOWNLOAD", + "CLASSESTAMANHO", + "ITENS", + "TEMA", + "APLICAEXTENSAO", + "IDENTIFICA", + "TRANSITIONEFFECT" + ); + foreach ( preg_split ( '~[\r\n]+~', $gravarTexto ) as $line ) { + $teste = strtoupper ( $line ); + $teste = trim ( $teste ); + $teste = str_replace ( array ( + " ", + "'", + '"' + ), "", $teste ); + $teste = preg_replace ( '/[\n\r\t ]*/', '', $teste ); + $passou = true; + foreach ( $testar as $t ) { + if ($teste == $t) { + $passou = false; + } + } + if ($passou == true) { + if (mb_detect_encoding ( $line, 'UTF-8' ) == "UTF-8") { + $line = mb_convert_encoding($line,"ISO-8859-1","UTF-8"); + } + $novoTexto [] = $line; + } + } + fwrite ( $fp, implode ( "\r\n", $novoTexto ) ); + } + fclose ( $fp ); + // testa o mapfile + ms_ResetErrorList (); + if (! @ms_newMapObj ( $mapfile )) { + echo "Erro no arquivo sera mantido o original
"; + $error = ms_GetErrorObj (); + while ( $error && $error->code != MS_NOERR ) { + printf ( "
Error in %s: %s
\n", $error->routine, $error->message ); + $error = $error->next (); + } + $fp = fopen ( $mapfile, "w" ); + fwrite ( $fp, $original ); + fclose ( $fp ); + exit (); + } + + // verifica os metadata que sao armazenados tambem no banco de dados de administracao + // isso e necessario para manter a consistencia caso o usuario altere manualmente os valores + + // cria o objeto map + $mapa = ms_newMapObj ( $mapfile ); + /* + * $layer = $mapa->getlayerbyname ( $codigo ); + * if ($layer == "") { + * echo "
Atenção: não existe nenhum LAYER com NAME igual a " . $codigo . "
"; + * } else { + * include ("conexao.php"); + * // pega o metadata + * $meta = $layer->getmetadata ( "permitedownload" ); + * $meta = strtoupper ( $meta ); + * if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + * // grava no banco + * $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET download_tema='$meta' WHERE codigo_tema = '$codigo_tema'" ); + * } + * $meta = $layer->getmetadata ( "permiteogc" ); + * $meta = strtoupper ( $meta ); + * if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + * $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET ogc_tema='$meta' WHERE codigo_tema = '$codigo_tema'" ); + * } + * $meta = $layer->getmetadata ( "permitekml" ); + * $meta = strtoupper ( $meta ); + * if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + * $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET kml_tema='$meta' WHERE codigo_tema = '$codigo_tema'" ); + * } + * $meta = $layer->getmetadata ( "permitekmz" ); + * $meta = strtoupper ( $meta ); + * if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + * $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET kmz_tema='$meta' WHERE codigo_tema = '$codigo_tema'" ); + * } + * $dbhw = null; + * $dbh = null; + * } + */ +} +?> \ No newline at end of file diff --git a/admin1/catalogo/mapfile/editor/index.js b/admin1/catalogo/mapfile/editor/index.js new file mode 100755 index 0000000..ab666b1 --- /dev/null +++ b/admin1/catalogo/mapfile/editor/index.js @@ -0,0 +1,36 @@ +/* +Licenca: + +GPL2 + +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet + +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com + +Este programa é software livre; você pode redistribuí-lo +e/ou modificá-lo sob os termos da Licença Pública Geral +GNU conforme publicada pela Free Software Foundation; + +Este programa é distribuído na expectativa de que seja útil, +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. +Consulte a Licença Pública Geral do GNU para mais detalhes. +Você deve ter recebido uma cópia da Licença Pública Geral do +GNU junto com este programa; se não, escreva para a +Free Software Foundation, Inc., no endereço +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + + */ +i3GEOadmin.mapfile = {}; +i3GEOadmin.editor = { + + init: function(onde,codigo,id_tema){ + + }, + salvar: function(){ + i3GEOadmin.core.iconeAguarde($("#titulo")); + $("form").submit(); + } + +}; \ No newline at end of file diff --git a/admin1/catalogo/mapfile/editor/index.php b/admin1/catalogo/mapfile/editor/index.php new file mode 100755 index 0000000..c4adb9f --- /dev/null +++ b/admin1/catalogo/mapfile/editor/index.php @@ -0,0 +1,107 @@ + +
+ +
+
+
+
+ +
+ +
+ + +
+
+
+ + + + + diff --git a/admin1/catalogo/mapfile/opcoes/templates/templateMaisOpcoes.php b/admin1/catalogo/mapfile/opcoes/templates/templateMaisOpcoes.php index 3c489ed..51de8b6 100755 --- a/admin1/catalogo/mapfile/opcoes/templates/templateMaisOpcoes.php +++ b/admin1/catalogo/mapfile/opcoes/templates/templateMaisOpcoes.php @@ -24,7 +24,7 @@

- + sending {{{editorTxt}}} diff --git a/admin1/dicionario/core.js b/admin1/dicionario/core.js index 02d8a18..997f25e 100755 --- a/admin1/dicionario/core.js +++ b/admin1/dicionario/core.js @@ -1,5 +1,10 @@ //+$trad(1,i3GEOadmin.principal.dicionario)+ i3GEOadmin.core.dicionario = { + 'tabela' : [ { + pt : "Tabela", + en : "", + es : "" + } ], 'inicio' : [ { pt : "Início", en : "", diff --git a/admin1/dicionario/editormapfile.js b/admin1/dicionario/editormapfile.js index d8b6a15..8ba2886 100755 --- a/admin1/dicionario/editormapfile.js +++ b/admin1/dicionario/editormapfile.js @@ -1,5 +1,10 @@ //+$trad(1,i3GEOadmin.editormapfile.dicionario)+ i3GEOadmin.mapfile.dicionario = { + 'ajudaEditor' : [ { + pt : "Salve antes de testar. Mais detalhes sobre a edição de mapfiles veja em:", + en : "", + es : "" + } ], 'editarI3geo' : [ { pt : "Editar usando o i3Geo", en : "", diff --git a/temas/_estadosbr.map b/temas/_estadosbr.map index 9988e54..44154bd 100755 --- a/temas/_estadosbr.map +++ b/temas/_estadosbr.map @@ -1,30 +1,27 @@ -MAP - FONTSET "../symbols/fontes.txt" - SYMBOLSET "../symbols/simbolosv6.sym" - LAYER - DATA "/var/www/i3geo/aplicmap/dados/estados.shp" - METADATA - "CLASSE" "SIM" - "permitekmz" "SIM" - "permitedownload" "SIM" - "METAESTAT" "" - "permitekml" "SIM" - "permiteogc" "SIM" - "TEMA" "Limite Estadualx" - END # METADATA - NAME "_estadosbr" - STATUS DEFAULT - TEMPLATE "none.htm" - TILEITEM "location" - TYPE LINE - UNITS METERS - CLASS - NAME "" - STYLE - COLOR 0 0 0 - END # STYLE - END # CLASS - END # LAYER - -END # MAP - +MAP + FONTSET "../symbols/fontes.txt" + SYMBOLSET "../symbols/simbolosv6.sym" + LAYER + DATA "/var/www/i3geo/aplicmap/dados/estados.shp" + METADATA + "CLASSE" "SIM" + "permitekmz" "SIM" + "permitedownload" "SIM" + "permitekml" "SIM" + "permiteogc" "SIM" + "TEMA" "Limite Estadualx" + END # METADATA + NAME "_estadosbr" + STATUS DEFAULT + TEMPLATE "none.htm" + TILEITEM "location" + TYPE LINE + UNITS METERS + CLASS + NAME "" + STYLE + COLOR 0 0 0 + END # STYLE + END # CLASS + END # LAYER +END # MAP \ No newline at end of file diff --git a/temas/_lbiomashp.map b/temas/_lbiomashp.map index 9d59a75..ee61931 100755 --- a/temas/_lbiomashp.map +++ b/temas/_lbiomashp.map @@ -6,21 +6,20 @@ MAP DATA "/var/www/i3geo/aplicmap/dados/biomas.shp" METADATA "TIP" "CD_LEGENDA" - "CACHE" "sim" + #"cache" "sim" + "transitioneffect" "SIM" "CLASSE" "SIM" "permitekmz" "nao" - "ITENSDESC" "Bioma Teste de acentuação" - "ESCALA" "1000000" - "TILES" "NAO" - "extensao" "-76 -39 -29 9" + "ITENSDESC" "Teste de acentuação" "permitedownload" "sim" - "download" "sim" + "download" "SIM" "itembuscarapida" "CD_LEGENDA" "ITENS" "CD_LEGENDA" - "transitioneffect" "SIM" "permiteogc" "sim" "permitekml" "sim" - "TEMA" "Biomas SHP (acentução) teste" + "TEMA" "Biomas shapefile (acentuação)" + "ESCALA" "1000000" + "TILES" "SIM" END # METADATA NAME "_lbiomashp" PROCESSING "ITEMS=CD_LEGENDA" @@ -29,13 +28,14 @@ MAP STATUS DEFAULT TEMPLATE "none.htm" TILEITEM "location" + OPACITY 90 TYPE POLYGON UNITS METERS CLASS NAME "CAATINGA" EXPRESSION ('[CD_LEGENDA]'eq'CAATINGA') STYLE - COLOR 247 166 4 + COLOR 183 247 169 OUTLINECOLOR 255 255 255 END # STYLE TITLE "" @@ -44,7 +44,7 @@ MAP NAME "PAMPA area > 5" EXPRESSION ('[CD_LEGENDA]'eq'PAMPA area > 5') STYLE - COLOR 116 220 127 + COLOR 239 22 152 OUTLINECOLOR 255 255 255 END # STYLE TITLE "" @@ -53,7 +53,7 @@ MAP NAME "CERRADO" EXPRESSION ('[CD_LEGENDA]'eq'CERRADO') STYLE - COLOR 202 199 25 + COLOR 57 32 234 OUTLINECOLOR 255 255 255 END # STYLE TITLE "" @@ -62,7 +62,7 @@ MAP NAME "PANTANAL" EXPRESSION ('[CD_LEGENDA]'eq'PANTANAL') STYLE - COLOR 68 130 30 + COLOR 214 107 232 OUTLINECOLOR 255 255 255 END # STYLE TITLE "" @@ -71,19 +71,19 @@ MAP NAME "AMAZÔNIA" EXPRESSION ('[CD_LEGENDA]'eq'AMAZÔNIA') STYLE - COLOR 23 2 150 + COLOR 102 177 195 OUTLINECOLOR 255 255 255 END # STYLE TITLE "" END # CLASS CLASS - NAME "MATA ATLÂNTICA" + NAME "MATA ATLÂNTICA" EXPRESSION ('[CD_LEGENDA]'eq'MATA ATLÂNTICA') STYLE - COLOR 187 96 164 + COLOR 44 215 49 OUTLINECOLOR 255 255 255 END # STYLE TITLE "" END # CLASS END # LAYER -END # MAP +END # MAP \ No newline at end of file diff --git a/testamapfile.php b/testamapfile.php index a3f199b..cef4b3c 100755 --- a/testamapfile.php +++ b/testamapfile.php @@ -274,10 +274,12 @@ function verifica($map,$solegenda,$tabela,$cache="sim"){ } if(!stristr($tema, '.map') === FALSE){ if(file_exists($mapUrl)){ + ms_ResetErrorList(); if(@ms_newMapObj($mapUrl)){ $nmapa = ms_newMapObj($mapUrl); } else{ + echo "Erro no arquivo $mapUrl
"; $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR){ -- libgit2 0.21.2