editormapfile_estilos.js
11.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
//
//Utilizado por editormapfile.js
//
/*
Function: editorEstilo
Abre o editor de dados gerais de um estilo
<PEGAESTILO>
*/
function editorEstilo(codigoMap,codigoLayer,indiceClasse,indiceEstilo)
{
var sUrl = "../php/editormapfile.php?funcao=pegaEstilo&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse+"&indiceEstilo="+indiceEstilo;
core_pegaDados("Obtendo dados...",sUrl,"montaEditorEstilo");
}
function conteudoNoEstilo(codigoMap,codigoLayer,indice,estilo){
var conteudo = " <img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','estilo','"+codigoMap+"','"+codigoLayer+"','"+indice+"','"+estilo+"')\" title=sobe src=\"../imagens/34.png\" />";
conteudo += " <img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','estilo','"+codigoMap+"','"+codigoLayer+"','"+indice+"','"+estilo+"')\" title=desce src=\"../imagens/33.png\" />";
conteudo += " <img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluirEstilo('"+codigoMap+"','"+codigoLayer+"','"+indice+"','"+estilo+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" /> ";
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\" /> <span>"+estilo+"</span>";
var d = {estilos:codigoMap+"_"+codigoLayer+"_"+indice,html:conteudo,id:codigoMap+"_"+codigoLayer+"_"+indice+"_"+estilo,codigoMap:codigoMap,codigoLayer:codigoLayer,indiceClasse:indice,indiceEstilo:estilo};
return d;
}
/*
Function: excluirEstilo
Exclui um estilo
<EXCLUIRESTILO>
*/
function excluirEstilo(codigoMap,codigoLayer,indiceClasse,indiceEstilo)
{
var handleYes = function()
{
this.hide();
core_carregando("ativa");
var mensagem = " excluindo "+indiceEstilo;
core_carregando(mensagem);
var sUrl = "../php/editormapfile.php?funcao=excluirEstilo&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse+"&indiceEstilo="+indiceEstilo;
var callback =
{
success:function(o)
{
try
{
var no = tree.getNodesByProperty("id",codigoMap+"_"+codigoLayer+"_"+indiceClasse+"_"+indiceEstilo);
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 o estilo?";
var largura = "300";
core_dialogoContinua(handleYes,handleNo,mensagem,largura);
}
function montaEditorEstilo(dados)
{
var temp = function(){
salvarDadosEditor('estilo',dados.codigoMap,dados.codigoLayer,dados.indiceClasse,dados.indiceEstilo);
};
core_montaEditor(temp,"450px","650px","","Estilo",true,true,false);
var limg = i3GEO.configura.locaplic+"/imagens/ic_zoom.png";
param = {
"linhas":[
{ajuda:"O símbolo a ser usado para representar as feições. Integer é o índice do símbolo no symbolset, começando em 1 (o quinto símbolo é o símbolo 5). String é o nome do símbolo (como definido usando o parâmetro SYMBOL NAME). Filename especifica o caminho para um arquivo contendo um símbolo. Por exemplo, um arquivo PNG. Especifique o caminho relativo ao diretório contendo o mapfile. URL especifica o endereço de um arquivo contendo um símbolo pixmap. Por exemplo, um arquivo PNG. Uma URL deve começar com “http”. Exemplo: SYMBOL “http://myserver.org/path/to/file.png . [ATRIBUTO] permite representação individual de feições usando um atributo no conjunto de dados que especifica o nome do símbolo (como definido usando o parâmetro SYMBOL NAME). São necessários os colchetes []. Se SYMBOL não for especificado, o comportamento depende do tipo de feição: Para pontos, nada será representado; Para linhas, SYMBOL só é relevante se você quer estilizar as linhas utilizando símbolos, então a ausência de SYMBOL significa que você terá as linhas como especificadas utilizando os parâmetros de representação de linhas (COLOR, WIDTH, PATTERN, LINECAP, etc.); Para polígonos, o interior dos polígonos será representado utilizando um preenchimento sólido da cor especificada no parâmetro COLOR.",
titulo:"Symbolname (pode ser utilizado uma imagem, exemplo: /var/www/i3geo/imagensteste.png) :",id:"",value:dados.symbolname,tipo:"text",div:"<div id=cSymbolname ></div>"},
{ajuda:"Cor a ser utilizada para desenhar feições.",
titulo:"Color",id:"color",value:dados.color,tipo:"cor"},
{ajuda:"Cor de fundo a ser utilizada para desenhar feições.",
titulo:"Backgroundcolor",id:"backgroundcolor",value:dados.backgroundcolor,tipo:"cor"},
{ajuda:"Tamanho, em SIZEUNITS, do SYMBOL/PATTERN a ser usado. O valor padrão depende do tipo do símbolo: para pixmap, o tamanho (em pixeis) do pixmap; para ellipse e vector, o valor máximo de y do parâmetro SYMBOL POINTS; para hatch, 1,0; para truetype, 1,0. Quando a escala de símbolos é utilizada (SYMBOLSCALEDENOM é utilizado no ní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ímbolos do tipo hatch, o tamanho é a distância de centro a centro entre as linhas. [ATRIBUTO] especifica um atributo a ser usado para usar como valor de tamanho. Os colchetes [] são necessários.",
titulo:"Size",id:"size",value:dados.size,tipo:"text"},
{ajuda:"Cor usada para contornar polígonos e alguns símbolos de marcadores (marker). Não possui efeito para linhas. A largura do contorno pode ser especificada usando WIDTH. Se não for especificado nenhum WIDTH, será traçado um contorno de 1 pixel de largura. Se há algum símbolo definido em STYLE, será criado um contorno para este símbolo (somente ellipse, truetype e polygon vector ganharão um contorno). Se não houver símbolo definido em STYLE, o polígono ganhará um contorno. [ATRIBUTO] especifica um atributo a ser usado para usar como valor de cor. Os colchetes [] são necessários.",
titulo:"Outlinecolor",id:"outlinecolor",value:dados.outlinecolor,tipo:"cor"},
{ajuda:"WIDTH se refere à espessura da linha desenhada, em pixeis. Padrão é 1. Quando a escala de símbolos é utilizada (SYMBOLSCALEDENOM é utilizado no nível da LAYER) o WIDTH define a espessura da linha - de acordo com o SIZEUNITS da camada – em relação à escala 1:SYMBOLSCALEDENOM. Se utilizado com SYMBOL e OUTLINECOLOR, WIDTH define a espessura do contorno dos símbolos. Isto se aplica para os símbolos do tipo ellipse, truetype e polygon vector. Para linhas, WIDTH especifica a espessura da linha. Para polígonos, se utilizado com OUTLINECOLOR, WIDTH especifica a espessura da linha do polígono. Para um sí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ão necessários.",
titulo:"Width",id:"width",value:dados.width,tipo:"text"},
{ajuda:"Tamanho mínimo em pixeis para desenhar um símbolo. Padrão é 0. Só é útil quando usada escala de símbolos. Para símbolos do tipo hatch, o tamanho é a distância entre linhas hachuradas.",
titulo:"Minsize",id:"minsize",value:dados.minsize,tipo:"text"},
{ajuda:"Tamanho máximo em pixeis para desenhar um símbolo. Padrão é 500.",
titulo:"Maxsize",id:"maxsize",value:dados.maxsize,tipo:"text"},
{ajuda:"Valor de deslocamento no eixo x para símbolos com sombras, vazios etc.",
titulo:"Offsetx",id:"offsetx",value:dados.offsetx,tipo:"text"},
{ajuda:"Valor de deslocamento no eixo y para símbolos com sombras, vazios etc.",
titulo:"Offsety",id:"offsety",value:dados.offsety,tipo:"text"},
{ajuda:"Ativa ou desativa o antialias para fontes truetype.",
titulo:"Antialias",id:"antialias",value:dados.antialias,tipo:"text"},
{ajuda:"Tamanho mínimo em pixeis para desenhar uma linha. Padrão é 0.",
titulo:"Minwidth",id:"minwidth",value:dados.minwidth,tipo:"text"},
{ajuda:"Tamanho máximo em pixeis para desenhar uma linha. Padrão é 32.",
titulo:"Maxwidth",id:"maxwidth",value:dados.maxwidth,tipo:"text"},
{ajuda:"Ângulo, em graus, para rotacionar um símbolo (sentido anti-horário). Padrão é 0 (sem rotação). Para pontos, especifica a rotação de um símbolo em relaçã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ímbolo relativo à direção da linha. Um ângulo de 0 significa que o eixo x do símbolo é orientado juntamente com a direção da linha. Se o valor do GAP for positivo, ele especifica o rotacionamento do símbolo em relação ao seu próprio centro.",
titulo:"Angle",id:"angle",value:dados.angle,tipo:"text"}
]
};
var ins = "";
ins += core_geraLinhas(param);
ins += "<br><br><br>";
$i("editor_bd").innerHTML = ins;
temp = "<input type='text' value='"+dados.symbolname+"' id='symbolname' size='50'>";
temp += "<img onclick='selNavegador(\"symbolname\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>";
temp += "<div id='listaSimbolos' style='overflow:auto;width:350px;height:50px;'></div>";
$i("cSymbolname").innerHTML = temp;
escolheSimbolo = function(nome){
$i("symbolname").value = nome;
};
//lista os simbolos
var sUrl = "../php/editormapfile.php?funcao=editasimbolo&tipo="+dados.type+"&opcao=listaSimbolos&onclick=escolheSimbolo(this.title)";
var callback =
{
success:function(o)
{
try
{
var re = new RegExp("ms_tmp", "g");
var t = o.responseText.replace(re,"../../../ms_tmp/");
var re = new RegExp("\\\\", "g");
t = t.replace(re,"");
$i("listaSimbolos").innerHTML = t;
}
catch(e){}
},
failure:core_handleFailure,
argument: { foo:"foo", bar:"bar" }
};
core_makeRequest(sUrl,callback,'POST');
}
/*
Function: adicionaNovoEstilo
Adiciona um novo estilo
<CRIARNOVOESTILO>
*/
function adicionaNovoEstilo(codigoMap,codigoLayer,indiceClasse)
{
core_carregando("ativa");
core_carregando(" adicionando um novo estilo");
sUrl = "../php/editormapfile.php?funcao=criarNovoEstilo&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse;
var callback =
{
success:function(o)
{
try
{
if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
{
core_carregando("<span style=color:red >Erro</span>");
setTimeout("core_carregando('desativa')",3000);
}
else
{
var no = tree.getNodeByProperty("etiquetaEstilo",codigoMap+"_"+codigoLayer+"_"+indiceClasse);
var dados = YAHOO.lang.JSON.parse(o.responseText);
var d = conteudoNoEstilo(codigoMap,codigoLayer,indiceClasse,dados[0].estilo);
var tempNode = new YAHOO.widget.HTMLNode(d,no, false,true);
tempNode.isLeaf = true;
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);
}