Commit 894795592ae2bda11a1d932f4d30da0d9f1d62dc
1 parent
626a851d
Exists in
master
and in
7 other branches
--no commit message
Showing
22 changed files
with
1952 additions
and
0 deletions
Show diff stats
@@ -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 = " <img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','classe','"+codigoMap+"','"+codigoLayer+"','"+indice+"')\" title=sobe src=\"../imagens/34.png\" />"; | ||
43 | + conteudo += " <img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','classe','"+codigoMap+"','"+codigoLayer+"','"+indice+"')\" title=desce src=\"../imagens/33.png\" />"; | ||
44 | + conteudo += " <img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluirClasse('"+codigoMap+"','"+codigoLayer+"','"+indice+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" /> <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ísticas da classe' src=\"../imagens/06.png\" /> Editar caracterí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í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á utilizado para compor a expressão de seleçã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á 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ção da classe (mostrada na legenda quando o mouse é sobreposto", | ||
299 | + titulo:"Title",id:"title",value:dados.title,tipo:"text"}, | ||
300 | + {ajuda:"Define o estado atual de exibiçã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õ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. ", | ||
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 é usada ao construir uma legenda (ou quando requisitando um ícone de legenda via MapScript ou uma aplicação CGI).", | ||
305 | + titulo:"Keyimage",id:"keyimage",value:dados.keyimage,tipo:"text"}, | ||
306 | + {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.", | ||
307 | + titulo:"Maxscale",id:"maxscale",value:dados.maxscale,tipo:"text"}, | ||
308 | + {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.", | ||
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í 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 | + |
@@ -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çõ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ó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á ser mostrado na ferramenta de identificação", | ||
25 | + titulo:"Identifica (IDENTIFICA)",id:"",value:dados.identifica,tipo:"text",div:"<div id=cIdentifica ></div>"}, | ||
26 | + {ajuda:"Define o nível de opacidade (ou a inabilidade de ver através da camada) de todos os pixeis classificados para uma dada camada. O valor pode ser um número inteiro entre 0 e 100 ou o símbolo nomeado ALPHA . Um valor de 100 é opaco e 0 é completamente transparente. O símbolo ALPHA direciona o MapServer para honrar a transparência dos símbolos utilizados como pixmap no estilo de uma camada. Isso só é necessário no caso de formatos de saída RGB, e deve ser usado somente quando necessário pois é dispendioso renderizar sí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ão geográ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ário pode incluir comentá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ção automática da camada. A camada será 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ão mostradas ou não na legenda. Por padrão é SIM. ", | ||
35 | + titulo:"Classe (CLASSE)",id:"",value:dados.classe,tipo:"text",div:"<div id=cClasse ></div>"}, | ||
36 | + {ajuda:"URL de uma imagem que será utilizada em substituição à geração normal da legenda ", | ||
37 | + titulo:"URL da legenda (opcional) (LEGENDAIMG)",id:"legendaimg",value:dados.legendaimg,tipo:"text"}, | ||
38 | + {ajuda:"Indica se o tema é mostrado no mapa mas nã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ção nas operações de zoom e pan na interface Openlayers", | ||
41 | + titulo:"Efeitos de transição zoom (TRANSITIONEFFECT)",id:"",value:dados.transitioneffect,tipo:"text",div:"<div id=cTransitioneffect ></div>"}, | ||
42 | + {ajuda:"Define o padrã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áxima na qual o LAYER é desenhado. A escala é dada como o denominador da fraçã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ínima na qual o LAYER é desenhado. A escala é dada como o denominador da fraçã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áxima na qual a LABEL é desenhada. A escala é dada como o denominador da fraçã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ínima na qual a LABEL é desenhada. A escala é dada como o denominador da fraçã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í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ão for definido, então o objeto sempre aparecerá no mesmo tamanho. Essa operação só ocorre dentro dos limites de MINSIZE e MAXSIZE como descrito acima. A escala é dada como o denominador da fraçã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ão é 3. Para todos os outros tipos de camada, o padrão é 0. Para restringir pesquisas por polígonos para que o ponto ocorra dentro do polígono defina a tolerâ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âmetro SIZE do objeto CLASS (padrão é pixeis). Ú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 | + |
@@ -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ã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ã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ções da camada estão relacionadas ao sistema de metadados estatísticos. Se estiver, alguns parâmetros são obtidos de forma automática, como a conexão e o SQL de acesso aos dados.", | ||
27 | + titulo:"Esse mapfile está integrado ao sistema de metadados estatísticos?",id:"",value:dados.metaestat,tipo:"text",div:"<div id=cMetaestat ></div>"}, | ||
28 | + {ajuda:"ID da medida da variável que relaciona a camada ao sistema de metadados estatísticos. Só deve ser definido se o mapfile for integrado a esse sistema.", | ||
29 | + titulo:"ID da variável no sistema de metadados estatísticos ",id:"",value:"",tipo:"text",div:"<div id=cMetaestat_id_medida_variavel ></div>"}, | ||
30 | + {ajuda:"Tipo de conexão. Padrão é local.", | ||
31 | + titulo:"Connectiontype",id:"",value:"",div:"<div id=cConnectiontype ></div>",tipo:"text"}, | ||
32 | + {ajuda:"Aplica a conversão de caracteres nas ferramentas que obtém os dados descritivos referentes aos elementos do LAYER. Em alguns casos, a conversão pode provocar problemas de acentuação. Se isso ocorrer, na ferramenta tabela por exemplo, experimente marcar essa opção como 'nao'", | ||
33 | + titulo:"Conversão de caracteres (METADATA: CONVCARACTER)",id:"",value:dados.convcaracter,tipo:"text",div:"<div id=cConvcaracter ></div>"}, | ||
34 | + {ajuda:"Você pode digitar apenas o 'alias' para esconder a string de conexã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çã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ão é necessária a extensão do arquivo para shapefiles. Exemplo: c://ms4w/Apache/htdocs/geodados/brasil/limitespol/localidades.shp. Pode ser especificado relativo à opção SHAPEPATH do objeto MAP. Se for uma camada SDE, deve ser incluído o nome da camada bem como da coluna de geometria, por exemplo, mylayer,shape,myversion. Se é uma camada PostGIS, o parâmetro deve seguir a forma <columnname> from <tablename>, na qual columnname é o nome da coluna que contém a geometria e tablename é o nome da tabela cuja geometria será 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é expressões mais complexas. Note que, no entanto, há impactos importantes de performance quando utilizadas subconsultas espaciais. Tente utilizar o objeto FILTER sempre que possível. Você também pode ver o SQL submetido ao forçar um erro, submetendo um parâmetro DATA que você sabe que não funcionará, 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ão precisa ser do mesmo tipo do shapefile. Por exemplo, um shapefile de polígonos pode ser desenhado como pontos, mas um shape de pontos não pode ser desenhado como um polígono. Para diferenciar entre POLYGON e POLYLINE, simplesmente use ou omita o parâmetro COLOR na classificação. Se você utilizá-lo, é um polígono com uma cor de preenchimento, senão, é uma polilinha cuja cor é definida em OUTLINECOLOR. Um círculo (circle) deve ser definido por um retângulo de limites mínimos. Isto é, dois pontos que definem o menor quadrado que pode contê-lo.", | ||
39 | + titulo:"Type",id:"",value:dados.type,tipo:"text",div:"<div id=cType ></div>"}, | ||
40 | + {ajuda:"Ativa ou não a manutenção de um cache para armazenar as imagens geradas para montar o mapa. Essa opção afeta apenas as interfaces do i3Geo que utilizam o modo TILE (como a interface OpenLayers). O cache é mantido no diretório temporário utilizado pelo i3Geo, na pasta chamada cache. Para cada camada é criada uma sub-pasta. Para limpar o cache, utilize a opção existente junto ao nó principal desse mapfile", | ||
41 | + titulo:"Cache de mapas. Camadas WMS sã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õe o mapa, a imagem é extendida e depois cortada para o tamanho correto. Isso evita que símbolos apareçam de forma parcial no mapa. Indicado para temas com representação pontual e que també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ção", | ||
45 | + titulo:"Projection",id:"projection",value:dados.projection,tipo:"text"}, | ||
46 | + {ajuda:"Este parâmetro permite filtrar atributos específicos ao mesmo tempo em que é feita uma filtragem espacial, mas antes de que qualquer expressão em CLASS seja contabilizada. Para OGR e shapefiles, a string é simplesmente uma expressão regular do MapServer. Por exemplo: FILTER type= road and size <2. Para bancos de dados espaciais é uma cláusula SQL WHERE que é vá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ões FILTER. Somente para OGR e shapefile.", | ||
49 | + titulo:"Filteritem",id:"filteritem",value:dados.filteritem,tipo:"text"}, | ||
50 | + {ajuda:"Item que contém a localização individual de um tile. Padrão é location .", | ||
51 | + titulo:"tileitem",id:"tileitem",value:dados.tileitem,tipo:"text"}, | ||
52 | + {ajuda:"Nome do arquivo ou camada de tileindex. Um tileindex é semelhante a uma biblioteca de índices do ArcInfo. O tileindex contém feições de polígono para cada tile (ladrilho). O item que contém a localização do dado ladrilhado é obtido utilizando o parâmetro TILEITEM. Quando um arquivo é 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ção deve conter o caminho do arquivo de tile relativo ao caminho do shape, e não relativo ao próprio tileindex. Se o parâmetro DATA contém algum valor então ele é adicionado ao fim da localização. Quando uma camada de tileindex é utilizada, ela funciona de forma similar a referir-se diretamente a um arquivo, sendo que qualquer fonte de feição suportada pode ser usada (como PostgreSQL, Oracle etc.).", | ||
53 | + titulo:"tileindex",id:"tileindex",value:dados.tileindex,tipo:"text"}, | ||
54 | + {ajuda:"Tipo de representação das feições mostradas da camada. É importante definir esse parâmetro para que as funções de geração de SLD funcionem corretamente.", | ||
55 | + titulo:"Tipo de representaçã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 += " <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ão definidos em ms_configura como nomes de conexões e podem ser utilizados aqui no lugar da string completa: "; | ||
73 | + temp += "<b>"+dados.postgis_mapa+"</b>. Para definir um novo, é necessá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 += " <input type=button value='Parâ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 | +} |
@@ -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ário pode fazer download do tema. Se sim, o ícone de download será mostrado na árvore de camadas disponíveis no mapa.", | ||
19 | + titulo:"Permite download (METADATA: DOWNLOAD)",id:"",value:dados.download,tipo:"text",div:"<div id=cDownload ></div>"}, | ||
20 | + {ajuda:"Endereço de um arquivo pré-existente para download dos dados (caminho completo no servidor). Se definido, o sistema irá usar esse arquivo ao invés de gerar os dados, quando o usuário clicar nas opções de download. Se não for definido, o arquivo de download é 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ço de um arquivo KMZ ou KML pré-existente para download dos dados (caminho completo no servidor). Se definido, o sistema irá usar esse arquivo ao invés de gerar os dados, quando o usuário clicar nas opções de visualização de KML ou KMZ. Se não for definido, o arquivo é 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 | +} |
@@ -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çã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á 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á a tabela que poderá 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á 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 única cada registro da tabela", | ||
26 | + titulo:"Coluna com IDs ú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á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 | +} |
@@ -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 | +} |
@@ -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 = " <img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','estilo','"+codigoMap+"','"+codigoLayer+"','"+indice+"','"+estilo+"')\" title=sobe src=\"../imagens/34.png\" />"; | ||
21 | + conteudo += " <img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','estilo','"+codigoMap+"','"+codigoLayer+"','"+indice+"','"+estilo+"')\" title=desce src=\"../imagens/33.png\" />"; | ||
22 | + 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\" /> "; | ||
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\" /> <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í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.", | ||
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ções.", | ||
75 | + titulo:"Color",id:"color",value:dados.color,tipo:"cor"}, | ||
76 | + {ajuda:"Cor de fundo a ser utilizada para desenhar feiçõ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ã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.", | ||
79 | + titulo:"Size",id:"size",value:dados.size,tipo:"text"}, | ||
80 | + {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.", | ||
81 | + titulo:"Outlinecolor",id:"outlinecolor",value:dados.outlinecolor,tipo:"cor"}, | ||
82 | + {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.", | ||
83 | + titulo:"Width",id:"width",value:dados.width,tipo:"text"}, | ||
84 | + {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.", | ||
85 | + titulo:"Minsize",id:"minsize",value:dados.minsize,tipo:"text"}, | ||
86 | + {ajuda:"Tamanho máximo em pixeis para desenhar um símbolo. Padrão é 500.", | ||
87 | + titulo:"Maxsize",id:"maxsize",value:dados.maxsize,tipo:"text"}, | ||
88 | + {ajuda:"Valor de deslocamento no eixo x para sí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í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ínimo em pixeis para desenhar uma linha. Padrão é 0.", | ||
95 | + titulo:"Minwidth",id:"minwidth",value:dados.minwidth,tipo:"text"}, | ||
96 | + {ajuda:"Tamanho máximo em pixeis para desenhar uma linha. Padrão é 32.", | ||
97 | + titulo:"Maxwidth",id:"maxwidth",value:dados.maxwidth,tipo:"text"}, | ||
98 | + {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.", | ||
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 | +} |
@@ -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 |
@@ -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á desenhado. [ATRIBUTO] especifica o nome do item na tabela de atributos para usar como valores de cor. Os colchetes [] são necessários. Por exemplo, se o DBF do seu shapefile tem um campo chamado “MYCOLOR” o objeto LABEL deve conter: LABEL → COLOR [MYCOLOR].", | ||
20 | + titulo:"Color",id:"color",value:dados.color,tipo:"cor"}, | ||
21 | + {ajuda:"Tamanho do texto. Use um nú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í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ão necessários. Por exemplo, se o DBF do seu shapefile tem um campo chamado “MYSIZE” o objeto LABEL deve conter: LABEL → SIZE [MYSIZE].", | ||
22 | + titulo:"Size",id:"size",value:dados.size,tipo:"text"}, | ||
23 | + {ajuda:"Posição da label relativa ao ponto de etiquetagem (somente para camadas). A primeira letra é a posição Y, a segunda letra é a posição X. Auto diz ao MapServer para calcular a posição que não vai interferir com as outras labels. Com pontos e polígonos, o MapServer seleciona uma das 8 posições exteriores (ou seja, exclui a opção cc). Com linhas, só é utilazando lc ou uc, até que ele use uma posição que não colida com labels que já tenham sido desenhadas. Se todas as posições causarem conflitos, então a label não é desenhada (a não ser que o parâmetro FORCE esteja habilitado). O posicionamento AUTO só é permitido com labels em cache.", | ||
24 | + titulo:"Position",id:"position",value:dados.position,tipo:"text"}, | ||
25 | + {ajuda:"Espaço livre, em pixeis, ao redor das labels. Útil para manter um espaço ao redor do texto para melhorar a leitura. Só é permitido com labels em cache. Padrão é 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ção para fontes que não suportam grifos, sendo o máximo de fontes de reserva definido em MS_MAX_LABEL_FONTS (geralmente 5). Se especificada diretamente, não se esqueç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ão mais rápidas de se desenhar do que fontes TrueType. No entanto, fontes TrueType são passíveis de serem usadas com escala e disponíveis em uma variedade de tipos. Não se esqueça de acionar o parâmetro FONT se você 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ão é true.", | ||
32 | + titulo:"Partials",id:"",value:dados.partials,tipo:"text",div:"<div id=cPartials ></div>"}, | ||
33 | + {ajuda:"Força as labels para uma classe em particular ativada, independente de colisões. Disponível somente para labels em cache. Padrão é false. Se FORCE está ligado e PARTIALS desligado, FORCE toma preferência e labels parciais são desenhadas.", | ||
34 | + titulo:"Force",id:"",value:dados.force,tipo:"text",div:"<div id=cForce ></div>"}, | ||
35 | + {ajuda:"Cor a ser desenhado o retângulo de fundo. Desligado por padrão.", | ||
36 | + titulo:"Backgroundcolor",id:"backgroundcolor",value:dados.backgroundcolor,tipo:"cor"}, | ||
37 | + {ajuda:"Cor a ser desenhada a sombra do retângulo de fundo. Desligado por padrã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ão necessários. Por exemplo, se o DBF do seu shapefile tem um campo chamado “MYOUTCOLOR” o objeto LABEL deve conter: LABEL → OUTLINECOLOR [MYOUTCOLOR].", | ||
40 | + titulo:"Outlinecolor",id:"outlinecolor",value:dados.outlinecolor,tipo:"cor"}, | ||
41 | + {ajuda:"Cor da sombra. Uma label com o mesmo texto será desenhada nesta cor antes da label principal, resultando num efeito de sombra nos caracteres da label. O deslocamento da sombra desenhada é 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ângulo de fundo da sombra no eixo x. Padrão é 1.", | ||
48 | + titulo:"Backgroundshadowsizex",id:"backgroundshadowsizex",value:dados.backgroundshadowsizex,tipo:"text"}, | ||
49 | + {ajuda:"Valor do deslocamento do retângulo de fundo da sombra no eixo y. Padrão é 1.", | ||
50 | + titulo:"Backgroundshadowsizey",id:"backgroundshadowsizey",value:dados.backgroundshadowsizey,tipo:"text"}, | ||
51 | + {ajuda:"Tamanho mínimo da fonte (pixeis) para usar quando desenhando textos conforme a escala. Padrão é 4.", | ||
52 | + titulo:"Minsize",id:"minsize",value:dados.minsize,tipo:"text"}, | ||
53 | + {ajuda:"Tamanho máximo da fonte (pixeis) para usar quando desenhando textos conforme a escala. Padrão é 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ção será 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ção será compensada.", | ||
58 | + titulo:"Offsety",id:"offsety",value:dados.offsety,tipo:"text"}, | ||
59 | + {ajuda:"Ângulo, em graus, para desenhar as labels. AUTO permite ao MapServer computar o ângulo. Válido somente para camadas do tipo linha. AUTO2 é igual ao AUTO, exceto que nenhuma lógica é aplicada para tentar manter o texto numa orientação de leitura (ou seja, o texto pode ser desenhado de cabeça para baixo). Útil quando se adiciona textos de seta para indicar a direção da linha. FOLLOW diz ao MapServer para computar uma label curva para feições lineares apropriadas.[ATRIBUTO] especifica o nome do item na tabela de atributos para se usar como valores de âgulo. Os colchetes [] são necessários. Por exemplo, se o DBF do seu shapefile tem um campo chamado “MYANGLE” o objeto LABEL deve conter: LABEL → ANGLE [MYANGLE].", | ||
60 | + titulo:"Angle (utilize MS_FOLLOW para textos curvos)",id:"angle",value:dados.angle,tipo:"text"}, | ||
61 | + {ajuda:"Cálculo automático do â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íveis, diminui a performance e resulta em imagens de saída bem maiores. Só é útil para desenhos em gif. Padrão é falso. Não tem efeito para outros processamentos (nos quais o antialias não pode ser desligado).", | ||
64 | + titulo:"Antialias",id:"antialias",value:dados.antialias,tipo:"text"}, | ||
65 | + {ajuda:"Caractere que define a condição de fim de linha num texto de label, resultando numa label de múltiplas linhas. Interage com MAXLENGHT para definição condicional de quebra de linha após um dado número de caracteres.", | ||
66 | + titulo:"Wrap",id:"wrap",value:dados.wrap,tipo:"text"}, | ||
67 | + {ajuda:"Tamanho mínimo que uma feição deve ter para ser etiquetada. Dado em pixeis. Para dados do tipo linha o comprimento geral da linha exibida é usada. Para polígonos, a menor dimensão da caixa circundante é usada. AUTO diz ao MapServer só etiquetar feições que são maiores do que sua respectiva label. Disponível somente para labels em cache.", | ||
68 | + titulo:"Minfeaturesize",id:"minfeaturesize",value:dados.minfeaturesize,tipo:"text"}, | ||
69 | + {ajuda:"Distância mínima entre labels duplicadas. Dada em pixeis.", | ||
70 | + titulo:"Mindistance",id:"mindistance",value:dados.mindistance,tipo:"text"}, | ||
71 | + {ajuda:"Formato de codificação suportado para ser usado para as labels. Se o formato não for suprotado, a label não será desenhada. Requer a biblioteca iconv (presente na maior parte dos sistemas). A biblioteca é sempre detectada se estiver presente no sistema, mas, se não for, a label não será desenhada. Necessário para exibição de caracteres internacionais. Mais informaçõ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í 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 | +} |
@@ -0,0 +1,239 @@ | @@ -0,0 +1,239 @@ | ||
1 | +function montaNoLayer(codigo,indice){ | ||
2 | + var conteudo = " <img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','layer','"+codigo+"','"+indice+"')\" title=sobe src=\"../imagens/34.png\" />"; | ||
3 | + conteudo += " <img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','layer','"+codigo+"','"+indice+"')\" title=desce src=\"../imagens/33.png\" />"; | ||
4 | + conteudo += " <img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluirLayer('"+codigo+"','"+indice+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" /> <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ções de edição bá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ã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ítulo, escala, extensã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ável (define se o tema é editá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â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> 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> 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çõ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 | +} |
@@ -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 é válida apenas para temas RASTER. Entre com o endereç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í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á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í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ém o título de cada evento", | ||
35 | + titulo:"Linha do tempo: LTEMPOITEMTITULO",id:"ltempoitemtitulo",value:dados.ltempoitemtitulo,tipo:"text"}, | ||
36 | + {ajuda:"Item com a descrição do evento (opcional)", | ||
37 | + titulo:"Linha do tempo: LTEMPOITEMDESCRICAO",id:"ltempoitemdescricao",value:dados.ltempoitemdescricao,tipo:"text"}, | ||
38 | + {ajuda:"Item para etiquetas do título (opcional)", | ||
39 | + titulo:"Linha do tempo: LTEMPOITEMTIP",id:"ltempoitemtip",value:dados.ltempoitemtip,tipo:"text"}, | ||
40 | + {ajuda:"Item com o endereço de uma imagem que será incluída no menu popup, aberto quando o usuá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ágina que será incluído no menu popup", | ||
43 | + titulo:"Linha do tempo: LTEMPOITEMLINK",id:"ltempoitemlink",value:dados.ltempoitemlink,tipo:"text"}, | ||
44 | + {ajuda:"Endereço da imagem do ícone que irá representar o evento (opcional)", | ||
45 | + titulo:"Linha do tempo: LTEMPOITEMICONE",id:"ltempoitemicone",value:dados.ltempoitemicone,tipo:"text"}, | ||
46 | + {ajuda:"Aplica conversão do código de caracteres? Pode ser necessário para corrigir problemas de acentuaçã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:"É possível a geração de classes automaticamente por meio da definição de colunas na tabela de atributos do tema que armazenam as informações sobre cor, tamanho, etc. Esse metadata é utilizado para definir qual a coluna da tabela que identifica unicamente cada classe. Para cada valor será criada uma classe.<br>O tema que utiliza a geração de classes de forma automática, deve ter definido apenas uma classe. Essa classe será utilizada como padrão para geraçã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á 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á a cor do sí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á o símbolo utilizado em cada classe.", | ||
59 | + titulo:"Auto-legenda: símbolo (CLASSESSIMBOLO)",id:"classessimbolo",value:dados.classessimbolo,tipo:"text"}, | ||
60 | + {ajuda:"Nome da coluna que definirá o tamanho de cada sí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á utilizado na ferramenta busca rápida. Entre apenas uma coluna", | ||
67 | + titulo:"Item utilizado no busca rápida (itembuscarapida)",id:"itembuscarapida",value:dados.itembuscarapida,tipo:"text"}, | ||
68 | + {ajuda:"Nomes das colunas da tabela de atributos do tema, que serão mostradas na ferramenta de identificação. Se for vazio, todas as colunas serã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ão incluídos em cada resultado de busca da ferramenta de identificação. A lista de links deve ser separada por ',', podendo-se incluir '' para indicar que o item não tem link. Exemplo de uso para inclusão de links para o site do IBGE quando um município é clicado no mapa:<br>ITENS 'codigo,nome2,uf'<br>ITENSDESC 'codigo do IBGE,nome do município,uf'<br>ITENSLLINK ',http://www.ibge.gov.br/munic2001/tabelas.php?codmun=[codigo]&descricao=[nome],'<br>Podem ser incluí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údo dos balões de informação. O template utiliza o caractere '%' para iniciar e fechar o nome de uma coluna. O template pode usar também elementos HTML, por exemplo: <code>'<b>Nome do municipio</b>: %NOMEMUN%'</code>. Se o template não for especificado, o i3Geo irá utilizar o metadata ITENS e ITENSDESC. Se esses não forem especificados, será 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ão utilizadas na opção de inclusão de 'etiquetas'. As etiquetas são mostradas no mapa quando o usuá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 servers 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 é do tipo TILECACHE", | ||
126 | + titulo:"É do tipo TileCache (0 ou 1 indicam nã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í 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 | +} |
@@ -0,0 +1,43 @@ | @@ -0,0 +1,43 @@ | ||
1 | + | ||
2 | +/* | ||
3 | +Function: editorTitulo | ||
4 | + | ||
5 | +Abre o editor de título e descrição | ||
6 | + | ||
7 | +<PEGACONEXAO> | ||
8 | +*/ | ||
9 | +function editorTitulo(codigoMap,codigoLayer) | ||
10 | +{ | ||
11 | + core_montaEditor("","450px","650px","","Tí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ão confunda com o nome que aparece no mapa ou na árvore de temas. Normalmente o código recebe o mesmo nome do arquivo mapfile, sem a extensão '.map'", | ||
20 | + titulo:"Có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ê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á utilizado na legenda do mapa e na guia 'Temas'", | ||
24 | + titulo:"Título (METADATA: TEMA)",id:"tema",value:dados.tema,tipo:"text"}, | ||
25 | + {ajuda:"Denominador da escala da fonte dos dados utilizado pelo tema. É utilizado para apresentar a indicação de compatibilidade entre a escala do tema e a escala do mapa que está sendo visto.", | ||
26 | + titulo:"Escala (ESCALA)",id:"escala",value:dados.escala,tipo:"text"}, | ||
27 | + {ajuda:"Extensão geográfica máxima do tema, no formato xmin ymin xmax ymax. É utilizado na opção de 'zoom para o tema'. Quando o tema é baseado em shapefile, esse metadata não é necessário, pois o mapserver consegue calcular a extensão. Já em outros tipos de dados, como Postgis, o parâmetro é necessário. Nesse caso, se não for indicado, o botão de zoom para o tema não será visível para o usuário", | ||
28 | + titulo:"Extensao (EXTENSAO)",id:"extensao",value:dados.extensao,tipo:"text"}, | ||
29 | + {ajuda:"Ícone que será mostrado na árvore de camadas. A imagem deve existir na web e deve ser incluído o caminho completo ou relativo em relação ao local da interface HTML do mapa.", | ||
30 | + titulo:"Ícone (METADATA: ICONETEMA)",id:"iconetema",value:dados.iconetema,tipo:"text"}, | ||
31 | + {ajuda:"Mensagem que será mostrada no rodapé do mapa quando o tema estiver visível. É útil para apresentar ao usuário observaçõ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 | +} |
@@ -0,0 +1,54 @@ | @@ -0,0 +1,54 @@ | ||
1 | +function montaNoGruposUsrTema(dados){ | ||
2 | + var conteudo = " <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\" /> <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çã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á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 | +} |
@@ -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ém os dados ou valor numé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á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 |
@@ -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/org.eclipse.wst.jsdt.ui.superType.container
0 → 100755
documentacao/.settings/org.eclipse.wst.jsdt.ui.superType.name
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ça</h4><p>GPL2</p><p>i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet</p><p>Direitos Autorais Reservados © 2006 Ministério do Meio Ambiente Brasil Desenvolvedor: Edmar Moretti <a href="#" onClick="location.href='mai' + 'lto:' + 'edmar.' + '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 é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation;</p><p>Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUACÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral do GNU para mais detalhes. Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto com este programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.</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ências em javascript sao carregadas via script tag por meio de ferramentas/heatmap/openlayers_js.php</p><p>Esse programa também obtém os dados necessá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á transformada em um objeto javascript para uso no plugin</p><h4 class=CHeading>Exemplo</h4><p>”PLUGINI3GEO” ‘{“plugin”:”heatmap”,”parametros”:{“coluna”:”teste”,”max”:”10”,”radius”:”15”}}’</p><p>Coluna é a que contém os dados numéricos que definem a quantidade de uma medida em cada ponto e é usada para gerar a representação. Se for vazia, considera-se o valor como 1</p><p>As cores das classes existentes no LAYER serão utilizadas para calcular as cores do mapa de calor. Se não existirem classes, será 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 |
@@ -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 |
@@ -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 |
@@ -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á incluída a escala numé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á incluído o gadget que mostra a coordenada geográfica da posiçã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ão de compartilhamento em redes sociais--> | ||
44 | + <div id=i3GEOcompartilhar style="width: 170px; margin: auto; text-align: left; padding-top: 1px"></div> <!-- aqui será incluí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ão incluí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çã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, é licenciado sob GPL e integra o Portal do Software Pú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ção de busca rápida, caso vc queira colocá-la em um lugar especí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íficas da interface Openlayers. Veja também a opção i3GEO.Interface.openlayers.GADGETS.LayerSwitcher --> | ||
85 | + <div id=listaLayersBase style='top: 15px;'></div> | ||
86 | + <!-- Esta div acrescenta a lista de de camadas disponí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ç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> |