Commit 895263ec482ada98a3394f6cb9f0c9af210a637f
1 parent
60398593
Exists in
master
and in
7 other branches
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
Showing
3 changed files
with
97 additions
and
30 deletions
Show diff stats
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 >área</option>'; | |
| 135 | - ins += ' <option value=perimetro >perímetro</option>'; | |
| 136 | - ins += ' </select><br>'; | |
| 160 | + ins += ' <option value=area >Área</option>'; | |
| 161 | + ins += ' <option value=perimetro >Perí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ão</option>'; |
| 141 | 167 | ins += ' <option value=intersection >Intersecção</option>'; |
| 142 | 168 | ins += ' <option value=difference >Diferença</option>'; |
| 143 | 169 | ins += ' <option value=symdifference >Diferenç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ções de análise sã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"); | ... | ... |