Commit 970a8c13d648bdcd229c6d94edc1395ea54b961f
1 parent
89cd51af
Exists in
master
and in
7 other branches
Incluida opção de seleção por extensão geográfica na ferramenta de seleção
Showing
4 changed files
with
89 additions
and
1 deletions
Show diff stats
classesphp/classe_selecao.php
| ... | ... | @@ -492,7 +492,6 @@ $dir_tmp - localização do diretório temporário |
| 492 | 492 | $this->layer->set("template","none.htm"); |
| 493 | 493 | $this->layer->setfilter(""); |
| 494 | 494 | $nomeshp = criaSHP($this->nome,$this->arquivo,$locaplic,$dir_tmp); |
| 495 | - | |
| 496 | 495 | $novolayer = criaLayer($this->mapa,$this->layer->type,MS_DEFAULT,"Seleção de ".(pegaNome($this->layer))." (".$this->nome.")",$metaClasse="SIM"); |
| 497 | 496 | $novolayer->set("data",$nomeshp.".shp"); |
| 498 | 497 | $novolayer->set("name",basename($nomeshp)); |
| ... | ... | @@ -504,5 +503,50 @@ $dir_tmp - localização do diretório temporário |
| 504 | 503 | $novolayer->setfilter(""); |
| 505 | 504 | return("ok"); |
| 506 | 505 | } |
| 506 | +/* | |
| 507 | +function: selecaoEXT | |
| 508 | + | |
| 509 | +Seleciona por extensão geográfica. | |
| 510 | + | |
| 511 | +parameters: | |
| 512 | + | |
| 513 | +$tipo - Tipo de operação adiciona|retira|inverte|limpa | |
| 514 | +*/ | |
| 515 | + function selecaoEXT($tipo) | |
| 516 | + { | |
| 517 | + if ($tipo == "limpa") | |
| 518 | + {return ($this->selecaoLimpa());} | |
| 519 | + if ($tipo == "inverte") | |
| 520 | + {return ($this->selecaoInverte());} | |
| 521 | + $this->layer->set("template","none.htm"); | |
| 522 | + if (file_exists(($this->arquivo)."qy")) | |
| 523 | + {$this->mapa->loadquery(($this->arquivo)."qy");} | |
| 524 | + $indxlayer = $this->layer->index; | |
| 525 | + $res_count = $this->layer->getNumresults(); | |
| 526 | + $shp_atual = array(); | |
| 527 | + for ($i = 0; $i < $res_count;$i++) | |
| 528 | + { | |
| 529 | + $rc = $this->layer->getResult($i); | |
| 530 | + $shp_atual[] = $rc->shapeindex; | |
| 531 | + } | |
| 532 | + $this->mapa->freequery($indxlayer); | |
| 533 | + $shpi = array(); | |
| 534 | + $rect = $this->mapa->extent; | |
| 535 | + $ident = @$this->layer->queryByRect($rect); | |
| 536 | + if ($ident != 1) | |
| 537 | + { | |
| 538 | + $res_count = $this->layer->getNumresults(); | |
| 539 | + $shpi = array(); | |
| 540 | + for ($i = 0; $i < $res_count; $i++) | |
| 541 | + { | |
| 542 | + $result = $this->layer->getResult($i); | |
| 543 | + $shpi[] = $result->shapeindex; | |
| 544 | + } | |
| 545 | + } | |
| 546 | + if ($tipo == "adiciona") | |
| 547 | + {return($this->selecaoAdiciona($shpi,$shp_atual));} | |
| 548 | + if ($tipo == "retira") | |
| 549 | + {return($this->selecaoRetira($shpi,$shp_atual));} | |
| 550 | + } | |
| 507 | 551 | } |
| 508 | 552 | ?> |
| 509 | 553 | \ No newline at end of file | ... | ... |
classesphp/mapa_controle.php
| ... | ... | @@ -1791,6 +1791,20 @@ Include: |
| 1791 | 1791 | $cp->set_data($m->selecaoPT($xy,$tipo)); |
| 1792 | 1792 | break; |
| 1793 | 1793 | /* |
| 1794 | +Property: selecaoext | |
| 1795 | + | |
| 1796 | +Seleciona elementos utilizando a extensăo do mapa. | |
| 1797 | + | |
| 1798 | +Include: | |
| 1799 | +<classe_selecao.php> | |
| 1800 | +*/ | |
| 1801 | + case "selecaoext": | |
| 1802 | + include("classe_selecao.php"); | |
| 1803 | + $m = new Selecao($map_file,$tema); | |
| 1804 | + $cp->set_data($m->selecaoEXT($tipo)); | |
| 1805 | + break; | |
| 1806 | + | |
| 1807 | +/* | |
| 1794 | 1808 | Property: selecaoatrib |
| 1795 | 1809 | |
| 1796 | 1810 | Seleciona elementos com base nos atributos. | ... | ... |
ferramentas/selecao/index.htm
| ... | ... | @@ -13,6 +13,10 @@ |
| 13 | 13 | <div class=guia id=guia3 > Por tema </div> |
| 14 | 14 | </div> |
| 15 | 15 | <span id=geral style=left:0px; > |
| 16 | + <div style=top:1px;left:0px;text-align:center;width:95%; > | |
| 17 | + <img id=selecaopt onclick="tiposel(this)" src="../../imagens/selpt.png" title="Clique no mapa para selecionar" style="cursor:pointer;border:1px solid white" /> | |
| 18 | + <img id=selecaoext onclick="tiposel(this)" src="../../imagens/selext.png" title="Seleciona o que estiver visível no mapa" style="cursor:pointer;border:1px solid gray" /> | |
| 19 | + </div> | |
| 16 | 20 | <div id=opc1 style=top:0px;left:0px;text-align:left;width:95%; > |
| 17 | 21 | Tema: |
| 18 | 22 | <div id="temas" > | ... | ... |
ferramentas/selecao/index.js
| ... | ... | @@ -62,6 +62,30 @@ combot += "<option value='limpa' >Limpa</option>" |
| 62 | 62 | combot += "</select>" |
| 63 | 63 | $i("operacao").innerHTML = combot |
| 64 | 64 | |
| 65 | +//botoes de tipo | |
| 66 | +function tiposel(obj) | |
| 67 | +{ | |
| 68 | + if ($i("comboTemas").value == ""){alert("Escolha um tema");return;} | |
| 69 | + var mudaicone = function() | |
| 70 | + { | |
| 71 | + $i("selecaopt").style.border = "1px solid black" | |
| 72 | + $i("selecaoext").style.border = "1px solid black" | |
| 73 | + obj.style.border = "1px solid white" | |
| 74 | + } | |
| 75 | + if (obj.id == "selecaoext") | |
| 76 | + { | |
| 77 | + if (window.parent.objmapa.scale > 500000) | |
| 78 | + {alert("A escala do mapa deve ser pelo menos 1:500.000");return;} | |
| 79 | + aguarde("block") | |
| 80 | + var p = g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=selecaoext&tema="+$i("comboTemas").value+"&tipo="+$i("tipoOperacao").value | |
| 81 | + var cp = new cpaint(); | |
| 82 | + //cp.set_debug(2) | |
| 83 | + cp.set_response_type("JSON"); | |
| 84 | + cp.call(p,"selecaoEXT",window.parent.ajaxredesenha); | |
| 85 | + } | |
| 86 | + | |
| 87 | +} | |
| 88 | + | |
| 65 | 89 | //cria combo com os temas |
| 66 | 90 | comboTemasLigados("comboTemas",function(retorno) |
| 67 | 91 | { |
| ... | ... | @@ -135,6 +159,7 @@ function adicionalinha() |
| 135 | 159 | //executa o tipo de operacao selecionada se for o caso |
| 136 | 160 | function operacao(tipo) |
| 137 | 161 | { |
| 162 | + if ($i("comboTemas").value == ""){alert("Escolha um tema");return;} | |
| 138 | 163 | if((tipo.value == "limpa") || (tipo.value == "inverte")) |
| 139 | 164 | { |
| 140 | 165 | aguarde("block") |
| ... | ... | @@ -150,6 +175,7 @@ function operacao(tipo) |
| 150 | 175 | //aplica a selecao por atributo |
| 151 | 176 | function aplicaselecao() |
| 152 | 177 | { |
| 178 | + if ($i("comboTemas").value == ""){alert("Escolha um tema");return;} | |
| 153 | 179 | aguarde("block") |
| 154 | 180 | var g = $i("parametros") |
| 155 | 181 | var ipt = g.getElementsByTagName("tr") | ... | ... |