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,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 |