Commit a0838314effbfef2ba2b41a8797f2bb12d932923
1 parent
ca6d0e72
Exists in
master
and in
7 other branches
#260
Showing
4 changed files
with
61 additions
and
39 deletions
Show diff stats
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 | ... | ... |