Commit 894795592ae2bda11a1d932f4d30da0d9f1d62dc

Authored by Edmar Moretti
1 parent 626a851d

--no commit message

admin/js/editormapfile_classes.js 0 → 100755
@@ -0,0 +1,331 @@ @@ -0,0 +1,331 @@
  1 +//
  2 +//Utilizado por editormapfile.js
  3 +//
  4 +/*
  5 +Function: editorClasseGeral
  6 +
  7 +Abre o editor de dados gerais de uma classe
  8 +
  9 +<PEGAGERAL>
  10 +*/
  11 +function editorClasseGeral(codigoMap,codigoLayer,indiceClasse)
  12 +{
  13 + core_montaEditor("","450px","500px","","Classe");
  14 + var sUrl = "../php/editormapfile.php?funcao=pegaClasseGeral&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse;
  15 + core_pegaDados("Obtendo dados...",sUrl,"montaEditorClasseGeral");
  16 +}
  17 +function loadClasseData(node, fnLoadComplete)
  18 +{
  19 + var sUrl = "../php/editormapfile.php?funcao=listaEstilos&codigoMap="+node.data.codigoMap+"&codigoLayer="+node.data.codigoLayer+"&indiceClasse="+node.data.indiceClasse;
  20 + var callback =
  21 + {
  22 + success: function(oResponse)
  23 + {
  24 + var dados = YAHOO.lang.JSON.parse(oResponse.responseText);
  25 + montaParametrosClasses(node,dados,false);
  26 + oResponse.argument.fnLoadComplete();
  27 + },
  28 + failure: function(oResponse)
  29 + {
  30 + oResponse.argument.fnLoadComplete();
  31 + },
  32 + argument:
  33 + {
  34 + "node": node,
  35 + "fnLoadComplete": fnLoadComplete
  36 + },
  37 + timeout: 25000
  38 + };
  39 + YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
  40 +}
  41 +function conteudoNoClasse(codigoMap,codigoLayer,indice,nome){
  42 + var conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','classe','"+codigoMap+"','"+codigoLayer+"','"+indice+"')\" title=sobe src=\"../imagens/34.png\" />";
  43 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','classe','"+codigoMap+"','"+codigoLayer+"','"+indice+"')\" title=desce src=\"../imagens/33.png\" />";
  44 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluirClasse('"+codigoMap+"','"+codigoLayer+"','"+indice+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" />&nbsp;<span>"+indice+" "+nome+"</span>";
  45 + var d = {classes:codigoMap+"_"+codigoLayer,html:conteudo,id:codigoMap+"_"+codigoLayer+"_"+indice,codigoMap:codigoMap,codigoLayer:codigoLayer,indiceClasse:indice};
  46 + return d;
  47 +}
  48 +function montaParametrosClasses(no,dados,redesenha)
  49 +{
  50 + var codigoMap = no.data.codigoMap;
  51 + var codigoLayer = no.data.codigoLayer;
  52 + var indiceClasse = no.data.indiceClasse;
  53 + var conteudo = "";
  54 + var tempNode = "";
  55 + var tempNodeR = "";
  56 + if(!tree.getNodeByProperty("etiquetaClasseGeral",no.data.id))
  57 + {
  58 + conteudo = "<span style=cursor:pointer; onclick=\"editorClasseGeral('"+codigoMap+"','"+codigoLayer+"','"+indiceClasse+"')\" ><img width='10px' heigth='10px' style=\"position:relative;top:0px\" title='edita caracter&iacute;sticas da classe' src=\"../imagens/06.png\" /> Editar caracter&iacute;sticas gerais</span>";
  59 + var d = {tipo:"etiquetaClasseGeral",etiquetaClasseGeral:codigoMap+"_"+codigoLayer+"_"+indiceClasse,html:conteudo};
  60 + tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  61 + tempNode.isLeaf = true;
  62 + tempNode.enableHighlight = false;
  63 + }
  64 + if(!tree.getNodeByProperty("etiquetaClasseLabel",no.data.id))
  65 + {
  66 + conteudo = "<span style=cursor:pointer; onclick=\"editorClasseLabel('"+codigoMap+"','"+codigoLayer+"','"+indiceClasse+"')\" ><img width='10px' heigth='10px' style=\"position:relative;top:0px\" title='edita identificadores de texto' src=\"../imagens/06.png\" /> Editar topon&iacute;mia</span>";
  67 + var d = {tipo:"etiquetaClasseLabel",etiquetaClasseLabel:codigoMap+"_"+codigoLayer+"_"+indiceClasse,html:conteudo};
  68 + tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  69 + tempNode.isLeaf = true;
  70 + tempNode.enableHighlight = false;
  71 + }
  72 + if(!tree.getNodeByProperty("etiquetaEstilo",no.data.id))
  73 + {
  74 + var d = {tipo:"etiquetaEstilo",etiquetaEstilo:codigoMap+"_"+codigoLayer+"_"+indiceClasse,html:"<i>Estilos</i>"};
  75 + tempNodeR = new YAHOO.widget.HTMLNode(d, no, false,true);
  76 + tempNodeR.isLeaf = false;
  77 + tempNodeR.enableHighlight = false;
  78 +
  79 + conteudo = "<span onclick=\"adicionaNovoEstilo('"+codigoMap+"','"+codigoLayer+"','"+indiceClasse+"')\" style=\"cursor:pointer;\" ><img style=\"position:relative;top:2px\" src=\"../imagens/05.png\" /> Adicionar um novo</span>";
  80 + var d = {tipo:"etiquetaEstilo",etiquetaEstilo:codigoMap+"_"+codigoLayer+"_"+indiceClasse,html:conteudo};
  81 + tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true);
  82 + tempNode.isLeaf = true;
  83 + tempNode.enableHighlight = false;
  84 + }
  85 + for (var i=0, j=dados.length; i<j; i++)
  86 + {
  87 + var d = conteudoNoEstilo(codigoMap,codigoLayer,indiceClasse,dados[i].estilo);
  88 + tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true);
  89 + tempNode.isLeaf = true;
  90 + tempNode.enableHighlight = false;
  91 + }
  92 + tree.draw();
  93 +}
  94 +/*
  95 +Function: adicionaNovaClasse
  96 +
  97 +Adiciona uma nova classe
  98 +
  99 +<CRIARNOVACLASSE>
  100 +*/
  101 +function adicionaNovaClasse(codigoMap,codigoLayer,indiceClasse)
  102 +{
  103 + core_carregando("ativa");
  104 + core_carregando(" adicionando uma nova classe");
  105 + sUrl = "../php/editormapfile.php?funcao=criarNovaClasse&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer;
  106 + var callback =
  107 + {
  108 + success:function(o)
  109 + {
  110 + try
  111 + {
  112 + if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
  113 + {
  114 + core_carregando("<span style=color:red >Erro</span>");
  115 + setTimeout("core_carregando('desativa')",3000);
  116 + }
  117 + else
  118 + {
  119 + var no = tree.getNodeByProperty("etiquetaClasses",codigoMap+"_"+codigoLayer);
  120 + var dados = YAHOO.lang.JSON.parse(o.responseText);
  121 + var d = conteudoNoClasse(codigoMap,codigoLayer,dados[0].indice,"");
  122 + var tempNode = new YAHOO.widget.HTMLNode(d,no, false,true);
  123 + tempNode.setDynamicLoad(loadClasseData, iconMode);
  124 + tempNode.isLeaf = false;
  125 + tempNode.enableHighlight = false;
  126 + tree.draw();
  127 + core_carregando("desativa");
  128 + }
  129 + }
  130 + catch(e){core_handleFailure(e,o.responseText);}
  131 + },
  132 + failure:core_handleFailure,
  133 + argument: { foo:"foo", bar:"bar" }
  134 + };
  135 + core_makeRequest(sUrl,callback);
  136 +}
  137 +/*
  138 +Function: classesAuto
  139 +
  140 +Adiciona classes automaticamente
  141 +
  142 +<AUTOCLASSESLAYER>
  143 +*/
  144 +function classesAuto(codigoMap,codigoLayer)
  145 +{
  146 + function on_editorCheckBoxChange(p_oEvent)
  147 + {
  148 + var itemExpressao = document.getElementById("itemExpressao").value;
  149 + var itemNome = document.getElementById("itemNome").value;
  150 + if(itemNome == "")
  151 + {itemNome = itemExpressao;}
  152 + if(p_oEvent.newValue.get("value") == "OK" && itemExpressao != "")
  153 + {
  154 + core_carregando("ativa");
  155 + core_carregando(" gerando as classes");
  156 + var sUrl = "../php/editormapfile.php?funcao=autoClassesLayer&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&itemExpressao="+itemExpressao+"&itemNome="+itemNome;
  157 + var callback2 = {
  158 + success:function(o) {
  159 + try {
  160 + var nos = tree.getNodesByProperty("classes",codigoMap+"_"+codigoLayer);
  161 + /*
  162 + var dados = YAHOO.lang.JSON.parse(o.responseText);
  163 +
  164 + if(nos){
  165 + for (var i=0, j=nos.length; i<j; i++)
  166 + {tree.removeNode(nos[i],false);}
  167 + }
  168 + tree.draw();
  169 + var no = tree.getNodeByProperty("etiquetaClasses",codigoMap+"_"+codigoLayer);
  170 + */
  171 + nos.refresh();
  172 + //montaParametrosTemas(no,dados);
  173 + core_carregando("desativa");
  174 + YAHOO.admin.container.panelEditorAutoClasses.destroy();
  175 + YAHOO.admin.container.panelEditorAutoClasses = null;
  176 + //core_pegaMapfiles("montaArvore()");
  177 + }
  178 + catch(e){
  179 + core_handleFailure(o,o.responseText);
  180 + core_carregando("desativa");
  181 + YAHOO.admin.container.panelEditorAutoClasses.destroy();
  182 + YAHOO.admin.container.panelEditorAutoClasses = null;
  183 + }
  184 + },
  185 + failure:core_handleFailure,
  186 + argument: { foo:"foo", bar:"bar" }
  187 + };
  188 + core_makeRequest(sUrl,callback2);
  189 + }
  190 + else{
  191 + YAHOO.admin.container.panelEditorAutoClasses.destroy();
  192 + YAHOO.admin.container.panelEditorAutoClasses = null;
  193 + }
  194 + };
  195 + if(!YAHOO.admin.container.panelEditorAutoClasses){
  196 + var novoel = document.createElement("div");
  197 + novoel.id = "janela_editor_auto";
  198 + var ins = '<div class="hd">Editor</div>';
  199 + ins += "<div class='bd' style='height:354px;overflow:auto'>";
  200 + ins += "<div id='okcancel_checkbox'></div><div id='editor_bd'></div>";
  201 + novoel.innerHTML = ins;
  202 + document.body.appendChild(novoel);
  203 + var editorBotoes = new YAHOO.widget.ButtonGroup({id:"okcancel_checkbox_id", name: "okcancel_checkbox_id", container: "okcancel_checkbox" });
  204 + editorBotoes.addButtons([
  205 + { label: "Criar classes", value: "OK", checked: false},
  206 + { label: "Cancela", value: "CANCEL", checked: false }
  207 + ]);
  208 + editorBotoes.on("checkedButtonChange", on_editorCheckBoxChange);
  209 + YAHOO.admin.container.panelEditorAutoClasses = new YAHOO.widget.Panel("janela_editor_auto", { fixedcenter:true,close:true,width:"400px", height:"400px",overflow:"auto", visible:false,constraintoviewport:true } );
  210 + var fecha = function()
  211 + {
  212 + try{
  213 + YAHOO.admin.container.panelEditorAutoClasses.destroy();
  214 + YAHOO.admin.container.panelEditorAutoClasses = null;
  215 + }
  216 + catch(e){}
  217 + };
  218 + YAHOO.util.Event.addListener(YAHOO.admin.container.panelEditorAutoClasses.close, "click", fecha);
  219 +
  220 + YAHOO.admin.container.panelEditorAutoClasses.render();
  221 + var sUrl = "../php/editormapfile.php?funcao=pegaItensLayer&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer;
  222 + var callback = {
  223 + success:function(o) {
  224 + try {
  225 + var itens = core_comboObjeto(YAHOO.lang.JSON.parse(o.responseText).itens,"","","");
  226 + var ins = "<p>Item da tabela de atributos que ser&aacute; utilizado para compor a express&atilde;o de sele&ccedil;&atilde;o de cada classe</p>";
  227 + ins += "<select id='itemExpressao' >";
  228 + ins += itens;
  229 + ins += "</select></p>";
  230 + ins += "<p>Item da tabela de atributos que ser&aacute; utilizado para compor o nome de cada classe</p>";
  231 + ins += "<select id='itemNome' >";
  232 + ins += itens;
  233 + ins += "</select></p>";
  234 + $i("editor_bd").innerHTML = ins;
  235 + core_carregando("desativa");
  236 + }
  237 + catch(e){core_handleFailure(o,o.responseText);core_carregando("desativa");}
  238 + },
  239 + failure:core_handleFailure,
  240 + argument: { foo:"foo", bar:"bar" }
  241 + };
  242 + core_makeRequest(sUrl,callback);
  243 + }
  244 + YAHOO.admin.container.panelEditorAutoClasses.show();
  245 +}
  246 +/*
  247 +Function: excluirClasse
  248 +
  249 +Exclui uma classe
  250 +
  251 +<EXCLUIRCLASSE>
  252 +*/
  253 +function excluirClasse(codigoMap,codigoLayer,indiceClasse)
  254 +{
  255 + var handleYes = function()
  256 + {
  257 + this.hide();
  258 + core_carregando("ativa");
  259 + var mensagem = " excluindo "+indiceClasse;
  260 + core_carregando(mensagem);
  261 + var sUrl = "../php/editormapfile.php?funcao=excluirClasse&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse;
  262 + var callback =
  263 + {
  264 + success:function(o)
  265 + {
  266 + try
  267 + {
  268 + var no = tree.getNodesByProperty("id",codigoMap+"_"+codigoLayer+"_"+indiceClasse);
  269 + tree.removeNode(no[0]);
  270 + tree.draw();
  271 + core_carregando("desativa");
  272 + }
  273 + catch(e){core_handleFailure(e,o.responseText);}
  274 + },
  275 + failure:core_handleFailure,
  276 + argument: { foo:"foo", bar:"bar" }
  277 + };
  278 + core_makeRequest(sUrl,callback);
  279 + };
  280 + var handleNo = function()
  281 + {this.hide();};
  282 + var mensagem = "Exclui a classe?";
  283 + var largura = "300";
  284 + core_dialogoContinua(handleYes,handleNo,mensagem,largura);
  285 +}
  286 +function montaEditorClasseGeral(dados)
  287 +{
  288 + var re = /C_/g;
  289 + dados.expression = dados.expression.replace(re,"]");
  290 + re = /_C/g;
  291 + dados.expression = dados.expression.replace(re,"[");
  292 + re = /_A_/g;
  293 + dados.expression = dados.expression.replace(re,"'");
  294 + var param = {
  295 + "linhas":[
  296 + {ajuda:"Nome da classe para ser mostrada na legenda",
  297 + titulo:"Name",id:"name",value:dados.name,tipo:"text"},
  298 + {ajuda:"Descri&ccedil;&atilde;o da classe (mostrada na legenda quando o mouse &eacute; sobreposto",
  299 + titulo:"Title",id:"title",value:dados.title,tipo:"text"},
  300 + {ajuda:"Define o estado atual de exibi&ccedil;&atilde;o da classe. Default ativa a camada permanentemente.",
  301 + titulo:"Status",id:"",value:dados.status,tipo:"text",div:"<div id=cStatus ></div>"},
  302 + {ajuda:"Quatro tipos de express&otilde;es s&atilde;o suportadas para definir as classes. Compara&ccedil;&atilde;o de strings, express&otilde;es regulares, express&otilde;es l&oacute;gicas simples e fun&ccedil;&otilde;es de string. Se nenhuma express&atilde;o &eacute; fornecida, ent&atilde;o todas as fei&ccedil;&otilde;es pertencem &agrave; classe em quest&atilde;o. Compara&ccedil;&atilde;o de strings s&atilde;o sens&iacute;veis a caracteres e s&atilde;o as mais r&aacute;pidas e se processar. N&atilde;o s&atilde;o necess&aacute;rios delimitadores especiais, mas &eacute; preciso citar entre aspas strings que contenham caracteres especiais. Como boas pr&aacute;ticas, &eacute; recomendado citar todas as strings. Express&otilde;es regulares s&atilde;o delimitadas utilizando barras (/regex/). N&atilde;o devem ser usadas aspas. O atributo a ser usado como compara&ccedil;&atilde;o &eacute; definido no par&acirc;metro CLASSITEM do n&iacute;vel do LAYER. Express&otilde;es l&oacute;gicas te permitem construir testes bastante complexos em um ou mais atributos e portanto s&oacute; s&atilde;o permitas com shapefiles. Express&otilde;es l&oacute;gicas s&atilde;o delimitadas com par&ecirc;nteses &#8220;(express&atilde;o)&#8221;. Nomes de atributos s&atilde;o delimitados por colchetes &#8220;[ATRIBUTO]&#8221;. Estes nomes s&atilde;o sens&iacute;veis a caracteres e devem concordar com os itens no shapefile. Por exemplo: EXPRESSION ([POPULATION] &gt; 50000 AND [LANGUAGE] eq FRENCH ). Os seguintes operadores l&oacute;gicos s&atilde;o suportados: =, &gt;, &lt;, &lt;=, &gt;=, =, or, and, lt, gt, ge, le, eq, ne, in, ~, ~*. Este n&iacute;vel de complexidade &eacute; mais lento a se processar. Existe uma fun&ccedil;&atilde;o de string: lenght(). Ela computa o comprimento de uma string. Exemplo: EXPRESSION (length( [NAME_E] ) &lt; 8). Compara&ccedil;&atilde;o de strings e express&otilde;es regulares trabalham a partir do CLASSITEM definido no n&iacute;vel da LAYER. Voc&ecirc; pode combinar diferentes tipos de express&otilde;es juntamente com diferentes classes de uma camada. ",
  303 + titulo:"Expression",id:"expression",value:dados.expression,tipo:"text"},
  304 + {ajuda:"Nome completo do arquivo de imagem da legenda para a CLASS. Esta imagem &eacute; usada ao construir uma legenda (ou quando requisitando um &iacute;cone de legenda via MapScript ou uma aplica&ccedil;&atilde;o CGI).",
  305 + titulo:"Keyimage",id:"keyimage",value:dados.keyimage,tipo:"text"},
  306 + {ajuda:"Escala m&aacute;xima na qual a CLASS &eacute; desenhada. A escala &eacute; dada como o denominador da fra&ccedil;&atilde;o da escala. Por exemplo, para uma mapa na escala 1:24,000 use 24000.",
  307 + titulo:"Maxscale",id:"maxscale",value:dados.maxscale,tipo:"text"},
  308 + {ajuda:"Escala m&iacute;nima na qual a CLASS &eacute; desenhada. A escala &eacute; dada como o denominador da fra&ccedil;&atilde;o da escala. Por exemplo, para uma mapa na escala 1:24,000 use 24000.",
  309 + titulo:"Minscale",id:"minscale",value:dados.minscale,tipo:"text"}
  310 + ]
  311 + };
  312 + var ins = "<input type=button title='Salvar' value='Salvar' id=salvarEditor />";
  313 + if(dados.colunas != "")
  314 + {
  315 + ins += "<p>O layer possu&iacute; as seguintes colunas na tabela de atributos: ";
  316 + ins += dados.colunas+"</p>";
  317 + }
  318 + ins += core_geraLinhas(param);
  319 + ins += "<br><br><br>";
  320 + $i("editor_bd").innerHTML = ins;
  321 +
  322 + temp = "<select id='status' >";
  323 + temp += core_comboObjeto(objstatus,"valor","texto",dados.status);
  324 + temp += "</select>";
  325 + $i("cStatus").innerHTML = temp;
  326 +
  327 + var temp = function()
  328 + {salvarDadosEditor('classeGeral',dados.codigoMap,dados.codigoLayer,dados.indiceClasse);};
  329 + new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }});
  330 +}
  331 +
admin/js/editormapfile_comport.js 0 → 100755
@@ -0,0 +1,123 @@ @@ -0,0 +1,123 @@
  1 +//
  2 +//Utilizado por editormapfile.js
  3 +//
  4 +
  5 +/*
  6 +Function: editorComport
  7 +
  8 +Abre o editor das op&ccedil;&otilde;es que controlam o comportamento do layer no mapa
  9 +
  10 +<PEGACOMPORT>
  11 +*/
  12 +function editorComport(codigoMap,codigoLayer)
  13 +{
  14 + core_montaEditor("","450px","650px","","Comportamento");
  15 + var sUrl = "../php/editormapfile.php?funcao=pegaComport&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer;
  16 + core_pegaDados("Obtendo dados...",sUrl,"montaEditorComport");
  17 +}
  18 +function montaEditorComport(dados)
  19 +{
  20 + var param = {
  21 + "linhas":[
  22 + {ajuda:"Define o estado atual da camada. Geralmente modificado pelo pr&oacute;prio MapServer. Default ativa a camada permanentemente.",
  23 + titulo:"Status",id:"",value:dados.status,tipo:"text",div:"<div id=cStatus ></div>"},
  24 + {ajuda:"Indica se o tema ir&aacute; ser mostrado na ferramenta de identifica&ccedil;&atilde;o",
  25 + titulo:"Identifica (IDENTIFICA)",id:"",value:dados.identifica,tipo:"text",div:"<div id=cIdentifica ></div>"},
  26 + {ajuda:"Define o n&iacute;vel de opacidade (ou a inabilidade de ver atrav&eacute;s da camada) de todos os pixeis classificados para uma dada camada. O valor pode ser um n&uacute;mero inteiro entre 0 e 100 ou o s&iacute;mbolo nomeado ALPHA . Um valor de 100 &eacute; opaco e 0 &eacute; completamente transparente. O s&iacute;mbolo ALPHA direciona o MapServer para honrar a transpar&ecirc;ncia dos s&iacute;mbolos utilizados como pixmap no estilo de uma camada. Isso s&oacute; &eacute; necess&aacute;rio no caso de formatos de sa&iacute;da RGB, e deve ser usado somente quando necess&aacute;rio pois &eacute; dispendioso renderizar s&iacute;mbolos transparentes como pixmap em um mapa de imagem RGB.",
  27 + titulo:"Opacity",id:"opacity",value:dados.opacity,tipo:"text"},
  28 + {ajuda:"Indica se a extens&atilde;o geogr&aacute;fica do mapa deve ser alterada quando o tema for adicionado ao mapa",
  29 + titulo:"Aplica extensao (APLICAEXTENSAO)",id:"",value:dados.aplicaextensao,tipo:"text",div:"<div id=cAplicaextensao ></div>"},
  30 + {ajuda:"Indica se o usu&aacute;rio pode incluir coment&aacute;rios no tema",
  31 + titulo:"Permite comentar (PERMITECOMENTARIO)",id:"",value:dados.permitecomentario,tipo:"text",div:"<div id=cPermitecomentario ></div>"},
  32 + {ajuda:"Temporizador (em segundos) para atualiza&ccedil;&atilde;o autom&aacute;tica da camada. A camada ser&aacute; redesenhada continuamente a cada intervalo de tempo definido",
  33 + titulo:"Temporizador em segundos (METADATA: TEMPORIZADOR)",id:"temporizador",value:dados.temporizador,tipo:"text"},
  34 + {ajuda:"Indica se as classes ser&atilde;o mostradas ou n&atilde;o na legenda. Por padr&atilde;o &eacute; SIM. ",
  35 + titulo:"Classe (CLASSE)",id:"",value:dados.classe,tipo:"text",div:"<div id=cClasse ></div>"},
  36 + {ajuda:"URL de uma imagem que ser&aacute; utilizada em substitui&ccedil;&atilde;o à gera&ccedil;&atilde;o normal da legenda ",
  37 + titulo:"URL da legenda (opcional) (LEGENDAIMG)",id:"legendaimg",value:dados.legendaimg,tipo:"text"},
  38 + {ajuda:"Indica se o tema &eacute; mostrado no mapa mas n&atilde;o nas listas da legenda e na guia 'temas'",
  39 + titulo:"Escondido (ESCONDIDO)",id:"",value:dados.escondido,tipo:"text",div:"<div id=cEscondido ></div>"},
  40 + {ajuda:"Aplica efeitos de transi&ccedil;&atilde;o nas opera&ccedil;&otilde;es de zoom e pan na interface Openlayers",
  41 + titulo:"Efeitos de transi&ccedil;&atilde;o zoom (TRANSITIONEFFECT)",id:"",value:dados.transitioneffect,tipo:"text",div:"<div id=cTransitioneffect ></div>"},
  42 + {ajuda:"Define o padr&atilde;o de cores RGB para tratar como transparente em camadas raster.",
  43 + titulo:"Offsite (R,G,B) (utilize -1,-1,-1 para anular o valor)",id:"offsite",value:dados.offsite,tipo:"text"},
  44 + {ajuda:"Escala m&aacute;xima na qual o LAYER &eacute; desenhado. A escala &eacute; dada como o denominador da fra&ccedil;&atilde;o da escala. Por exemplo, para uma mapa na escala 1:24,000 use 24000.",
  45 + titulo:"Maxscale (utilize -1 para anular o valor)",id:"maxscale",value:dados.maxscale,tipo:"text"},
  46 + {ajuda:"Escala m&iacute;nima na qual o LAYER &eacute; desenhado. A escala &eacute; dada como o denominador da fra&ccedil;&atilde;o da escala. Por exemplo, para uma mapa na escala 1:24,000 use 24000.",
  47 + titulo:"Minscale (utilize -1 para anular o valor)",id:"minscale",value:dados.minscale,tipo:"text"},
  48 + {ajuda:"Nome do item na tabela de atributos para utilizar como etiqueta (label).",
  49 + titulo:"Labelitem",id:"labelitem",value:dados.labelitem,tipo:"text"},
  50 + {ajuda:"Escala m&aacute;xima na qual a LABEL &eacute; desenhada. A escala &eacute; dada como o denominador da fra&ccedil;&atilde;o da escala. Por exemplo, para uma mapa na escala 1:24,000 use 24000.",
  51 + titulo:"Labelmaxscale (utilize -1 para anular o valor)",id:"labelmaxscale",value:dados.labelmaxscale,tipo:"text"},
  52 + {ajuda:"Escala m&iacute;nima na qual a LABEL &eacute; desenhada. A escala &eacute; dada como o denominador da fra&ccedil;&atilde;o da escala. Por exemplo, para uma mapa na escala 1:24,000 use 24000.",
  53 + titulo:"Labelminscale (utilize -1 para anular o valor)",id:"labelminscale",value:dados.labelminscale,tipo:"text"},
  54 + {ajuda:"A escala na qual s&iacute;mbolos e/ou textos aparecem em tamanho total. Isso permite alterar dinamicamente a escala de objetos de acordo com a escala do mapa. Se n&atilde;o for definido, ent&atilde;o o objeto sempre aparecer&aacute; no mesmo tamanho. Essa opera&ccedil;&atilde;o s&oacute; ocorre dentro dos limites de MINSIZE e MAXSIZE como descrito acima. A escala &eacute; dada como o denominador da fra&ccedil;&atilde;o da escala. Por exemplo, para uma mapa na escala 1:24,000 use 24000.",
  55 + titulo:"Symbolscale (utilize -1 para anular o valor)",id:"symbolscale",value:dados.symbolscale,tipo:"text"},
  56 + {ajuda:"Sensibilidade para consultas baseadas em pontos (por exemplo, via mouse e/ou coordenadas do mapa). Dada em TOLERANCEUNITS. Se a camada for um ponto ou uma linha, o padr&atilde;o &eacute; 3. Para todos os outros tipos de camada, o padr&atilde;o &eacute; 0. Para restringir pesquisas por pol&iacute;gonos para que o ponto ocorra dentro do pol&iacute;gono defina a toler&acirc;ncia como 0.",
  57 + titulo:"Tolerance",id:"tolerance",value:dados.tolerance,tipo:"text"},
  58 + {ajuda:" ",
  59 + titulo:"Tolerance units",id:"",value:dados.toleranceunits,tipo:"text",div:"<div id=cToleranceunits ></div>"},
  60 + {ajuda:"Define as unidades de valores do par&acirc;metro SIZE do objeto CLASS (padr&atilde;o &eacute; pixeis). &Uacute;til para simular um buffer.",
  61 + titulo:"Sizeunits",id:"",value:dados.sizeunits,tipo:"text",div:"<div id=cSizeunits ></div>"}
  62 + ]
  63 + };
  64 + var ins = "<input type=button title='Salvar' value='Salvar' id=salvarEditor />";
  65 + ins += core_geraLinhas(param);
  66 + ins += "<br><br><br>";
  67 + $i("editor_bd").innerHTML = ins;
  68 +
  69 + if($i("cAplicaextensao")){
  70 + temp = "<select id='aplicaextensao' >";
  71 + temp += core_combosimnao(dados.aplicaextensao);
  72 + temp += "</select>";
  73 + $i("cAplicaextensao").innerHTML = temp;
  74 + }
  75 + if($i("cPermitecomentario")){
  76 + temp = "<select id='permitecomentario' >";
  77 + temp += core_combosimnao(dados.permitecomentario);
  78 + temp += "</select>";
  79 + $i("cPermitecomentario").innerHTML = temp;
  80 + }
  81 + if($i("cClasse")){
  82 + temp = "<p><select id='classe' >";
  83 + temp += core_combosimnao(dados.classe);
  84 + temp += "</select>";
  85 + $i("cClasse").innerHTML = temp;
  86 + }
  87 + if($i("cEscondido")){
  88 + temp = "<select id='escondido' >";
  89 + temp += core_combosimnao(dados.escondido);
  90 + temp += "</select>";
  91 + $i("cEscondido").innerHTML = temp;
  92 + }
  93 + if($i("cIdentifica")){
  94 + temp = "<select id='identifica' >";
  95 + temp += core_combosimnao(dados.identifica);
  96 + temp += "</select>";
  97 + $i("cIdentifica").innerHTML = temp;
  98 + }
  99 + if($i("cTransitioneffect")){
  100 + temp = "<select id='transitioneffect' >";
  101 + temp += core_combosimnao(dados.transitioneffect);
  102 + temp += "</select>";
  103 + $i("cTransitioneffect").innerHTML = temp;
  104 + }
  105 + temp = "<select id='status' >";
  106 + temp += core_comboObjeto(objstatus,"valor","texto",dados.status);
  107 + temp += "</select>";
  108 + $i("cStatus").innerHTML = temp;
  109 +
  110 + temp = "<select id='sizeunits' >";
  111 + temp += core_comboObjeto(objmapunits,"valor","texto",dados.sizeunits);
  112 + temp += "</select>";
  113 + $i("cSizeunits").innerHTML = temp;
  114 + temp = "<select id='toleranceunits' >";
  115 + temp += core_comboObjeto(objmapunits,"valor","texto",dados.toleranceunits);
  116 + temp += "</select>";
  117 + $i("cToleranceunits").innerHTML = temp;
  118 +
  119 + var temp = function()
  120 + {salvarDadosEditor('comport',dados.codigoMap,dados.codigoLayer,false);};
  121 + new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }});
  122 +}
  123 +
admin/js/editormapfile_conexao.js 0 → 100755
@@ -0,0 +1,174 @@ @@ -0,0 +1,174 @@
  1 +//
  2 +//Utilizado por editormapfile.js
  3 +//
  4 +
  5 +/*
  6 +Function: editorDados
  7 +
  8 +Abre o editor de conex&atilde;o com a fonte dos dados de um layer
  9 +
  10 +<PEGACONEXAO>
  11 +*/
  12 +function editorDados(codigoMap,codigoLayer)
  13 +{
  14 + core_montaEditor("","500px","650px","","Conex&atilde;o");
  15 + var sUrl = "../php/editormapfile.php?funcao=pegaConexao&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer;
  16 + core_pegaDados("Obtendo dados...",sUrl,"montaEditorDados");
  17 +}
  18 +
  19 +function montaEditorDados(dados)
  20 +{
  21 + var idsForms = ["connection","data","tileitem","tileindex","type","tipooriginal","metaestat_id_medida_variavel"],
  22 + idsMetaestat = ["connection","data","tileitem","tileindex","tipooriginal"],
  23 + limg = i3GEO.configura.locaplic+"/imagens/ic_zoom.png",
  24 + param = {
  25 + "linhas":[
  26 + {ajuda:"Indica se as defini&ccedil;&otilde;es da camada est&atilde;o relacionadas ao sistema de metadados estat&iacute;sticos. Se estiver, alguns par&acirc;metros s&atilde;o obtidos de forma autom&aacute;tica, como a conex&atilde;o e o SQL de acesso aos dados.",
  27 + titulo:"Esse mapfile est&aacute; integrado ao sistema de metadados estat&iacute;sticos?",id:"",value:dados.metaestat,tipo:"text",div:"<div id=cMetaestat ></div>"},
  28 + {ajuda:"ID da medida da vari&aacute;vel que relaciona a camada ao sistema de metadados estat&iacute;sticos. S&oacute; deve ser definido se o mapfile for integrado a esse sistema.",
  29 + titulo:"ID da vari&aacute;vel no sistema de metadados estat&iacute;sticos ",id:"",value:"",tipo:"text",div:"<div id=cMetaestat_id_medida_variavel ></div>"},
  30 + {ajuda:"Tipo de conex&atilde;o. Padr&atilde;o &eacute; local.",
  31 + titulo:"Connectiontype",id:"",value:"",div:"<div id=cConnectiontype ></div>",tipo:"text"},
  32 + {ajuda:"Aplica a convers&atilde;o de caracteres nas ferramentas que obt&eacute;m os dados descritivos referentes aos elementos do LAYER. Em alguns casos, a convers&atilde;o pode provocar problemas de acentua&ccedil;&atilde;o. Se isso ocorrer, na ferramenta tabela por exemplo, experimente marcar essa op&ccedil;&atilde;o como 'nao'",
  33 + titulo:"Convers&atilde;o de caracteres (METADATA: CONVCARACTER)",id:"",value:dados.convcaracter,tipo:"text",div:"<div id=cConvcaracter ></div>"},
  34 + {ajuda:"Voc&ecirc; pode digitar apenas o 'alias' para esconder a string de conex&atilde;o. Database connection string to retrieve remote data.An SDE connection string consists of a hostname, instance name, database name, username and password separated by commas.A PostGIS connection string is basically a regular PostgreSQL connection string, it takes the form of 'user=nobody password=****** dbname=dbname host=localhost port=5432' An Oracle connection string: user/pass[@db] . Se vc tiver problemas com acentua&ccedil;&atilde;o, experimente algo como: user=postgres password=postgres dbname=pgutf8 host=localhost port=5432 options='-c client_encoding=LATIN1'",
  35 + titulo:"Connection ",id:"",value:"",tipo:"text",div:"<div id=cConnection ></div>"},
  36 + {ajuda:"Nome completo do arquivo de dado espacial a ser processado. N&atilde;o &eacute; necess&aacute;ria a extens&atilde;o do arquivo para shapefiles. Exemplo: c://ms4w/Apache/htdocs/geodados/brasil/limitespol/localidades.shp. Pode ser especificado relativo &agrave; op&ccedil;&atilde;o SHAPEPATH do objeto MAP. Se for uma camada SDE, deve ser inclu&iacute;do o nome da camada bem como da coluna de geometria, por exemplo, mylayer,shape,myversion. Se &eacute; uma camada PostGIS, o par&acirc;metro deve seguir a forma <columnname> from <tablename>, na qual columnname &eacute; o nome da coluna que cont&eacute;m a geometria e tablename &eacute; o nome da tabela cuja geometria ser&aacute; lida. Exemplo: the_geom FROM (select * FROM biomas) as foo USING UNIQUE gid USING SRID=4291. Para Oracle, use shape FROM table ou shape FROM (SELECT statement) ou at&eacute; express&otilde;es mais complexas. Note que, no entanto, h&aacute; impactos importantes de performance quando utilizadas subconsultas espaciais. Tente utilizar o objeto FILTER sempre que poss&iacute;vel. Voc&ecirc; tamb&eacute;m pode ver o SQL submetido ao for&ccedil;ar um erro, submetendo um par&acirc;metro DATA que voc&ecirc; sabe que n&atilde;o funcionar&aacute;, como uma nome de coluna errado.",
  37 + titulo:"Data",id:"",value:"",tipo:"textarea",div:"<div id=cData ></div>"},
  38 + {ajuda:"Especifica como o dado deve ser desenhado. N&atilde;o precisa ser do mesmo tipo do shapefile. Por exemplo, um shapefile de pol&iacute;gonos pode ser desenhado como pontos, mas um shape de pontos n&atilde;o pode ser desenhado como um pol&iacute;gono. Para diferenciar entre POLYGON e POLYLINE, simplesmente use ou omita o par&acirc;metro COLOR na classifica&ccedil;&atilde;o. Se voc&ecirc; utiliz&aacute;-lo, &eacute; um pol&iacute;gono com uma cor de preenchimento, sen&atilde;o, &eacute; uma polilinha cuja cor &eacute; definida em OUTLINECOLOR. Um c&iacute;rculo (circle) deve ser definido por um ret&acirc;ngulo de limites m&iacute;nimos. Isto &eacute;, dois pontos que definem o menor quadrado que pode cont&ecirc;-lo.",
  39 + titulo:"Type",id:"",value:dados.type,tipo:"text",div:"<div id=cType ></div>"},
  40 + {ajuda:"Ativa ou n&atilde;o a manuten&ccedil;&atilde;o de um cache para armazenar as imagens geradas para montar o mapa. Essa op&ccedil;&atilde;o afeta apenas as interfaces do i3Geo que utilizam o modo TILE (como a interface OpenLayers). O cache &eacute; mantido no diretório tempor&aacute;rio utilizado pelo i3Geo, na pasta chamada cache. Para cada camada &eacute; criada uma sub-pasta. Para limpar o cache, utilize a op&ccedil;&atilde;o existente junto ao nó principal desse mapfile",
  41 + titulo:"Cache de mapas. Camadas WMS s&atilde;o acessadas diretamente do servidor de origem quando o cache estiver inativo. (CACHE)",id:"",value:dados.cache,tipo:"text",div:"<div id=cCache ></div>"},
  42 + {ajuda:"Ao desenhar a imagem de um TILE que comp&otilde;e o mapa, a imagem &eacute; extendida e depois cortada para o tamanho correto. Isso evita que s&iacute;mbolos apare&ccedil;am de forma parcial no mapa. Indicado para temas com representa&ccedil;&atilde;o pontual e que tamb&eacute;m utilizem cache, pois pode degradar a performance.",
  43 + titulo:"Extende e corta imagem em pixels (cortepixels)",id:"cortepixels",value:dados.cortepixels,tipo:"text"},
  44 + {ajuda:"Proje&ccedil;&atilde;o",
  45 + titulo:"Projection",id:"projection",value:dados.projection,tipo:"text"},
  46 + {ajuda:"Este par&acirc;metro permite filtrar atributos espec&iacute;ficos ao mesmo tempo em que &eacute; feita uma filtragem espacial, mas antes de que qualquer express&atilde;o em CLASS seja contabilizada. Para OGR e shapefiles, a string &eacute; simplesmente uma express&atilde;o regular do MapServer. Por exemplo: FILTER type= road and size &lt;2. Para bancos de dados espaciais &eacute; uma cl&aacute;usula SQL WHERE que &eacute; v&aacute;lida de acordo com o banco de dados subjacente. ",
  47 + titulo:"Filter",id:"filter",value:dados.filter,tipo:"text"},
  48 + {ajuda:"Item a ser usado com simples express&otilde;es FILTER. Somente para OGR e shapefile.",
  49 + titulo:"Filteritem",id:"filteritem",value:dados.filteritem,tipo:"text"},
  50 + {ajuda:"Item que cont&eacute;m a localiza&ccedil;&atilde;o individual de um tile. Padr&atilde;o &eacute; location .",
  51 + titulo:"tileitem",id:"tileitem",value:dados.tileitem,tipo:"text"},
  52 + {ajuda:"Nome do arquivo ou camada de tileindex. Um tileindex &eacute; semelhante a uma biblioteca de &iacute;ndices do ArcInfo. O tileindex cont&eacute;m fei&ccedil;&otilde;es de pol&iacute;gono para cada tile (ladrilho). O item que cont&eacute;m a localiza&ccedil;&atilde;o do dado ladrilhado &eacute; obtido utilizando o par&acirc;metro TILEITEM. Quando um arquivo &eacute; utilizado como o tileindex para camadas shapefiles ou raster, o tileindex pode ser um shapefile. Para camadas com CONNECTIONTYPE OGR, qualquer fonte de dados OGR suportada pode ser um tileindex. Normalmente a localiza&ccedil;&atilde;o deve conter o caminho do arquivo de tile relativo ao caminho do shape, e n&atilde;o relativo ao pr&oacute;prio tileindex. Se o par&acirc;metro DATA cont&eacute;m algum valor ent&atilde;o ele &eacute; adicionado ao fim da localiza&ccedil;&atilde;o. Quando uma camada de tileindex &eacute; utilizada, ela funciona de forma similar a referir-se diretamente a um arquivo, sendo que qualquer fonte de fei&ccedil;&atilde;o suportada pode ser usada (como PostgreSQL, Oracle etc.).",
  53 + titulo:"tileindex",id:"tileindex",value:dados.tileindex,tipo:"text"},
  54 + {ajuda:"Tipo de representa&ccedil;&atilde;o das fei&ccedil;&otilde;es mostradas da camada. &Eacute; importante definir esse par&acirc;metro para que as fun&ccedil;&otilde;es de gera&ccedil;&atilde;o de SLD funcionem corretamente.",
  55 + titulo:"Tipo de representa&ccedil;&atilde;o (tipooriginal) - para temas do tipo WMS",id:"",value:dados.tipooriginal,tipo:"text",div:"<div id=cTipoOriginal ></div>"}
  56 + ]
  57 + };
  58 + var ins = "<input type=button title='Salvar' value='Salvar' id=salvarEditor />";
  59 + ins += "&nbsp;<input type=button title='Testar' value='Testar' id=testarEditor />";
  60 +
  61 + if(dados.colunas != "" && dados.colunas != undefined){
  62 + ins += "<p>O layer possui as seguintes colunas na tabela de atributos: ";
  63 + ins += dados.colunas+"</p><br>";
  64 + }
  65 + ins += core_geraLinhas(param);
  66 + ins += "<br><br><br>";
  67 + $i("editor_bd").innerHTML = ins;
  68 +
  69 + if($i("cConnection")){
  70 + temp = "";
  71 + if(dados.postgis_mapa.length > 0){
  72 + temp += "<p class=paragrafo >Os seguintes 'alias' est&atilde;o definidos em ms_configura como nomes de conex&otilde;es e podem ser utilizados aqui no lugar da string completa: ";
  73 + temp += "<b>"+dados.postgis_mapa+"</b>. Para definir um novo, &eacute; necess&aacute;rio editar o arquivo i3geo/ms_configura.php, consulte o administrador do servidor";
  74 + temp += "</p>";
  75 + }
  76 + temp += '<input type="text" value="'+dados.connection+'" id="connection" style="width:90%;">';
  77 + temp += "<img onclick='selConexaoBanco(\"connection\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>";
  78 + $i("cConnection").innerHTML = temp;
  79 + }
  80 + if($i("cData")){
  81 + temp = '<textarea value="'+dados.data+'" id="data" style="width:90%;">'+dados.data+'</textarea>';
  82 + temp += "<img onclick='selNavegador(\"data\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>";
  83 + $i("cData").innerHTML = temp;
  84 + }
  85 + if($i("cMetaestat_id_medida_variavel")){
  86 + temp = '<input type="text" value="'+dados.metaestat_id_medida_variavel+'" id="metaestat_id_medida_variavel" style="width:90%;">';
  87 + temp += "<img onclick='selIdMedidaVariavel(\"metaestat_id_medida_variavel\",\"metaestat_id_medida_variavel\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>";
  88 + $i("cMetaestat_id_medida_variavel").innerHTML = temp;
  89 + }
  90 + if($i("cMetaestat")){
  91 + temp = "<select id='metaestat' >";
  92 + temp += core_combosimnao(dados.metaestat);
  93 + temp += "</select>";
  94 + //temp += "&nbsp;<input type=button value='Par&acirc;metros' id=parametrosMetaestat />";
  95 + $i("cMetaestat").innerHTML = temp;
  96 + //new YAHOO.widget.Button("parametrosMetaestat",{ onclick: { fn: parametrosMetaestat }});
  97 + }
  98 + if($i("cCache")){
  99 + temp = "<select id='cache' >";
  100 + temp += core_combosimnao(dados.cache);
  101 + temp += "</select>";
  102 + $i("cCache").innerHTML = temp;
  103 + }
  104 + if($i("cTipoOriginal")){
  105 + temp = "<select id='tipooriginal' >";
  106 + temp += core_comboObjeto(objtipooriginal,"valor","texto",dados.tipooriginal);
  107 + temp += "</select>";
  108 + $i("cTipoOriginal").innerHTML = temp;
  109 + }
  110 + temp = "<select id='connectiontype' >";
  111 + temp += core_comboObjeto(objcontype,"valor","texto",dados.connectiontype);
  112 + temp += "</select>";
  113 + $i("cConnectiontype").innerHTML = temp;
  114 +
  115 + temp = "<select id='type' >";
  116 + temp += core_comboObjeto(objlayertypes,"valor","texto",dados.type);
  117 + temp += "</select>";
  118 + $i("cType").innerHTML = temp;
  119 +
  120 + if($i("cConvcaracter")){
  121 + temp = "<select id='convcaracter' >";
  122 + temp += core_combosimnao(dados.convcaracter);
  123 + temp += "</select>";
  124 + $i("cConvcaracter").innerHTML = temp;
  125 + }
  126 +
  127 + var temp = function()
  128 + {salvarDadosEditor('conexao',dados.codigoMap,dados.codigoLayer,false);};
  129 + new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }});
  130 +
  131 + var temp = function()
  132 + {salvarDadosEditor('conexao',dados.codigoMap,dados.codigoLayer,"","",true);};
  133 + new YAHOO.widget.Button("testarEditor",{ onclick: { fn: temp }});
  134 +
  135 + $i("connectiontype").onchange = function(){
  136 + core_desativaforms(idsForms);
  137 + var valor = $i("connectiontype").value,
  138 + d = [];
  139 + //["connection","data","tileitem","tileindex"]
  140 + if(valor == 0 || valor == 10)
  141 + {d = [];}
  142 + if(valor == 1 || valor == 12)
  143 + {d = ["data","type"];}
  144 + if(valor == 2)
  145 + {d = ["tileitem","tileindex","type"];}
  146 + if(valor == 3 || valor == 4 || valor == 6 || valor == 8 || valor == 13)
  147 + {d = idsForms;}
  148 + if(valor == 5)
  149 + {d = ["connection","tileitem","tileindex","type"];}
  150 + if(valor == 7 || valor == 9)
  151 + {d = ["connection","type","tipooriginal"];}
  152 + core_ativaforms(d);
  153 + };
  154 + $i("metaestat").onchange = function(){
  155 + core_desativaforms(idsMetaestat);
  156 + var valor = $i("metaestat").value,
  157 + d = [];
  158 + if(valor === "SIM"){
  159 + d = ["metaestat_id_medida_variavel"];
  160 + }
  161 + else{
  162 + core_desativaforms(idsForms);
  163 + $i("connectiontype").onchange.call();
  164 + }
  165 + core_ativaforms(d);
  166 + };
  167 + if(dados.metaestat === "SIM"){
  168 + core_desativaforms(idsMetaestat);
  169 + }
  170 + else{
  171 + core_desativaforms(idsForms);
  172 + $i("connectiontype").onchange.call();
  173 + }
  174 +}
admin/js/editormapfile_dispo.js 0 → 100755
@@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
  1 +/*
  2 +Function: editorDispo
  3 +
  4 +Abre o editor que define a disponibilidade dos dados
  5 +
  6 +<PEGADISPO>
  7 +*/
  8 +function editorDispo(codigoMap,codigoLayer)
  9 +{
  10 + core_montaEditor("","450px","650px","","Disponibilidade");
  11 + var sUrl = "../php/editormapfile.php?funcao=pegaDispo&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer;
  12 + core_pegaDados("Obtendo dados...",sUrl,"montaEditorDispo");
  13 +}
  14 +function montaEditorDispo(dados)
  15 +{
  16 + var param = {
  17 + "linhas":[
  18 + {ajuda:"Indica se o usu&aacute;rio pode fazer download do tema. Se sim, o &iacute;cone de download ser&aacute; mostrado na &aacute;rvore de camadas dispon&iacute;veis no mapa.",
  19 + titulo:"Permite download (METADATA: DOWNLOAD)",id:"",value:dados.download,tipo:"text",div:"<div id=cDownload ></div>"},
  20 + {ajuda:"Endere&ccedil;o de um arquivo pr&eacute;-existente para download dos dados (caminho completo no servidor). Se definido, o sistema ir&aacute; usar esse arquivo ao inv&eacute;s de gerar os dados, quando o usu&aacute;rio clicar nas op&ccedil;&otilde;es de download. Se n&atilde;o for definido, o arquivo de download &eacute; gerado diretamente do original, convertendo do banco ou copiando o arquivo definido em DATA.",
  21 + titulo:"Arquivo download (ARQUIVODOWNLOAD)",id:"arquivodownload",value:dados.arquivodownload,tipo:"text"},
  22 + {ajuda:"Endere&ccedil;o de um arquivo KMZ ou KML pr&eacute;-existente para download dos dados (caminho completo no servidor). Se definido, o sistema ir&aacute; usar esse arquivo ao inv&eacute;s de gerar os dados, quando o usu&aacute;rio clicar nas op&ccedil;&otilde;es de visualiza&ccedil;&atilde;o de KML ou KMZ. Se n&atilde;o for definido, o arquivo &eacute; gerado diretamente do original.",
  23 + titulo:"Arquivo KML ou KMZ (ARQUIVOKMZ)",id:"arquivokmz",value:dados.arquivokmz,tipo:"text"}
  24 + ]
  25 + };
  26 + var ins = "<input type=button title='Salvar' value='Salvar' id=salvarEditor />";
  27 + ins += core_geraLinhas(param);
  28 + ins += "<br><br><br>";
  29 + $i("editor_bd").innerHTML = ins;
  30 + if($i("cDownload")){
  31 + temp = "<select id='download' >";
  32 + temp += core_combosimnao(dados.download);
  33 + temp += "</select>";
  34 + $i("cDownload").innerHTML = temp;
  35 + }
  36 + var temp = function()
  37 + {salvarDadosEditor('dispo',dados.codigoMap,dados.codigoLayer,false);};
  38 + new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }});
  39 +}
admin/js/editormapfile_editavel.js 0 → 100755
@@ -0,0 +1,77 @@ @@ -0,0 +1,77 @@
  1 +/*
  2 +Function: editorEditavel
  3 +
  4 +Abre o editor que define se o tema e editavel ou nao
  5 +
  6 +<PEGAEDITAVEL>
  7 +*/
  8 +function editorEditavel(codigoMap,codigoLayer)
  9 +{
  10 + core_montaEditor("","450px","450px","","Edi&ccedil;&atilde;o");
  11 + var sUrl = "../php/editormapfile.php?funcao=pegaEditavel&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer;
  12 + core_pegaDados("Obtendo dados...",sUrl,"montaEditorEditavel");
  13 +}
  14 +function montaEditorEditavel(dados)
  15 +{
  16 + var limg = i3GEO.configura.locaplic+"/imagens/ic_zoom.png",
  17 + param = {
  18 + "linhas":[
  19 + {ajuda:"Indica se o tema poder&aacute; ser utilizado nos editores vetoriais e de atributos",
  20 + titulo:"O tema pode ser editado? (METADATA: EDITAVEL)",id:"",value:dados.editavel,tipo:"text",div:"<div id=cEditavel ></div>"},
  21 + {ajuda:"Esquema do banco de dados onde est&aacute; a tabela que poder&aacute; ser editada",
  22 + titulo:"Esquema no banco de dados",id:"",value:"",tipo:"text",div:"<div id=cEsquematabelaeditavel ></div>" },
  23 + {ajuda:"Tabela do banco que poder&aacute; ser editada",
  24 + titulo:"Tabela no banco de dados",id:"",value:"",tipo:"text",div:"<div id=cTabelatabelaeditavel ></div>" },
  25 + {ajuda:"Coluna que identifica de forma &uacute;nica cada registro da tabela",
  26 + titulo:"Coluna com IDs &uacute;nicos",id:"",value:"",tipo:"text",div:"<div id=cColunatabelaeditavel ></div>" },
  27 + {ajuda:"Coluna que contem as geometrias da tabela",
  28 + titulo:"Coluna com geometria edit&aacute;vel",id:"",value:"",tipo:"text",div:"<div id=cColunageometriatabelaeditavel ></div>" }
  29 + ]
  30 + },
  31 + ins = "<input type=button title='Salvar' value='Salvar' id=salvarEditor />";
  32 + ins += "<p>Obs.: Apenas temas baseados em Postgis podem ser editados</p>";
  33 + ins += core_geraLinhas(param);
  34 + ins += "<br><br><br>";
  35 + $i("editor_bd").innerHTML = ins;
  36 + if($i("cEditavel")){
  37 + temp = "<select id='editavel' >";
  38 + temp += core_combosimnao(dados.editavel);
  39 + temp += "</select>";
  40 + $i("cEditavel").innerHTML = temp;
  41 + }
  42 + if($i("cEsquematabelaeditavel")){
  43 + temp = '<input id="esquematabelaeditavel" style="width:90%;" value="'+dados.esquematabelaeditavel+'" />' +
  44 + "<img id='esquematabelaeditavelBusca' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>";
  45 + $i("cEsquematabelaeditavel").innerHTML = temp;
  46 + }
  47 + $i("esquematabelaeditavelBusca").onclick = function(){
  48 + i3GEO.util.navegadorPostgis($i("esquematabelaeditavel"),"","esquema");
  49 + };
  50 + if($i("cTabelatabelaeditavel")){
  51 + temp = '<input id="tabelaeditavel" style="width:90%;" value="'+dados.tabelaeditavel+'" />' +
  52 + "<img id='tabelatabelaeditavelBusca' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>";
  53 + $i("cTabelatabelaeditavel").innerHTML = temp;
  54 + }
  55 + $i("tabelatabelaeditavelBusca").onclick = function(){
  56 + i3GEO.util.navegadorPostgis($i("tabelaeditavel"),"","tabela");
  57 + };
  58 + if($i("cColunatabelaeditavel")){
  59 + temp = '<input id="colunaidunico" style="width:90%;" value="'+dados.colunaidunico+'" />' +
  60 + "<img id='colunatabelaeditavelBusca' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>";
  61 + $i("cColunatabelaeditavel").innerHTML = temp;
  62 + }
  63 + $i("colunatabelaeditavelBusca").onclick = function(){
  64 + i3GEO.util.navegadorPostgis($i("colunaidunico"),"","coluna");
  65 + };
  66 + if($i("cColunageometriatabelaeditavel")){
  67 + temp = '<input id="colunageometria" style="width:90%;" value="'+dados.colunageometria+'" />' +
  68 + "<img id='colunageometriatabelaeditavelBusca' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>";
  69 + $i("cColunageometriatabelaeditavel").innerHTML = temp;
  70 + }
  71 + $i("colunageometriatabelaeditavelBusca").onclick = function(){
  72 + i3GEO.util.navegadorPostgis($i("colunageometria"),"","coluna");
  73 + };
  74 + var temp = function()
  75 + {salvarDadosEditor('editavel',dados.codigoMap,dados.codigoLayer,false);};
  76 + new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }});
  77 +}
admin/js/editormapfile_editordetexto.js 0 → 100755
@@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
  1 +//
  2 +//Utilizado por editormapfile.js
  3 +//
  4 +
  5 +function editorDeTexto(codigoMap)
  6 +{
  7 + core_carregando("ativa");
  8 + core_carregando("buscando texto...");
  9 + sUrl = "../php/editormapfile.php?funcao=pegaTextoMapfile&codigoMap="+codigoMap;
  10 + var callback =
  11 + {
  12 + success:function(o)
  13 + {
  14 + core_montaEditor("","600px","800px","","Editor");
  15 + var ins = "<input type=button id=salvarTexto value='Salvar' />";
  16 + ins += "<textarea id='editorArea' rows='19' cols='70'>"+YAHOO.lang.JSON.parse(o.responseText)+"</textarea>";
  17 + var temp = function()
  18 + {
  19 + core_carregando("ativa");
  20 + core_carregando("salvando texto...");
  21 + var callback1 =
  22 + {
  23 + success:function(o)
  24 + {
  25 + $i("editorArea").innerHTML = YAHOO.lang.JSON.parse(o.responseText);
  26 + core_carregando("desativa");
  27 + },
  28 + failure:core_handleFailure,
  29 + argument: { foo:"foo", bar:"bar" }
  30 + };
  31 + var linhas = $i("editorArea").value.split("\n");
  32 + var tempLinhas = "";
  33 + for(var i=0, j=linhas.length; i<j; i++)
  34 + {tempLinhas += linhas[i]+"xxxxxxxx";}
  35 + sUrl = "../php/editormapfile.php?funcao=salvaTextoMapfile&codigoMap="+codigoMap+"&texto="+tempLinhas;
  36 + core_makeRequest(sUrl,callback1,"GET");
  37 + };
  38 + $i("editor_bd").innerHTML = ins;
  39 + new YAHOO.widget.Button("salvarTexto",{ onclick: { fn: temp }});
  40 + core_carregando("desativa");
  41 + },
  42 + failure:core_handleFailure,
  43 + argument: { foo:"foo", bar:"bar" }
  44 + };
  45 + core_makeRequest(sUrl,callback);
  46 +}
admin/js/editormapfile_estilos.js 0 → 100755
@@ -0,0 +1,181 @@ @@ -0,0 +1,181 @@
  1 +//
  2 +//Utilizado por editormapfile.js
  3 +//
  4 +
  5 +
  6 +/*
  7 +Function: editorEstilo
  8 +
  9 +Abre o editor de dados gerais de um estilo
  10 +
  11 +<PEGAESTILO>
  12 +*/
  13 +function editorEstilo(codigoMap,codigoLayer,indiceClasse,indiceEstilo)
  14 +{
  15 + core_montaEditor("","450px","500px","","Estilo");
  16 + var sUrl = "../php/editormapfile.php?funcao=pegaEstilo&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse+"&indiceEstilo="+indiceEstilo;
  17 + core_pegaDados("Obtendo dados...",sUrl,"montaEditorEstilo");
  18 +}
  19 +function conteudoNoEstilo(codigoMap,codigoLayer,indice,estilo){
  20 + var conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','estilo','"+codigoMap+"','"+codigoLayer+"','"+indice+"','"+estilo+"')\" title=sobe src=\"../imagens/34.png\" />";
  21 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','estilo','"+codigoMap+"','"+codigoLayer+"','"+indice+"','"+estilo+"')\" title=desce src=\"../imagens/33.png\" />";
  22 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluirEstilo('"+codigoMap+"','"+codigoLayer+"','"+indice+"','"+estilo+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" />&nbsp;";
  23 + conteudo += "<img width='10px' heigth='10px' style=\"position:relative;cursor:pointer;top:0px\" onclick=\"editorEstilo('"+codigoMap+"','"+codigoLayer+"','"+indice+"','"+estilo+"')\" title='classes' src=\"../imagens/06.png\" />&nbsp;<span>"+estilo+"</span>";
  24 + var d = {estilos:codigoMap+"_"+codigoLayer+"_"+indice,html:conteudo,id:codigoMap+"_"+codigoLayer+"_"+indice+"_"+estilo,codigoMap:codigoMap,codigoLayer:codigoLayer,indiceClasse:indice,indiceEstilo:estilo};
  25 + return d;
  26 +}
  27 +/*
  28 +Function: excluirEstilo
  29 +
  30 +Exclui um estilo
  31 +
  32 +<EXCLUIRESTILO>
  33 +*/
  34 +function excluirEstilo(codigoMap,codigoLayer,indiceClasse,indiceEstilo)
  35 +{
  36 + var handleYes = function()
  37 + {
  38 + this.hide();
  39 + core_carregando("ativa");
  40 + var mensagem = " excluindo "+indiceEstilo;
  41 + core_carregando(mensagem);
  42 + var sUrl = "../php/editormapfile.php?funcao=excluirEstilo&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse+"&indiceEstilo="+indiceEstilo;
  43 + var callback =
  44 + {
  45 + success:function(o)
  46 + {
  47 + try
  48 + {
  49 + var no = tree.getNodesByProperty("id",codigoMap+"_"+codigoLayer+"_"+indiceClasse+"_"+indiceEstilo);
  50 + tree.removeNode(no[0]);
  51 + tree.draw();
  52 + core_carregando("desativa");
  53 + }
  54 + catch(e){core_handleFailure(e,o.responseText);}
  55 + },
  56 + failure:core_handleFailure,
  57 + argument: { foo:"foo", bar:"bar" }
  58 + };
  59 + core_makeRequest(sUrl,callback);
  60 + };
  61 + var handleNo = function()
  62 + {this.hide();};
  63 + var mensagem = "Exclui o estilo?";
  64 + var largura = "300";
  65 + core_dialogoContinua(handleYes,handleNo,mensagem,largura);
  66 +}
  67 +function montaEditorEstilo(dados)
  68 +{
  69 + var limg = i3GEO.configura.locaplic+"/imagens/ic_zoom.png";
  70 + param = {
  71 + "linhas":[
  72 + {ajuda:"O s&iacute;mbolo a ser usado para representar as fei&ccedil;&otilde;es. Integer &eacute; o &iacute;ndice do s&iacute;mbolo no symbolset, come&ccedil;ando em 1 (o quinto s&iacute;mbolo &eacute; o s&iacute;mbolo 5). String &eacute; o nome do s&iacute;mbolo (como definido usando o par&acirc;metro SYMBOL NAME). Filename especifica o caminho para um arquivo contendo um s&iacute;mbolo. Por exemplo, um arquivo PNG. Especifique o caminho relativo ao diret&oacute;rio contendo o mapfile. URL especifica o endere&ccedil;o de um arquivo contendo um s&iacute;mbolo pixmap. Por exemplo, um arquivo PNG. Uma URL deve come&ccedil;ar com &#8220;http&#8221;. Exemplo: SYMBOL &#8220;http://myserver.org/path/to/file.png . [ATRIBUTO] permite representa&ccedil;&atilde;o individual de fei&ccedil;&otilde;es usando um atributo no conjunto de dados que especifica o nome do s&iacute;mbolo (como definido usando o par&acirc;metro SYMBOL NAME). S&atilde;o necess&aacute;rios os colchetes []. Se SYMBOL n&atilde;o for especificado, o comportamento depende do tipo de fei&ccedil;&atilde;o: Para pontos, nada ser&aacute; representado; Para linhas, SYMBOL s&oacute; &eacute; relevante se voc&ecirc; quer estilizar as linhas utilizando s&iacute;mbolos, ent&atilde;o a aus&ecirc;ncia de SYMBOL significa que voc&ecirc; ter&aacute; as linhas como especificadas utilizando os par&acirc;metros de representa&ccedil;&atilde;o de linhas (COLOR, WIDTH, PATTERN, LINECAP, etc.); Para pol&iacute;gonos, o interior dos pol&iacute;gonos ser&aacute; representado utilizando um preenchimento s&oacute;lido da cor especificada no par&acirc;metro COLOR.",
  73 + titulo:"Symbolname (pode ser utilizado uma imagem, exemplo: /var/www/i3geo/imagensteste.png) :",id:"",value:dados.symbolname,tipo:"text",div:"<div id=cSymbolname ></div>"},
  74 + {ajuda:"Cor a ser utilizada para desenhar fei&ccedil;&otilde;es.",
  75 + titulo:"Color",id:"color",value:dados.color,tipo:"cor"},
  76 + {ajuda:"Cor de fundo a ser utilizada para desenhar fei&ccedil;&otilde;es.",
  77 + titulo:"Backgroundcolor",id:"backgroundcolor",value:dados.backgroundcolor,tipo:"cor"},
  78 + {ajuda:"Tamanho, em SIZEUNITS, do SYMBOL/PATTERN a ser usado. O valor padr&atilde;o depende do tipo do s&iacute;mbolo: para pixmap, o tamanho (em pixeis) do pixmap; para ellipse e vector, o valor m&aacute;ximo de y do par&acirc;metro SYMBOL POINTS; para hatch, 1,0; para truetype, 1,0. Quando a escala de s&iacute;mbolos &eacute; utilizada (SYMBOLSCALEDENOM &eacute; utilizado no n&iacute;vel da LAYER) o SIZE define o tamanho - de acordo com o SIZEUNITS da camada - do SYMBOL /PATTERN a ser usado na escala 1:SYMBOLSCALEDENOM. Para s&iacute;mbolos do tipo hatch, o tamanho &eacute; a dist&acirc;ncia de centro a centro entre as linhas. [ATRIBUTO] especifica um atributo a ser usado para usar como valor de tamanho. Os colchetes [] s&atilde;o necess&aacute;rios.",
  79 + titulo:"Size",id:"size",value:dados.size,tipo:"text"},
  80 + {ajuda:"Cor usada para contornar pol&iacute;gonos e alguns s&iacute;mbolos de marcadores (marker). N&atilde;o possui efeito para linhas. A largura do contorno pode ser especificada usando WIDTH. Se n&atilde;o for especificado nenhum WIDTH, ser&aacute; tra&ccedil;ado um contorno de 1 pixel de largura. Se h&aacute; algum s&iacute;mbolo definido em STYLE, ser&aacute; criado um contorno para este s&iacute;mbolo (somente ellipse, truetype e polygon vector ganhar&atilde;o um contorno). Se n&atilde;o houver s&iacute;mbolo definido em STYLE, o pol&iacute;gono ganhar&aacute; um contorno. [ATRIBUTO] especifica um atributo a ser usado para usar como valor de cor. Os colchetes [] s&atilde;o necess&aacute;rios.",
  81 + titulo:"Outlinecolor",id:"outlinecolor",value:dados.outlinecolor,tipo:"cor"},
  82 + {ajuda:"WIDTH se refere &agrave; espessura da linha desenhada, em pixeis. Padr&atilde;o &eacute; 1. Quando a escala de s&iacute;mbolos &eacute; utilizada (SYMBOLSCALEDENOM &eacute; utilizado no n&iacute;vel da LAYER) o WIDTH define a espessura da linha - de acordo com o SIZEUNITS da camada &#8211; em rela&ccedil;&atilde;o &agrave; escala 1:SYMBOLSCALEDENOM. Se utilizado com SYMBOL e OUTLINECOLOR, WIDTH define a espessura do contorno dos s&iacute;mbolos. Isto se aplica para os s&iacute;mbolos do tipo ellipse, truetype e polygon vector. Para linhas, WIDTH especifica a espessura da linha. Para pol&iacute;gonos, se utilizado com OUTLINECOLOR, WIDTH especifica a espessura da linha do pol&iacute;gono. Para um s&iacute;mbolo do tipo hatch, WIDTH especifica a largura das linhas hachuradas. [ATRIBUTO] especifica o atributo a ser usado para valores de WIDTH. Os colchetes [] s&atilde;o necess&aacute;rios.",
  83 + titulo:"Width",id:"width",value:dados.width,tipo:"text"},
  84 + {ajuda:"Tamanho m&iacute;nimo em pixeis para desenhar um s&iacute;mbolo. Padr&atilde;o &eacute; 0. S&oacute; &eacute; &uacute;til quando usada escala de s&iacute;mbolos. Para s&iacute;mbolos do tipo hatch, o tamanho &eacute; a dist&acirc;ncia entre linhas hachuradas.",
  85 + titulo:"Minsize",id:"minsize",value:dados.minsize,tipo:"text"},
  86 + {ajuda:"Tamanho m&aacute;ximo em pixeis para desenhar um s&iacute;mbolo. Padr&atilde;o &eacute; 500.",
  87 + titulo:"Maxsize",id:"maxsize",value:dados.maxsize,tipo:"text"},
  88 + {ajuda:"Valor de deslocamento no eixo x para s&iacute;mbolos com sombras, vazios etc.",
  89 + titulo:"Offsetx",id:"offsetx",value:dados.offsetx,tipo:"text"},
  90 + {ajuda:"Valor de deslocamento no eixo y para s&iacute;mbolos com sombras, vazios etc.",
  91 + titulo:"Offsety",id:"offsety",value:dados.offsety,tipo:"text"},
  92 + {ajuda:"Ativa ou desativa o antialias para fontes truetype.",
  93 + titulo:"Antialias",id:"antialias",value:dados.antialias,tipo:"text"},
  94 + {ajuda:"Tamanho m&iacute;nimo em pixeis para desenhar uma linha. Padr&atilde;o &eacute; 0.",
  95 + titulo:"Minwidth",id:"minwidth",value:dados.minwidth,tipo:"text"},
  96 + {ajuda:"Tamanho m&aacute;ximo em pixeis para desenhar uma linha. Padr&atilde;o &eacute; 32.",
  97 + titulo:"Maxwidth",id:"maxwidth",value:dados.maxwidth,tipo:"text"},
  98 + {ajuda:"&Acirc;ngulo, em graus, para rotacionar um s&iacute;mbolo (sentido anti-hor&aacute;rio). Padr&atilde;o &eacute; 0 (sem rota&ccedil;&atilde;o). Para pontos, especifica a rota&ccedil;&atilde;o de um s&iacute;mbolo em rela&ccedil;&atilde;o a seu centro. Para linhas estilizadas, o comportamento depende do valor do elemento GAP. Para valores de GAP negativos, ele especifica o rotacionamento de um s&iacute;mbolo relativo &agrave; dire&ccedil;&atilde;o da linha. Um &acirc;ngulo de 0 significa que o eixo x do s&iacute;mbolo &eacute; orientado juntamente com a dire&ccedil;&atilde;o da linha. Se o valor do GAP for positivo, ele especifica o rotacionamento do s&iacute;mbolo em rela&ccedil;&atilde;o ao seu pr&oacute;prio centro.",
  99 + titulo:"Angle",id:"angle",value:dados.angle,tipo:"text"}
  100 + ]
  101 + };
  102 + var ins = "<input type=button title='Salvar' value='Salvar' id=salvarEditor />";
  103 + ins += core_geraLinhas(param);
  104 + ins += "<br><br><br>";
  105 + $i("editor_bd").innerHTML = ins;
  106 +
  107 + temp = "<input type='text' value='"+dados.symbolname+"' id='symbolname' size='50'>";
  108 + temp += "<img onclick='selNavegador(\"symbolname\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>";
  109 + temp += "<div id='listaSimbolos' style='overflow:auto;width:350px;height:50px;'></div>";
  110 + $i("cSymbolname").innerHTML = temp;
  111 +
  112 + var temp = function()
  113 + {salvarDadosEditor('estilo',dados.codigoMap,dados.codigoLayer,dados.indiceClasse,dados.indiceEstilo);};
  114 + new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }});
  115 +
  116 + escolheSimbolo = function(nome){
  117 + $i("symbolname").value = nome;
  118 + };
  119 + //lista os simbolos
  120 + var sUrl = "../php/editormapfile.php?funcao=editasimbolo&tipo="+dados.type+"&opcao=listaSimbolos&onclick=escolheSimbolo(this.title)";
  121 + var callback =
  122 + {
  123 + success:function(o)
  124 + {
  125 + try
  126 + {
  127 + var re = new RegExp("ms_tmp", "g");
  128 + var t = o.responseText.replace(re,"../../../ms_tmp/");
  129 + var re = new RegExp("\\\\", "g");
  130 + t = t.replace(re,"");
  131 + $i("listaSimbolos").innerHTML = t;
  132 + }
  133 + catch(e){}
  134 + },
  135 + failure:core_handleFailure,
  136 + argument: { foo:"foo", bar:"bar" }
  137 + };
  138 + core_makeRequest(sUrl,callback,'POST');
  139 +}
  140 +/*
  141 +Function: adicionaNovoEstilo
  142 +
  143 +Adiciona um novo estilo
  144 +
  145 +<CRIARNOVOESTILO>
  146 +*/
  147 +function adicionaNovoEstilo(codigoMap,codigoLayer,indiceClasse)
  148 +{
  149 + core_carregando("ativa");
  150 + core_carregando(" adicionando um novo estilo");
  151 + sUrl = "../php/editormapfile.php?funcao=criarNovoEstilo&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse;
  152 + var callback =
  153 + {
  154 + success:function(o)
  155 + {
  156 + try
  157 + {
  158 + if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
  159 + {
  160 + core_carregando("<span style=color:red >Erro</span>");
  161 + setTimeout("core_carregando('desativa')",3000);
  162 + }
  163 + else
  164 + {
  165 + var no = tree.getNodeByProperty("etiquetaEstilo",codigoMap+"_"+codigoLayer+"_"+indiceClasse);
  166 + var dados = YAHOO.lang.JSON.parse(o.responseText);
  167 + var d = conteudoNoEstilo(codigoMap,codigoLayer,indiceClasse,dados[0].estilo);
  168 + var tempNode = new YAHOO.widget.HTMLNode(d,no, false,true);
  169 + tempNode.isLeaf = true;
  170 + tempNode.enableHighlight = false;
  171 + tree.draw();
  172 + core_carregando("desativa");
  173 + }
  174 + }
  175 + catch(e){core_handleFailure(e,o.responseText);}
  176 + },
  177 + failure:core_handleFailure,
  178 + argument: { foo:"foo", bar:"bar" }
  179 + };
  180 + core_makeRequest(sUrl,callback);
  181 +}
admin/js/editormapfile_geral.js 0 → 100755
@@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
  1 +/*
  2 +Function: editorGeral
  3 +
  4 +Abre o editor de dados gerais de um layer
  5 +
  6 +<PEGAGERAL>
  7 +*/
  8 +function editorGeral(codigoMap,codigoLayer)
  9 +{
  10 + core_montaEditor("","450px","500px","","Geral");
  11 + var sUrl = "../php/editormapfile.php?funcao=pegaGeral&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer;
  12 + core_pegaDados("Obtendo dados...",sUrl,"montaEditorGeral");
  13 +}
0 \ No newline at end of file 14 \ No newline at end of file
admin/js/editormapfile_label.js 0 → 100755
@@ -0,0 +1,113 @@ @@ -0,0 +1,113 @@
  1 +/*
  2 +Function: editorClasseLabel
  3 +
  4 +Abre o editor dos labels de um layer
  5 +
  6 +<PEGACLASSELABEL>
  7 +*/
  8 +function editorClasseLabel(codigoMap,codigoLayer,indiceClasse)
  9 +{
  10 + core_montaEditor("","450px","500px","","Label");
  11 + var sUrl = "../php/editormapfile.php?funcao=pegaClasseLabel&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse;
  12 + core_pegaDados("Obtendo dados...",sUrl,"montaEditorClasseLabel");
  13 +}
  14 +
  15 +function montaEditorClasseLabel(dados)
  16 +{
  17 + var param = {
  18 + "linhas":[
  19 + {ajuda:"Cor com a qual o texto ser&aacute; desenhado. [ATRIBUTO] especifica o nome do item na tabela de atributos para usar como valores de cor. Os colchetes [] s&atilde;o necess&aacute;rios. Por exemplo, se o DBF do seu shapefile tem um campo chamado &#8220;MYCOLOR&#8221; o objeto LABEL deve conter: LABEL &#8594; COLOR [MYCOLOR].",
  20 + titulo:"Color",id:"color",value:dados.color,tipo:"cor"},
  21 + {ajuda:"Tamanho do texto. Use um n&uacute;mero inteiro para dar o tamanho e pixeis da sua fonte TrueType, ou qualquer outra das 5 palavras para fontes bitmap. Quando a escala de s&iacute;mbolos e utilizada, SIZE representa o tamanho da fonte a ser usada com o mapa na escala 1:SYMBOLSCALEDENOM. [ATRIBUTO] especifica o nome do item na tabela de atributos para usar como valores de tamanho. Os colchetes [] s&atilde;o necess&aacute;rios. Por exemplo, se o DBF do seu shapefile tem um campo chamado &#8220;MYSIZE&#8221; o objeto LABEL deve conter: LABEL &#8594; SIZE [MYSIZE].",
  22 + titulo:"Size",id:"size",value:dados.size,tipo:"text"},
  23 + {ajuda:"Posi&ccedil;&atilde;o da label relativa ao ponto de etiquetagem (somente para camadas). A primeira letra &eacute; a posi&ccedil;&atilde;o Y, a segunda letra &eacute; a posi&ccedil;&atilde;o X. Auto diz ao MapServer para calcular a posi&ccedil;&atilde;o que n&atilde;o vai interferir com as outras labels. Com pontos e pol&iacute;gonos, o MapServer seleciona uma das 8 posi&ccedil;&otilde;es exteriores (ou seja, exclui a op&ccedil;&atilde;o cc). Com linhas, s&oacute; &eacute; utilazando lc ou uc, at&eacute; que ele use uma posi&ccedil;&atilde;o que n&atilde;o colida com labels que j&aacute; tenham sido desenhadas. Se todas as posi&ccedil;&otilde;es causarem conflitos, ent&atilde;o a label n&atilde;o &eacute; desenhada (a n&atilde;o ser que o par&acirc;metro FORCE esteja habilitado). O posicionamento AUTO s&oacute; &eacute; permitido com labels em cache.",
  24 + titulo:"Position",id:"position",value:dados.position,tipo:"text"},
  25 + {ajuda:"Espa&ccedil;o livre, em pixeis, ao redor das labels. &Uacute;til para manter um espa&ccedil;o ao redor do texto para melhorar a leitura. S&oacute; &eacute; permitido com labels em cache. Padr&atilde;o &eacute; 0.",
  26 + titulo:"Buffer",id:"buffer",value:dados.buffer,tipo:"text"},
  27 + {ajuda:"Apelido da fonte (como definido em FONTSET) para usar nas labels. [ATRIBUTO] especifica o campo para o apelido da fonte. Pode conter uma lista de fontes para ser usada como recupera&ccedil;&atilde;o para fontes que n&atilde;o suportam grifos, sendo o m&aacute;ximo de fontes de reserva definido em MS_MAX_LABEL_FONTS (geralmente 5). Se especificada diretamente, n&atilde;o se esque&ccedil;a de incluir a lista citada entre aspas.",
  28 + titulo:"Font",id:"",value:dados.font,tipo:"text",div:"<div id=cFont ></div>"},
  29 + {ajuda:"Tipo de fonte a ser usado. Geralmente fontes bitmap s&atilde;o mais r&aacute;pidas de se desenhar do que fontes TrueType. No entanto, fontes TrueType s&atilde;o pass&iacute;veis de serem usadas com escala e dispon&iacute;veis em uma variedade de tipos. N&atilde;o se esque&ccedil;a de acionar o par&acirc;metro FONT se voc&ecirc; selecionar TrueType.",
  30 + titulo:"Type",id:"",value:dados.type,tipo:"text",div:"<div id=cType ></div>"},
  31 + {ajuda:"O texto pode cruzar o limite do mapa? Padr&atilde;o &eacute; true.",
  32 + titulo:"Partials",id:"",value:dados.partials,tipo:"text",div:"<div id=cPartials ></div>"},
  33 + {ajuda:"For&ccedil;a as labels para uma classe em particular ativada, independente de colis&otilde;es. Dispon&iacute;vel somente para labels em cache. Padr&atilde;o &eacute; false. Se FORCE est&aacute; ligado e PARTIALS desligado, FORCE toma prefer&ecirc;ncia e labels parciais s&atilde;o desenhadas.",
  34 + titulo:"Force",id:"",value:dados.force,tipo:"text",div:"<div id=cForce ></div>"},
  35 + {ajuda:"Cor a ser desenhado o ret&acirc;ngulo de fundo. Desligado por padr&atilde;o.",
  36 + titulo:"Backgroundcolor",id:"backgroundcolor",value:dados.backgroundcolor,tipo:"cor"},
  37 + {ajuda:"Cor a ser desenhada a sombra do ret&acirc;ngulo de fundo. Desligado por padr&atilde;o.",
  38 + titulo:"Backgroundshadowcolor",id:"backgroundshadowcolor",value:dados.backgroundshadowcolor,tipo:"cor"},
  39 + {ajuda:"Cor a ser desenhado o contorno de 1 pixel ao redor dos caracteres no texto.[ATRIBUTO] especifica o nome do item na tabela de atributos para usar como valores de cor de contorno. Os colchetes [] s&atilde;o necess&aacute;rios. Por exemplo, se o DBF do seu shapefile tem um campo chamado &#8220;MYOUTCOLOR&#8221; o objeto LABEL deve conter: LABEL &#8594; OUTLINECOLOR [MYOUTCOLOR].",
  40 + titulo:"Outlinecolor",id:"outlinecolor",value:dados.outlinecolor,tipo:"cor"},
  41 + {ajuda:"Cor da sombra. Uma label com o mesmo texto ser&aacute; desenhada nesta cor antes da label principal, resultando num efeito de sombra nos caracteres da label. O deslocamento da sombra desenhada &eacute; definido em SHADOWSIZE.",
  42 + titulo:"Shadowcolor",id:"shadowcolor",value:dados.shadowcolor,tipo:"text"},
  43 + {ajuda:"Deslocamento da sombra no eixo x em pixeis.",
  44 + titulo:"Shadowsizex",id:"shadowsizex",value:dados.shadowsizex,tipo:"text"},
  45 + {ajuda:"Deslocamento da sombra no eixo y em pixeis.",
  46 + titulo:"Shadowsizey",id:"shadowsizey",value:dados.shadowsizey,tipo:"text"},
  47 + {ajuda:"Valor do deslocamento do ret&acirc;ngulo de fundo da sombra no eixo x. Padr&atilde;o &eacute; 1.",
  48 + titulo:"Backgroundshadowsizex",id:"backgroundshadowsizex",value:dados.backgroundshadowsizex,tipo:"text"},
  49 + {ajuda:"Valor do deslocamento do ret&acirc;ngulo de fundo da sombra no eixo y. Padr&atilde;o &eacute; 1.",
  50 + titulo:"Backgroundshadowsizey",id:"backgroundshadowsizey",value:dados.backgroundshadowsizey,tipo:"text"},
  51 + {ajuda:"Tamanho m&iacute;nimo da fonte (pixeis) para usar quando desenhando textos conforme a escala. Padr&atilde;o &eacute; 4.",
  52 + titulo:"Minsize",id:"minsize",value:dados.minsize,tipo:"text"},
  53 + {ajuda:"Tamanho m&aacute;ximo da fonte (pixeis) para usar quando desenhando textos conforme a escala. Padr&atilde;o &eacute; 256.",
  54 + titulo:"Maxsize",id:"maxsize",value:dados.maxsize,tipo:"text"},
  55 + {ajuda:"Valor de deslocamento no eixo X para labels, relativo ao canto inferior esquerdo da label e do ponto de etiquetagem. Dado em pixeis. No caso de testo rotacionado, especificar os valores como se todas as labels fossem horizontais e qualquer rota&ccedil;&atilde;o ser&aacute; compensada.",
  56 + titulo:"Offsetx",id:"offsetx",value:dados.offsetx,tipo:"text"},
  57 + {ajuda:"Valor de deslocamento no eixo X para labels, relativo ao canto inferior esquerdo da label e do ponto de etiquetagem. Dado em pixeis. No caso de testo rotacionado, especificar os valores como se todas as labels fossem horizontais e qualquer rota&ccedil;&atilde;o ser&aacute; compensada.",
  58 + titulo:"Offsety",id:"offsety",value:dados.offsety,tipo:"text"},
  59 + {ajuda:"&Acirc;ngulo, em graus, para desenhar as labels. AUTO permite ao MapServer computar o &acirc;ngulo. V&aacute;lido somente para camadas do tipo linha. AUTO2 &eacute; igual ao AUTO, exceto que nenhuma l&oacute;gica &eacute; aplicada para tentar manter o texto numa orienta&ccedil;&atilde;o de leitura (ou seja, o texto pode ser desenhado de cabe&ccedil;a para baixo). &Uacute;til quando se adiciona textos de seta para indicar a dire&ccedil;&atilde;o da linha. FOLLOW diz ao MapServer para computar uma label curva para fei&ccedil;&otilde;es lineares apropriadas.[ATRIBUTO] especifica o nome do item na tabela de atributos para se usar como valores de &acirc;gulo. Os colchetes [] s&atilde;o necess&aacute;rios. Por exemplo, se o DBF do seu shapefile tem um campo chamado &#8220;MYANGLE&#8221; o objeto LABEL deve conter: LABEL &#8594; ANGLE [MYANGLE].",
  60 + titulo:"Angle (utilize MS_FOLLOW para textos curvos)",id:"angle",value:dados.angle,tipo:"text"},
  61 + {ajuda:"C&aacute;lculo autom&aacute;tico do &acirc;ngulo quando os elementos forem lineares",
  62 + titulo:"Autoangle",id:"",value:dados.angle,tipo:"text",div:"<div id=cAutoangle ></div>"},
  63 + {ajuda:"Ativa ou desativa o antialias. Note que isto requere mais cores dispon&iacute;veis, diminui a performance e resulta em imagens de sa&iacute;da bem maiores. S&oacute; &eacute; &uacute;til para desenhos em gif. Padr&atilde;o &eacute; falso. N&atilde;o tem efeito para outros processamentos (nos quais o antialias n&atilde;o pode ser desligado).",
  64 + titulo:"Antialias",id:"antialias",value:dados.antialias,tipo:"text"},
  65 + {ajuda:"Caractere que define a condi&ccedil;&atilde;o de fim de linha num texto de label, resultando numa label de m&uacute;ltiplas linhas. Interage com MAXLENGHT para defini&ccedil;&atilde;o condicional de quebra de linha ap&oacute;s um dado n&uacute;mero de caracteres.",
  66 + titulo:"Wrap",id:"wrap",value:dados.wrap,tipo:"text"},
  67 + {ajuda:"Tamanho m&iacute;nimo que uma fei&ccedil;&atilde;o deve ter para ser etiquetada. Dado em pixeis. Para dados do tipo linha o comprimento geral da linha exibida &eacute; usada. Para pol&iacute;gonos, a menor dimens&atilde;o da caixa circundante &eacute; usada. AUTO diz ao MapServer s&oacute; etiquetar fei&ccedil;&otilde;es que s&atilde;o maiores do que sua respectiva label. Dispon&iacute;vel somente para labels em cache.",
  68 + titulo:"Minfeaturesize",id:"minfeaturesize",value:dados.minfeaturesize,tipo:"text"},
  69 + {ajuda:"Dist&acirc;ncia m&iacute;nima entre labels duplicadas. Dada em pixeis.",
  70 + titulo:"Mindistance",id:"mindistance",value:dados.mindistance,tipo:"text"},
  71 + {ajuda:"Formato de codifica&ccedil;&atilde;o suportado para ser usado para as labels. Se o formato n&atilde;o for suprotado, a label n&atilde;o ser&aacute; desenhada. Requer a biblioteca iconv (presente na maior parte dos sistemas). A biblioteca &eacute; sempre detectada se estiver presente no sistema, mas, se n&atilde;o for, a label n&atilde;o ser&aacute; desenhada. Necess&aacute;rio para exibi&ccedil;&atilde;o de caracteres internacionais. Mais informa&ccedil;&otilde;es podem ser encontradas em: http://www.foss4g.org/FOSS4G/MAPSERVER/mpsnf-i18n-en.html.",
  72 + titulo:"Encoding",id:"encoding",value:dados.encoding,tipo:"text"}
  73 + ]
  74 + };
  75 + var ins = "<input type=button title='Salvar' value='Salvar' id=salvarEditor />";
  76 + if(dados.colunas != "")
  77 + {
  78 + ins += "<p>O layer possu&iacute; as seguintes colunas na tabela de atributos: ";
  79 + ins += dados.colunas+"</p>";
  80 + }
  81 + ins += core_geraLinhas(param);
  82 + ins += "<br><br><br>";
  83 + $i("editor_bd").innerHTML = ins;
  84 +
  85 + temp = "<select id='font' >";
  86 + temp += core_comboObjeto(dados.fontes,"","",dados.font);
  87 + temp += "</select>";
  88 + $i("cFont").innerHTML = temp;
  89 +
  90 + temp = "<select id='type' >";
  91 + temp += core_comboObjeto(objfonttypes,"valor","texto",dados.type);
  92 + temp += "</select>";
  93 + $i("cType").innerHTML = temp;
  94 +
  95 + temp = "<select id='partials' >";
  96 + temp += core_comboObjeto(objbool_tf,"valor","texto",dados.partials);
  97 + temp += "</select>";
  98 + $i("cPartials").innerHTML = temp;
  99 +
  100 + temp = "<select id='force' >";
  101 + temp += core_comboObjeto(objbool_tf,"valor","texto",dados.force);
  102 + temp += "</select>";
  103 + $i("cForce").innerHTML = temp;
  104 +
  105 + temp = "<select id='autoangle' >";
  106 + temp += core_comboObjeto(objbool_tf,"valor","texto",dados.autoangle);
  107 + temp += "</select>";
  108 + $i("cAutoangle").innerHTML = temp;
  109 +
  110 + var temp = function()
  111 + {salvarDadosEditor('classeLabel',dados.codigoMap,dados.codigoLayer,dados.indiceClasse);};
  112 + new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }});
  113 +}
admin/js/editormapfile_layer.js 0 → 100755
@@ -0,0 +1,239 @@ @@ -0,0 +1,239 @@
  1 +function montaNoLayer(codigo,indice){
  2 + var conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','layer','"+codigo+"','"+indice+"')\" title=sobe src=\"../imagens/34.png\" />";
  3 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','layer','"+codigo+"','"+indice+"')\" title=desce src=\"../imagens/33.png\" />";
  4 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluirLayer('"+codigo+"','"+indice+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" />&nbsp;<span>"+indice+"</span>";
  5 + var d = {html:conteudo,id:codigo+"_"+indice,codigoMap:codigo,codigoLayer:indice};
  6 + return d;
  7 +}
  8 +function loadLayerData(node, fnLoadComplete)
  9 +{
  10 + var sUrl = "../php/editormapfile.php?funcao=listaClasses&codigoMap="+node.data.codigoMap+"&codigoLayer="+node.data.codigoLayer;
  11 + var callback =
  12 + {
  13 + success: function(oResponse)
  14 + {
  15 + var dados = YAHOO.lang.JSON.parse(oResponse.responseText);
  16 + montaParametrosTemas(node,dados,false);
  17 + oResponse.argument.fnLoadComplete();
  18 + },
  19 + failure: function(oResponse)
  20 + {
  21 + oResponse.argument.fnLoadComplete();
  22 + },
  23 + argument:
  24 + {
  25 + "node": node,
  26 + "fnLoadComplete": fnLoadComplete
  27 + },
  28 + timeout: 25000
  29 + };
  30 + YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
  31 +}
  32 +/*
  33 +Function: montaParametrosTemas
  34 +
  35 +Complementa as op&ccedil;&otilde;es de edi&ccedil;&atilde;o b&aacute;sicas de um LAYER
  36 +
  37 +<LISTAESTILOS>
  38 +*/
  39 +function montaParametrosTemas(no,dados,redesenha)
  40 +{
  41 + var codigoMap = no.data.codigoMap,
  42 + codigoLayer = no.data.codigoLayer,
  43 + id = codigoMap+"_"+codigoLayer,
  44 + conteudo = "",
  45 + tempNodeR = "",
  46 + tempNode = "",
  47 + d;
  48 + if(!tree.getNodeByProperty("etiquetaDados",id))
  49 + {
  50 + conteudo = "<span style=cursor:pointer; onclick=\"editorDados('"+codigoMap+"','"+codigoLayer+"')\" ><img width='10px' heigth='10px' style=\"position:relative;top:0px\" title='' src=\"../imagens/06.png\" /> Conex&atilde;o com os dados</span>";
  51 + d = {tipo:"etiquetaDados",etiquetaDados:id,html:conteudo};
  52 + tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  53 + tempNode.isLeaf = true;
  54 + }
  55 + if(!tree.getNodeByProperty("etiquetaTitulo",id))
  56 + {
  57 + conteudo = "<span style=cursor:pointer; onclick=\"editorTitulo('"+codigoMap+"','"+codigoLayer+"')\" ><img width='10px' heigth='10px' style=\"position:relative;top:0px\" title='' src=\"../imagens/06.png\" /> T&iacute;tulo, escala, extens&atilde;o</span>";
  58 + d = {tipo:"etiquetaTitulo",etiquetaTitulo:id,html:conteudo};
  59 + tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  60 + tempNode.isLeaf = true;
  61 + tempNode.enableHighlight = false;
  62 + }
  63 + if(!tree.getNodeByProperty("etiquetaEditavel",id))
  64 + {
  65 + conteudo = "<span style=cursor:pointer; onclick=\"editorEditavel('"+codigoMap+"','"+codigoLayer+"')\" ><img width='10px' heigth='10px' style=\"position:relative;top:0px\" title='' src=\"../imagens/06.png\" /> Edit&aacute;vel (define se o tema &eacute; edit&aacute;vel)</span>";
  66 + d = {tipo:"etiquetaEditavel",etiquetaEditavel:id,html:conteudo};
  67 + tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  68 + tempNode.isLeaf = true;
  69 + tempNode.enableHighlight = false;
  70 + }
  71 + if(!tree.getNodeByProperty("etiquetaComport",id))
  72 + {
  73 + conteudo = "<span style=cursor:pointer; onclick=\"editorComport('"+codigoMap+"','"+codigoLayer+"')\" ><img width='10px' heigth='10px' style=\"position:relative;top:0px\" title='' src=\"../imagens/06.png\" /> Comportamento no mapa</span>";
  74 + d = {tipo:"etiquetaComport",etiquetaComport:id,html:conteudo};
  75 + tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  76 + tempNode.isLeaf = true;
  77 + tempNode.enableHighlight = false;
  78 + }
  79 +
  80 + if(!tree.getNodeByProperty("etiquetaDispo",id))
  81 + {
  82 + conteudo = "<span style=cursor:pointer; onclick=\"editorDispo('"+codigoMap+"','"+codigoLayer+"')\" ><img width='10px' heigth='10px' style=\"position:relative;top:0px\" title='' src=\"../imagens/06.png\" /> Disponibilidade (download, wms,...)</span>";
  83 + d = {tipo:"etiquetaDispo",etiquetaDispo:id,html:conteudo};
  84 + tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  85 + tempNode.isLeaf = true;
  86 + tempNode.enableHighlight = false;
  87 + }
  88 +//rever
  89 + if(!tree.getNodeByProperty("etiquetaMetadados",id))
  90 + {
  91 + conteudo = "<span style=cursor:pointer; onclick=\"editorMetadados('"+codigoMap+"','"+codigoLayer+"')\" ><img width='10px' heigth='10px' style=\"position:relative;top:0px\" title='edita metadados' src=\"../imagens/06.png\" /> Miscel&acirc;nea</span>";
  92 + d = {tipo:"etiquetaMetadados",etiquetaMetadados:id,html:conteudo};
  93 + tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  94 + tempNode.isLeaf = true;
  95 + tempNode.enableHighlight = false;
  96 + }
  97 + if(!tree.getNodeByProperty("etiquetaClasses",id))
  98 + {
  99 + d = {id:id,codigoLayer:codigoLayer,tipo:"etiquetaClasses",etiquetaClasses:id,html:"<i>&nbsp;Classes</i>"};
  100 + tempNodeR = new YAHOO.widget.HTMLNode(d, no, false,true);
  101 + tempNodeR.isLeaf = false;
  102 + tempNodeR.enableHighlight = false;
  103 +
  104 +
  105 + conteudo = "<span style='cursor:pointer;' onclick=\"adicionaNovaClasse('"+codigoMap+"','"+codigoLayer+"')\" ><img style='position:relative;top:2px' src=\"../imagens/05.png\" /> Adicionar uma classe</span>";
  106 + d = {html:conteudo};
  107 + tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true);
  108 + tempNode.isLeaf = true;
  109 + tempNode.enableHighlight = false;
  110 +
  111 + conteudo = "<span style='cursor:pointer;' onclick=\"classesAuto('"+codigoMap+"','"+codigoLayer+"')\" ><img style='position:relative;top:2px' src=\"../imagens/classificar.gif\" /> Criar classes automaticamente</span>";
  112 + d = {html:conteudo};
  113 + tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true);
  114 + tempNode.isLeaf = true;
  115 + tempNode.enableHighlight = false;
  116 +
  117 + conteudo = "<span style='cursor:pointer;' onclick=\"window.open('../../testamapfile.php?solegenda=sim&map="+no.data.codigoMap+"')\" > <img style='position:relative;top:2px' src=\"../imagens/41.png\" /> Testar</span>";
  118 + d = {html:conteudo};
  119 + tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true);
  120 + tempNode.isLeaf = true;
  121 + tempNode.enableHighlight = false;
  122 +
  123 + }
  124 +
  125 + for (var i=0, j=dados.length; i<j; i++)
  126 + {
  127 + d = conteudoNoClasse(no.data.codigoMap,codigoLayer,dados[i].indice,dados[i].nome);
  128 + tempNode = new YAHOO.widget.HTMLNode(d,tempNodeR, false,true);
  129 + tempNode.setDynamicLoad(loadClasseData, iconMode);
  130 + tempNode.isLeaf = false;
  131 + tempNode.enableHighlight = false;
  132 + }
  133 +
  134 + if(!tree.getNodeByProperty("pluginI3geo",id))
  135 + {
  136 + d = {id:id,codigoLayer:codigoLayer,tipo:"pluginI3geo",etiquetaPluginI3geo:id,html:"<i>&nbsp;Configurar Plugin</i>"};
  137 + tempNodeR = new YAHOO.widget.HTMLNode(d, no, false,true);
  138 + tempNodeR.isLeaf = false;
  139 + tempNodeR.enableHighlight = false;
  140 +
  141 + var temp = i3GEO.pluginI3geo.PLUGINS;
  142 + for (var i=0, j=temp.length; i<j; i++){
  143 + if(temp[i].editor === true){
  144 + conteudo = "<span style='cursor:pointer;' onclick=\"pegaPluginLayer('"+temp[i].classe+"','"+codigoMap+"','"+codigoLayer+"')\" ><img style='position:relative;top:2px' src=\"../imagens/classificar.gif\" /> "+temp[i].nome + " - " + temp[i].classe+"</span>";
  145 + d = {html:conteudo};
  146 + tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true);
  147 + tempNode.isLeaf = true;
  148 + tempNode.enableHighlight = false;
  149 + }
  150 + }
  151 + }
  152 + tree.draw();
  153 +}
  154 +/**
  155 + * Pega a string de definicao de um plugin no LAYER e monta o formulario
  156 + *
  157 + * @param plugin
  158 + * @param codigoMap
  159 + * @param codigoLayer
  160 + */
  161 +function pegaPluginLayer(plugin,codigoMap,codigoLayer){
  162 + core_montaEditor("","450px","500px","","Plugin");
  163 + var sUrl = "../php/editormapfile.php?funcao=pegaPlugin&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer;
  164 + var montaEditorPlugin = function(retorno){
  165 + var ins = "<input type=button title='Salvar' value='Salvar' id=salvarPlugin />"
  166 + + "<input type=button title='Removerluir' value='Remover' id=removerPlugin />";
  167 + //pega os campos do formulario
  168 + ins += i3GEO.pluginI3geo.formAdmin(plugin,retorno);
  169 + var ajuda = "<p>Mais informa&ccedil;&otilde;es:<br><a href='"+i3GEO.pluginI3geo.linkAjuda(plugin)+"' target=_blank >" + i3GEO.pluginI3geo.linkAjuda(plugin) + "</a></p>";
  170 + $i("editor_bd").innerHTML = ins + ajuda;
  171 +
  172 + new YAHOO.widget.Button("salvarPlugin",{ onclick: { fn: function(){
  173 + salvarDadosEditorPlugin($i("editor_bd"),plugin,codigoMap,codigoLayer);
  174 + } }});
  175 +
  176 + new YAHOO.widget.Button("removerPlugin",{ onclick: { fn: function(){
  177 + salvarDadosEditorPlugin($i("editor_bd"),"",codigoMap,codigoLayer);
  178 + } }});
  179 + };
  180 + core_pegaDados("Obtendo dados...",sUrl,montaEditorPlugin);
  181 +}
  182 +/*
  183 +Function: adicionaNovoLayer
  184 +
  185 +Adiciona um novo layer
  186 +
  187 +<CRIARNOVOLAYER>
  188 +*/
  189 +function adicionaNovoLayer(codigoMap)
  190 +{
  191 + core_carregando("ativa");
  192 + core_carregando(" adicionando um novo layer");
  193 + sUrl = "../php/editormapfile.php?funcao=criarNovoLayer&codigoMap="+codigoMap;
  194 + var callback =
  195 + {
  196 + success:function(o)
  197 + {
  198 + try
  199 + {
  200 + if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
  201 + {
  202 + core_carregando("<span style=color:red >Erro</span>");
  203 + setTimeout("core_carregando('desativa')",3000);
  204 + }
  205 + else
  206 + {
  207 + var dados = YAHOO.lang.JSON.parse(o.responseText);
  208 + var no = tree.getNodeByProperty("etiquetaLayers",codigoMap);
  209 + var tempNode = new YAHOO.widget.HTMLNode(montaNoLayer(codigoMap,dados.layers[0]), no, false,true);
  210 + tempNode.setDynamicLoad(loadLayerData, iconMode);
  211 + tempNode.isLeaf = false;
  212 + tempNode.enableHighlight = false;
  213 + tree.draw();
  214 + //editorGeral(codigoMap,dados.layers[0]);
  215 + editorTitulo(codigoMap,dados.layers[0]);
  216 + core_carregando("desativa");
  217 + }
  218 + }
  219 + catch(e){core_handleFailure(e,o.responseText);}
  220 + },
  221 + failure:core_handleFailure,
  222 + argument: { foo:"foo", bar:"bar" }
  223 + };
  224 + core_makeRequest(sUrl,callback);
  225 +}
  226 +/*
  227 +Function: excluirLayer
  228 +
  229 +Exclui um layer
  230 +
  231 +<EXCLUIRLAYER>
  232 +*/
  233 +function excluirLayer(codigoMap,codigoLayer)
  234 +{
  235 + var mensagem = " excluindo "+codigoLayer;
  236 + var no = tree.getNodeByProperty("id",codigoMap+"_"+codigoLayer);
  237 + var sUrl = "../php/editormapfile.php?funcao=excluirLayer&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer;
  238 + core_excluiNoTree(sUrl,no,mensagem,codigoLayer);
  239 +}
admin/js/editormapfile_metadados.js 0 → 100755
@@ -0,0 +1,162 @@ @@ -0,0 +1,162 @@
  1 +/*
  2 +Function: editorMetadados
  3 +
  4 +Abre o editor de metadados
  5 +
  6 +<PEGAMETADADOS>
  7 +*/
  8 +function editorMetadados(codigoMap,codigoLayer)
  9 +{
  10 + core_montaEditor("","450px","500px","","Metadados");
  11 + var sUrl = "../php/editormapfile.php?funcao=pegaMetadados&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer;
  12 + core_pegaDados("Obtendo dados...",sUrl,"montaEditorMetadados");
  13 +}
  14 +function montaEditorMetadados(dados)
  15 +{
  16 + var paramRaster = {
  17 + "linhas":[
  18 + {ajuda:"A palete &eacute; v&aacute;lida apenas para temas RASTER. Entre com o endere&ccedil;o do arquivo no servidor. Veja exemplo em i3geo/localhost/symbols/testepalete.txt",
  19 + titulo:"Arquivo com palete de cores (opcional e serve apenas para temas raster) (PALLETEFILE)",id:"palletefile",value:dados.palletefile,tipo:"text"},
  20 + {ajuda:"Quantas cores em cada n&iacute;vel da palete. Veja exemplo em i3geo/localhost/symbols/testepalete.txt",
  21 + titulo:"Passo (opcional e serve apenas para temas raster) (PALLETESTEP)",id:"palletestep",value:dados.palletestep,tipo:"text"}
  22 + ]
  23 + };
  24 + var paramVetor = {
  25 + "linhas":[
  26 + {ajuda:"Indica se o usu&aacute;rio pode abrir o editor de SQL para poder alterar o elemento DATA do Mapfile.",
  27 + titulo:"Permite editar SQL (EDITORSQL)",id:"",value:dados.editorsql,tipo:"text",div:"<div id=cEditorsql ></div>"},
  28 + {ajuda:"Formato das datas existentes na tabela de atributos p.e. iso8601",
  29 + titulo:"Linha do tempo: LTEMPOFORMATODATA",id:"ltempoformatodata",value:dados.ltempoformatodata,tipo:"text"},
  30 + {ajuda:"Item que indica a data de in&iacute;cio de um evento",
  31 + titulo:"Linha do tempo: LTEMPOITEMINICIO",id:"ltempoiteminicio",value:dados.ltempoiteminicio,tipo:"text"},
  32 + {ajuda:"Item que indica a data final de um evento (opcional)",
  33 + titulo:"Linha do tempo: LTEMPOITEMFIM",id:"ltempoitemfim",value:dados.ltempoitemfim,tipo:"text"},
  34 + {ajuda:"Item que cont&eacute;m o t&iacute;tulo de cada evento",
  35 + titulo:"Linha do tempo: LTEMPOITEMTITULO",id:"ltempoitemtitulo",value:dados.ltempoitemtitulo,tipo:"text"},
  36 + {ajuda:"Item com a descri&ccedil;&atilde;o do evento (opcional)",
  37 + titulo:"Linha do tempo: LTEMPOITEMDESCRICAO",id:"ltempoitemdescricao",value:dados.ltempoitemdescricao,tipo:"text"},
  38 + {ajuda:"Item para etiquetas do t&iacute;tulo (opcional)",
  39 + titulo:"Linha do tempo: LTEMPOITEMTIP",id:"ltempoitemtip",value:dados.ltempoitemtip,tipo:"text"},
  40 + {ajuda:"Item com o endere&ccedil;o de uma imagem que ser&aacute; inclu&iacute;da no menu popup, aberto quando o usu&aacute;rio clica em um evento (opcional)",
  41 + titulo:"Linha do tempo: LTEMPOITEMIMAGEM",id:"ltempoitemimagem",value:dados.ltempoitemimagem,tipo:"text"},
  42 + {ajuda:"Link para uma p&aacute;gina que ser&aacute; inclu&iacute;do no menu popup",
  43 + titulo:"Linha do tempo: LTEMPOITEMLINK",id:"ltempoitemlink",value:dados.ltempoitemlink,tipo:"text"},
  44 + {ajuda:"Endere&ccedil;o da imagem do &iacute;cone que ir&aacute; representar o evento (opcional)",
  45 + titulo:"Linha do tempo: LTEMPOITEMICONE",id:"ltempoitemicone",value:dados.ltempoitemicone,tipo:"text"},
  46 + {ajuda:"Aplica convers&atilde;o do código de caracteres? Pode ser necess&aacute;rio para corrigir problemas de acentua&ccedil;&atilde;o",
  47 + titulo:"Linha do tempo: LTEMPOCONVENCODE",id:"",value:dados.ltempoconvencode,tipo:"text",div:"<div id=cLtempoconvencode ></div>"},
  48 + ]
  49 + };
  50 + var paramNaoOWS = {
  51 + "linhas":[
  52 + {ajuda:"&Eacute; poss&iacute;vel a gera&ccedil;&atilde;o de classes automaticamente por meio da defini&ccedil;&atilde;o de colunas na tabela de atributos do tema que armazenam as informa&ccedil;&otilde;es sobre cor, tamanho, etc. Esse metadata &eacute; utilizado para definir qual a coluna da tabela que identifica unicamente cada classe. Para cada valor ser&aacute; criada uma classe.<br>O tema que utiliza a gera&ccedil;&atilde;o de classes de forma autom&aacute;tica, deve ter definido apenas uma classe. Essa classe ser&aacute; utilizada como padr&atilde;o para gera&ccedil;&atilde;o das demais.",
  53 + titulo:"Auto-legenda: id das classes (CLASSESITEM)",id:"classesitem",value:dados.classesitem,tipo:"text"},
  54 + {ajuda:"Nome da coluna que ser&aacute; utilizada para compor o nome das classes geradas automaticamente.",
  55 + titulo:"Auto-legenda: nome das classes (CLASSESNOME)",id:"classesnome",value:dados.classesnome,tipo:"text"},
  56 + {ajuda:"Nome da coluna que definir&aacute; a cor do s&iacute;mbolo utilizado em cada classe. As cores devem ser definidas em RGB.",
  57 + titulo:"Auto-legenda: cor da classe (CLASSESCOR)",id:"classescor",value:dados.classescor,tipo:"text"},
  58 + {ajuda:"Nome da coluna que definir&aacute; o s&iacute;mbolo utilizado em cada classe.",
  59 + titulo:"Auto-legenda: s&iacute;mbolo (CLASSESSIMBOLO)",id:"classessimbolo",value:dados.classessimbolo,tipo:"text"},
  60 + {ajuda:"Nome da coluna que definir&aacute; o tamanho de cada s&iacute;mbolo.",
  61 + titulo:"Auto-legenda: tamanho (CLASSESTAMANHO)",id:"classestamanho",value:dados.classestamanho,tipo:"text"}
  62 + ]
  63 + };
  64 + var param = {
  65 + "linhas":[
  66 + {ajuda:"Nome da coluna da tabela de atributos do tema que ser&aacute; utilizado na ferramenta busca r&aacute;pida. Entre apenas uma coluna",
  67 + titulo:"Item utilizado no busca r&aacute;pida (itembuscarapida)",id:"itembuscarapida",value:dados.itembuscarapida,tipo:"text"},
  68 + {ajuda:"Nomes das colunas da tabela de atributos do tema, que ser&atilde;o mostradas na ferramenta de identifica&ccedil;&atilde;o. Se for vazio, todas as colunas ser&atilde;o mostradas. A lista de itens deve ser separada por ',' e grafada em caixa alta no caso de shapefile.",
  69 + titulo:"Itens (ITENS)",id:"itens",value:dados.itens,tipo:"text"},
  70 + {ajuda:"Lista com os 'alias', ou apelidos, para os nomes das colunas listados no metadata 'itens'. Os alias devem ser separados por ',' e seguir a ordem definida em ITENS.",
  71 + titulo:"Nomes dos itens (ITENSDESC)",id:"itensdesc",value:dados.itensdesc,tipo:"text"},
  72 + {ajuda:"Lista de links que ser&atilde;o inclu&iacute;dos em cada resultado de busca da ferramenta de identifica&ccedil;&atilde;o. A lista de links deve ser separada por ',', podendo-se incluir '' para indicar que o item n&atilde;o tem link. Exemplo de uso para inclus&atilde;o de links para o site do IBGE quando um munic&iacute;pio &eacute; clicado no mapa:<br>ITENS 'codigo,nome2,uf'<br>ITENSDESC 'codigo do IBGE,nome do munic&iacute;pio,uf'<br>ITENSLLINK ',http://www.ibge.gov.br/munic2001/tabelas.php?codmun=[codigo]&descricao=[nome],'<br>Podem ser inclu&iacute;dos comandos javascript, para isso utilize sempre aspas simples para fechar o link e acrescente o código javascript, exemplo:<br>ITENSLINK \",'../ferramentas/identifica/testelink.php?sid='+i3GEO.configura.sid\"",
  73 + titulo:"Links dos itens (ITENSLINK)",id:"itenslink",value:dados.itenslink,tipo:"text"},
  74 + {ajuda:"Template utilizado no gerador de KML para definir o conte&uacute;do dos bal&otilde;es de informa&ccedil;&atilde;o. O template utiliza o caractere '%' para iniciar e fechar o nome de uma coluna. O template pode usar tamb&eacute;m elementos HTML, por exemplo: <code>'<b>Nome do municipio</b>: %NOMEMUN%'</code>. Se o template n&atilde;o for especificado, o i3Geo ir&aacute; utilizar o metadata ITENS e ITENSDESC. Se esses n&atilde;o forem especificados, ser&aacute; utilizado o nome original da coluna.",
  75 + titulo:"KML template (DESCRIPTION_TEMPLATE)",id:"description_template",value:dados.description_template,tipo:"text"},
  76 + {ajuda:"Lista de colunas que ser&atilde;o utilizadas na op&ccedil;&atilde;o de inclus&atilde;o de 'etiquetas'. As etiquetas s&atilde;o mostradas no mapa quando o usu&aacute;rio estaciona o mouse por alguns instantes sobre o mapa. Separe a lista com ','.",
  77 + titulo:"Etiqueta (TIP)",id:"tip",value:dados.tip,tipo:"text"}
  78 + ]
  79 + };
  80 +
  81 + var paramOWS = {
  82 + "linhas":[
  83 + {ajuda:"space-delimited list of EPSG projection codes supported by the remote server. You normally get this from the server’s capabilities output. This value should be upper case (EPSG:4236.....not epsg:4236) to avoid problems with case sensitive platforms. The value is used to set the SRS WMS URL parameter",
  84 + titulo:"wms_srs",id:"wms_srs",value:dados.wms_srs,tipo:"text"},
  85 + {ajuda:"comma-separated list of layers to be fetched from the remote WMS server. This value is used to set the LAYERS and QUERY_LAYERS WMS URL parameters.",
  86 + titulo:"wms_name",id:"wms_name",value:dados.wms_name,tipo:"text"},
  87 + {ajuda:"the version of the WMS protocol supported by the remote WMS server and that will be used for issuing GetMap requests",
  88 + titulo:"wms_server_version",id:"wms_server_version",value:dados.wms_server_version,tipo:"text"},
  89 + {ajuda:"the image format to use in GetMap requests",
  90 + titulo:"wms_format",id:"wms_format",value:dados.wms_format,tipo:"text"},
  91 + {ajuda:"",
  92 + titulo:"wms_auth_username",id:"wms_auth_username",value:dados.wms_auth_username,tipo:"text"},
  93 + {ajuda:"msEncrypt-style authorization string. Empty strings are also accepted",
  94 + titulo:"wms_auth_password",id:"wms_auth_password",value:dados.wms_auth_password,tipo:"text"},
  95 + {ajuda:"the authorization type to use for a proxy connection. Supported types include: basic, digest, ntlm, any (the underlying http library picks the best among the opotions supported by the remote server), anysafe (the underlying http library picks only safe methods among the options supported by the remote server)",
  96 + titulo:"wms_auth_type",id:"wms_auth_type",value:dados.wms_auth_type,tipo:"text"},
  97 + {ajuda:"the maximum time to wait for a remote WMS layer to load, set in seconds (default is 30 seconds). This metadata can be added at the layer level so that it affects only that layer, or it can be added at the map level (in the web object) so that it affects all of the layers. Note that wms_connectiontimeout at the layer level has priority over the map level.",
  98 + titulo:"wms_connectiontimeout",id:"wms_connectiontimeout",value:dados.wms_connectiontimeout,tipo:"text"},
  99 + {ajuda:"the bounding box of this layer in geographic coordinates in the format lon_min lat_min lon_max lat_max. If it is set then MapServer will request the layer only when the map view overlaps that bounding box. You normally get this from the servers capabilities output.",
  100 + titulo:"wms_latlonboundingbox",id:"wms_latlonboundingbox",value:dados.wms_latlonboundingbox,tipo:"text"},
  101 + {ajuda:"",
  102 + titulo:"wms_proxy_auth_type",id:"wms_proxy_auth_type",value:dados.wms_proxy_auth_type,tipo:"text"},
  103 + {ajuda:"",
  104 + titulo:"wms_proxy_host",id:"wms_proxy_host",value:dados.wms_proxy_host,tipo:"text"},
  105 + {ajuda:"",
  106 + titulo:"wms_proxy_port",id:"wms_proxy_port",value:dados.wms_proxy_port,tipo:"text"},
  107 + {ajuda:"the type of the proxy connection. Valid values are http and socks5, which are case sensitive",
  108 + titulo:"wms_proxy_type",id:"wms_proxy_type",value:dados.wms_proxy_type,tipo:"text"},
  109 + {ajuda:"",
  110 + titulo:"wms_proxy_username",id:"wms_proxy_username",value:dados.wms_proxy_username,tipo:"text"},
  111 + {ajuda:"",
  112 + titulo:"wms_proxy_password",id:"wms_proxy_password",value:dados.wms_proxy_password,tipo:"text"},
  113 + {ajuda:"Can be used to specify an inline SLD document",
  114 + titulo:"wms_sld_body",id:"wms_sld_body",value:dados.wms_sld_body,tipo:"text"},
  115 + {ajuda:"can be used to specify a link to an SLD document",
  116 + titulo:"wms_sld_url",id:"wms_sld_url",value:dados.wms_sld_url,tipo:"text"},
  117 + {ajuda:"name of style to use for the STYLES parameter in GetMap requests for this layer.",
  118 + titulo:"wms_style",id:"wms_style",value:dados.wms_style,tipo:"text"},
  119 + {ajuda:"specifies the color to be used as the background of the map. The general format of BGCOLOR is a hexadecimal encoding of an RGB value where two hexadecimal characters are used for each of Red, Green, and Blue color values. The values can range between 00 and FF for each (0 and 255, base 10). The format is 0xRRGGBB; either upper or lower case characters are allowed for RR, GG, and BB values. The '0x' prefix shall have a lower case 'x'",
  120 + titulo:"wms_bgcolor",id:"wms_bgcolor",value:dados.wms_bgcolor,tipo:"text"},
  121 + {ajuda:"specifies whether the map background is to be made transparent or not. TRANSPARENT can take on two values, 'TRUE' or 'FALSE'. If not specified, MapServer sets default to 'TRUE'",
  122 + titulo:"wms_transparent",id:"wms_transparent",value:dados.wms_transparent,tipo:"text"},
  123 + {ajuda:"value to use for the TIME parameter in GetMap requests for this layer",
  124 + titulo:"wms_time",id:"wms_time",value:dados.wms_time,tipo:"text"},
  125 + {ajuda:"Metadata espec&iacut;fico do i3Geo. Indica se o layer &eacute; do tipo TILECACHE",
  126 + titulo:"&Eacute; do tipo TileCache (0 ou 1 indicam n&atilde;o ou sim) - wms_tile",id:"wms_tile",value:dados.wms_tile,tipo:"text"}
  127 + ]
  128 + };
  129 + var ins = "<input type=button title='Salvar' value='Salvar' id=salvarEditor />";
  130 + if(dados.colunas != "")
  131 + {
  132 + ins += "<p>O layer possu&iacute; as seguintes colunas na tabela de atributos: ";
  133 + ins += dados.colunas+"</p>";
  134 + }
  135 + ins += core_geraLinhas(param);
  136 + if(dados.type !== 3 && dados.type !== 4)
  137 + {ins += core_geraLinhas(paramVetor);}
  138 + if(dados.connectiontype !== 7 && dados.connectiontype !== 9)
  139 + {ins += core_geraLinhas(paramNaoOWS);}
  140 + if(dados.type === 3)
  141 + {ins += core_geraLinhas(paramRaster);}
  142 + if(dados.connectiontype === 7 || dados.connectiontype === 9)
  143 + {ins += core_geraLinhas(paramOWS);}
  144 + ins += "<br><br><br>";
  145 + $i("editor_bd").innerHTML = ins;
  146 +
  147 + if($i("cEditorsql")){
  148 + temp = "<select id='editorsql' >";
  149 + temp += core_combosimnao(dados.editorsql);
  150 + temp += "</select>";
  151 + $i("cEditorsql").innerHTML = temp;
  152 + }
  153 + if($i("cLtempoconvencode")){
  154 + temp = "<select id='ltempoconvencode' >";
  155 + temp += core_combosimnao(dados.ltempoconvencode);
  156 + temp += "</select>";
  157 + $i("cLtempoconvencode").innerHTML = temp;
  158 + }
  159 + var temp = function()
  160 + {salvarDadosEditor('metadados',dados.codigoMap,dados.codigoLayer);};
  161 + new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }});
  162 +}
admin/js/editormapfile_titulo.js 0 → 100755
@@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
  1 +
  2 +/*
  3 +Function: editorTitulo
  4 +
  5 +Abre o editor de t&iacute;tulo e descri&ccedil;&atilde;o
  6 +
  7 +<PEGACONEXAO>
  8 +*/
  9 +function editorTitulo(codigoMap,codigoLayer)
  10 +{
  11 + core_montaEditor("","450px","650px","","T&iacute;tulo");
  12 + var sUrl = "../php/editormapfile.php?funcao=pegaTitulo&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer;
  13 + core_pegaDados("Obtendo dados...",sUrl,"montaEditorTitulo");
  14 +}
  15 +function montaEditorTitulo(dados)
  16 +{
  17 + var param = {
  18 + "linhas":[
  19 + {ajuda:"Elemento 'NAME'. N&atilde;o confunda com o nome que aparece no mapa ou na &aacute;rvore de temas. Normalmente o código recebe o mesmo nome do arquivo mapfile, sem a extens&atilde;o '.map'",
  20 + titulo:"C&oacute;digo do layer",id:"name",value:dados.name,tipo:"text"},
  21 + {ajuda:"Nome do grupo a qual a camada pertence. O nome do grupo pode ser refer&ecirc;ncia como um nome regular de uma camada, permitindo fazer coisas como ligar e desligar um grupo de camadas de uma vez.",
  22 + titulo:"Group",id:"group",value:dados.group,tipo:"text"},
  23 + {ajuda:"Nome que ser&aacute; utilizado na legenda do mapa e na guia 'Temas'",
  24 + titulo:"T&iacute;tulo (METADATA: TEMA)",id:"tema",value:dados.tema,tipo:"text"},
  25 + {ajuda:"Denominador da escala da fonte dos dados utilizado pelo tema. &Eacute; utilizado para apresentar a indica&ccedil;&atilde;o de compatibilidade entre a escala do tema e a escala do mapa que est&aacute; sendo visto.",
  26 + titulo:"Escala (ESCALA)",id:"escala",value:dados.escala,tipo:"text"},
  27 + {ajuda:"Extens&atilde;o geogr&aacute;fica m&aacute;xima do tema, no formato xmin ymin xmax ymax. &Eacute; utilizado na op&ccedil;&atilde;o de 'zoom para o tema'. Quando o tema &eacute; baseado em shapefile, esse metadata n&atilde;o &eacute; necess&aacute;rio, pois o mapserver consegue calcular a extens&atilde;o. J&aacute; em outros tipos de dados, como Postgis, o par&acirc;metro &eacute; necess&aacute;rio. Nesse caso, se n&atilde;o for indicado, o bot&atilde;o de zoom para o tema n&atilde;o ser&aacute; vis&iacute;vel para o usu&aacute;rio",
  28 + titulo:"Extensao (EXTENSAO)",id:"extensao",value:dados.extensao,tipo:"text"},
  29 + {ajuda:"&Iacute;cone que ser&aacute; mostrado na &aacute;rvore de camadas. A imagem deve existir na web e deve ser inclu&iacute;do o caminho completo ou relativo em rela&ccedil;&atilde;o ao local da interface HTML do mapa.",
  30 + titulo:"&Iacute;cone (METADATA: ICONETEMA)",id:"iconetema",value:dados.iconetema,tipo:"text"},
  31 + {ajuda:"Mensagem que ser&aacute; mostrada no rodap&eacute; do mapa quando o tema estiver vis&iacute;vel. &Eacute; &uacute;til para apresentar ao usu&aacute;rio observa&ccedil;&otilde;es especiais sobre o uso daquele tema.",
  32 + titulo:"Mensagem (MENSAGEM)",id:"mensagem",value:dados.mensagem,tipo:"text"}
  33 + ]
  34 + };
  35 + var ins = "<input type=button title='Salvar' value='Salvar' id=salvarEditor />";
  36 + ins += core_geraLinhas(param);
  37 + ins += "<br><br><br>";
  38 + $i("editor_bd").innerHTML = ins;
  39 +
  40 + var temp = function()
  41 + {salvarDadosEditor('titulo',dados.codigoMap,dados.codigoLayer,false);};
  42 + new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }});
  43 +}
admin/js/editormapfile_usuario.js 0 → 100755
@@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
  1 +function montaNoGruposUsrTema(dados){
  2 + var conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluirGrupoUsrTema('"+dados.id_tema+"','"+dados.id_grupo+"','"+dados.codigo_tema+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" />&nbsp;<span>"+dados.nome+"</span>";
  3 + var d = {html:conteudo,id:"usr_"+dados.id_tema+"_"+dados.id_grupo};
  4 + return d;
  5 +}
  6 +function excluirGrupoUsrTema(id_tema,id_grupo,codigo_mapa){
  7 + var handleYes = function()
  8 + {
  9 + this.hide();
  10 + core_carregando("ativa");
  11 + var mensagem = " excluindo ";
  12 + core_carregando(mensagem);
  13 + var sUrl = "../php/editormapfile.php?funcao=excluirGrupoUsrTema&id_tema="+id_tema+"&id_grupo="+id_grupo;
  14 + var callback =
  15 + {
  16 + success:function(o)
  17 + {
  18 + try
  19 + {
  20 + core_carregando("desativa");
  21 + var no = tree.getNodeByProperty("id",codigo_mapa);
  22 + tree.removeChildren(no) ;
  23 + no.expand();
  24 + }
  25 + catch(e){core_handleFailure(e,o.responseText);}
  26 + },
  27 + failure:core_handleFailure,
  28 + argument: { foo:"foo", bar:"bar" }
  29 + };
  30 + core_makeRequest(sUrl,callback);
  31 + };
  32 + var handleNo = function()
  33 + {this.hide();};
  34 + var mensagem = "Exclui restri&ccedil;&atilde;o?";
  35 + var largura = "300";
  36 + core_dialogoContinua(handleYes,handleNo,mensagem,largura);
  37 +}
  38 +function editorGrupousr(id_tema,codigo_mapa)
  39 +{
  40 + core_montaEditor("","350px","200px","","Grupo usuario");
  41 + $i("editor_bd").innerHTML = "<input type=hidden value='"+codigo_mapa+"' id='Ecodigo_mapa_usr'/><input type=hidden value='"+id_tema+"' id='Eid_tema_usr'/>";
  42 + var sUrl = "../php/gruposusuarios.php?funcao=pegaGrupos";
  43 + core_pegaDados("Obtendo dados...",sUrl,"montaEditorGrupousr");
  44 +}
  45 +function montaEditorGrupousr(dados){
  46 + var temp = "<input type=button title='Salvar' value='Salvar' id=salvarEditor />";
  47 + temp += "<p>Escolha o grupo de usu&aacute;rios:</p><select id='Eid_grupousr' >";
  48 + temp += core_comboObjeto(dados,"id_grupo","nome");
  49 + temp += "</select>";
  50 + $i("editor_bd").innerHTML += temp;
  51 + var tempf = function()
  52 + {salvarDadosEditor('grupousr');};
  53 + new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: tempf }});
  54 +}
classesjs/compactados/classe_plugini3geo_compacto.js 0 → 100755
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +if(typeof(i3GEO)==='undefined'){var i3GEO={}}i3GEO.pluginI3geo={OBJETOS:{},PLUGINS:[{"classe":"heatmap","nome":"Mapa de calor","editor":true}],inicia:function(camada){i3GEO.janela.AGUARDEMODAL=true;i3GEO.janela.abreAguarde("aguardePlugin","Calculando...");i3GEO.janela.AGUARDEMODAL=false;i3GEO.pluginI3geo[camada.plugini3geo.plugin][i3GEO.Interface.ATUAL].inicia(camada)},formAdmin:function(plugin,configString){return i3GEO.pluginI3geo[plugin].formAdmin(configString)},linkAjuda:function(plugin){return i3GEO.pluginI3geo[plugin].linkAjuda()},ligaCamada:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].ligaCamada){i3GEO.pluginI3geo.OBJETOS[nomecamada].ligaCamada();return true}return false},desligaCamada:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].desLigaCamada){i3GEO.pluginI3geo.OBJETOS[nomecamada].desLigaCamada();return true}return false},removeCamada:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].removeCamada){i3GEO.pluginI3geo.OBJETOS[nomecamada].removeCamada();delete(i3GEO.pluginI3geo.OBJETOS[nomecamada]);return true}return false},atualizaCamada:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada){i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada();return true}return false},existeObjeto:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada){return true}return false},aplicaPropriedades:function(camada){if(camada.plugini3geo&&camada.plugini3geo!=""){camada=i3GEO.pluginI3geo[camada.plugini3geo.plugin][i3GEO.Interface.ATUAL].aplicaPropriedades(camada)}return camada},heatmap:{linkAjuda:function(){return i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=121"},formAdmin:function(config){var parametros,ins="",configDefault='{"plugin":"heatmap","parametros":{"coluna":"1","radius":15,"max":10}}';if(config===""){config=configDefault}config=YAHOO.lang.JSON.parse(config);if(config.plugin!="heatmap"){config=YAHOO.lang.JSON.parse(configDefault)}parametros=config.parametros;ins+=""+"<p>Coluna que cont&eacute;m os dados ou valor num&eacute;rico para cada ponto:"+"<br><input name='coluna' type='text' value='"+parametros.coluna+"' size='30'></p>"+"<p>Raio de cada ponto em pixels:"+"<br><input name='radius' type='text' value='"+parametros.radius+"' size='30'></p>"+"<p>Valor m&aacute;ximo em cada ponto:"+"<br><input name='max' type='text' value='"+parametros.max+"' size='30'></p>";return ins},googlemaps:{aplicaPropriedades:function(camada){camada.sel="nao";camada.download="nao";camada.AGUARDALEGENDA=false;camada.temporizador="";camada.copia=false;camada.procurar=false;camada.toponimia=false;camada.etiquetas=false;camada.tabela=false;camada.grafico=false;camada.destacar=false;camada.wms=false;camada.classe="NAO";return camada},inicia:function(camada){var p=i3GEO.configura.locaplic+"/ferramentas/heatmap/googlemaps_js.php",carregaJs="nao",criaLayer;criaLayer=function(){var heatmap,pontos;heatmap=new HeatmapOverlay(i3GeoMap,camada.name,{"radius":camada.plugini3geo.parametros.radius,"visible":true,"opacity":camada.transparency,"gradient":{"0.45":"rgb(0,0,255)","0.55":"rgb(0,255,255)","0.65":"rgb(0,255,0)","0.95":"yellow","1.0":"rgb(255,0,0)"},"legend":{"title":camada.tema,"position":"bl","offset":[5,50]}});pontos={max:camada.plugini3geo.parametros.max,data:heatmap_dados};i3GEO.janela.fechaAguarde("aguardePlugin");heatmap.setDataSet(pontos);heatmap.ligaCamada=function(){this.liga()};heatmap.desLigaCamada=function(){this.desliga()};heatmap.removeCamada=function(){this.destroy()};heatmap.atualizaCamada=function(){this.draw()};i3GEO.pluginI3geo.OBJETOS[camada.name]=heatmap;heatmap_dados=null};if(typeof(HeatmapOverlay)==='undefined'){carregaJs="sim"}p+="?carregajs="+carregaJs+"&layer="+camada.name+"&coluna="+camada.plugini3geo.parametros.coluna+"&g_sid="+i3GEO.configura.sid+"&nomevariavel=heatmap_dados";i3GEO.util.scriptTag(p,criaLayer,"i3GEO.pluginI3geo.heatmap_script")}},openlayers:{aplicaPropriedades:function(camada){camada.sel="nao";camada.download="nao";camada.AGUARDALEGENDA=false;camada.temporizador="";camada.copia=false;camada.procurar=false;camada.toponimia=false;camada.etiquetas=false;camada.tabela=false;camada.grafico=false;camada.destacar=false;camada.wms=false;camada.classe="NAO";return camada},inicia:function(camada){var p=i3GEO.configura.locaplic+"/ferramentas/heatmap/openlayers_js.php",carregaJs="nao",criaLayer;criaLayer=function(){var heatmap,transformedTestData={max:camada.plugini3geo.parametros.max,data:[]},data=heatmap_dados,datalen=heatmap_dados.length,nudata=[];while(datalen--){nudata.push({lonlat:new OpenLayers.LonLat(data[datalen].lng,heatmap_dados[datalen].lat),count:heatmap_dados[datalen].count})}transformedTestData.data=nudata;heatmap=new OpenLayers.Layer.Heatmap(camada.name,i3geoOL,i3geoOL.baseLayer,{"visible":true,"opacity":camada.transparency,"radius":camada.plugini3geo.parametros.radius,"gradient":{"0.45":"rgb(0,0,255)","0.55":"rgb(0,255,255)","0.65":"rgb(0,255,0)","0.95":"yellow","1.0":"rgb(255,0,0)"},"legend":{"title":camada.tema,"position":"bl","offset":[5,50]}},{isBaseLayer:false,projection:new OpenLayers.Projection("EPSG:4326")});heatmap.ligaCamada=function(){this.toggle();this.updateLayer()};heatmap.desLigaCamada=function(){this.toggle();this.updateLayer()};heatmap.removeCamada=function(){this.destroy()};heatmap.atualizaCamada=function(){this.updateLayer()};i3GEO.pluginI3geo.OBJETOS[camada.name]=heatmap;i3geoOL.addLayer(heatmap);heatmap.setDataSet(transformedTestData);heatmap_dados=null;i3GEO.janela.fechaAguarde("aguardePlugin")};if(typeof(HeatmapOverlay)==='undefined'){carregaJs="sim"}p+="?carregajs="+carregaJs+"&layer="+camada.name+"&coluna="+camada.plugini3geo.parametros.coluna+"&g_sid="+i3GEO.configura.sid+"&nomevariavel=heatmap_dados";i3GEO.util.scriptTag(p,criaLayer,"i3GEO.pluginI3geo.heatmap_script")}},googleearth:{inicia:function(){alert("Plugin nao disponivel")}}}};
0 \ No newline at end of file 2 \ No newline at end of file
documentacao/.project 0 → 100755
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<projectDescription>
  3 + <name>Documentacao</name>
  4 + <comment></comment>
  5 + <projects>
  6 + </projects>
  7 + <buildSpec>
  8 + <buildCommand>
  9 + <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
  10 + <arguments>
  11 + </arguments>
  12 + </buildCommand>
  13 + </buildSpec>
  14 + <natures>
  15 + <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
  16 + </natures>
  17 +</projectDescription>
documentacao/.settings/.jsdtscope 0 → 100755
@@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<classpath>
  3 + <classpathentry kind="src" path="javascript"/>
  4 + <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
  5 + <classpathentry kind="output" path=""/>
  6 +</classpath>
documentacao/.settings/org.eclipse.wst.jsdt.ui.superType.container 0 → 100755
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +org.eclipse.wst.jsdt.launching.JRE_CONTAINER
0 \ No newline at end of file 2 \ No newline at end of file
documentacao/.settings/org.eclipse.wst.jsdt.ui.superType.name 0 → 100755
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +Global
0 \ No newline at end of file 2 \ No newline at end of file
documentacao/files/classesjs/classe_plugini3geo-js.html 0 → 100755
@@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
  1 +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>PluginI3Geo - i3Geo</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
  2 +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
  3 +
  4 +<!-- Generated by Natural Docs, version 1.51 -->
  5 +<!-- http://www.naturaldocs.org -->
  6 +
  7 +<!-- saved from url=(0026)http://www.naturaldocs.org -->
  8 +
  9 +
  10 +
  11 +
  12 +<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="PluginI3Geo"></a>PluginI3Geo</h1><div class=CBody><p>i3GEO.pluginI3geo</p><p>Implementa os plugins do i3Geo que adicionam camadas especiais ao mapa, normalmente dados vetoriais processados no navegador Web.</p><h4 class=CHeading>Arquivo</h4><p>i3geo/classesjs/classe_plugini3geo.js</p><h4 class=CHeading>Licen&ccedil;a</h4><p>GPL2</p><p>i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet</p><p>Direitos Autorais Reservados &copy; 2006 Minist&eacute;rio do Meio Ambiente Brasil Desenvolvedor: Edmar Moretti <a href="#" onClick="location.href='mai' + 'lto:' + 'edmar.'&nbsp; + 'moretti' + '@' + 'gmai' + 'l.com'; return false;" class=LEMail>edmar.<span style="display: none">.nosp@m.</span>moretti<span>@</span>gmai<span style="display: none">.nosp@m.</span>l.com</a></p><p>Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral GNU conforme publicada pela Free Software Foundation;</p><p>Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til, por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita de COMERCIABILIDADE OU ADEQUAC&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.&nbsp; Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.&nbsp; Voc&ecirc; deve ter recebido uma c&oacute;pia da Licen&ccedil;a P&uacute;blica Geral do GNU junto com este programa; se n&atilde;o, escreva para a Free Software Foundation, Inc., no endere&ccedil;o 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#PluginI3Geo" >PluginI3Geo</a></td><td class=SDescription>i3GEO.pluginI3geo</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#heatmap" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">heatmap</a></td><td class=SDescription>Mapa de calor</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
  13 +
  14 +<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
  15 +
  16 +<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="heatmap"></a>heatmap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">heatmap :</td></tr></table></blockquote><p>Mapa de calor</p><p>Gera um layer do tipo mapa de calor e adiciona ao mapa</p><p>As depend&ecirc;ncias em javascript sao carregadas via script tag por meio de ferramentas/heatmap/openlayers_js.php</p><p>Esse programa tamb&eacute;m obt&eacute;m os dados necess&aacute;rios ao plugin</p><p>O layer existente no mapfile deve conter um metadata chamado PLUGINI3GEO</p><p>Esse matadado deve conter uma string que ser&aacute; transformada em um objeto javascript para uso no plugin</p><h4 class=CHeading>Exemplo</h4><p>&rdquo;PLUGINI3GEO&rdquo; &lsquo;{&ldquo;plugin&rdquo;:&rdquo;heatmap&rdquo;,&rdquo;parametros&rdquo;:{&ldquo;coluna&rdquo;:&rdquo;teste&rdquo;,&rdquo;max&rdquo;:&rdquo;10&rdquo;,&rdquo;radius&rdquo;:&rdquo;15&rdquo;}}&rsquo;</p><p>Coluna &eacute; a que cont&eacute;m os dados num&eacute;ricos que definem a quantidade de uma medida em cada ponto e &eacute; usada para gerar a representa&ccedil;&atilde;o.&nbsp; Se for vazia, considera-se o valor como 1</p><p>As cores das classes existentes no LAYER ser&atilde;o utilizadas para calcular as cores do mapa de calor.&nbsp; Se n&atilde;o existirem classes, ser&aacute; usado o default.</p></div></div></div>
  17 +
  18 +</div><!--Content-->
  19 +
  20 +
  21 +
  22 +<!--START_ND_TOOLTIPS-->
  23 +<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">heatmap :</td></tr></table></blockquote>Mapa de calor</div></div><!--END_ND_TOOLTIPS-->
  24 +
  25 +<script language=JavaScript><!--
  26 +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
0 \ No newline at end of file 27 \ No newline at end of file
documentacao/search/ClasseM.html 0 → 100755
@@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  2 +
  3 +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
  4 +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
  5 +
  6 +
  7 +
  8 +
  9 +<!-- Generated by Natural Docs, version 1.51 -->
  10 +<!-- http://www.naturaldocs.org -->
  11 +
  12 +<!-- saved from url=(0026)http://www.naturaldocs.org -->
  13 +
  14 +
  15 +
  16 +
  17 +<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_medeArea><div class=IEntry><a href="../files/classesjs/classe_analise-js.html#medeArea" class=ISymbol>medeArea</a></div></div><div class=SRResult id=SR_medeDistancia><div class=IEntry><a href="../files/classesjs/classe_analise-js.html#medeDistancia" class=ISymbol>medeDistancia</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
  18 +document.getElementById("Loading").style.display="none";
  19 +document.getElementById("NoMatches").style.display="none";
  20 +var searchResults = new SearchResults("searchResults", "FramedHTML");
  21 +searchResults.Search();
  22 +--></script></div><!--Index-->
  23 +
  24 +
  25 +<script language=JavaScript><!--
  26 +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
0 \ No newline at end of file 27 \ No newline at end of file
documentacao/search/FunctionsH.html 0 → 100755
@@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  2 +
  3 +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
  4 +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
  5 +
  6 +
  7 +
  8 +
  9 +<!-- Generated by Natural Docs, version 1.51 -->
  10 +<!-- http://www.naturaldocs.org -->
  11 +
  12 +<!-- saved from url=(0026)http://www.naturaldocs.org -->
  13 +
  14 +
  15 +
  16 +
  17 +<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_heatmap><div class=IEntry><a href="javascript:searchResults.Toggle('SR_heatmap')" class=ISymbol>heatmap</a><div class=ISubIndex><a href="../files/classesjs/classe_plugini3geo-js.html#heatmap" class=IParent>Global</a><a href="../files/classesjs/classe_analise-js.html#i3GEO.analise.dialogo.heatmap" class=IParent>i3GEO.<wbr>analise.<wbr>dialogo</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
  18 +document.getElementById("Loading").style.display="none";
  19 +document.getElementById("NoMatches").style.display="none";
  20 +var searchResults = new SearchResults("searchResults", "FramedHTML");
  21 +searchResults.Search();
  22 +--></script></div><!--Index-->
  23 +
  24 +
  25 +<script language=JavaScript><!--
  26 +if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
0 \ No newline at end of file 27 \ No newline at end of file
interface/black_carto_ol.htm 0 → 100755
@@ -0,0 +1,253 @@ @@ -0,0 +1,253 @@
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2 +<html>
  3 +<head>
  4 +<meta http-equiv="Category" content="i3Geo Mapa interativo MMA geoprocessamento sig mobile">
  5 +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
  6 +<title>i3GEO - OpenLayers</title>
  7 +</head>
  8 +<body id="i3geo" style='margin-left: 7px; background: white;'>
  9 + <!-- inclui o nome do usuario logado -->
  10 + <div id="i3GEONomeLogin" style="position: absolute; left: 10px; top: 12px; font-size: 11px; z-index: 50000"></div>
  11 + <table id='mst' summary="" style='display: none;' width=100% cellspacing='0'>
  12 + <tr>
  13 + <td id="contemMenu" style="background: black; height: 30px; text-align: right; border-width: 0pt 0pt 1px; border-color: rgb(240, 240, 240)">
  14 + <!--menu suspenso-->
  15 + <div id="menus" style="height: 0px;"></div>
  16 + </td>
  17 + </tr>
  18 + <tr>
  19 + <td style="vertical-align: top; border-width: 0px;">
  20 + <table width="100%" style="vertical-align: top; border-width: 0px">
  21 + <tr>
  22 + <td class=verdeclaro id=contemImg>
  23 + <div id=corpoMapa style="position: relative; background-image: url('../imagens/i3geo1bw.jpg');"></div>
  24 + </td>
  25 + </tr>
  26 + </table>
  27 + </td>
  28 + </tr>
  29 + <tr>
  30 + <td>
  31 + <table style="width: 100%; height: 28px">
  32 + <tr>
  33 + <td class=fundoRodape style="width: 25%">
  34 + <!-- aqui ser&aacute; inclu&iacute;da a escala num&eacute;rica -->
  35 + <div id=escala style="margin: auto; text-align: right; left: 15px;"></div>
  36 + </td>
  37 + <td class=fundoRodape style="width: 5%"></td>
  38 + <td class=fundoRodape style="width: 40%">
  39 + <!-- aqui ser&aacute; inclu&iacute;do o gadget que mostra a coordenada geogr&aacute;fica da posi&ccedil;&atilde;o do mouse -->
  40 + <div id=localizarxy style="margin: auto; text-align: left; font-size: 10px; display: inline-table"></div>
  41 + </td>
  42 + <td class=fundoRodape style="width: 20%">
  43 + <!-- bot&atilde;o de compartilhamento em redes sociais-->
  44 + <div id=i3GEOcompartilhar style="width: 170px; margin: auto; text-align: left; padding-top: 1px"></div> <!-- aqui ser&aacute; inclu&iacute;do o contador de tempo quando o temporizador de redesenho do mapa estiver ativo -->
  45 + <div id=tempoRedesenho style="z-index: 100; position: absolute; top: 0px; color: green; background-color: black; width: 50px; display: none"></div>
  46 + </td>
  47 + <!-- aqui ser&atilde;o inclu&iacute;das as bandeiras que permitem a troca de idioma -->
  48 + <td class=fundoRodape style="width: 10%;">
  49 + <div id=seletorIdiomas style="right: 15px;"></div>
  50 + </td>
  51 + </tr>
  52 + </table>
  53 + </td>
  54 + </tr>
  55 + </table>
  56 + <table id="i3GEOlogoMarca" style='margin: 0px auto; box-shadow: 0 1px 13px gray; border-radius: 5px;'>
  57 + <tr>
  58 + <td style="height: 30px"><div id=versaoi3geo></div>
  59 + <h2 style="font-weight: normal; font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif;">i3Geo - Software livre para cria&ccedil;&atilde;o de mapas interativos e geoprocessamento</h2>
  60 + <h3 style="font-weight: normal; font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif;">Baseado no Mapserver, &eacute; licenciado sob GPL e integra o Portal do Software P&uacute;blico Brasileiro</h3></td>
  61 + </tr>
  62 + <tr>
  63 + <td style="padding: 10px;"><img style="width: 560px; height: 81px" alt="" src='../imagens/logo_inicio.png'></td>
  64 + </tr>
  65 + <tr>
  66 + <td>
  67 + <!--
  68 + <script id="ohloh" type="text/javascript" src="http://www.ohloh.net/p/150688/widgets/project_users.js?style=red"></script>
  69 + -->
  70 + </td>
  71 + </tr>
  72 + </table>
  73 +
  74 + <div id="i3GEOguiaMovel" style="position: absolute; display: block; border: 0px solid white; text-align: left; z-index: 2000; background-color: none">
  75 + <img id="i3GEOguiaMovelPuxador" onclick='i3GEO.guias.guiaMovel.abreFecha()' style='z-index: 2; border: solid 0px white; left: 0px; position: absolute; top: 0px' width='0px' src='../imagens/openbars.png'>
  76 + <div id="i3GEOguiaMovelMolde" style="box-shadow: -2px 0 2px gray; border-radius: 5px 0px 0px 5px; position: absolute; display: none; border: 0px solid white; text-align: left; z-index: 1000; background-color: gray">
  77 + <div id="i3GEOguiaMovelIcones" style='overflow: none; left: 0px; display: none; position: absolute; top: 0px; text-align: center; height: 0px; width: 0px; border: solid 0px white; background-color: white'></div>
  78 + <div id="i3GEOguiaMovelConteudo" style='overflow: auto; display: none; position: absolute; border-color: gray; border-width: 0px 0 0px 0px; left: 0px; height: 0px; background-color: white'>
  79 + <div id='guia1obj' style='display: none;'>
  80 + <!-- Esta div acrescenta a op&ccedil;&atilde;o de busca r&aacute;pida, caso vc queira coloc&aacute;-la em um lugar espec&iacute;fico -->
  81 + <div style='left: 5px; top: 10px;' id=buscaRapida></div>
  82 + <!-- Esta div acrescenta a lista de propriedades do mapa -->
  83 + <div id=listaPropriedades style='top: 15px;'></div>
  84 + <!-- Esta div acrescenta a lista de de camadas do tipo 'baselayers' espec&iacute;ficas da interface Openlayers. Veja tamb&eacute;m a op&ccedil;&atilde;o i3GEO.Interface.openlayers.GADGETS.LayerSwitcher -->
  85 + <div id=listaLayersBase style='top: 15px;'></div>
  86 + <!-- Esta div acrescenta a lista de de camadas dispon&iacute;veis no mapa atual -->
  87 + <div id=listaTemas style='top: 15px;'></div>
  88 + </div>
  89 + <div id='guia2obj' style='display: none;'>
  90 + Aguarde...<img alt="" src="../imagens/branco.gif" width=248 />
  91 + </div>
  92 + <div id='guia4obj' style='display: none; text-align: left'>
  93 + <div id='legenda' style='text-align: left'></div>
  94 + </div>
  95 + <div id='guia5obj' style='display: none; text-align: left'>
  96 + <div id='banners' style='overflow: auto; text-align: left'>Aguarde...</div>
  97 + </div>
  98 + </div>
  99 + </div>
  100 + </div>
  101 + <style>
  102 + .olControlEditingToolbar1 div {
  103 + background-image: url(../mashups/openlayers.png);
  104 + background-repeat: no-repeat;
  105 + float: right;
  106 + right: 0px;
  107 + height: 29px;
  108 + margin: 2px;
  109 + width: 29px;
  110 + cursor: pointer;
  111 + top: 10px;
  112 + }
  113 + </style>
  114 + <script src="../classesjs/i3geo.js"></script>
  115 + <script id="i3GEOF.metaestat_script" src="../ferramentas/metaestat/index.js"></script>
  116 + <script src="../pacotes/openlayers/OpenLayers2131.js.php"></script>
  117 + <link rel="stylesheet" type="text/css" href="../css/black.css">
  118 + <script>
  119 + i3GEO.configura.locaplic = i3GEO.util.protocolo() + "://"
  120 + + window.location.host + "/i3geo";
  121 + i3GEO.configura.autotamanho = false;
  122 + i3GEO.Interface.ATUAL = "openlayers";
  123 + i3GEO.Interface.IDCORPO = "contemImg";
  124 + i3GEO.Interface.openlayers.TILES = true;
  125 + i3GEO.configura.oMenuData.submenus["interface"] = [
  126 + { id:"omenudataInterface0a",text: '<span style=color:gray;text-decoration:underline; ><b>'+$trad("d27")+'</b></span>',url: "#"},
  127 + { id:"omenudataInterface2",text: "OpenLayers", url: "javascript:window.location = i3GEO.configura.locaplic+'/interface/black_ol.htm?'+i3GEO.configura.sid" },
  128 + { id:"omenudataInterface2a",text: "OpenLayers OSM", url: "javascript:window.location = i3GEO.configura.locaplic+'/interface/black_osm.htm?'+i3GEO.configura.sid" },
  129 + { id:"omenudataInterface4",text: "Google Maps", url: "javascript:window.location = i3GEO.configura.locaplic+'/interface/black_gm.phtml?'+i3GEO.configura.sid" },
  130 + { id:"omenudataInterface5",text: "Google Earth", url: "javascript:window.location = i3GEO.configura.locaplic+'/interface/googleearth.phtml?'+i3GEO.configura.sid" },
  131 + { id:"omenudataInterface0b",text: '<span style=color:gray;text-decoration:underline; ><b>'+$trad("u27")+'</b></span>',url: "#"},
  132 + { id:"omenudataInterface6",text: $trad("u21"), url: "javascript:var w = window.open(i3GEO.configura.locaplic+'/geradordelinks.htm')" },
  133 + { id:"omenudataInterface7",text: "Servi&ccedil;os WMS", url: "javascript:var w = window.open(i3GEO.configura.locaplic+'/ogc.htm')" },
  134 + { id:"omenudataInterface9",text: "Download de dados", url: "javascript:var w = window.open(i3GEO.configura.locaplic+'/datadownload.htm')" },
  135 + { id:"omenudataInterface11",text: $trad("p20"), url: "javascript:i3GEO.mapa.dialogo.telaRemota()" }
  136 + ];
  137 +
  138 + i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso.finaliza = 'if($i("omenudataInterface1")){i3GEOoMenuBar.getMenuItem("omenudataInterface1").cfg.setProperty("text", " ");}';
  139 + i3GEO.cria();
  140 + i3GEO.configura.mapaRefDisplay = "none";
  141 + i3GEO.barraDeBotoes.TIPO = "olhodepeixe";
  142 + //ajusta o deslocamento da barra de botoes
  143 + i3GEO.barraDeBotoes.OFFSET = 11;
  144 + //ajusta a posicao da barra de botoes no IE
  145 + if(navm){
  146 + i3GEO.barraDeBotoes.OFFSET = 5;
  147 + }
  148 + i3GEO.configura.oMenuData["submenus"]["janelas"] = [];
  149 + i3GEO.ajuda.ATIVAJANELA = false;
  150 + i3GEO.idioma.IDSELETOR = "seletorIdiomas";
  151 + i3GEO.Interface.ATIVAMENUCONTEXTO = false;
  152 + //i3GEO.arvoreDeTemas.TIPOBOTAO = "radio";
  153 + i3GEO.arvoreDeTemas.OPCOESADICIONAIS.comentarios = true;
  154 + i3GEO.arvoreDeCamadas.VERIFICAABRANGENCIATEMAS = true;
  155 + i3GEO.arvoreDeCamadas.MOSTRALISTAKML = false;
  156 + i3GEO.mapa.AUTORESIZE = true;
  157 + i3GEO.guias.TIPO = "movel";
  158 + i3GEO.guias.guiaMovel.config.topGuiaMovel = 36;
  159 + i3GEO.janela.ativaAlerta();
  160 + i3GEO.finaliza = function() {
  161 + if ($i("i3GEOlogoMarca")) {
  162 + $i("i3GEOlogoMarca").style.display = "none";
  163 + }
  164 + i3GEO.mapa.insereDobraPagina("googlemaps",
  165 + "../imagens/dobragooglemaps.png"
  166 + );
  167 + };
  168 + i3GEO.arvoreDeTemas.OPCOESADICIONAIS.navegacaoDir = true;
  169 + i3GEO.janela.TRANSICAOSUAVE = true;
  170 +
  171 + OpenLayers.ImgPath = "../pacotes/openlayers/img/";
  172 + (function() {
  173 + var oce = new OpenLayers.Layer.ArcGIS93Rest(
  174 + "ESRI Ocean Basemap",
  175 + "http://server.arcgisonline.com/ArcGIS/rest/services/Ocean_Basemap/MapServer/export",
  176 + {
  177 + format : "jpeg"
  178 + }, {
  179 + isBaseLayer : true,
  180 + visibility : false
  181 + });
  182 + var ims = new OpenLayers.Layer.ArcGIS93Rest(
  183 + "ESRI Imagery World 2D",
  184 + "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer/export",
  185 + {
  186 + format : "jpeg"
  187 + }, {
  188 + isBaseLayer : true,
  189 + visibility : false
  190 + });
  191 + var wsm = new OpenLayers.Layer.ArcGIS93Rest(
  192 + "ESRI World Street Map",
  193 + "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer/export",
  194 + {
  195 + format : "jpeg"
  196 + }, {
  197 + isBaseLayer : true,
  198 + visibility : false
  199 + });
  200 + var bra = new OpenLayers.Layer.WMS(
  201 + "Base carto MMA",
  202 + "http://mapas.mma.gov.br/cgi-bin/mapserv?map=/opt/www/html/webservices/baseraster.map",
  203 + {
  204 + layers : "baseraster",
  205 + srs : "EPSG:4618",
  206 + format : "image/png",
  207 + isBaseLayer : false
  208 + }, {
  209 + isBaseLayer : true,
  210 + visibility : false
  211 + });
  212 +
  213 + var tms = new OpenLayers.Layer.TMS("OSGEO",
  214 + "http://tilecache.osgeo.org/wms-c/Basic.py/", {
  215 + layername : "basic",
  216 + type : "png",
  217 + // set if different than the bottom left of map.maxExtent
  218 + tileOrigin : new OpenLayers.LonLat(-180, -90),
  219 + isBaseLayer : true,
  220 + visibility : false
  221 + });
  222 +
  223 + i3GEO.Interface.openlayers.LAYERSADICIONAIS = [ oce, ims, wsm, tms,
  224 + bra ];
  225 + })();
  226 + //redefine a funcao onclique do botao localizar da barra de ferramentas
  227 + i3GEO.barraDeBotoes.defBotao("localizar").funcaoonclick = function(){
  228 + i3GEO.mapa.dialogo.locregiao();
  229 + };
  230 + i3GEO.inicia();
  231 + //parametros especificos dos cartogramas
  232 + //ver i3geo/ferramentas/metaestat
  233 + i3GEOF.metaestat.INTERFACE = "flutuante";
  234 + i3GEOF.metaestat.CONEXAODEFAULT = 1;
  235 + i3GEOF.metaestat.TOP = 50;
  236 + i3GEOF.metaestat.LEFT = 100;
  237 + //i3GEOF.metaestat.LARGURA = 270;
  238 + //i3GEOF.metaestat.ALTURA = 300;
  239 + //
  240 + //define a funcao que sera executada ao clicar no mapa
  241 + //default (balao do tipo etiqueta)
  242 + i3GEO.eventos.MOUSECLIQUEPERM = [i3GEO.configura.funcaoTip];
  243 + //alternativo (janela de identificacao
  244 + //i3GEO.eventos.MOUSECLIQUEPERM = [i3GEO.configura.funcaoIdentifica];
  245 + //
  246 + i3GEOF.metaestat.inicia();
  247 + //
  248 + //substitui a janela de alerta normal do navegador por uma janela estilizada. Pode ser comentado sem problemas. No Safari apresentou problemas.
  249 + //
  250 + i3GEO.janela.ativaAlerta();
  251 + </script>
  252 +</body>
  253 +</html>