From 459f80cb83b2dd9410beac4c718fa807d4384bd0 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Tue, 15 Jan 2013 03:39:46 +0000 Subject: [PATCH] Inclusão de visualizador de mapa no editor de mapfiles (editor de textos) --- admin/admin.db | Bin 172032 -> 0 bytes admin/js/estat_mapa.js | 63 +++++++++++++++++++++++++++++++-------------------------------- admin/php/classe_metaestat.php | 42 ++++++++++++++++++++++++++++++++++++++++++ admin/php/criabanco.php | 2 +- admin/php/editortexto.php | 8 +++++--- admin/php/metaestat.php | 25 +++++++++++++++++++++++++ admin/php/upgradebanco46_47.php | 2 +- admin/sql/metaestat.sql | 4 ++-- documentacao/diagramas/metaestat.erm | 6 +++--- ferramentas/metaestat/templates/openlayersdebug.php | 315 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ mashups/openlayers.php | 4 ++-- symbols/simbolos.sym | 367 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- symbols/simbolosv6.sym | 374 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- temas/_lautolegenda_exemplo.map | 8 ++++---- temas/_llocali.map | 6 +++--- 15 files changed, 807 insertions(+), 419 deletions(-) create mode 100644 ferramentas/metaestat/templates/openlayersdebug.php diff --git a/admin/admin.db b/admin/admin.db index 55233dd..66503e2 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/js/estat_mapa.js b/admin/js/estat_mapa.js index 3c0a899..369dde7 100755 --- a/admin/js/estat_mapa.js +++ b/admin/js/estat_mapa.js @@ -98,24 +98,24 @@ function adicionaNosTemas(no,dados,redesenha) { if(!redesenha) { - var conteudo = "Adicionar novo tema:"; + var conteudo = "Adicionar novo tema:"; var d = {html:conteudo}; var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); tempNode.isLeaf = true; } for (var i=0, j=dados.length; i"; - conteudo += " "; - conteudo += " "; - if(dados[i].codigo_tema != "") - {conteudo += " "+dados[i].codigo_tema+" - "+dados[i].nome_tema+"";} + conteudo += " "; + conteudo += " "; + conteudo += " "; + if(dados[i].id_mapa_tema != "") + {conteudo += " "+dados[i].titulo+"";} else {conteudo += " Edite para definir o tema!!!";} - var d = {html:conteudo,id_tema:dados[i].id_tema,tipo:"tema"}; + var d = {html:conteudo,id_mapa_tema:dados[i].id_mapa_tema,tipo:"tema"}; var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); tempNode.isLeaf = true; } @@ -131,7 +131,7 @@ function adicionaNosGrupos(no,dados,redesenha) } function loadTemasData(node, fnLoadComplete) { - var sUrl = "../php/atlas.php?funcao=listaTemasMapa&id_mapa_grupo="+node.data.id_mapa_grupo; + var sUrl = "../php/metaestat.php?funcao=listaTemasMapa&id_mapa_grupo="+node.data.id_mapa_grupo; var callback = { success: function(oResponse) @@ -221,11 +221,10 @@ function editar(tipo,id) } if(tipo == "tema") { - var dados = YAHOO.lang.JSON.parse(o.responseText)[0]; + var dados = YAHOO.lang.JSON.parse(o.responseText); core_montaEditor("gravaDados('tema','"+id+"')"); $i("editor_bd").innerHTML = montaDivTema(dados); core_carregando("desativa"); - core_comboMapfiles("comboTemaIni","Ecodigo_tema",dados.codigo_tema,"",true); } core_carregando("desativa"); } @@ -239,21 +238,21 @@ function editar(tipo,id) if(tipo == "grupo") {sUrl = "../php/metaestat.php?funcao=listaGruposMapa&id_mapa_grupo="+id;} if(tipo == "tema") - {sUrl = "../php/atlas.php?funcao=pegaDadosTema&id_tema="+id;} + {sUrl = "../php/metaestat.php?funcao=listaTemasMapa&id_mapa_tema="+id;} if(sUrl) {core_makeRequest(sUrl,callback);} } function montaDivTema(i) { + var param = + { + "linhas":[ + {titulo:"Título:",id:"Etitulo",size:"50",value:i.titulo,tipo:"text",div:""}, + {titulo:"ID da medida de uma variável:",id:"Eid_medida_variavel",size:"50",value:i.id_medida_variavel,tipo:"text",div:""} + ] + }; var ins = ""; - ins += "
Código do tema:
"; - ins += "
"; - - ins += "Ligado (ao abrir a prancha, esse tema estará visível)?
"; - ins += ""; - ins += ""; + ins += core_geraLinhas(param); return(ins); } function montaDivGrupo(i) @@ -352,7 +351,7 @@ function excluir(tipo,id) if(tipo == "tema") { no = tree.getNodeByProperty("id_tema",id); - sUrl = "../php/atlas.php?funcao=excluirTema&id="+id; + sUrl = "../php/metaestat.php?funcao=excluirMapaTema&id_mapa_tema="+id; } if(sUrl) {core_excluiNoTree(sUrl,no,mensagem);} @@ -366,15 +365,15 @@ Adiciona um novo tema */ function adicionarTema(id) { - var no = tree.getNodeByProperty("id_prancha",id); - var sUrl = "../php/atlas.php?funcao=alterarTema&id_prancha="+id; + var no = tree.getNodeByProperty("id_mapa_grupo",id); + var sUrl = "../php/metaestat.php?funcao=alteraMapaTema&id_mapa_grupo="+id; var callback = { success: function(oResponse) { - var dados = YAHOO.lang.JSON.parse(oResponse.responseText)[0]; - adicionaNosTemas(no,dados,true); - editar('tema',dados[dados.length-1].id_tema); + var dados = YAHOO.lang.JSON.parse(oResponse.responseText); + adicionaNosTemas(no,[dados],true); + editar('tema',dados.id_mapa_tema); }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } @@ -428,9 +427,9 @@ function gravaDados(tipo,id) } if(tipo == "tema") { - campos = new Array("codigo_tema","ordem_tema","ligado_tema"); - par = "&id_tema="+id; - prog = "../php/atlas.php?funcao=alterarTema"; + campos = new Array("titulo","id_medida_variavel"); + par = "&id_mapa_tema="+id; + prog = "../php/metaestat.php?funcao=alteraMapaTema"; } for (var i=0;igetMessage(); } } + /* + Function: alteraMapaTema + + Altera um tema de um grupo de um mapa ou adiciona um novo + + */ + function alteraMapaTema($id_mapa_grupo,$id_mapa_tema="",$titulo="",$id_medida_variavel=""){ + try { + if($this->convUTF){ + $titulo = utf8_encode($titulo); + } + if($id_mapa_tema != ""){ + $this->dbhw->query("UPDATE ".$this->esquemaadmin."i3geoestat_mapa_tema SET titulo='$titulo',id_medida_variavel='$id_medida_variavel' WHERE id_mapa_tema = $id_mapa_tema"); + $retorna = $id_mapa_tema; + } + else{ + $retorna = $this->insertId("i3geoestat_mapa_tema","titulo","id_mapa_tema"); + if($retorna){ + $this->dbhw->query("UPDATE ".$this->esquemaadmin."i3geoestat_mapa_tema SET id_mapa_grupo = $id_mapa_grupo WHERE id_mapa_tema = $retorna"); + } + } + return $retorna; + } + catch (PDOException $e) { + return "Error!: " . $e->getMessage(); + } + } /* Function: alteraVariavel @@ -1182,6 +1209,21 @@ class Metaestat{ $sql .= " ORDER BY titulo"; return $this->execSQL($sql,$id_mapa_grupo); } + /* + Function: listaTemasMapa + + Lista os temas de um grupo de um mapa cadastrados para publicacao + */ + function listaTemasMapa($id_mapa_grupo,$id_mapa_tema){ + if(!empty($id_mapa_grupo)){ + $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_mapa_tema WHERE id_mapa_grupo = $id_mapa_grupo"; + } + if(!empty($id_mapa_tema)){ + $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_mapa_tema WHERE id_mapa_tema = $id_mapa_tema"; + } + $sql .= " ORDER BY titulo"; + return $this->execSQL($sql,$id_mapa_tema); + } /* Function: listaUnidadeMedida diff --git a/admin/php/criabanco.php b/admin/php/criabanco.php index 9ba8214..f9564fb 100644 --- a/admin/php/criabanco.php +++ b/admin/php/criabanco.php @@ -97,7 +97,7 @@ "create table ".$esquemaadmin."i3geoestat_parametro_medida(id_parametro_medida integer primary key,coluna text,nome text,descricao text,id_pai integer default 0,id_medida_variavel integer)", "create table ".$esquemaadmin."i3geoestat_mapa(id_mapa integer not null unique primary key autoincrement,titulo text,template text,logoesquerdo text,logodireito text,publicado integer)", "create table ".$esquemaadmin."i3geoestat_mapa_grupo(id_mapa_grupo integer not null unique primary key autoincrement,id_mapa integer,titulo text,foreign key (id_mapa) references i3geoestat_mapa (id_mapa))", - "create table ".$esquemaadmin."i3geoestat_mapa_tema (id_mapa_tema integer not null unique primary key autoincrement,id_mapa_grupo integer,titulo text,id_medida_variavel integer unique,foreign key (id_mapa_grupo) references i3geoestat_mapa_grupo (id_mapa_grupo),foreign key (id_medida_variavel) references i3geoestat_medida_variavel (id_medida_variavel))" + "create table ".$esquemaadmin."i3geoestat_mapa_tema (id_mapa_tema integer not null unique primary key autoincrement,id_mapa_grupo integer,titulo text,id_medida_variavel integer,foreign key (id_mapa_grupo) references i3geoestat_mapa_grupo (id_mapa_grupo),foreign key (id_medida_variavel) references i3geoestat_medida_variavel (id_medida_variavel))" ); //valida o usuario e aplica if($conexaoadmin == ""){ diff --git a/admin/php/editortexto.php b/admin/php/editortexto.php index 390fd4b..7ad9bd6 100644 --- a/admin/php/editortexto.php +++ b/admin/php/editortexto.php @@ -22,7 +22,7 @@ body { href="../html/editormapfile.html" target="_self">Voltar

" method=post> - (Salve antes de testar)

Aguarde...
@@ -49,13 +49,15 @@ body { fclose($fp); } echo "Edite:
"; - echo ""; + echo ""; echo ""; $mapa = ms_newMapObj($mapfile); $n = $mapa->numlayers; - echo "Colunas dos layers:

"; + echo "

Colunas dos layers:

"; for($i=0;$i<$n;$i++){ $l = $mapa->getlayer($i); echo $l->name.": ".(implode(",",pegaItens($l)))."

"; diff --git a/admin/php/metaestat.php b/admin/php/metaestat.php index 6fc93b0..d6316cd 100644 --- a/admin/php/metaestat.php +++ b/admin/php/metaestat.php @@ -42,6 +42,7 @@ include_once(__DIR__."/login.php"); $funcoesEdicao = array( "ALTERAMAPAGRUPO", + "ALTERAMAPATEMA", "ALTERAMAPA", "ALTERAVARIAVEL", "ALTERAMEDIDAVARIAVEL", @@ -59,6 +60,7 @@ $funcoesEdicao = array( "ALTERARTIPOPERIODO", "EXCLUIRMAPA", "EXCLUIRMAPAGRUPO", + "EXCLUIRMAPATEMA", "EXCLUIRVARIAVEL", "EXCLUIRTIPOPERIODO", "EXCLUIRUNIDADEMEDIDA", @@ -284,6 +286,11 @@ switch (strtoupper($funcao)) retornaJSON($m->listaGruposMapa($id_mapa,$id_mapa_grupo)); exit; break; + case "LISTATEMASMAPA": + $m = new Metaestat(); + retornaJSON($m->listaTemasMapa($id_mapa_grupo,$id_mapa_tema)); + exit; + break; //lista os templates que o usuario pode escolher para publicar mapas //a pasta com alista e definida na variavel $metaestatTemplates localizada no ms_configura.php case "LISTATEMPLATESMAPA": @@ -701,6 +708,17 @@ switch (strtoupper($funcao)) retornaJSON($m->listaGruposMapa($id_mapa,$id_mapa_grupo)); exit; break; + case "ALTERAMAPATEMA": + $m = new Metaestat(); + if(empty($id_mapa_tema)){ + $id_mapa_tema = $m->alteraMapaTema($id_mapa_grupo); + } + else{ + $id_mapa_tema = $m->alteraMapaTema($id_mapa_grupo,$id_mapa_tema,$titulo,$id_medida_variavel); + } + retornaJSON($m->listaTemasMapa($id_mapa_grupo,$id_mapa_tema)); + exit; + break; /* Valor: EXCLUIRMAPA @@ -731,6 +749,13 @@ switch (strtoupper($funcao)) retornaJSON("erro"); exit; break; + case "EXCLUIRMAPATEMA": + $tabela = "i3geoestat_mapa_tema"; + $id = $id_mapa_tema; + $m = new Metaestat(); + retornaJSON($m->excluirRegistro("i3geoestat_mapa_tema","id_mapa_tema",$id)); + exit; + break; /* Valor: EXCLUIRVARIAVEL diff --git a/admin/php/upgradebanco46_47.php b/admin/php/upgradebanco46_47.php index 672dcb8..c2d314a 100644 --- a/admin/php/upgradebanco46_47.php +++ b/admin/php/upgradebanco46_47.php @@ -90,7 +90,7 @@ $tabelas = array( "create table ".$esquemaadmin."i3geoestat_parametro_medida(id_parametro_medida integer primary key,coluna text,nome text,descricao text,id_pai integer default 0,id_medida_variavel integer)", "create table ".$esquemaadmin."i3geoestat_mapa(id_mapa integer not null unique primary key autoincrement,titulo text,template text,logoesquerdo text,logodireito text,publicado integer)", "create table ".$esquemaadmin."i3geoestat_mapa_grupo(id_mapa_grupo integer not null unique primary key autoincrement,id_mapa integer,titulo text,foreign key (id_mapa) references i3geoestat_mapa (id_mapa))", - "create table ".$esquemaadmin."i3geoestat_mapa_tema (id_mapa_tema integer not null unique primary key autoincrement,id_mapa_grupo integer,titulo text,id_medida_variavel integer unique,foreign key (id_mapa_grupo) references i3geoestat_mapa_grupo (id_mapa_grupo),foreign key (id_medida_variavel) references i3geoestat_medida_variavel (id_medida_variavel))" + "create table ".$esquemaadmin."i3geoestat_mapa_tema (id_mapa_tema integer not null unique primary key autoincrement,id_mapa_grupo integer,titulo text,id_medida_variavel integer,foreign key (id_mapa_grupo) references i3geoestat_mapa_grupo (id_mapa_grupo),foreign key (id_medida_variavel) references i3geoestat_medida_variavel (id_medida_variavel))" ); foreach($tabelas as $tabela) { diff --git a/admin/sql/metaestat.sql b/admin/sql/metaestat.sql index a336622..20a264b 100644 --- a/admin/sql/metaestat.sql +++ b/admin/sql/metaestat.sql @@ -11,9 +11,9 @@ drop table i3geoestat_medida_variavel; drop table i3geoestat_tipo_regiao; drop table i3geoestat_conexao; drop table i3geoestat_fonteinfo; -drop table i3geoestat_mapa_tema; drop table i3geoestat_mapa_grupo; drop table i3geoestat_mapa; +drop table i3geoestat_mapa_tema; drop table i3geoestat_tipo_periodo; drop table i3geoestat_unidade_medida; drop table i3geoestat_variavel; @@ -249,7 +249,7 @@ create table i3geoestat_mapa_tema id_mapa_grupo integer, -- titulo do tema, se for vazio, usa o definido no sistema metaestat titulo text, - id_medida_variavel integer unique, + id_medida_variavel integer, foreign key (id_mapa_grupo) references i3geoestat_mapa_grupo (id_mapa_grupo), foreign key (id_medida_variavel) diff --git a/documentacao/diagramas/metaestat.erm b/documentacao/diagramas/metaestat.erm index 133ed9a..93305f8 100644 --- a/documentacao/diagramas/metaestat.erm +++ b/documentacao/diagramas/metaestat.erm @@ -12,7 +12,7 @@ 0 1.0 203 - 322 + 262 255 128 @@ -110,7 +110,7 @@ false 2012-07-17 15:03:53 - 2013-01-14 17:13:53 + 2013-01-14 19:30:51 Project Name @@ -4960,7 +4960,7 @@ true false false - true + false diff --git a/ferramentas/metaestat/templates/openlayersdebug.php b/ferramentas/metaestat/templates/openlayersdebug.php new file mode 100644 index 0000000..35b2b4e --- /dev/null +++ b/ferramentas/metaestat/templates/openlayersdebug.php @@ -0,0 +1,315 @@ + + + + + +i3GEO - OpenLayers + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

i3Geo - Software livre para criação de mapas interativos e geoprocessamento

Baseado no Mapserver, é licenciado sob GPL e integra o Portal do Software Público Brasileiro

+ +
+ +
+ + +
+ + + + + + + diff --git a/mashups/openlayers.php b/mashups/openlayers.php index d3b23fa..07147cf 100644 --- a/mashups/openlayers.php +++ b/mashups/openlayers.php @@ -368,13 +368,13 @@ i3GEO.editorOL.ativarodadomouse = ""; -