Commit a0838314effbfef2ba2b41a8797f2bb12d932923

Authored by Edmar Moretti
1 parent ca6d0e72

#260

admin/js/editormapfile.js
@@ -502,11 +502,15 @@ function classesAuto(codigoMap,codigoLayer) @@ -502,11 +502,15 @@ function classesAuto(codigoMap,codigoLayer)
502 function on_editorCheckBoxChange(p_oEvent) 502 function on_editorCheckBoxChange(p_oEvent)
503 { 503 {
504 var ins = ""; 504 var ins = "";
505 - if(p_oEvent.newValue.get("value") == "OK" && document.getElementById("itens").value != "") 505 + var itemExpressao = document.getElementById("itemExpressao").value;
  506 + var itemNome = document.getElementById("itemNome").value;
  507 + if(itemNome == "")
  508 + {itemNome = itemExpressao;}
  509 + if(p_oEvent.newValue.get("value") == "OK" && itemExpressao != "")
506 { 510 {
507 core_carregando("ativa"); 511 core_carregando("ativa");
508 core_carregando(" gerando as classes"); 512 core_carregando(" gerando as classes");
509 - var sUrl = "../php/editormapfile.php?funcao=autoClassesLayer&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&item="+document.getElementById("itens").value; 513 + var sUrl = "../php/editormapfile.php?funcao=autoClassesLayer&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&itemExpressao="+itemExpressao+"&itemNome="+itemNome;
510 var callback2 = 514 var callback2 =
511 { 515 {
512 success:function(o) 516 success:function(o)
@@ -520,6 +524,8 @@ function classesAuto(codigoMap,codigoLayer) @@ -520,6 +524,8 @@ function classesAuto(codigoMap,codigoLayer)
520 var no = tree.getNodeByProperty("id",codigoMap+"_"+codigoLayer) 524 var no = tree.getNodeByProperty("id",codigoMap+"_"+codigoLayer)
521 montaParametrosTemas(no,dados) 525 montaParametrosTemas(no,dados)
522 core_carregando("desativa"); 526 core_carregando("desativa");
  527 + YAHOO.example.container.panelEditorAutoClasses.destroy();
  528 + YAHOO.example.container.panelEditorAutoClasses = null;
523 } 529 }
524 catch(e){core_handleFailure(o,o.responseText);core_carregando("desativa");} 530 catch(e){core_handleFailure(o,o.responseText);core_carregando("desativa");}
525 }, 531 },
@@ -558,9 +564,14 @@ function classesAuto(codigoMap,codigoLayer) @@ -558,9 +564,14 @@ function classesAuto(codigoMap,codigoLayer)
558 { 564 {
559 try 565 try
560 { 566 {
561 - ins = "<p>Itens encontrados na tabela de atributos do layer. Escolha um deles para ser utilizado na expressão de seleção de cada classe</p>"  
562 - ins += "<select id='itens' >"  
563 - ins += core_comboObjeto(YAHOO.lang.JSON.parse(o.responseText).itens,"","",""); 567 + var itens = core_comboObjeto(YAHOO.lang.JSON.parse(o.responseText).itens,"","","");
  568 + ins = "<p>Item da tabela de atributos que será utilizado para compor a expressão de seleção de cada classe</p>"
  569 + ins += "<select id='itemExpressao' >"
  570 + ins += itens
  571 + ins += "</select></p>"
  572 + ins += "<p>Item da tabela de atributos que será utilizado para compor o nome de cada classe</p>"
  573 + ins += "<select id='itemNome' >"
  574 + ins += itens
564 ins += "</select></p>" 575 ins += "</select></p>"
565 $i("editor_bd").innerHTML = ins; 576 $i("editor_bd").innerHTML = ins;
566 core_carregando("desativa"); 577 core_carregando("desativa");
admin/php/editormapfile.php
@@ -312,7 +312,7 @@ function criarNovoLayer() @@ -312,7 +312,7 @@ function criarNovoLayer()
312 } 312 }
313 function autoClassesLayer() 313 function autoClassesLayer()
314 { 314 {
315 - global $codigoMap,$codigoLayer,$item,$locaplic,$dir_tmp; 315 + global $codigoMap,$codigoLayer,$itemExpressao,$itemNome,$locaplic,$dir_tmp;
316 $mapfile = $locaplic."/temas/".$codigoMap.".map"; 316 $mapfile = $locaplic."/temas/".$codigoMap.".map";
317 include_once("../../classesphp/classe_alteraclasse.php"); 317 include_once("../../classesphp/classe_alteraclasse.php");
318 error_reporting(0); 318 error_reporting(0);
@@ -337,7 +337,7 @@ function autoClassesLayer() @@ -337,7 +337,7 @@ function autoClassesLayer()
337 } 337 }
338 $mapageral->save($nometemp); 338 $mapageral->save($nometemp);
339 $m = new Alteraclasse($nometemp,$codigoLayer); 339 $m = new Alteraclasse($nometemp,$codigoLayer);
340 - $m->valorunico($item,""); 340 + $m->valorunico($itemExpressao,"",$itemNome);
341 $m->salva(); 341 $m->salva();
342 $mapatemp = ms_newMapObj($nometemp); 342 $mapatemp = ms_newMapObj($nometemp);
343 $mapatemp->save($mapfile); 343 $mapatemp->save($mapfile);
classesphp/classe_alteraclasse.php
@@ -317,18 +317,35 @@ Parametros: @@ -317,18 +317,35 @@ Parametros:
317 $item - Item da tabela de atributos utilizado para gerar as classes. 317 $item - Item da tabela de atributos utilizado para gerar as classes.
318 318
319 $ignorar - valor que será ignorado na listagem final 319 $ignorar - valor que será ignorado na listagem final
  320 +
  321 +$itemNome - item que será usado para definir os nomes das classes (por default será igual a $item)
320 */ 322 */
321 - function valorunico($item,$ignorar) 323 + function valorunico($item,$ignorar,$itemNome="")
322 { 324 {
323 if(!$this->layer){return "erro";} 325 if(!$this->layer){return "erro";}
  326 + if($itemNome == "" || $ignorar != "")
  327 + {$itemNome = $item;}
324 // pega valores 328 // pega valores
325 - $valoresu = array_unique(pegaValores($this->mapa,$this->layer,$item,false,$ignorar)); 329 + $vs = pegaValores($this->mapa,$this->layer,$item,false,$ignorar);
  330 + if ($item == $itemNome)
  331 + {$ns = $vs;}
  332 + else
  333 + {$ns = pegaValores($this->mapa,$this->layer,$itemNome,false,$ignorar);}
  334 + $lista = array();
  335 + for ($i = 0; $i < count($vs); ++$i){
  336 + $temp[$vs[$i]] = $ns[$i];
  337 + }
  338 + $valores = array_keys($temp);
  339 + $nomes = array();
  340 + foreach($temp as $t)
  341 + {$nomes[] = $t;}
  342 + //$valoresu = array_unique($v);
326 // processa array com os valores 343 // processa array com os valores
327 - rsort($valoresu);  
328 - reset($valoresu); 344 + //rsort($valoresu);
  345 + //reset($valoresu);
329 $nclassexist = $this->layer->numclasses; 346 $nclassexist = $this->layer->numclasses;
330 - if ($nclassexist > count($valoresu))  
331 - {$nclassexist = count($valoresu);} 347 + if ($nclassexist > count($valores))
  348 + {$nclassexist = count($valores);}
332 if($nclassexist == 0) 349 if($nclassexist == 0)
333 { 350 {
334 $temp = ms_newClassObj($this->layer); 351 $temp = ms_newClassObj($this->layer);
@@ -345,7 +362,7 @@ $ignorar - valor que será ignorado na listagem final @@ -345,7 +362,7 @@ $ignorar - valor que será ignorado na listagem final
345 $cl = $this->layer->getClass($i); 362 $cl = $this->layer->getClass($i);
346 $cl->set("status",MS_DELETE); 363 $cl->set("status",MS_DELETE);
347 } 364 }
348 - $c = count($valoresu); 365 + $c = count($valores);
349 for ($i = 0; $i < $c; ++$i) 366 for ($i = 0; $i < $c; ++$i)
350 { 367 {
351 $classes[$i] = ms_newClassObj($this->layer); 368 $classes[$i] = ms_newClassObj($this->layer);
@@ -353,10 +370,10 @@ $ignorar - valor que será ignorado na listagem final @@ -353,10 +370,10 @@ $ignorar - valor que será ignorado na listagem final
353 } 370 }
354 for ($i = 0; $i < $c; ++$i) 371 for ($i = 0; $i < $c; ++$i)
355 { 372 {
356 - $e = "('[".$item."]'eq'".$valoresu[$i]."')"; 373 + $e = "('[".$item."]'eq'".$valores[$i]."')";
357 $ca = $classes[$i]; 374 $ca = $classes[$i];
358 $ca->setexpression($e); 375 $ca->setexpression($e);
359 - $ca->set("name",$valoresu[$i]); 376 + $ca->set("name",$nomes[$i]);
360 $estilo = $classes[$i]->getStyle(0); 377 $estilo = $classes[$i]->getStyle(0);
361 $ncor = $estilo->color; 378 $ncor = $estilo->color;
362 $ncor->setrgb((mt_rand(0,255)),(mt_rand(0,255)),(mt_rand(0,255))); 379 $ncor->setrgb((mt_rand(0,255)),(mt_rand(0,255)),(mt_rand(0,255)));
temas/biomashp.map
@@ -18,70 +18,64 @@ MAP @@ -18,70 +18,64 @@ MAP
18 TYPE POLYGON 18 TYPE POLYGON
19 UNITS METERS 19 UNITS METERS
20 CLASS 20 CLASS
21 - NAME "PANTANAL"  
22 - EXPRESSION ('[CD_LEGENDA]'eq'PANTANAL') 21 + NAME "CAATINGA"
  22 + EXPRESSION ('[ID]'eq'2.00')
23 STYLE 23 STYLE
24 ANGLE 360 24 ANGLE 360
25 - COLOR 104 27 127 25 + COLOR 24 214 111
26 OPACITY 100 26 OPACITY 100
27 SYMBOL 0 27 SYMBOL 0
28 END 28 END
29 - TITLE "Isto é um teste de inclusão de um texto descritivo para cada classe da legenda."  
30 END 29 END
31 CLASS 30 CLASS
32 NAME "PAMPA" 31 NAME "PAMPA"
33 - EXPRESSION ('[CD_LEGENDA]'eq'PAMPA') 32 + EXPRESSION ('[ID]'eq'5.00')
34 STYLE 33 STYLE
35 ANGLE 360 34 ANGLE 360
36 - COLOR 183 42 6 35 + COLOR 208 90 180
37 OPACITY 100 36 OPACITY 100
38 SYMBOL 0 37 SYMBOL 0
39 END 38 END
40 - TITLE ""  
41 END 39 END
42 CLASS 40 CLASS
43 - NAME "MATA ATLANTICA"  
44 - EXPRESSION ('[CD_LEGENDA]'eq'MATA ATLANTICA') 41 + NAME "CERRADO"
  42 + EXPRESSION ('[ID]'eq'3.00')
45 STYLE 43 STYLE
46 ANGLE 360 44 ANGLE 360
47 - COLOR 73 42 248 45 + COLOR 165 220 169
48 OPACITY 100 46 OPACITY 100
49 SYMBOL 0 47 SYMBOL 0
50 END 48 END
51 - TITLE "Isto é um teste de inclusão de um texto descritivo para cada classe da legenda"  
52 END 49 END
53 CLASS 50 CLASS
54 - NAME "CERRADO"  
55 - EXPRESSION ('[CD_LEGENDA]'eq'CERRADO') 51 + NAME "PANTANAL"
  52 + EXPRESSION ('[ID]'eq'6.00')
56 STYLE 53 STYLE
57 ANGLE 360 54 ANGLE 360
58 - COLOR 239 98 76 55 + COLOR 182 86 205
59 OPACITY 100 56 OPACITY 100
60 SYMBOL 0 57 SYMBOL 0
61 END 58 END
62 - TITLE "Isto é um teste de inclusão de um texto descritivo para cada classe da legenda"  
63 END 59 END
64 CLASS 60 CLASS
65 - NAME "CAATINGA"  
66 - EXPRESSION ('[CD_LEGENDA]'eq'CAATINGA') 61 + NAME "AMAZONIA"
  62 + EXPRESSION ('[ID]'eq'1.00')
67 STYLE 63 STYLE
68 ANGLE 360 64 ANGLE 360
69 - COLOR 107 213 213 65 + COLOR 98 126 232
70 OPACITY 100 66 OPACITY 100
71 SYMBOL 0 67 SYMBOL 0
72 END 68 END
73 - TITLE "Isto é um teste de inclusão de um texto descritivo para cada classe da legenda"  
74 END 69 END
75 CLASS 70 CLASS
76 - NAME "AMAZONIA"  
77 - EXPRESSION ('[CD_LEGENDA]'eq'AMAZONIA') 71 + NAME "MATA ATLANTICA"
  72 + EXPRESSION ('[ID]'eq'4.00')
78 STYLE 73 STYLE
79 ANGLE 360 74 ANGLE 360
80 - COLOR 233 166 160 75 + COLOR 94 171 18
81 OPACITY 100 76 OPACITY 100
82 SYMBOL 0 77 SYMBOL 0
83 END 78 END
84 - TITLE "Isto é um teste de inclusão de um texto descritivo para cada classe da legenda"  
85 END 79 END
86 END 80 END
87 81