editormapfile_conexao.js
13.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
//
//Utilizado por editormapfile.js
//
/*
Function: editorDados
Abre o editor de conexão com a fonte dos dados de um layer
<PEGACONEXAO>
*/
function editorDados(codigoMap,codigoLayer)
{
var sUrl = "../php/editormapfile.php?funcao=pegaConexao&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer;
core_pegaDados("Obtendo dados...",sUrl,"montaEditorDados");
}
function montaEditorDados(dados)
{
//nao use modal aqui!!!!
core_montaEditor(
function(){
salvarDadosEditor('conexao',dados.codigoMap,dados.codigoLayer,false);
},
"500px","650px","","Conexão",false,true,false
);
var temp,ins = "",idsForms = ["connection","data","tileitem","tileindex","type","tipooriginal","metaestat_id_medida_variavel"],
idsMetaestat = ["connection","data","tileitem","tileindex","tipooriginal"],
limg = i3GEO.configura.locaplic+"/imagens/ic_zoom.png",
param = {
"linhas":[
{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.",
titulo:"Type - tipo das geometrias",id:"",value:dados.type,tipo:"text",div:"<div id=cType ></div>"},
{ajuda:"Tipo de conexão. com os dados",
titulo:"Connectiontype - tipo de conexão com a fonte de dados",id:"",value:"",div:"<div id=cConnectiontype ></div>",tipo:"text"},
{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'",
titulo:"Connection - parâmetros de conexão com a fonte de dados",id:"",value:"",tipo:"text",div:"<div id=cConnection ></div>"},
{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.",
titulo:"Data - SQL ou caminho do arquivo com os dados",id:"",value:"",tipo:"textarea",div:"<div id=cData ></div>"},
{ajuda:"Ativa ou não a manutenção de um cache para armazenar as imagens geradas para montar o mapa. 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. Camadas WMS são acessadas diretamente do servidor de origem quando o cache estiver inativo.",
titulo:"Cache de mapas (CACHE)",id:"",value:dados.cache,tipo:"text",div:"<div id=cCache ></div>"},
{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.",
titulo:"Extende e corta imagem em pixels (cortepixels)",id:"cortepixels",value:dados.cortepixels,tipo:"text"},
{ajuda:"A camada será desenhada em tiles (ladrilhos) de 256x256 pixels. O default é vazio, nesse caso a camada obedecerá a lógica default de decisão para definir se o modo tile será ou não aplicado (dependerá do tipo de layer). Quando for 'nao', o modo tile não será aplicado. Quando 'sim' o modo tile é sempre aplicado. ",
titulo:"Utiliza o modo TILE (TILES)",id:"",value:dados.tiles,tipo:"text",div:"<div id=cTiles ></div>"},
{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.",
titulo:"Esse mapfile está integrado ao sistema de metadados estatísticos?",id:"",value:dados.metaestat,tipo:"text",div:"<div id=cMetaestat ></div>"},
{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.",
titulo:"ID da variável no sistema de metadados estatísticos ",id:"",value:"",tipo:"text",div:"<div id=cMetaestat_id_medida_variavel ></div>"},
{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'",
titulo:"Conversão de caracteres (METADATA: CONVCARACTER)",id:"",value:dados.convcaracter,tipo:"text",div:"<div id=cConvcaracter ></div>"},
{ajuda:"Projeção",
titulo:"Projection",id:"projection",value:dados.projection,tipo:"text"},
{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. ",
titulo:"Filter",id:"filter",value:dados.filter,tipo:"text"},
{ajuda:"Item a ser usado com simples expressões FILTER. Somente para OGR e shapefile.",
titulo:"Filteritem",id:"filteritem",value:dados.filteritem,tipo:"text"},
{ajuda:"Item que contém a localização individual de um tile. Padrão é location .",
titulo:"tileitem",id:"tileitem",value:dados.tileitem,tipo:"text"},
{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.).",
titulo:"tileindex",id:"tileindex",value:dados.tileindex,tipo:"text"},
{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.",
titulo:"Tipo de representação (tipooriginal) - para temas do tipo WMS",id:"",value:dados.tipooriginal,tipo:"text",div:"<div id=cTipoOriginal ></div>"}
]
};
if(dados.colunas != "" && dados.colunas != undefined){
ins += "<p>O layer possui as seguintes colunas na tabela de atributos: ";
temp = dados.colunas.split(",");
ins += temp.join(" ")+"</p><br>";
}
ins += core_geraLinhas(param);
ins += "<br>";
$i("editor_bd").innerHTML = ins;
if($i("cConnection")){
temp = "";
if(dados.postgis_mapa.length > 0){
temp += "<p class=paragrafo >Prefira sempre usar um 'alias'. Os seguintes 'alias' podem ser utilizados aqui no lugar da string de conexão completa: ";
temp += "<br><b>"+dados.postgis_mapa+"</b>.<br><br>Para definir um novo, é necessário editar o arquivo i3geo/ms_configura.php, consulte o administrador do servidor";
temp += "</p>";
}
temp += '<input type="text" value="'+dados.connection+'" id="connection" style="width:90%;">';
temp += "<img onclick='selConexaoBanco(\"connection\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>";
$i("cConnection").innerHTML = temp;
}
if($i("cData")){
temp = '<textarea value="'+dados.data+'" id="data" style="height: 100px;width:90%;">'+dados.data+'</textarea>';
temp += "<img onclick='selNavegador(\"data\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>";
$i("cData").innerHTML = temp;
}
if($i("cMetaestat_id_medida_variavel")){
temp = '<input type="text" value="'+dados.metaestat_id_medida_variavel+'" id="metaestat_id_medida_variavel" style="width:90%;">';
temp += "<img onclick='selIdMedidaVariavel(\"metaestat_id_medida_variavel\",\"metaestat_id_medida_variavel\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>";
$i("cMetaestat_id_medida_variavel").innerHTML = temp;
}
if($i("cMetaestat")){
temp = "<select id='metaestat' >";
temp += core_combosimnao(dados.metaestat);
temp += "</select>";
//temp += " <input type=button value='Parâmetros' id=parametrosMetaestat />";
$i("cMetaestat").innerHTML = temp;
//new YAHOO.widget.Button("parametrosMetaestat",{ onclick: { fn: parametrosMetaestat }});
}
if($i("cCache")){
temp = "<select id='cache' >";
temp += core_combosimnao(dados.cache);
temp += "</select>";
$i("cCache").innerHTML = temp;
}
if($i("cTiles")){
temp = "<select id='tiles' >";
temp += core_combosimnao(dados.tiles);
temp += "</select>";
$i("cTiles").innerHTML = temp;
}
if($i("cTipoOriginal")){
temp = "<select id='tipooriginal' >";
temp += core_comboObjeto(objtipooriginal,"valor","texto",dados.tipooriginal);
temp += "</select>";
$i("cTipoOriginal").innerHTML = temp;
}
temp = "<select id='connectiontype' >";
temp += core_comboObjeto(objcontype,"valor","texto",dados.connectiontype);
temp += "</select>";
$i("cConnectiontype").innerHTML = temp;
temp = "<select id='type' >";
temp += core_comboObjeto(objlayertypes,"valor","texto",dados.type);
temp += "</select>";
$i("cType").innerHTML = temp;
if($i("cConvcaracter")){
temp = "<select id='convcaracter' >";
temp += core_combosimnao(dados.convcaracter);
temp += "</select>";
$i("cConvcaracter").innerHTML = temp;
}
$i("connectiontype").onchange = function(){
d = [],valor = $i("connectiontype").value;
core_desativaforms(idsForms);
//["connection","data","tileitem","tileindex"]
if(valor == 0 || valor == 10)
{d = [];}
if(valor == 1 || valor == 12)
{d = ["data","type"];}
if(valor == 2)
{d = ["tileitem","tileindex","type"];}
if(valor == 3 || valor == 4 || valor == 6 || valor == 8 || valor == 13)
{d = idsForms;}
if(valor == 5)
{d = ["connection","tileitem","tileindex","type"];}
if(valor == 7 || valor == 9)
{d = ["connection","type","tipooriginal"];}
core_ativaforms(d);
};
$i("metaestat").onchange = function(){
core_desativaforms(idsMetaestat);
var valor = $i("metaestat").value,
d = [];
if(valor === "SIM"){
d.push("metaestat_id_medida_variavel");
}
else{
core_desativaforms(idsForms);
$i("connectiontype").onchange.call();
}
core_ativaforms(d);
};
if(dados.metaestat === "SIM"){
core_desativaforms(idsMetaestat);
}
else{
core_desativaforms(idsForms);
$i("connectiontype").onchange.call();
}
}