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,7 +492,6 @@ $dir_tmp - localização do diretório temporário | ||
| 492 | $this->layer->set("template","none.htm"); | 492 | $this->layer->set("template","none.htm"); |
| 493 | $this->layer->setfilter(""); | 493 | $this->layer->setfilter(""); |
| 494 | $nomeshp = criaSHP($this->nome,$this->arquivo,$locaplic,$dir_tmp); | 494 | $nomeshp = criaSHP($this->nome,$this->arquivo,$locaplic,$dir_tmp); |
| 495 | - | ||
| 496 | $novolayer = criaLayer($this->mapa,$this->layer->type,MS_DEFAULT,"Seleção de ".(pegaNome($this->layer))." (".$this->nome.")",$metaClasse="SIM"); | 495 | $novolayer = criaLayer($this->mapa,$this->layer->type,MS_DEFAULT,"Seleção de ".(pegaNome($this->layer))." (".$this->nome.")",$metaClasse="SIM"); |
| 497 | $novolayer->set("data",$nomeshp.".shp"); | 496 | $novolayer->set("data",$nomeshp.".shp"); |
| 498 | $novolayer->set("name",basename($nomeshp)); | 497 | $novolayer->set("name",basename($nomeshp)); |
| @@ -504,5 +503,50 @@ $dir_tmp - localização do diretório temporário | @@ -504,5 +503,50 @@ $dir_tmp - localização do diretório temporário | ||
| 504 | $novolayer->setfilter(""); | 503 | $novolayer->setfilter(""); |
| 505 | return("ok"); | 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 | \ No newline at end of file | 553 | \ No newline at end of file |
classesphp/mapa_controle.php
| @@ -1791,6 +1791,20 @@ Include: | @@ -1791,6 +1791,20 @@ Include: | ||
| 1791 | $cp->set_data($m->selecaoPT($xy,$tipo)); | 1791 | $cp->set_data($m->selecaoPT($xy,$tipo)); |
| 1792 | break; | 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 | Property: selecaoatrib | 1808 | Property: selecaoatrib |
| 1795 | 1809 | ||
| 1796 | Seleciona elementos com base nos atributos. | 1810 | Seleciona elementos com base nos atributos. |
ferramentas/selecao/index.htm
| @@ -13,6 +13,10 @@ | @@ -13,6 +13,10 @@ | ||
| 13 | <div class=guia id=guia3 > Por tema </div> | 13 | <div class=guia id=guia3 > Por tema </div> |
| 14 | </div> | 14 | </div> |
| 15 | <span id=geral style=left:0px; > | 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 | <div id=opc1 style=top:0px;left:0px;text-align:left;width:95%; > | 20 | <div id=opc1 style=top:0px;left:0px;text-align:left;width:95%; > |
| 17 | Tema: | 21 | Tema: |
| 18 | <div id="temas" > | 22 | <div id="temas" > |
ferramentas/selecao/index.js
| @@ -62,6 +62,30 @@ combot += "<option value='limpa' >Limpa</option>" | @@ -62,6 +62,30 @@ combot += "<option value='limpa' >Limpa</option>" | ||
| 62 | combot += "</select>" | 62 | combot += "</select>" |
| 63 | $i("operacao").innerHTML = combot | 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 | //cria combo com os temas | 89 | //cria combo com os temas |
| 66 | comboTemasLigados("comboTemas",function(retorno) | 90 | comboTemasLigados("comboTemas",function(retorno) |
| 67 | { | 91 | { |
| @@ -135,6 +159,7 @@ function adicionalinha() | @@ -135,6 +159,7 @@ function adicionalinha() | ||
| 135 | //executa o tipo de operacao selecionada se for o caso | 159 | //executa o tipo de operacao selecionada se for o caso |
| 136 | function operacao(tipo) | 160 | function operacao(tipo) |
| 137 | { | 161 | { |
| 162 | + if ($i("comboTemas").value == ""){alert("Escolha um tema");return;} | ||
| 138 | if((tipo.value == "limpa") || (tipo.value == "inverte")) | 163 | if((tipo.value == "limpa") || (tipo.value == "inverte")) |
| 139 | { | 164 | { |
| 140 | aguarde("block") | 165 | aguarde("block") |
| @@ -150,6 +175,7 @@ function operacao(tipo) | @@ -150,6 +175,7 @@ function operacao(tipo) | ||
| 150 | //aplica a selecao por atributo | 175 | //aplica a selecao por atributo |
| 151 | function aplicaselecao() | 176 | function aplicaselecao() |
| 152 | { | 177 | { |
| 178 | + if ($i("comboTemas").value == ""){alert("Escolha um tema");return;} | ||
| 153 | aguarde("block") | 179 | aguarde("block") |
| 154 | var g = $i("parametros") | 180 | var g = $i("parametros") |
| 155 | var ipt = g.getElementsByTagName("tr") | 181 | var ipt = g.getElementsByTagName("tr") |