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