Commit fa188761b2be2d48252a93b427aaf75a26b7e182

Authored by Edmar Moretti
1 parent 13eefc2f
Exists in master

Correção na opção de inclusão de labels no editor de mapfiles, quando utilizada …

…a opção existente na árvore do editor
admin/dicionario/editormapfile.js
... ... @@ -7,7 +7,7 @@ i3GEOadmin.editormapfile.dicionario = {
7 7 es : ""
8 8 } ],
9 9 'txtAjudaMapfile' : [ {
10   - pt : "<p>Importante: a restri&ccedil;&atilde;o ao tema por meio da defini&ccedil;&atilde;o de grupos de usu&aacute;rios n&atilde;o bloqueia o acesso por meio de download, WMS, KML, etc. Para bloquear esse tipo de acesso &eacute; necess&aacute;rio alterar as op&ccedil;&otilde;es espec&iacute;ficas. Por padr&atilde;o, esses servi&ccedil;os s&atilde;o habilitados para qualquer usu&aacute;rio, n&atilde;o sendo poss&iacute;vel bloquear apenas para determinados grupos. <p>Este formul&aacute;rio permite criar ou editar os arquivos mapfile que comp&otilde;em temas no i3geo. <p>Os arquivo .map s&atilde;o armazenados no diretório i3geo/temas e podem tamb&eacute;m ser editados manualmente. <p>Cada arquivo cont&eacute;m layers definidos conforme a sintaxe utilizada pelo Mapserver. Esses arquivos s&atilde;o as estruturas b&aacute;sicas utilizadas pelo i3geo na apresenta&ccedil;&atilde;o de dados e montagem das camadas que s&atilde;o vistas no mapa. <p>Após criados os mapfiles, deve-se ainda definir as caracter&iacute;sticas de cada LAYER. <p>A lista de IPs dos usu&aacute;rios que podem administrar o i3geo &eacute; definida no arquivo i3geo/ms_configura.php <p>Apenas os mapfiles que forem vinculados a um tema poder&atilde;o ser vistos na janela de inclus&atilde;o de temas na &aacute;rvore de temas. Se voc&ecirc; criou um mapfile manualmente, utilize a op&ccedil;&atilde;o de edi&ccedil;&atilde;o (&iacute;cone apresentado ao lado de cada mapfile) para fazer essa associa&ccedil;&atilde;o. <p>A op&ccedil;&atilde;o 'Verifica temas sem mapfiles' possibilita resolver problemas decorrentes da elimina&ccedil;&atilde;o manual de um arquivo mapfile do servidor. Nesses casos, o registro no banco de dados permanece. Com essa op&ccedil;&atilde;o &eacute; poss&iacute;vel apagar os registros ou recriar o mapfile perdido.",
  10 + pt : "<p>Importante: a restri&ccedil;&atilde;o ao tema por meio da defini&ccedil;&atilde;o de grupos de usu&aacute;rios n&atilde;o bloqueia o acesso por meio de download, WMS, KML, etc. Para bloquear esse tipo de acesso &eacute; necess&aacute;rio alterar as op&ccedil;&otilde;es espec&iacute;ficas. Por padr&atilde;o, esses servi&ccedil;os s&atilde;o habilitados para qualquer usu&aacute;rio, n&atilde;o sendo poss&iacute;vel bloquear apenas para determinados grupos. <p>Este formul&aacute;rio permite criar ou editar os arquivos mapfile que comp&otilde;em temas no i3geo. <p>Os arquivo .map s&atilde;o armazenados no diret�rio i3geo/temas e podem tamb&eacute;m ser editados manualmente. <p>Cada arquivo cont&eacute;m layers definidos conforme a sintaxe utilizada pelo Mapserver. Esses arquivos s&atilde;o as estruturas b&aacute;sicas utilizadas pelo i3geo na apresenta&ccedil;&atilde;o de dados e montagem das camadas que s&atilde;o vistas no mapa. <p>Ap�s criados os mapfiles, deve-se ainda definir as caracter&iacute;sticas de cada LAYER. <p>A lista de IPs dos usu&aacute;rios que podem administrar o i3geo &eacute; definida no arquivo i3geo/ms_configura.php <p>Apenas os mapfiles que forem vinculados a um tema poder&atilde;o ser vistos na janela de inclus&atilde;o de temas na &aacute;rvore de temas. Se voc&ecirc; criou um mapfile manualmente, utilize a op&ccedil;&atilde;o de edi&ccedil;&atilde;o (&iacute;cone apresentado ao lado de cada mapfile) para fazer essa associa&ccedil;&atilde;o. <p>A op&ccedil;&atilde;o 'Verifica temas sem mapfiles' possibilita resolver problemas decorrentes da elimina&ccedil;&atilde;o manual de um arquivo mapfile do servidor. Nesses casos, o registro no banco de dados permanece. Com essa op&ccedil;&atilde;o &eacute; poss&iacute;vel apagar os registros ou recriar o mapfile perdido.",
11 11 en : "",
12 12 es : ""
13 13 } ],
... ... @@ -167,7 +167,7 @@ i3GEOadmin.editormapfile.dicionario = {
167 167 es : ""
168 168 } ],
169 169 'apenasShp' : [ {
170   - pt : "Opcao disponivel apenas para o tipo shapefile", // esta sem acento pois alguns navegadores não aceitam acentuacao em alert
  170 + pt : "Opcao disponivel apenas para o tipo shapefile", // esta sem acento pois alguns navegadores n�o aceitam acentuacao em alert
171 171 en : "",
172 172 es : ""
173 173 } ],
... ... @@ -327,7 +327,7 @@ i3GEOadmin.editormapfile.dicionario = {
327 327 es : ""
328 328 } ],
329 329 'legendaImg' : [ {
330   - pt : "URL de uma imagem que ser&aacute; utilizada em substitui&ccedil;&atilde;o à gera&ccedil;&atilde;o normal da legenda ",
  330 + pt : "URL de uma imagem que ser&aacute; utilizada em substitui&ccedil;&atilde;o � gera&ccedil;&atilde;o normal da legenda ",
331 331 en : "",
332 332 es : ""
333 333 } ],
... ... @@ -1297,12 +1297,12 @@ i3GEOadmin.editormapfile.dicionario = {
1297 1297 es : ""
1298 1298 } ],
1299 1299 'ltempoconvencode' : [ {
1300   - pt : "Aplica convers&atilde;o do código de caracteres? Pode ser necess&aacute;rio para corrigir problemas de acentua&ccedil;&atilde;o",
  1300 + pt : "Aplica convers&atilde;o do c�digo de caracteres? Pode ser necess&aacute;rio para corrigir problemas de acentua&ccedil;&atilde;o",
1301 1301 en : "",
1302 1302 es : ""
1303 1303 } ],
1304 1304 'ltempoconvencodeTitulo' : [ {
1305   - pt : "Aplica convers&atilde;o do código de caracteres? Pode ser necess&aacute;rio para corrigir problemas de acentua&ccedil;&atilde;o",
  1305 + pt : "Aplica convers&atilde;o do c�digo de caracteres? Pode ser necess&aacute;rio para corrigir problemas de acentua&ccedil;&atilde;o",
1306 1306 en : "",
1307 1307 es : ""
1308 1308 } ],
... ... @@ -1387,7 +1387,7 @@ i3GEOadmin.editormapfile.dicionario = {
1387 1387 es : ""
1388 1388 } ],
1389 1389 'itenslink' : [ {
1390   - pt : "Lista de links que ser&atilde;o inclu&iacute;dos em cada resultado de busca da ferramenta de identifica&ccedil;&atilde;o. A lista de links deve ser separada por ',', podendo-se incluir '' para indicar que o item n&atilde;o tem link. Exemplo de uso para inclus&atilde;o de links para o site do IBGE quando um munic&iacute;pio &eacute; clicado no mapa:<br>ITENS 'codigo,nome2,uf'<br>ITENSDESC 'codigo do IBGE,nome do munic&iacute;pio,uf'<br>ITENSLLINK ',http://www.ibge.gov.br/munic2001/tabelas.php?codmun=[codigo]&descricao=[nome],'<br>Podem ser inclu&iacute;dos comandos javascript, para isso utilize sempre aspas simples para fechar o link e acrescente o código javascript, exemplo:<br>ITENSLINK \",'../ferramentas/identifica/testelink.php?sid='+i3GEO.configura.sid\"",
  1390 + pt : "Lista de links que ser&atilde;o inclu&iacute;dos em cada resultado de busca da ferramenta de identifica&ccedil;&atilde;o. A lista de links deve ser separada por ',', podendo-se incluir '' para indicar que o item n&atilde;o tem link. Exemplo de uso para inclus&atilde;o de links para o site do IBGE quando um munic&iacute;pio &eacute; clicado no mapa:<br>ITENS 'codigo,nome2,uf'<br>ITENSDESC 'codigo do IBGE,nome do munic&iacute;pio,uf'<br>ITENSLLINK ',http://www.ibge.gov.br/munic2001/tabelas.php?codmun=[codigo]&descricao=[nome],'<br>Podem ser inclu&iacute;dos comandos javascript, para isso utilize sempre aspas simples para fechar o link e acrescente o c�digo javascript, exemplo:<br>ITENSLINK \",'../ferramentas/identifica/testelink.php?sid='+i3GEO.configura.sid\"",
1391 1391 en : "",
1392 1392 es : ""
1393 1393 } ],
... ... @@ -1427,7 +1427,7 @@ i3GEOadmin.editormapfile.dicionario = {
1427 1427 es : ""
1428 1428 } ],
1429 1429 'name' : [ {
1430   - pt : "Elemento 'NAME'. N&atilde;o confunda com o nome que aparece no mapa ou na &aacute;rvore de temas. Normalmente o código recebe o mesmo nome do arquivo mapfile, sem a extens&atilde;o '.map'",
  1430 + pt : "Elemento 'NAME'. N&atilde;o confunda com o nome que aparece no mapa ou na &aacute;rvore de temas. Normalmente o c�digo recebe o mesmo nome do arquivo mapfile, sem a extens&atilde;o '.map'",
1431 1431 en : "",
1432 1432 es : ""
1433 1433 } ],
... ... @@ -1496,8 +1496,8 @@ i3GEOadmin.editormapfile.dicionario = {
1496 1496 en : "",
1497 1497 es : ""
1498 1498 } ],
1499   - '' : [ {
1500   - pt : "",
  1499 + 'colunaLabel' : [ {
  1500 + pt : "Coluna da tabela de atributos",
1501 1501 en : "",
1502 1502 es : ""
1503 1503 } ],
... ...
admin/js/editormapfile.js
... ... @@ -889,7 +889,7 @@ function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo,
889 889 }
890 890 if(tipo == "classeLabel")
891 891 {
892   - campos = new Array("encoding","force","partials","mindistance","minfeaturesize","wrap","antialias","buffer","autoangle","angle","offsety","offsetx","position","maxsize","minsize","size","backgroundshadowsizey","backgroundshadowsizex","shadowsizey","shadowsizex","shadowcolor","outlinecolor","color","backgroundshadowcolor","backgroundcolor","type","font");
  892 + campos = new Array("text","encoding","force","partials","mindistance","minfeaturesize","wrap","antialias","buffer","autoangle","angle","offsety","offsetx","position","maxsize","minsize","size","backgroundshadowsizey","backgroundshadowsizex","shadowsizey","shadowsizex","shadowcolor","outlinecolor","color","backgroundshadowcolor","backgroundcolor","type","font");
893 893 par = "&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse;
894 894 prog = "../php/editormapfile.php?funcao=alterarClasseLabel" ;
895 895 }
... ...
admin/js/editormapfile_label.js
... ... @@ -22,6 +22,8 @@ function montaEditorClasseLabel(dados)
22 22 core_montaEditor(temp,"450px","500px","","Label&nbsp;"+dados.codigoMap,true,true,false);
23 23 var param = {
24 24 "linhas":[
  25 + {ajuda:$trad("colunaLabel",i3GEOadmin.editormapfile.dicionario),
  26 + titulo:$trad("colunaLabel",i3GEOadmin.editormapfile.dicionario),id:"text",value:dados.text,tipo:"text"},
25 27 {ajuda:$trad("colorLabel",i3GEOadmin.editormapfile.dicionario),
26 28 titulo:$trad("colorLabelTitulo",i3GEOadmin.editormapfile.dicionario),id:"color",value:dados.color,tipo:"cor"},
27 29 {ajuda:$trad("sizeLabel",i3GEOadmin.editormapfile.dicionario),
... ...
admin/php/editormapfile.php
... ... @@ -2152,43 +2152,44 @@ function pegaClasseLabel()
2152 2152 $layer = $mapa->getlayerbyname($codigoLayer);
2153 2153 $classe = $layer->getclass($indiceClasse);
2154 2154  
2155   - $v = versao();
  2155 + $v = versao();
2156 2156 $vi = $v["inteiro"];
2157   - if($vi >= 60200){
2158   - $nlabel = $classe->numlabels;
  2157 + if($vi >= 60200){
  2158 + $nlabels = $classe->numlabels;
2159 2159 if($nlabels > 0){
2160 2160 $label = $classe->getLabel(0);
2161 2161 }
2162 2162 else{
2163 2163 $label = "";
2164   - }
2165   - }
2166   - else{
2167   - $label = $classe->label;
  2164 + }
  2165 + }
  2166 + else{
  2167 + $label = $classe->label;
2168 2168 }
2169 2169 if ($label != "")
2170 2170 {
2171 2171 $dados["font"] = $label->font;
2172 2172 $dados["type"] = $label->type;
2173   - $dados["backgroundcolor"] = $label->backgroundcolor->red.",".$label->backgroundcolor->green.",".$label->backgroundcolor->blue;
2174   - $dados["backgroundshadowcolor"] = $label->backgroundshadowcolor->red.",".$label->backgroundshadowcolor->green.",".$label->backgroundshadowcolor->blue;
  2173 + //$dados["backgroundcolor"] = $label->backgroundcolor->red.",".$label->backgroundcolor->green.",".$label->backgroundcolor->blue;
  2174 + //$dados["backgroundshadowcolor"] = $label->backgroundshadowcolor->red.",".$label->backgroundshadowcolor->green.",".$label->backgroundshadowcolor->blue;
2175 2175 $dados["color"] = $label->color->red.",".$label->color->green.",".$label->color->blue;
2176 2176 $dados["outlinecolor"] = $label->outlinecolor->red.",".$label->outlinecolor->green.",".$label->outlinecolor->blue;
2177 2177 $dados["shadowcolor"] = $label->shadowcolor->red.",".$label->shadowcolor->green.",".$label->shadowcolor->blue;
2178 2178 $dados["shadowsizex"] = $label->shadowsizex;
2179 2179 $dados["shadowsizey"] = $label->shadowsizey;
2180   - $dados["backgroundshadowsizex"] = $label->backgroundshadowsizex;
2181   - $dados["backgroundshadowsizey"] = $label->backgroundshadowsizey;
  2180 + //$dados["backgroundshadowsizex"] = $label->backgroundshadowsizex;
  2181 + //$dados["backgroundshadowsizey"] = $label->backgroundshadowsizey;
2182 2182 $dados["size"] = $label->size;
  2183 +
2183 2184 $dados["minsize"] = $label->minsize;
2184 2185 $dados["maxsize"] = $label->maxsize;
2185 2186 $dados["position"] = $label->position;
2186 2187 $dados["offsetx"] = $label->offsetx;
2187 2188 $dados["offsety"] = $label->offsety;
2188 2189 $dados["angle"] = $label->angle;
2189   - $dados["autoangle"] = $label->autoangle;
  2190 + //$dados["autoangle"] = $label->autoangle;
2190 2191 $dados["buffer"] = $label->buffer;
2191   - $dados["antialias"] = $label->antialias;
  2192 + //$dados["antialias"] = $label->antialias;
2192 2193 $dados["wrap"] = $label->wrap;
2193 2194 $dados["minfeaturesize"] = $label->minfeaturesize;
2194 2195 $dados["autominfeaturesize"] = $label->autominfeaturesize;
... ... @@ -2211,54 +2212,124 @@ function pegaClasseLabel()
2211 2212 $dados["fontes"] = $nome;
2212 2213 return $dados;
2213 2214 }
  2215 +
2214 2216 function alterarClasseLabel()
2215 2217 {
2216   - global $codigoMap,$codigoLayer,$indiceClasse,$locaplic,$autoangle,$encoding,$force,$partials,$mindistance,$minfeaturesize,$wrap,$antialias,$buffer,$angle,$offsety,$offsetx,$position,$maxsize,$minsize,$size,$backgroundshadowsizey,$backgroundshadowsizex,$shadowsizey,$shadowsizex,$shadowcolor,$outlinecolor,$color,$backgroundshadowcolor,$backgroundcolor,$type,$font;
  2218 + global $texto,$codigoMap,$codigoLayer,$indiceClasse,$locaplic,$autoangle,$encoding,$force,$partials,$mindistance,$minfeaturesize,$wrap,$antialias,$buffer,$angle,$offsety,$offsetx,$position,$maxsize,$minsize,$size,$backgroundshadowsizey,$backgroundshadowsizex,$shadowsizey,$shadowsizex,$shadowcolor,$outlinecolor,$color,$backgroundshadowcolor,$backgroundcolor,$type,$font;
  2219 + if(!isset($texto)){
  2220 + $texto = "";
  2221 + }
  2222 + else{
  2223 + $texto = "[".$texto."]";
  2224 + }
2217 2225 $dados = array();
2218 2226 $mapfile = $locaplic."/temas/".$codigoMap.".map";
2219 2227 $mapa = ms_newMapObj($mapfile);
2220 2228 $layer = $mapa->getlayerbyname($codigoLayer);
2221   - if(strtoupper($layer->getmetadata("metaestat")) === "SIM"){
2222   - return "erro. Layer METAESTAT";
  2229 + if(strtoupper($layer->getmetadata("metaestat")) === "SIM"){
  2230 + return "erro. Layer METAESTAT";
2223 2231 }
2224 2232 $classe = $layer->getclass($indiceClasse);
2225   - $label = $classe->label;
2226   - if ($label != "")
2227   - {
2228   - $label->set("font",$font);
2229   - $label->set("type",$type);
  2233 + $v = versao();
  2234 + $vi = $v["inteiro"];
  2235 +
  2236 + if($texto == ""){
  2237 + if($vi >= 60300){
  2238 + $indiceLabel = $classe->addLabel(new labelObj());
  2239 + $label = $classe->getLabel($indiceLabel);
  2240 + }
  2241 + else{
  2242 + $label = $classe->label;
  2243 + }
  2244 + }
  2245 + elseif ($vi >= 60300 && $classe->numlabels == 0){
  2246 + if($wrap != ""){
  2247 + $s = "CLASS LABEL WRAP '$wrap' TEXT '".$texto."' END END";
  2248 + $classe->updateFromString($s);
  2249 + }
  2250 + else{
  2251 + $s = "CLASS LABEL TEXT '".$texto."' END END";
  2252 + $classe->updateFromString($s);
  2253 + }
  2254 + }
  2255 +
  2256 + if($vi >= 60300){
  2257 + $label = $classe->getLabel(0);
  2258 + }
  2259 + else{
  2260 + $label = $classe->label;
  2261 + }
  2262 +
  2263 + if($wrap != ""){
  2264 + $label->set("maxlength",1);
  2265 + }
  2266 + if($fonte != "bitmap"){
  2267 + //para funcionar na versao 7 do mapserver
  2268 + $label->updateFromString("LABEL type truetype END");
  2269 + $label->set("font",$fonte);
  2270 + $label->set("size",$tamanho);
  2271 + }
  2272 + else{
  2273 + //para funcionar na versao 7 do mapserver
  2274 + $label->updateFromString("LABEL type bitmap END");
  2275 + $t = MS_TINY;
  2276 + if ($tamanho > 5 ){
  2277 + $t = MS_TINY;
  2278 + }
  2279 + if ($tamanho >= 7 ){
  2280 + $t = MS_SMALL;
  2281 + }
  2282 + if ($tamanho >= 10 ){
  2283 + $t = MS_MEDIUM;
  2284 + }
  2285 + if ($tamanho >= 12 ){
  2286 + $t = MS_LARGE;
  2287 + }
  2288 + if ($tamanho >= 14 ){
  2289 + $t = MS_GIANT;
  2290 + }
  2291 + $label->set("size",$t);
  2292 + }
  2293 + if ($label != ""){
  2294 + //$label->set("type",$type);
2230 2295 corE($label,$backgroundcolor,"backgroundcolor");
2231 2296 corE($label,$backgroundshadowcolor,"backgroundshadowcolor");
2232 2297 corE($label,$color,"color");
2233 2298 corE($label,$outlinecolor,"outlinecolor");
2234   - corE($label,$shadowcolor,"shadowcolor");
  2299 + if(!empty($sombra) && !empty($backgroundshadowsizex)){
  2300 + corE($label,$sombra,"backgroundshadowcolor",$backgroundshadowsizex,$backgroundshadowsizey);
  2301 + }
2235 2302 $label->set("shadowsizex",$shadowsizex);
2236 2303 $label->set("shadowsizey",$shadowsizey);
2237   - $label->set("backgroundshadowsizex",$backgroundshadowsizex);
2238   - $label->set("backgroundshadowsizey",$backgroundshadowsizey);
2239   - $label->set("size",$size);
  2304 + //$label->set("backgroundshadowsizex",$backgroundshadowsizex);
  2305 + //$label->set("backgroundshadowsizey",$backgroundshadowsizey);
  2306 +
2240 2307 $label->set("minsize",$minsize);
2241 2308 $label->set("maxsize",$maxsize);
2242   - $label->set("position",$position);
  2309 + //$label->set("position",$position);
  2310 +
2243 2311 $label->set("offsetx",$offsetx);
2244 2312 $label->set("offsety",$offsety);
2245 2313 $label->set("angle",$angle);
2246   - $label->set("autoangle",$autoangle);
2247   - $label->set("buffer",$buffer);
2248   - $label->set("antialias",$antialias);
  2314 +
  2315 + //$label->set("autoangle",$autoangle);
  2316 + //$label->set("buffer",$buffer);
  2317 + //$label->set("antialias",$antialias);
2249 2318 $label->set("wrap",$wrap);
2250 2319 $label->set("minfeaturesize",$minfeaturesize);
2251   - //$label->set("autominfeaturesize",$autominfeaturesize);
2252 2320 $label->set("mindistance",$mindistance);
2253 2321 $label->set("partials",$partials);
2254 2322 $label->set("force",$force);
2255 2323 $label->set("encoding",$encoding);
2256   - $label->set("autoangle",$autoangle);
  2324 +
  2325 + $p = array("MS_AUTO"=>MS_AUTO,"MS_UL"=>MS_UL,"MS_LR"=>MS_LR,"MS_UR"=>MS_UR,"MS_LL"=>MS_LL,"MS_CR"=>MS_CR,"MS_CL"=>MS_CL,"MS_UC"=>MS_UC,"MS_LC"=>MS_LC,"MS_CC"=>MS_CC);
  2326 + $label->set("position",$p[$position]);
2257 2327 }
2258 2328 $mapa->save($mapfile);
2259 2329 removeCabecalho($mapfile);
2260 2330 return "ok";
2261 2331 }
  2332 +
2262 2333 function pegaEstilo()
2263 2334 {
2264 2335 global $codigoMap,$codigoLayer,$indiceClasse,$indiceEstilo,$locaplic;
... ...