Commit a0838314effbfef2ba2b41a8797f2bb12d932923

Authored by Edmar Moretti
1 parent ca6d0e72

#260

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