// //Utilizado por editormapfile.js // /* Function: editorClasseGeral Abre o editor de dados gerais de uma classe */ function editorClasseGeral(codigoMap,codigoLayer,indiceClasse) { var sUrl = "../php/editormapfile.php?funcao=pegaClasseGeral&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse; core_pegaDados("Obtendo dados...",sUrl,"montaEditorClasseGeral"); } function loadClasseData(node, fnLoadComplete) { var sUrl = "../php/editormapfile.php?funcao=listaEstilos&codigoMap="+node.data.codigoMap+"&codigoLayer="+node.data.codigoLayer+"&indiceClasse="+node.data.indiceClasse; var callback = { success: function(oResponse) { var dados = YAHOO.lang.JSON.parse(oResponse.responseText); montaParametrosClasses(node,dados,false); oResponse.argument.fnLoadComplete(); }, failure: function(oResponse) { oResponse.argument.fnLoadComplete(); }, argument: { "node": node, "fnLoadComplete": fnLoadComplete }, timeout: 25000 }; YAHOO.util.Connect.asyncRequest('GET', sUrl, callback); } function conteudoNoClasse(codigoMap,codigoLayer,indice,nome){ var conteudo = " "; conteudo += " "; conteudo += "  "+indice+" "+i3GEO.util.base64decode(nome)+""; var d = {type:'html',classes:codigoMap+"_"+codigoLayer,html:conteudo,id:codigoMap+"_"+codigoLayer+"_"+indice,codigoMap:codigoMap,codigoLayer:codigoLayer,indiceClasse:indice}; return d; } function montaParametrosClasses(no,dados,redesenha) { var codigoMap = no.data.codigoMap; var codigoLayer = no.data.codigoLayer; var indiceClasse = no.data.indiceClasse; var conteudo = ""; var tempNode = ""; var tempNodeR = ""; if(!tree.getNodeByProperty("etiquetaClasseGeral",no.data.id)) { conteudo = " Editar características gerais"; var d = {tipo:"etiquetaClasseGeral",etiquetaClasseGeral:codigoMap+"_"+codigoLayer+"_"+indiceClasse,html:conteudo}; tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); tempNode.isLeaf = true; tempNode.enableHighlight = false; } if(!tree.getNodeByProperty("etiquetaClasseLabel",no.data.id)) { conteudo = " Editar toponímia"; var d = {tipo:"etiquetaClasseLabel",etiquetaClasseLabel:codigoMap+"_"+codigoLayer+"_"+indiceClasse,html:conteudo}; tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); tempNode.isLeaf = true; tempNode.enableHighlight = false; } if(!tree.getNodeByProperty("etiquetaEstilo",no.data.id)) { var d = {tipo:"etiquetaEstilo",etiquetaEstilo:codigoMap+"_"+codigoLayer+"_"+indiceClasse,html:"Estilos"}; tempNodeR = new YAHOO.widget.HTMLNode(d, no, false,true); tempNodeR.isLeaf = false; tempNodeR.enableHighlight = false; conteudo = " Adicionar um novo"; var d = {tipo:"etiquetaEstilo",etiquetaEstilo:codigoMap+"_"+codigoLayer+"_"+indiceClasse,html:conteudo}; tempNode = new YAHOO.widget.HTMLNode(d, tempNodeR, false,true); tempNode.isLeaf = true; tempNode.enableHighlight = false; } for (var i=0, j=dados.length; i */ function adicionaNovaClasse(codigoMap,codigoLayer,indiceClasse) { core_carregando("ativa"); core_carregando(" adicionando uma nova classe"); sUrl = "../php/editormapfile.php?funcao=criarNovaClasse&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer; var callback = { success:function(o) { try { if(YAHOO.lang.JSON.parse(o.responseText) == "erro") { core_carregando("Erro"); setTimeout("core_carregando('desativa')",3000); } else { var no = tree.getNodeByProperty("etiquetaClasses",codigoMap+"_"+codigoLayer); var dados = YAHOO.lang.JSON.parse(o.responseText); var d = conteudoNoClasse(codigoMap,codigoLayer,dados[0].indice,""); var tempNode = new YAHOO.widget.HTMLNode(d,no, false,true); tempNode.setDynamicLoad(loadClasseData, iconMode); tempNode.isLeaf = false; tempNode.enableHighlight = false; tree.draw(); core_carregando("desativa"); } } catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); } /* Function: classesAuto Adiciona classes automaticamente */ function classesAuto(codigoMap,codigoLayer) { function on_editorCheckBoxChange(p_oEvent) { var itemExpressao = document.getElementById("itemExpressao").value; var itemNome = document.getElementById("itemNome").value; if(itemNome == "") {itemNome = itemExpressao;} if(p_oEvent.newValue.get("value") == "OK" && itemExpressao != "") { core_carregando("ativa"); core_carregando(" gerando as classes"); var sUrl = "../php/editormapfile.php?funcao=autoClassesLayer&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&itemExpressao="+itemExpressao+"&itemNome="+itemNome; var callback2 = { success:function(o) { try { var n,tempNode,d,i,nos = tree.getNodeByProperty("etiquetaClasses",codigoMap+"_"+codigoLayer); if(nos){ n = nos.children.length; for (i=3; i */ function excluirClasse(codigoMap,codigoLayer,indiceClasse) { var handleYes = function() { this.hide(); core_carregando("ativa"); var mensagem = " excluindo "+indiceClasse; core_carregando(mensagem); var sUrl = "../php/editormapfile.php?funcao=excluirClasse&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse; var callback = { success:function(o) { try { var no = tree.getNodesByProperty("id",codigoMap+"_"+codigoLayer+"_"+indiceClasse); tree.removeNode(no[0]); tree.draw(); core_carregando("desativa"); } catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); }; var handleNo = function() {this.hide();}; var mensagem = "Exclui a classe?"; var largura = "300"; core_dialogoContinua(handleYes,handleNo,mensagem,largura); } function montaEditorClasseGeral(dados) { var temp = function(){ salvarDadosEditor('classeGeral',dados.codigoMap,dados.codigoLayer,dados.indiceClasse); }; core_montaEditor(temp,"450px","500px","","Classe",true,true,false); dados.expression = i3GEO.util.base64decode(dados.expression); dados.name = i3GEO.util.base64decode(dados.name); dados.title = i3GEO.util.base64decode(dados.title); var param = { "linhas":[ {ajuda:"Nome da classe para ser mostrada na legenda", titulo:"Name",id:"name",value:dados.name,tipo:"text"}, {ajuda:"Descrição da classe (mostrada na legenda quando o mouse é sobreposto", titulo:"Title",id:"title",value:dados.title,tipo:"text"}, {ajuda:"Define o estado atual de exibição da classe. Default ativa a camada permanentemente.", titulo:"Status",id:"",value:dados.status,tipo:"text",div:"
"}, {ajuda:"Quatro tipos de expressões são suportadas para definir as classes. Comparação de strings, expressões regulares, expressões lógicas simples e funções de string. Se nenhuma expressão é fornecida, então todas as feições pertencem à classe em questão. Comparação de strings são sensíveis a caracteres e são as mais rápidas e se processar. Não são necessários delimitadores especiais, mas é preciso citar entre aspas strings que contenham caracteres especiais. Como boas práticas, é recomendado citar todas as strings. Expressões regulares são delimitadas utilizando barras (/regex/). Não devem ser usadas aspas. O atributo a ser usado como comparação é definido no parâmetro CLASSITEM do nível do LAYER. Expressões lógicas te permitem construir testes bastante complexos em um ou mais atributos e portanto só são permitas com shapefiles. Expressões lógicas são delimitadas com parênteses “(expressão)”. Nomes de atributos são delimitados por colchetes “[ATRIBUTO]”. Estes nomes são sensíveis a caracteres e devem concordar com os itens no shapefile. Por exemplo: EXPRESSION ([POPULATION] > 50000 AND [LANGUAGE] eq FRENCH ). Os seguintes operadores lógicos são suportados: =, >, <, <=, >=, =, or, and, lt, gt, ge, le, eq, ne, in, ~, ~*. Este nível de complexidade é mais lento a se processar. Existe uma função de string: lenght(). Ela computa o comprimento de uma string. Exemplo: EXPRESSION (length( [NAME_E] ) < 8). Comparação de strings e expressões regulares trabalham a partir do CLASSITEM definido no nível da LAYER. Você pode combinar diferentes tipos de expressões juntamente com diferentes classes de uma camada. ", titulo:"Expression",id:"expression",value:dados.expression,tipo:"text"}, {ajuda:"Nome completo do arquivo de imagem da legenda para a CLASS. Esta imagem é usada ao construir uma legenda (ou quando requisitando um ícone de legenda via MapScript ou uma aplicação CGI).", titulo:"Keyimage",id:"keyimage",value:dados.keyimage,tipo:"text"}, {ajuda:"Escala máxima na qual a CLASS é desenhada. A escala é dada como o denominador da fração da escala. Por exemplo, para uma mapa na escala 1:24,000 use 24000.", titulo:"Maxscale",id:"maxscale",value:dados.maxscale,tipo:"text"}, {ajuda:"Escala mínima na qual a CLASS é desenhada. A escala é dada como o denominador da fração da escala. Por exemplo, para uma mapa na escala 1:24,000 use 24000.", titulo:"Minscale",id:"minscale",value:dados.minscale,tipo:"text"} ] }; var ins = ""; if(dados.colunas != "") { ins += "

O layer possuí as seguintes colunas na tabela de atributos: "; ins += dados.colunas+"

"; } ins += core_geraLinhas(param); ins += "


"; $i("editor_bd").innerHTML = ins; temp = ""; $i("cStatus").innerHTML = temp; }