From 0e2fc34d940e38cd87e582efaad51c65f808edf3 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Sat, 25 Jan 2014 13:29:31 +0000 Subject: [PATCH] Correções nas ferramentas de geração de grades --- classesphp/classe_analise.php | 522 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ferramentas/gradehex/dicionario.js | 14 +++++++++++++- ferramentas/gradehex/exec.php | 9 ++++++++- ferramentas/gradehex/index.js | 34 ++++++++++++++++++++++++---------- ferramentas/gradepol/dicionario.js | 12 ++++++++++++ ferramentas/gradepol/exec.php | 8 +++++++- ferramentas/gradepol/index.js | 40 +++++++++++++++++++++++++++------------- ferramentas/gradepontos/dicionario.js | 4 ++-- ferramentas/gradepontos/exec.php | 8 +++++++- ferramentas/gradepontos/index.js | 40 +++++++++++++++++++++++++++------------- 10 files changed, 377 insertions(+), 314 deletions(-) diff --git a/classesphp/classe_analise.php b/classesphp/classe_analise.php index ed3d8c3..5f6b7ed 100644 --- a/classesphp/classe_analise.php +++ b/classesphp/classe_analise.php @@ -1579,7 +1579,7 @@ $nptx - Número de pontos em X (opcional) $npty - Número de pontos em Y (opcional) */ - function gradeDePontos($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty) + function gradeDePontos($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty,$proj=false) { set_time_limit(180); //para manipular dbf @@ -1589,7 +1589,25 @@ $npty - Número de pontos em Y (opcional) $nomegrade = nomeRandomico(); $nomeshp = $this->diretorio."/".$nomegrade; $this->mapa->preparequery(); - $ext = $this->mapa->extent; + $r = $this->mapa->extent; + $ext = ms_newRectObj(); + $ext->setextent($r->minx,$r->miny,$r->maxx,$r->maxy); + if($proj == true){ + //caso precise projetar + $projInObj = ms_newprojectionobj("proj=latlong,a=6378137,b=6378137"); + $projOutObj = ms_newprojectionobj("proj=merc,a=6378137,b=6378137,lat_ts=0.0,lon_0=0.0,x_0=0.0,y_0=0,k=1.0,units=m"); + + $ext->project($projInObj, $projOutObj); + + $pt = ms_newpointobj(); + $pt->setXY($px,$py); + + $pt->project($projInObj, $projOutObj); + + $px = $pt->x; + $py = $pt->y; + } + $fx = $ext->maxx; $fy = $ext->miny; //calcula a distância entre os pontos em dd @@ -1617,57 +1635,30 @@ $npty - Número de pontos em Y (opcional) else $db=dbase_open($dbname,2); $reg = array(); - $w = $this->mapa->width; - $h = $this->mapa->height; - if ($h > $w) + $valorcoluna = $px; + for ($coluna = 0; $coluna < $nptx; $coluna++) { + $x = $valorcoluna; $valorlinha = $py; for ($linha = 0; $linha < $npty; $linha++) { $y = $valorlinha; - $valorcoluna = $px; - for ($coluna = 0; $coluna < $nptx; $coluna++) - { - $x = $valorcoluna; - $valorcoluna = $valorcoluna + $xdd; - $poPoint = ms_newpointobj(); - $poPoint->setXY($x,$y); - $novoshpf->addpoint($poPoint); - $reg[] = $x; - $reg[] = $y; - if($this->dbaseExiste == false) - xbase_add_record($db,$reg); - else - dbase_add_record($db,$reg); - $reg = array(); - } $valorlinha = $valorlinha - $ydd; - } - } - else - { - $valorcoluna = $px; - for ($coluna = 0; $coluna < $nptx; $coluna++) - { - $x = $valorcoluna; - $valorlinha = $py; - for ($linha = 0; $linha < $npty; $linha++) - { - $y = $valorlinha; - $valorlinha = $valorlinha - $ydd; - $poPoint = ms_newpointobj(); - $poPoint->setXY($x,$y); - $novoshpf->addpoint($poPoint); - $reg[] = $x; - $reg[] = $y; - if($this->dbaseExiste == false) - xbase_add_record($db,$reg); - else - dbase_add_record($db,$reg); - $reg = array(); + $poPoint = ms_newpointobj(); + $poPoint->setXY($x,$y); + if($proj == true){ + $poPoint->project($projOutObj,$projInObj); } - $valorcoluna = $valorcoluna + $xdd; + $novoshpf->addpoint($poPoint); + $reg[] = $x; + $reg[] = $y; + if($this->dbaseExiste == false) + xbase_add_record($db,$reg); + else + dbase_add_record($db,$reg); + $reg = array(); } + $valorcoluna = $valorcoluna + $xdd; } if($this->dbaseExiste == false) xbase_close($db); @@ -1705,7 +1696,7 @@ $nptx - Número de pontos em X (opcional) $npty - Número de pontos em Y (opcional) */ - function gradeDePol($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty) + function gradeDePol($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty,$proj=false) { set_time_limit(180); //para manipular dbf @@ -1716,7 +1707,24 @@ $npty - Número de pontos em Y (opcional) $nomeshp = $this->diretorio."/".$nomegrade; //pega a extensão geográfica do mapa $this->mapa->preparequery(); - $ext = $this->mapa->extent; + $r = $this->mapa->extent; + $ext = ms_newRectObj(); + $ext->setextent($r->minx,$r->miny,$r->maxx,$r->maxy); + if($proj == true){ + //caso precise projetar + $projInObj = ms_newprojectionobj("proj=latlong,a=6378137,b=6378137"); + $projOutObj = ms_newprojectionobj("proj=merc,a=6378137,b=6378137,lat_ts=0.0,lon_0=0.0,x_0=0.0,y_0=0,k=1.0,units=m"); + + $ext->project($projInObj, $projOutObj); + + $pt = ms_newpointobj(); + $pt->setXY($px,$py); + + $pt->project($projInObj, $projOutObj); + + $px = $pt->x; + $py = $pt->y; + } $fx = $ext->maxx; $fy = $ext->miny; //calcula a distância entre os pontos em dd @@ -1743,83 +1751,46 @@ $npty - Número de pontos em Y (opcional) else $db=dbase_open($dbname,2); $reg = array(); - $w = $this->mapa->width; - $h = $this->mapa->height; - if ($h > $w) - { + $valorcoluna = $px; + for ($coluna = 0; $coluna < $nptx; $coluna++){ + $x = $valorcoluna; $valorlinha = $py; - for ($linha = 0; $linha < $npty; $linha++) - { + for ($linha = 0; $linha < $npty; $linha++){ $y = $valorlinha; - $valorcoluna = $px; - for ($coluna = 0; $coluna < $nptx; $coluna++) - { - $x = $valorcoluna; - $valorcoluna = $valorcoluna + $xdd; - $poPoint1 = ms_newpointobj(); - $poPoint2 = ms_newpointobj(); - $poPoint3 = ms_newpointobj(); - $poPoint4 = ms_newpointobj(); - $poPoint1->setXY($x,$y); - $poPoint2->setXY(($x + $xdd),$y); - $poPoint3->setXY(($x + $xdd),($y - $ydd)); - $poPoint4->setXY($x,($y - $ydd)); - $linhas = ms_newLineObj(); - $linhas->add($poPoint1); - $linhas->add($poPoint2); - $linhas->add($poPoint3); - $linhas->add($poPoint4); - $linhas->add($poPoint1); - $shapen = ms_newShapeObj(MS_SHP_POLYGON); - $shapen->add($linhas); - $novoshpf->addShape($shapen); - $reg[] = $linha."-".$coluna; - if($this->dbaseExiste == false) - xbase_add_record($db,$reg); - else - dbase_add_record($db,$reg); - $reg = array(); - } $valorlinha = $valorlinha - $ydd; - } - } - else - { - $valorcoluna = $px; - for ($coluna = 0; $coluna < $nptx; $coluna++) - { - $x = $valorcoluna; - $valorlinha = $py; - for ($linha = 0; $linha < $npty; $linha++) - { - $y = $valorlinha; - $valorlinha = $valorlinha - $ydd; - $poPoint1 = ms_newpointobj(); - $poPoint2 = ms_newpointobj(); - $poPoint3 = ms_newpointobj(); - $poPoint4 = ms_newpointobj(); - $poPoint1->setXY($x,$y); - $poPoint2->setXY(($x + $xdd),$y); - $poPoint3->setXY(($x + $xdd),($y - $ydd)); - $poPoint4->setXY($x,($y - $ydd)); - $linhas = ms_newLineObj(); - $linhas->add($poPoint1); - $linhas->add($poPoint2); - $linhas->add($poPoint3); - $linhas->add($poPoint4); - $linhas->add($poPoint1); - $shapen = ms_newShapeObj(MS_SHP_POLYGON); - $shapen->add($linhas); - $novoshpf->addShape($shapen); - $reg[] = $linha."-".$coluna; - if($this->dbaseExiste == false) - xbase_add_record($db,$reg); - else - dbase_add_record($db,$reg); - $reg = array(); + $poPoint1 = ms_newpointobj(); + $poPoint2 = ms_newpointobj(); + $poPoint3 = ms_newpointobj(); + $poPoint4 = ms_newpointobj(); + $poPoint1->setXY($x,$y); + $poPoint2->setXY(($x + $xdd),$y); + $poPoint3->setXY(($x + $xdd),($y - $ydd)); + $poPoint4->setXY($x,($y - $ydd)); + + if($proj == true){ + $poPoint1->project($projOutObj,$projInObj); + $poPoint2->project($projOutObj,$projInObj); + $poPoint3->project($projOutObj,$projInObj); + $poPoint4->project($projOutObj,$projInObj); } - $valorcoluna = $valorcoluna + $xdd; + + $linhas = ms_newLineObj(); + $linhas->add($poPoint1); + $linhas->add($poPoint2); + $linhas->add($poPoint3); + $linhas->add($poPoint4); + $linhas->add($poPoint1); + $shapen = ms_newShapeObj(MS_SHP_POLYGON); + $shapen->add($linhas); + $novoshpf->addShape($shapen); + $reg[] = $linha."-".$coluna; + if($this->dbaseExiste == false) + xbase_add_record($db,$reg); + else + dbase_add_record($db,$reg); + $reg = array(); } + $valorcoluna = $valorcoluna + $xdd; } if($this->dbaseExiste == false) xbase_close($db); @@ -1835,169 +1806,176 @@ $npty - Número de pontos em Y (opcional) {unlink ($this->qyfile);} return("ok"); } -/* -function: gradeDeHex - -Gera uma grade de polígonos hexagonais definido em décimos de grau. - -Salva o mapa acrescentando um novo layer com a grade. - -parameters: -$xdd - Espaçamento em x. - -$ydd - Espaçamento em y. - -$px - X do primeiro ponto (superior esquerdo) + /* + function: gradeDeHex + + Gera uma grade de polígonos hexagonais regulares definido em décimos de grau. + + Salva o mapa acrescentando um novo layer com a grade. + + parameters: + + $dd - Comprimento dos lados (em metros se $proj=true) + + $px - X do primeiro ponto (superior esquerdo) + + $py - Y do primeiro ponto. + + $locaplic - Endereço da aplicação. + + $nptx - Número de pontos em X (opcional) + + $npty - Número de pontos em Y (opcional) + + $proj - A grade deve ser gerada em unidades metricas e projetada para geografica + */ + function gradeDeHex($dd,$px,$py,$locaplic,$nptx,$npty,$proj=false){ + set_time_limit(180); + //http://gmc.yoyogames.com/index.php?showtopic=336183 + $hh = (sin(deg2rad(30)) * $dd); + $rr = (cos(deg2rad(30)) * $dd); + //para manipular dbf + if($this->dbaseExiste == false){ + include_once dirname(__FILE__)."/../pacotes/phpxbase/api_conversion.php"; + } + $nomegrade = nomeRandomico(); + $nomeshp = $this->diretorio."/".$nomegrade; + //pega a extensão geográfica do mapa + $this->mapa->preparequery(); + $r = $this->mapa->extent; + $ext = ms_newRectObj(); + $ext->setextent($r->minx,$r->miny,$r->maxx,$r->maxy); + if($proj == true){ + //caso precise projetar + $projInObj = ms_newprojectionobj("proj=latlong,a=6378137,b=6378137"); + $projOutObj = ms_newprojectionobj("proj=merc,a=6378137,b=6378137,lat_ts=0.0,lon_0=0.0,x_0=0.0,y_0=0,k=1.0,units=m"); -$py - Y do primeiro ponto. + $ext->project($projInObj, $projOutObj); -$locaplic - Endereço da aplicação. + $pt = ms_newpointobj(); + $pt->setXY($px,$py); -$nptx - Número de pontos em X (opcional) + $pt->project($projInObj, $projOutObj); -$npty - Número de pontos em Y (opcional) -*/ - function gradeDeHex($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty) - { - set_time_limit(180); - //para manipular dbf - if($this->dbaseExiste == false){ - include_once dirname(__FILE__)."/../pacotes/phpxbase/api_conversion.php"; + $px = $pt->x; + $py = $pt->y; } - $nomegrade = nomeRandomico(); - $nomeshp = $this->diretorio."/".$nomegrade; - //pega a extensão geográfica do mapa - $this->mapa->preparequery(); - $ext = $this->mapa->extent; - $fx = $ext->maxx; + + $fx = $ext->maxx; $fy = $ext->miny; - //calcula a distância entre os pontos em dd - $distx = $fx - $px; - $disty = $fy - $py; - if ($distx < 0){$distx = $distx * -1;} - if ($disty < 0){$disty = $disty * -1;} - if ($nptx == "") - {$nptx = round(($distx / $xdd),0);} - if ($npty == "") - {$npty = round(($disty / $ydd),0);} - // cria o shapefile - $novoshpf = ms_newShapefileObj($nomeshp, MS_SHP_POLYGON); - $def = array(); - $def[] = array("id","C","20"); - if($this->dbaseExiste == false) - {$db = xbase_create($nomeshp.".dbf", $def);xbase_close($db);} - else - {$db = dbase_create($nomeshp.".dbf", $def);dbase_close($db);} - //acrescenta os pontos no novo shapefile - $dbname = $nomeshp.".dbf"; - if($this->dbaseExiste == false) - $db=xbase_open($dbname,2); - else - $db=dbase_open($dbname,2); - $reg = array(); - $w = $this->mapa->width; - $h = $this->mapa->height; - if ($h > $w) - { - $valorlinha = $py; - for ($linha = 0; $linha < $npty; $linha++) - { - $y = $valorlinha; - $valorcoluna = $px; - for ($coluna = 0; $coluna < $nptx; $coluna++) - { - $x = $valorcoluna; - $valorcoluna = $valorcoluna + $xdd; - $poPoint1 = ms_newpointobj(); - $poPoint2 = ms_newpointobj(); - $poPoint3 = ms_newpointobj(); - $poPoint4 = ms_newpointobj(); - $poPoint1->setXY($x,$y); - $poPoint2->setXY(($x + $xdd),$y); - $poPoint3->setXY(($x + $xdd),($y - $ydd)); - $poPoint4->setXY($x,($y - $ydd)); - $linhas = ms_newLineObj(); - $linhas->add($poPoint1); - $linhas->add($poPoint2); - $linhas->add($poPoint3); - $linhas->add($poPoint4); - $linhas->add($poPoint1); - $shapen = ms_newShapeObj(MS_SHP_POLYGON); - $shapen->add($linhas); - $novoshpf->addShape($shapen); - $reg[] = $linha."-".$coluna; - if($this->dbaseExiste == false) - xbase_add_record($db,$reg); - else - dbase_add_record($db,$reg); - $reg = array(); - } - $valorlinha = $valorlinha - $ydd; + + //calcula a distância entre os pontos em dd se nao tiver sido especificada ou for 0 + $distx = $fx - $px; + $disty = $fy - $py; + if ($distx < 0){$distx = $distx * -1;} + if ($disty < 0){$disty = $disty * -1;} + if ($nptx == "") + {$nptx = round(($distx / $dd),0);} + if ($npty == "") + {$npty = round(($disty / $dd),0);} + // cria o shapefile + $novoshpf = ms_newShapefileObj($nomeshp, MS_SHP_POLYGON); + $def = array(); + $def[] = array("id","C","20"); + if($this->dbaseExiste == false) + {$db = xbase_create($nomeshp.".dbf", $def);xbase_close($db);} + else + {$db = dbase_create($nomeshp.".dbf", $def);dbase_close($db);} + //acrescenta os pontos no novo shapefile + $dbname = $nomeshp.".dbf"; + if($this->dbaseExiste == false) + $db=xbase_open($dbname,2); + else + $db=dbase_open($dbname,2); + $reg = array(); + $w = $this->mapa->width; + $h = $this->mapa->height; + + $valorcoluna = $px; + $par = false; + for ($coluna = 0; $coluna < $nptx; $coluna++){ + $x = $valorcoluna; + $valorlinha = $py; + + if ($par == true){ + $valorlinha = $valorlinha - $rr; + $par = false; + } + else{ + //$y = $y + $hh; + $par = true; } - } - else - { - $valorcoluna = $px; - for ($coluna = 0; $coluna < $nptx; $coluna++) - { - $x = $valorcoluna; - $valorlinha = $py; - $par = true; - for ($linha = 0; $linha < $npty; $linha++) - { - $y = $valorlinha; - $valorlinha = $valorlinha - $ydd - ($ydd/2); - $poPoint1 = ms_newpointobj(); - $poPoint2 = ms_newpointobj(); - $poPoint3 = ms_newpointobj(); - $poPoint4 = ms_newpointobj(); - $poPoint5 = ms_newpointobj(); - $poPoint6 = ms_newpointobj(); - $poPoint1->setXY($x,$y); - $poPoint2->setXY(($x + ($xdd/2)),$y+($ydd/2)); - $poPoint3->setXY($x + $xdd,$y); - $poPoint4->setXY($x + $xdd,$y - $ydd); - $poPoint5->setXY(($x + ($xdd/2)),$y - $ydd - ($ydd/2)); - $poPoint6->setXY($x,$y - $ydd); - $linhas = ms_newLineObj(); - $linhas->add($poPoint1); - $linhas->add($poPoint2); - $linhas->add($poPoint3); - $linhas->add($poPoint4); - $linhas->add($poPoint5); - $linhas->add($poPoint6); - $linhas->add($poPoint1); - $shapen = ms_newShapeObj(MS_SHP_POLYGON); - $shapen->add($linhas); - $novoshpf->addShape($shapen); - $reg[] = $linha."-".$coluna; - if($this->dbaseExiste == false) - xbase_add_record($db,$reg); - else - dbase_add_record($db,$reg); - $reg = array(); - if ($par) - {$x=$x+($xdd/2);$par=false;} - else - {$x=$x-($xdd/2);$par=true;} + + for ($linha = 0; $linha < $npty; $linha++){ + $y = $valorlinha; + $valorlinha = $valorlinha - (2 * $rr); + + $poPoint1 = ms_newpointobj(); + $poPoint2 = ms_newpointobj(); + $poPoint3 = ms_newpointobj(); + $poPoint4 = ms_newpointobj(); + $poPoint5 = ms_newpointobj(); + $poPoint6 = ms_newpointobj(); + + //Point 0: $x, $y + //Point 1: x + s, y + //Point 2: x + s + h, y + r + //Point 3: x + s, y + r + r + //Point 4: x, y + r + r + //Point 5: x - h, y + r + $poPoint1->setXY($x,$y); + $poPoint2->setXY(($x + $dd),$y); + $poPoint3->setXY($x + $dd + $hh,$y - $rr); + $poPoint4->setXY($x + $dd, $y - $rr - $rr); + $poPoint5->setXY($x,$y - $rr - $rr); + $poPoint6->setXY($x - $hh,$y - $rr); + + if($proj == true){ + $poPoint1->project($projOutObj,$projInObj); + $poPoint2->project($projOutObj,$projInObj); + $poPoint3->project($projOutObj,$projInObj); + $poPoint4->project($projOutObj,$projInObj); + $poPoint5->project($projOutObj,$projInObj); + $poPoint6->project($projOutObj,$projInObj); } - $valorcoluna = $valorcoluna + $xdd; - } - } - if($this->dbaseExiste == false) - xbase_close($db); - else - dbase_close($db); + + + $linhas = ms_newLineObj(); + $linhas->add($poPoint1); + $linhas->add($poPoint2); + $linhas->add($poPoint3); + $linhas->add($poPoint4); + $linhas->add($poPoint5); + $linhas->add($poPoint6); + $linhas->add($poPoint1); + $shapen = ms_newShapeObj(MS_SHP_POLYGON); + $shapen->add($linhas); + $novoshpf->addShape($shapen); + $reg[] = $linha."-".$coluna; + if($this->dbaseExiste == false) + xbase_add_record($db,$reg); + else + dbase_add_record($db,$reg); + $reg = array(); + } + $valorcoluna = $valorcoluna + $dd + $hh; + } + if($this->dbaseExiste == false) + xbase_close($db); + else + dbase_close($db); //adiciona o novo tema no mapa - $novolayer = criaLayer($this->mapa,MS_LAYER_POLYGON,MS_DEFAULT,("Grade (".$nomegrade.")"),$metaClasse="SIM"); - $novolayer->set("data",$nomeshp.".shp"); - $novolayer->setmetadata("DOWNLOAD","SIM"); - $novolayer->setmetadata("TEMALOCAL","SIM"); - $novolayer->set("opacity","50"); - if (file_exists($this->qyfile)) - {unlink ($this->qyfile);} + + $novolayer = criaLayer($this->mapa,MS_LAYER_POLYGON,MS_DEFAULT,("Grade (".$nomegrade.")"),$metaClasse="SIM"); + $novolayer->set("data",$nomeshp.".shp"); + $novolayer->setmetadata("DOWNLOAD","SIM"); + $novolayer->setmetadata("TEMALOCAL","SIM"); + $novolayer->set("opacity","50"); + if (file_exists($this->qyfile)) + {unlink ($this->qyfile);} return("ok"); - } + + } /* function: nptPol diff --git a/ferramentas/gradehex/dicionario.js b/ferramentas/gradehex/dicionario.js index 8a8f043..501b1e0 100644 --- a/ferramentas/gradehex/dicionario.js +++ b/ferramentas/gradehex/dicionario.js @@ -19,7 +19,7 @@ i3GEOF.gradeDeHex.dicionario = { it:"" }], 4: [{ - pt:"Espaçamento da grade", + pt:"Tamanho dos lados", en:"", es:"", it:"" @@ -77,5 +77,17 @@ i3GEOF.gradeDeHex.dicionario = { en:"", es:"", it:"" + }], + 14: [{ + pt:"Utiliza a projeção Mercator na geração da grade", + en:"", + es:"", + it:"" + }], + 15: [{ + pt:"Metros", + en:"", + es:"", + it:"" }] }; \ No newline at end of file diff --git a/ferramentas/gradehex/exec.php b/ferramentas/gradehex/exec.php index d4d018a..65663bb 100644 --- a/ferramentas/gradehex/exec.php +++ b/ferramentas/gradehex/exec.php @@ -20,7 +20,14 @@ Salva o mapa acrescentando um novo layer com a grade. copiaSeguranca($map_file); $m = new Analise($map_file,$tema); if(!isset($tema)){$tema = "";} - $retorno = $m->gradeDeHex($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty); + + if($proj == "sim"){ + $proj = true; + } + else{ + $proj = false; + } + $retorno = $m->gradeDeHex($dd,$px,$py,$locaplic,$nptx,$npty,$proj); $m->salva(); $_SESSION["contadorsalva"]++; break; diff --git a/ferramentas/gradehex/index.js b/ferramentas/gradehex/index.js index fee89ff..e7b84f9 100644 --- a/ferramentas/gradehex/index.js +++ b/ferramentas/gradehex/index.js @@ -127,7 +127,7 @@ i3GEOF.gradeDeHex = { }; janela = i3GEO.janela.cria( "400px", - "150px", + "190px", "", "", "", @@ -156,18 +156,26 @@ i3GEOF.gradeDeHex = { var ins = "

"+$trad(1,i3GEOF.gradeDeHex.dicionario); ins += "

"+$trad(2,i3GEOF.gradeDeHex.dicionario); ins += "

"+$trad(3,i3GEOF.gradeDeHex.dicionario); + ins += "

 "+$trad(14,i3GEOF.gradeDeHex.dicionario); i3GEO.util.proximoAnterior("","i3GEOF.gradeDeHex.t1()",ins,"i3GEOF.gradeDeHex.t0()","i3GEOgradedehexresultado",true,"i3GEOF.gradeDeHex_rodape"); }, t1: function(){ var ins = "

"+$trad(4,i3GEOF.gradeDeHex.dicionario); - ins += "

X: "; - ins += $trad(5,i3GEOF.gradeDeHex.dicionario)+""; - ins += $trad(6,i3GEOF.gradeDeHex.dicionario)+""; - ins += $trad(7,i3GEOF.gradeDeHex.dicionario)+""; + ins += "

"; + if($i("i3GEOgradedehexProj").checked){ + ins += $trad(15,i3GEOF.gradeDeHex.dicionario)+""; + } + else{ + ins += $trad(5,i3GEOF.gradeDeHex.dicionario)+""; + ins += $trad(6,i3GEOF.gradeDeHex.dicionario)+""; + ins += $trad(7,i3GEOF.gradeDeHex.dicionario)+""; + } + /* ins += "

Y: "; ins += $trad(5,i3GEOF.gradeDeHex.dicionario)+""; ins += $trad(6,i3GEOF.gradeDeHex.dicionario)+""; ins += $trad(7,i3GEOF.gradeDeHex.dicionario)+""; + */ i3GEO.util.proximoAnterior("i3GEOF.gradeDeHex.t0()","i3GEOF.gradeDeHex.t2()",ins,"i3GEOF.gradeDeHex.t1()","i3GEOgradedehexresultado",true,"i3GEOF.gradeDeHex_rodape"); }, t2: function(){ @@ -217,14 +225,19 @@ i3GEOF.gradeDeHex = { if(i3GEOF.gradeDeHex.aguarde.visibility === "visible") {return;} i3GEOF.gradeDeHex.aguarde.visibility = "visible"; - var dx,dy,ix,iy,nptx,npty,fim,p,cp; - dx = i3GEO.calculo.dms2dd($i("i3GEOgradedehexxg").value,$i("i3GEOgradedehexxm").value,$i("i3GEOgradedehexxs").value); - dy = i3GEO.calculo.dms2dd($i("i3GEOgradedehexyg").value,$i("i3GEOgradedehexym").value,$i("i3GEOgradedehexys").value); + var dx,ix,iy,nptx,npty,fim,p,cp,proj = "nao"; + if(!$i("i3GEOgradedehexProj").checked){ + dx = i3GEO.calculo.dms2dd($i("i3GEOgradedehexxg").value,$i("i3GEOgradedehexxm").value,$i("i3GEOgradedehexxs").value); + } + else{ + proj = "sim"; + dx = $i("i3GEOgradedehexxg").value; + } ix = i3GEO.calculo.dms2dd($i("i3GEOgradedehexixg").value,$i("i3GEOgradedehexixm").value,$i("i3GEOgradedehexixs").value); iy = i3GEO.calculo.dms2dd($i("i3GEOgradedehexiyg").value,$i("i3GEOgradedehexiym").value,$i("i3GEOgradedehexiys").value); nptx = $i("i3GEOgradedehexnptx").value; npty = $i("i3GEOgradedehexnpty").value; - if ((dx == 0) || (dy == 0)) + if ((dx == 0)) {i3GEO.janela.tempoMsg($trad(12,i3GEOF.gradeDeHex.dicionario));return;} if ((nptx == 0) || (npty == 0)) {i3GEO.janela.tempoMsg($trad(13,i3GEOF.gradeDeHex.dicionario));return;} @@ -238,7 +251,8 @@ i3GEOF.gradeDeHex = { else {i3GEO.atualiza();} }; - p = i3GEO.configura.locaplic+"/ferramentas/gradehex/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=gradedehex&xdd="+dx+"&ydd="+dy+"&px="+ix+"&py="+iy+"&nptx="+nptx+"&npty="+npty; + + p = i3GEO.configura.locaplic+"/ferramentas/gradehex/exec.php?g_sid="+i3GEO.configura.sid+"&proj="+proj+"&funcao=gradedehex&dd="+dx+"&px="+ix+"&py="+iy+"&nptx="+nptx+"&npty="+npty; cp = new cpaint(); cp.set_response_type("JSON"); cp.call(p,"gradeDeHex",fim); diff --git a/ferramentas/gradepol/dicionario.js b/ferramentas/gradepol/dicionario.js index e794566..68cd0b9 100644 --- a/ferramentas/gradepol/dicionario.js +++ b/ferramentas/gradepol/dicionario.js @@ -77,5 +77,17 @@ i3GEOF.gradeDePoligonos.dicionario = { en:"", es:"", it:"" + }], + 14: [{ + pt:"Utiliza a projeção Mercator na geração da grade", + en:"", + es:"", + it:"" + }], + 15: [{ + pt:"Metros", + en:"", + es:"", + it:"" }] }; \ No newline at end of file diff --git a/ferramentas/gradepol/exec.php b/ferramentas/gradepol/exec.php index ab5e24e..32377a6 100644 --- a/ferramentas/gradepol/exec.php +++ b/ferramentas/gradepol/exec.php @@ -20,7 +20,13 @@ Salva o mapa acrescentando um novo layer com a grade. copiaSeguranca($map_file); if(!isset($tema)){$tema = "";} $m = new Analise($map_file,$tema); - $retorno = $m->gradeDePol($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty); + if($proj == "sim"){ + $proj = true; + } + else{ + $proj = false; + } + $retorno = $m->gradeDePol($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty,$proj); $m->salva(); $_SESSION["contadorsalva"]++; break; diff --git a/ferramentas/gradepol/index.js b/ferramentas/gradepol/index.js index f7ab208..4647a7b 100644 --- a/ferramentas/gradepol/index.js +++ b/ferramentas/gradepol/index.js @@ -127,7 +127,7 @@ i3GEOF.gradeDePoligonos = { }; janela = i3GEO.janela.cria( "400px", - "150px", + "190px", "", "", "", @@ -155,18 +155,25 @@ i3GEOF.gradeDePoligonos = { var ins = "

"+$trad(1,i3GEOF.gradeDePoligonos.dicionario); ins += "

"+$trad(2,i3GEOF.gradeDePoligonos.dicionario); ins += "

"+$trad(3,i3GEOF.gradeDePoligonos.dicionario); + ins += "

 "+$trad(14,i3GEOF.gradeDeHex.dicionario); i3GEO.util.proximoAnterior("","i3GEOF.gradeDePoligonos.t1()",ins,"i3GEOF.gradeDePoligonos.t0","i3GEOgradedepoligonosresultado",true,"i3GEOF.gradeDePoligonos_rodape"); }, t1: function(){ var ins = "

"+$trad(4,i3GEOF.gradeDePoligonos.dicionario); - ins += "

X: "; - ins += $trad(5,i3GEOF.gradeDePoligonos.dicionario)+""; - ins += $trad(6,i3GEOF.gradeDePoligonos.dicionario)+""; - ins += $trad(7,i3GEOF.gradeDePoligonos.dicionario)+""; - ins += "

Y: "; - ins += $trad(5,i3GEOF.gradeDePoligonos.dicionario)+""; - ins += $trad(6,i3GEOF.gradeDePoligonos.dicionario)+""; - ins += $trad(7,i3GEOF.gradeDePoligonos.dicionario)+""; + if($i("i3GEOgradedepoligonosProj").checked){ + ins += "

"+$trad(15,i3GEOF.gradeDePoligonos.dicionario)+" X:"; + ins += "

"+$trad(15,i3GEOF.gradeDePoligonos.dicionario)+" Y:"; + } + else{ + ins += "

X: "; + ins += $trad(5,i3GEOF.gradeDePoligonos.dicionario)+""; + ins += $trad(6,i3GEOF.gradeDePoligonos.dicionario)+""; + ins += $trad(7,i3GEOF.gradeDePoligonos.dicionario)+""; + ins += "

Y: "; + ins += $trad(5,i3GEOF.gradeDePoligonos.dicionario)+""; + ins += $trad(6,i3GEOF.gradeDePoligonos.dicionario)+""; + ins += $trad(7,i3GEOF.gradeDePoligonos.dicionario)+""; + } i3GEO.util.proximoAnterior("i3GEOF.gradeDePoligonos.t0()","i3GEOF.gradeDePoligonos.t2()",ins,"i3GEOF.gradeDePoligonos.t1","i3GEOgradedepoligonosresultado",true,"i3GEOF.gradeDePoligonos_rodape"); }, t2: function(){ @@ -220,9 +227,16 @@ i3GEOF.gradeDePoligonos = { if(i3GEOF.gradeDePoligonos.aguarde.visibility === "visible") {return;} i3GEOF.gradeDePoligonos.aguarde.visibility = "visible"; - var dx,dy,ix,iy,nptx,npty,fim,p,cp; - dx = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosxg").value,$i("i3GEOgradedepoligonosxm").value,$i("i3GEOgradedepoligonosxs").value); - dy = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosyg").value,$i("i3GEOgradedepoligonosym").value,$i("i3GEOgradedepoligonosys").value); + var dx,dy,ix,iy,nptx,npty,fim,p,cp,proj="nao"; + if(!$i("i3GEOgradedepoligonosProj").checked){ + dx = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosxg").value,$i("i3GEOgradedepoligonosxm").value,$i("i3GEOgradedepoligonosxs").value); + dy = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosyg").value,$i("i3GEOgradedepoligonosym").value,$i("i3GEOgradedepoligonosys").value); + } + else{ + proj = "sim"; + dx = $i("i3GEOgradedepoligonosxg").value; + dy = $i("i3GEOgradedepoligonosyg").value; + } ix = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosixg").value,$i("i3GEOgradedepoligonosixm").value,$i("i3GEOgradedepoligonosixs").value); iy = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosiyg").value,$i("i3GEOgradedepoligonosiym").value,$i("i3GEOgradedepoligonosiys").value); nptx = $i("i3GEOgradedepoligonosnptx").value; @@ -240,7 +254,7 @@ i3GEOF.gradeDePoligonos = { else {i3GEO.atualiza("");} }; - p = i3GEO.configura.locaplic+"/ferramentas/gradepol/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=gradedepol&xdd="+dx+"&ydd="+dy+"&px="+ix+"&py="+iy+"&nptx="+nptx+"&npty="+npty; + p = i3GEO.configura.locaplic+"/ferramentas/gradepol/exec.php?g_sid="+i3GEO.configura.sid+"&proj="+proj+"&funcao=gradedepol&xdd="+dx+"&ydd="+dy+"&px="+ix+"&py="+iy+"&nptx="+nptx+"&npty="+npty; cp = new cpaint(); cp.set_response_type("JSON"); cp.call(p,"gradeDePoligonos",fim); diff --git a/ferramentas/gradepontos/dicionario.js b/ferramentas/gradepontos/dicionario.js index 067208b..818f904 100644 --- a/ferramentas/gradepontos/dicionario.js +++ b/ferramentas/gradepontos/dicionario.js @@ -79,13 +79,13 @@ i3GEOF.gradeDePontos.dicionario = { it:"" }], 14: [{ - pt:"", + pt:"Utiliza a projeção Mercator na geração da grade", en:"", es:"", it:"" }], 15: [{ - pt:"", + pt:"Metros", en:"", es:"", it:"" diff --git a/ferramentas/gradepontos/exec.php b/ferramentas/gradepontos/exec.php index 294602a..2831f5c 100644 --- a/ferramentas/gradepontos/exec.php +++ b/ferramentas/gradepontos/exec.php @@ -20,7 +20,13 @@ Salva o mapa acrescentando um novo layer com a grade de coordenadas. copiaSeguranca($map_file); if(!isset($tema)){$tema = "";} $m = new Analise($map_file,$tema); - $retorno = $m->gradeDePontos($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty); + if($proj == "sim"){ + $proj = true; + } + else{ + $proj = false; + } + $retorno = $m->gradeDePontos($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty,$proj); $m->salva(); $_SESSION["contadorsalva"]++; break; diff --git a/ferramentas/gradepontos/index.js b/ferramentas/gradepontos/index.js index c526505..7699ac7 100644 --- a/ferramentas/gradepontos/index.js +++ b/ferramentas/gradepontos/index.js @@ -127,7 +127,7 @@ i3GEOF.gradeDePontos = { }; janela = i3GEO.janela.cria( "400px", - "150px", + "190px", "", "", "", @@ -155,18 +155,25 @@ i3GEOF.gradeDePontos = { var ins = "

"+$trad(1,i3GEOF.gradeDePontos.dicionario); ins += "

"+$trad(2,i3GEOF.gradeDePontos.dicionario); ins += "

"+$trad(3,i3GEOF.gradeDePontos.dicionario); + ins += "

 "+$trad(14,i3GEOF.gradeDeHex.dicionario); i3GEO.util.proximoAnterior("","i3GEOF.gradeDePontos.t1()",ins,"i3GEOFgradeDePontost0","i3GEOgradedepontosresultado",true,"i3GEOF.gradeDePontos_rodape"); }, t1: function(){ var ins = "

"+$trad(4,i3GEOF.gradeDePontos.dicionario); - ins += "

X: "; - ins += $trad(5,i3GEOF.gradeDePontos.dicionario)+""; - ins += $trad(6,i3GEOF.gradeDePontos.dicionario)+""; - ins += $trad(7,i3GEOF.gradeDePontos.dicionario)+""; - ins += "

Y: "; - ins += $trad(5,i3GEOF.gradeDePontos.dicionario)+""; - ins += $trad(6,i3GEOF.gradeDePontos.dicionario)+""; - ins += $trad(7,i3GEOF.gradeDePontos.dicionario)+""; + if($i("i3GEOgradedepontosProj").checked){ + ins += "

"+$trad(15,i3GEOF.gradeDePontos.dicionario)+" X:"; + ins += "

"+$trad(15,i3GEOF.gradeDePontos.dicionario)+" Y:"; + } + else{ + ins += "

X: "; + ins += $trad(5,i3GEOF.gradeDePontos.dicionario)+""; + ins += $trad(6,i3GEOF.gradeDePontos.dicionario)+""; + ins += $trad(7,i3GEOF.gradeDePontos.dicionario)+""; + ins += "

Y: "; + ins += $trad(5,i3GEOF.gradeDePontos.dicionario)+""; + ins += $trad(6,i3GEOF.gradeDePontos.dicionario)+""; + ins += $trad(7,i3GEOF.gradeDePontos.dicionario)+""; + } i3GEO.util.proximoAnterior("i3GEOF.gradeDePontos.t0()","i3GEOF.gradeDePontos.t2()",ins,"i3GEOF.gradeDePontos.t1","i3GEOgradedepontosresultado",true,"i3GEOF.gradeDePontos_rodape"); }, t2: function(){ @@ -216,9 +223,16 @@ i3GEOF.gradeDePontos = { if(i3GEOF.gradeDePontos.aguarde.visibility === "visible") {return;} i3GEOF.gradeDePontos.aguarde.visibility = "visible"; - var dx,dy,ix,iy,nptx,npty,fim,p,cp; - dx = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosxg").value,$i("i3GEOgradedepontosxm").value,$i("i3GEOgradedepontosxs").value); - dy = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosyg").value,$i("i3GEOgradedepontosym").value,$i("i3GEOgradedepontosys").value); + var dx,dy,ix,iy,nptx,npty,fim,p,cp,proj="nao"; + if(!$i("i3GEOgradedepontosProj").checked){ + dx = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosxg").value,$i("i3GEOgradedepontosxm").value,$i("i3GEOgradedepontosxs").value); + dy = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosyg").value,$i("i3GEOgradedepontosym").value,$i("i3GEOgradedepontosys").value); + } + else{ + proj = "sim"; + dx = $i("i3GEOgradedepontosxg").value; + dy = $i("i3GEOgradedepontosyg").value; + } ix = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosixg").value,$i("i3GEOgradedepontosixm").value,$i("i3GEOgradedepontosixs").value); iy = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosiyg").value,$i("i3GEOgradedepontosiym").value,$i("i3GEOgradedepontosiys").value); nptx = $i("i3GEOgradedepontosnptx").value; @@ -237,7 +251,7 @@ i3GEOF.gradeDePontos = { else {i3GEO.atualiza("");} }; - p = i3GEO.configura.locaplic+"/ferramentas/gradepontos/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=gradedepontos&xdd="+dx+"&ydd="+dy+"&px="+ix+"&py="+iy+"&nptx="+nptx+"&npty="+npty; + p = i3GEO.configura.locaplic+"/ferramentas/gradepontos/exec.php?g_sid="+i3GEO.configura.sid+"&proj="+proj+"&funcao=gradedepontos&xdd="+dx+"&ydd="+dy+"&px="+ix+"&py="+iy+"&nptx="+nptx+"&npty="+npty; cp = new cpaint(); cp.set_response_type("JSON"); cp.call(p,"gradeDePontos",fim); -- libgit2 0.21.2