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