Commit 895263ec482ada98a3394f6cb9f0c9af210a637f

Authored by Edmar Moretti
1 parent 60398593

Inclusão de opção na ferramenta de cálculos de geometrias que indica se o cálcul…

…o de área e perímetro deverá ser feito para as novas geometrias criadas
classesphp/classe_analise.php
... ... @@ -2189,8 +2189,6 @@ $operacao - Tipo de análise.
2189 2189 $this->salva();
2190 2190 $final = array();
2191 2191 $final["layer"] = $operacao." ".(implode(" ",$lista));
2192   -
2193   -
2194 2192 $final["dados"][] = array("id"=>"0","wkt"=>($calculo[0]["gwkt"]),"valores"=>$valoresoriginais,"imagem"=>($imagem["url"]));
2195 2193 $this->serializeGeo($nomegeo,$final);
2196 2194 }
... ...
classesphp/mapa_controle.php
... ... @@ -274,6 +274,10 @@ Uniăo, intersecçăo, etc.
274 274 include_once("classe_analise.php");
275 275 $m = new Analise($map_file,"");
276 276 $retorno = $m->funcoesGeometrias($dir_tmp,$imgdir,$lista,$operacao);
  277 + if($recalcareaper == "true"){
  278 + $m->calculaGeometrias($dir_tmp,$imgdir,basename($retorno),"area",$postgis_con,$srid_area);
  279 + $m->calculaGeometrias($dir_tmp,$imgdir,basename($retorno),"perimetro",$postgis_con,$srid_area);
  280 + }
277 281 break;
278 282 /*
279 283 Valor: CALCULAGEOMETRIAS
... ...
ferramentas/analisageometrias/index.js.php
... ... @@ -55,6 +55,7 @@ i3GEOF.analisaGeometrias = {
55 55 */
56 56 inicia: function(iddiv){
57 57 try{
  58 + var temp,combot;
58 59 $i(iddiv).innerHTML += i3GEOF.analisaGeometrias.html();
59 60 i3GEO.guias.mostraGuiaFerramenta("i3GEOanalisageometrias1","i3GEOanalisageometrias");
60 61 //eventos das guias
... ... @@ -73,13 +74,37 @@ i3GEOF.analisaGeometrias = {
73 74 "i3GEOanalisageometriasbotao1",
74 75 {onclick:{fn: i3GEOF.analisaGeometrias.capturageo}}
75 76 );
  77 + new YAHOO.widget.Button(
  78 + "i3GEOanalisageometriasbotaocalculo",
  79 + {onclick:{fn: i3GEOF.analisaGeometrias.calculo}}
  80 + );
  81 + temp = $i("i3GEOanalisageometriasbotaocalculo-button").style;
  82 + temp.minHeight = "1.5em";
  83 + temp.padding = "0px 5px";
  84 +
  85 + new YAHOO.widget.Button(
  86 + "i3GEOanalisageometriasbotaofuncoes",
  87 + {onclick:{fn: i3GEOF.analisaGeometrias.funcoes}}
  88 + );
  89 + temp = $i("i3GEOanalisageometriasbotaofuncoes-button").style;
  90 + temp.minHeight = "1.5em";
  91 + temp.padding = "0px 5px";
  92 +
  93 + new YAHOO.widget.Button(
  94 + "i3GEOanalisageometriasbotaofuncoes1",
  95 + {onclick:{fn: i3GEOF.analisaGeometrias.funcoes1}}
  96 + );
  97 + temp = $i("i3GEOanalisageometriasbotaofuncoes1-button").style;
  98 + temp.minHeight = "1.5em";
  99 + temp.padding = "0px 5px";
  100 +
76 101 i3GEO.util.mensagemAjuda("i3GEOanalisageometriasmen1",$i("i3GEOanalisageometriasmen1").innerHTML);
77 102 i3GEO.util.mensagemAjuda("i3GEOanalisageometriasmen2",$i("i3GEOanalisageometriasmen2").innerHTML);
78 103 i3GEO.util.mensagemAjuda("i3GEOanalisageometriasmen3",$i("i3GEOanalisageometriasmen3").innerHTML);
79 104 g_tipoacao="";
80 105 g_operacao="";
81 106 i3GEOF.analisaGeometrias.ativaFoco();
82   - var combot = "<select style='font-size:11px' id='i3GEOanalisageometriastipoOperacao' onchange='i3GEOF.analisaGeometrias.operacao(this)' >";
  107 + combot = "<select style='font-size:11px' id='i3GEOanalisageometriastipoOperacao' onchange='i3GEOF.analisaGeometrias.operacao(this)' >";
83 108 combot += "<option value='adiciona' >Adiciona</option>";
84 109 combot += "<option value='retira' >Retira</option>";
85 110 combot += "<option value='inverte' >Inverte</option>";
... ... @@ -128,27 +153,28 @@ i3GEOF.analisaGeometrias = {
128 153 ins += ' </div>';
129 154 ins += ' </div>';
130 155 ins += ' <div class=guiaobj id="i3GEOanalisageometrias3obj" style="left:1px;display:none;">';
  156 + ins += ' <p class=paragrafo ><input style="cursor:pointer;vertical-align:text-bottom" type=checkbox id=i3geoanalisageometriassemprecalcula /> Recalcula a área e o perímetro das novas geometrias';
131 157 ins += ' <p class=paragrafo >Operações que obtém descrições sobre a geometria, retornando valores que são adicionados aos itens da geometria:';
132   - ins += ' <br><select onchange="i3GEOF.analisaGeometrias.calculo(this)" >';
  158 + ins += ' <p class=paragrafo ><select id=i3GEOanalisageometriasselecaocalculo style="position:relative;top:-3px;" >';
133 159 ins += ' <option value="" selected >---</option>';
134   - ins += ' <option value=area >&aacute;rea</option>';
135   - ins += ' <option value=perimetro >per&iacute;metro</option>';
136   - ins += ' </select><br>';
  160 + ins += ' <option value=area >&Aacute;rea</option>';
  161 + ins += ' <option value=perimetro >Per&iacute;metro</option>';
  162 + ins += ' </select><input id=i3GEOanalisageometriasbotaocalculo type=button value="ok"/></p>';
137 163 ins += ' <p class=paragrafo >Operações que criam novas geometrias a partir de duas ou mais geometrias:';
138   - ins += ' <br><select onchange="i3GEOF.analisaGeometrias.funcoes(this)" >';
  164 + ins += ' <p class=paragrafo ><select id=i3GEOanalisageometriasselecaofuncoes style="position:relative;top:-3px;" >';
139 165 ins += ' <option value="" selected >---</option>';
140 166 ins += ' <option value=union_geos >Uni&atilde;o</option>';
141 167 ins += ' <option value=intersection >Intersec&ccedil;&atilde;o</option>';
142 168 ins += ' <option value=difference >Diferen&ccedil;a</option>';
143 169 ins += ' <option value=symdifference >Diferen&ccedil;a inversa</option>';
144 170 ins += ' <option value=convexhull >Convexo</option>';
145   - ins += ' </select>';
  171 + ins += ' </select><input id=i3GEOanalisageometriasbotaofuncoes type=button value="ok"/></p>';
146 172 ins += ' <p class=paragrafo >Operações que atuam sobre uma única geometria:';
147   - ins += ' <br><select onchange="i3GEOF.analisaGeometrias.funcoes1(this)" >';
  173 + ins += ' <p class=paragrafo ><select id=i3GEOanalisageometriasselecaofuncoes1 style="position:relative;top:-3px;" >';
148 174 ins += ' <option value="" selected >---</option>';
149   - ins += ' <option value=convexhull >convexo</option>';
150   - ins += ' <option value=boundary >entorno</option>';
151   - ins += ' </select>';
  175 + ins += ' <option value=convexhull >Convexo</option>';
  176 + ins += ' <option value=boundary >Entorno</option>';
  177 + ins += ' </select><input id=i3GEOanalisageometriasbotaofuncoes1 type=button value="ok"/></p>';
152 178 ins += ' <div id=i3GEOanalisageometriasmen2 style="text-align:left;left:0px" >';
153 179 ins += ' <p class=paragrafo >As opera&ccedil;&otilde;es de an&aacute;lise s&atilde;o executadas sobre as geometrias selecionadas.';
154 180 ins += ' <p class=paragrafo >Para maiores informações, veja: <a href="http://www.opengeospatial.org/standards/sfs" target=blank >OGC</a>, <a href="http://postgis.refractions.net/docs/ch06.html" target=blank >PostGis, </a>e <a href="http://www.vividsolutions.com/jts/tests/index.html" target=blank >JTS</a>';
... ... @@ -356,12 +382,18 @@ i3GEOF.analisaGeometrias = {
356 382 Exclui do servidor as geometrias marcadas na lista de geometrias
357 383 */
358 384 excluirGeo: function(){
  385 +
359 386 if(i3GEOF.analisaGeometrias.aguarde.visibility === "visible")
360 387 {return;}
361 388 else
362 389 {i3GEOF.analisaGeometrias.aguarde.visibility = "visible";}
363 390 var lista,p,cp;
364 391 lista = i3GEOF.analisaGeometrias.pegaGeometriasMarcadas();
  392 + if(lista == ""){
  393 + alert("Nenhuma geometria foi marcada");
  394 + i3GEOF.analisaGeometrias.aguarde.visibility = "hidden";
  395 + return;
  396 + }
365 397 $i("i3GEOanalisageometriaslistadegeometrias").innerHTML = "<p class=paragrafo >Aguarde...";
366 398 p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=removergeometrias&lista="+lista;
367 399 cp = new cpaint();
... ... @@ -384,6 +416,11 @@ i3GEOF.analisaGeometrias = {
384 416 i3GEOF.analisaGeometrias.aguarde.visibility = "hidden";
385 417 };
386 418 lista = i3GEOF.analisaGeometrias.pegaGeometriasMarcadas();
  419 + if(lista == ""){
  420 + alert("Nenhuma geometria foi marcada");
  421 + i3GEOF.analisaGeometrias.aguarde.visibility = "hidden";
  422 + return;
  423 + }
387 424 p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=incmapageometrias&lista="+lista;
388 425 cp = new cpaint();
389 426 cp.set_response_type("JSON");
... ... @@ -408,18 +445,27 @@ i3GEOF.analisaGeometrias = {
408 445 Function: calculo
409 446  
410 447 Realiza cálculos do tipo área e perímetro sobre as geometrias marcadas
  448 +
411 449 */
412   - calculo: function(obj){
  450 + calculo: function(){
  451 + var lista,
  452 + temp,
  453 + cp = new cpaint(),
  454 + p,
  455 + obj = $i("i3GEOanalisageometriasselecaocalculo");
  456 +
413 457 if (obj.value !== ""){
414 458 if(i3GEOF.analisaGeometrias.aguarde.visibility === "visible")
415 459 {return;}
416 460 else
417 461 {i3GEOF.analisaGeometrias.aguarde.visibility = "visible";}
418   - var lista = i3GEOF.analisaGeometrias.pegaGeometriasMarcadas(),
419   - temp,
420   - cp = new cpaint(),
421   - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=calculaGeometrias&operacao="+obj.value+"&lista="+lista;
422   -
  462 + lista = i3GEOF.analisaGeometrias.pegaGeometriasMarcadas();
  463 + if(lista == ""){
  464 + alert("Nenhuma geometria foi marcada");
  465 + i3GEOF.analisaGeometrias.aguarde.visibility = "hidden";
  466 + return;
  467 + }
  468 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=calculaGeometrias&operacao="+obj.value+"&lista="+lista;
423 469 temp = function(){
424 470 i3GEOF.analisaGeometrias.aguarde.visibility = "hidden";
425 471 };
... ... @@ -432,16 +478,26 @@ i3GEOF.analisaGeometrias = {
432 478  
433 479 Realiza operações geométricas de cruzamento entre geometrias
434 480 */
435   - funcoes: function(obj){
  481 + funcoes: function(){
  482 + var lista,
  483 + temp,
  484 + cp = new cpaint(),
  485 + p,
  486 + obj = $i("i3GEOanalisageometriasselecaofuncoes");
  487 +
436 488 if (obj.value !== ""){
437 489 if(i3GEOF.analisaGeometrias.aguarde.visibility === "visible")
438 490 {return;}
439 491 else
440 492 {i3GEOF.analisaGeometrias.aguarde.visibility = "visible";}
441   - var lista = i3GEOF.analisaGeometrias.pegaGeometriasMarcadas(),
442   - temp,
443   - cp = new cpaint(),
444   - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=funcoesGeometrias&operacao="+obj.value+"&lista="+lista;
  493 +
  494 + lista = i3GEOF.analisaGeometrias.pegaGeometriasMarcadas()
  495 + if(lista == ""){
  496 + alert("Nenhuma geometria foi marcada");
  497 + i3GEOF.analisaGeometrias.aguarde.visibility = "hidden";
  498 + return;
  499 + }
  500 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=funcoesGeometrias&operacao="+obj.value+"&lista="+lista+"&recalcareaper="+$i("i3geoanalisageometriassemprecalcula").checked
445 501  
446 502 temp = function(){
447 503 i3GEOF.analisaGeometrias.aguarde.visibility = "hidden";
... ... @@ -455,18 +511,27 @@ i3GEOF.analisaGeometrias = {
455 511  
456 512 Realiza operações geométricas em uma única geometria
457 513 */
458   - funcoes1: function(obj){
  514 + funcoes1: function(){
  515 + var lista,
  516 + temp,
  517 + cp = new cpaint(),
  518 + p,
  519 + obj = $i("i3GEOanalisageometriasselecaofuncoes1");
  520 +
459 521 if (obj.value !== ""){
460 522 if(i3GEOF.analisaGeometrias.aguarde.visibility === "visible")
461 523 {return;}
462 524 else
463 525 {i3GEOF.analisaGeometrias.aguarde.visibility = "visible";}
464   - var lista = i3GEOF.analisaGeometrias.pegaGeometriasMarcadas(),
465   - temp,
466   - cp = new cpaint(),
467   - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=funcoesGeometrias&operacao="+obj.value+"&lista="+lista;
  526 + lista = i3GEOF.analisaGeometrias.pegaGeometriasMarcadas();
  527 + if(lista == ""){
  528 + alert("Nenhuma geometria foi marcada");
  529 + i3GEOF.analisaGeometrias.aguarde.visibility = "hidden";
  530 + return;
  531 + }
  532 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=funcoesGeometrias&operacao="+obj.value+"&lista="+lista+"&recalcareaper="+$i("i3geoanalisageometriassemprecalcula").checked;
468 533  
469   - temp = function(){
  534 + temp = function(retorno){
470 535 i3GEOF.analisaGeometrias.aguarde.visibility = "hidden";
471 536 };
472 537 cp.set_response_type("JSON");
... ...