Commit 0e2fc34d940e38cd87e582efaad51c65f808edf3

Authored by Edmar Moretti
1 parent 70d590ba

Correções nas ferramentas de geração de grades

classesphp/classe_analise.php
@@ -1579,7 +1579,7 @@ $nptx - Número de pontos em X (opcional) @@ -1579,7 +1579,7 @@ $nptx - Número de pontos em X (opcional)
1579 1579
1580 $npty - Número de pontos em Y (opcional) 1580 $npty - Número de pontos em Y (opcional)
1581 */ 1581 */
1582 - function gradeDePontos($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty) 1582 + function gradeDePontos($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty,$proj=false)
1583 { 1583 {
1584 set_time_limit(180); 1584 set_time_limit(180);
1585 //para manipular dbf 1585 //para manipular dbf
@@ -1589,7 +1589,25 @@ $npty - Número de pontos em Y (opcional) @@ -1589,7 +1589,25 @@ $npty - Número de pontos em Y (opcional)
1589 $nomegrade = nomeRandomico(); 1589 $nomegrade = nomeRandomico();
1590 $nomeshp = $this->diretorio."/".$nomegrade; 1590 $nomeshp = $this->diretorio."/".$nomegrade;
1591 $this->mapa->preparequery(); 1591 $this->mapa->preparequery();
1592 - $ext = $this->mapa->extent; 1592 + $r = $this->mapa->extent;
  1593 + $ext = ms_newRectObj();
  1594 + $ext->setextent($r->minx,$r->miny,$r->maxx,$r->maxy);
  1595 + if($proj == true){
  1596 + //caso precise projetar
  1597 + $projInObj = ms_newprojectionobj("proj=latlong,a=6378137,b=6378137");
  1598 + $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");
  1599 +
  1600 + $ext->project($projInObj, $projOutObj);
  1601 +
  1602 + $pt = ms_newpointobj();
  1603 + $pt->setXY($px,$py);
  1604 +
  1605 + $pt->project($projInObj, $projOutObj);
  1606 +
  1607 + $px = $pt->x;
  1608 + $py = $pt->y;
  1609 + }
  1610 +
1593 $fx = $ext->maxx; 1611 $fx = $ext->maxx;
1594 $fy = $ext->miny; 1612 $fy = $ext->miny;
1595 //calcula a distância entre os pontos em dd 1613 //calcula a distância entre os pontos em dd
@@ -1617,57 +1635,30 @@ $npty - Número de pontos em Y (opcional) @@ -1617,57 +1635,30 @@ $npty - Número de pontos em Y (opcional)
1617 else 1635 else
1618 $db=dbase_open($dbname,2); 1636 $db=dbase_open($dbname,2);
1619 $reg = array(); 1637 $reg = array();
1620 - $w = $this->mapa->width;  
1621 - $h = $this->mapa->height;  
1622 - if ($h > $w) 1638 + $valorcoluna = $px;
  1639 + for ($coluna = 0; $coluna < $nptx; $coluna++)
1623 { 1640 {
  1641 + $x = $valorcoluna;
1624 $valorlinha = $py; 1642 $valorlinha = $py;
1625 for ($linha = 0; $linha < $npty; $linha++) 1643 for ($linha = 0; $linha < $npty; $linha++)
1626 { 1644 {
1627 $y = $valorlinha; 1645 $y = $valorlinha;
1628 - $valorcoluna = $px;  
1629 - for ($coluna = 0; $coluna < $nptx; $coluna++)  
1630 - {  
1631 - $x = $valorcoluna;  
1632 - $valorcoluna = $valorcoluna + $xdd;  
1633 - $poPoint = ms_newpointobj();  
1634 - $poPoint->setXY($x,$y);  
1635 - $novoshpf->addpoint($poPoint);  
1636 - $reg[] = $x;  
1637 - $reg[] = $y;  
1638 - if($this->dbaseExiste == false)  
1639 - xbase_add_record($db,$reg);  
1640 - else  
1641 - dbase_add_record($db,$reg);  
1642 - $reg = array();  
1643 - }  
1644 $valorlinha = $valorlinha - $ydd; 1646 $valorlinha = $valorlinha - $ydd;
1645 - }  
1646 - }  
1647 - else  
1648 - {  
1649 - $valorcoluna = $px;  
1650 - for ($coluna = 0; $coluna < $nptx; $coluna++)  
1651 - {  
1652 - $x = $valorcoluna;  
1653 - $valorlinha = $py;  
1654 - for ($linha = 0; $linha < $npty; $linha++)  
1655 - {  
1656 - $y = $valorlinha;  
1657 - $valorlinha = $valorlinha - $ydd;  
1658 - $poPoint = ms_newpointobj();  
1659 - $poPoint->setXY($x,$y);  
1660 - $novoshpf->addpoint($poPoint);  
1661 - $reg[] = $x;  
1662 - $reg[] = $y;  
1663 - if($this->dbaseExiste == false)  
1664 - xbase_add_record($db,$reg);  
1665 - else  
1666 - dbase_add_record($db,$reg);  
1667 - $reg = array(); 1647 + $poPoint = ms_newpointobj();
  1648 + $poPoint->setXY($x,$y);
  1649 + if($proj == true){
  1650 + $poPoint->project($projOutObj,$projInObj);
1668 } 1651 }
1669 - $valorcoluna = $valorcoluna + $xdd; 1652 + $novoshpf->addpoint($poPoint);
  1653 + $reg[] = $x;
  1654 + $reg[] = $y;
  1655 + if($this->dbaseExiste == false)
  1656 + xbase_add_record($db,$reg);
  1657 + else
  1658 + dbase_add_record($db,$reg);
  1659 + $reg = array();
1670 } 1660 }
  1661 + $valorcoluna = $valorcoluna + $xdd;
1671 } 1662 }
1672 if($this->dbaseExiste == false) 1663 if($this->dbaseExiste == false)
1673 xbase_close($db); 1664 xbase_close($db);
@@ -1705,7 +1696,7 @@ $nptx - N&amp;uacute;mero de pontos em X (opcional) @@ -1705,7 +1696,7 @@ $nptx - N&amp;uacute;mero de pontos em X (opcional)
1705 1696
1706 $npty - N&uacute;mero de pontos em Y (opcional) 1697 $npty - N&uacute;mero de pontos em Y (opcional)
1707 */ 1698 */
1708 - function gradeDePol($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty) 1699 + function gradeDePol($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty,$proj=false)
1709 { 1700 {
1710 set_time_limit(180); 1701 set_time_limit(180);
1711 //para manipular dbf 1702 //para manipular dbf
@@ -1716,7 +1707,24 @@ $npty - N&amp;uacute;mero de pontos em Y (opcional) @@ -1716,7 +1707,24 @@ $npty - N&amp;uacute;mero de pontos em Y (opcional)
1716 $nomeshp = $this->diretorio."/".$nomegrade; 1707 $nomeshp = $this->diretorio."/".$nomegrade;
1717 //pega a extens&atilde;o geogr&aacute;fica do mapa 1708 //pega a extens&atilde;o geogr&aacute;fica do mapa
1718 $this->mapa->preparequery(); 1709 $this->mapa->preparequery();
1719 - $ext = $this->mapa->extent; 1710 + $r = $this->mapa->extent;
  1711 + $ext = ms_newRectObj();
  1712 + $ext->setextent($r->minx,$r->miny,$r->maxx,$r->maxy);
  1713 + if($proj == true){
  1714 + //caso precise projetar
  1715 + $projInObj = ms_newprojectionobj("proj=latlong,a=6378137,b=6378137");
  1716 + $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");
  1717 +
  1718 + $ext->project($projInObj, $projOutObj);
  1719 +
  1720 + $pt = ms_newpointobj();
  1721 + $pt->setXY($px,$py);
  1722 +
  1723 + $pt->project($projInObj, $projOutObj);
  1724 +
  1725 + $px = $pt->x;
  1726 + $py = $pt->y;
  1727 + }
1720 $fx = $ext->maxx; 1728 $fx = $ext->maxx;
1721 $fy = $ext->miny; 1729 $fy = $ext->miny;
1722 //calcula a dist&acirc;ncia entre os pontos em dd 1730 //calcula a dist&acirc;ncia entre os pontos em dd
@@ -1743,83 +1751,46 @@ $npty - N&amp;uacute;mero de pontos em Y (opcional) @@ -1743,83 +1751,46 @@ $npty - N&amp;uacute;mero de pontos em Y (opcional)
1743 else 1751 else
1744 $db=dbase_open($dbname,2); 1752 $db=dbase_open($dbname,2);
1745 $reg = array(); 1753 $reg = array();
1746 - $w = $this->mapa->width;  
1747 - $h = $this->mapa->height;  
1748 - if ($h > $w)  
1749 - { 1754 + $valorcoluna = $px;
  1755 + for ($coluna = 0; $coluna < $nptx; $coluna++){
  1756 + $x = $valorcoluna;
1750 $valorlinha = $py; 1757 $valorlinha = $py;
1751 - for ($linha = 0; $linha < $npty; $linha++)  
1752 - { 1758 + for ($linha = 0; $linha < $npty; $linha++){
1753 $y = $valorlinha; 1759 $y = $valorlinha;
1754 - $valorcoluna = $px;  
1755 - for ($coluna = 0; $coluna < $nptx; $coluna++)  
1756 - {  
1757 - $x = $valorcoluna;  
1758 - $valorcoluna = $valorcoluna + $xdd;  
1759 - $poPoint1 = ms_newpointobj();  
1760 - $poPoint2 = ms_newpointobj();  
1761 - $poPoint3 = ms_newpointobj();  
1762 - $poPoint4 = ms_newpointobj();  
1763 - $poPoint1->setXY($x,$y);  
1764 - $poPoint2->setXY(($x + $xdd),$y);  
1765 - $poPoint3->setXY(($x + $xdd),($y - $ydd));  
1766 - $poPoint4->setXY($x,($y - $ydd));  
1767 - $linhas = ms_newLineObj();  
1768 - $linhas->add($poPoint1);  
1769 - $linhas->add($poPoint2);  
1770 - $linhas->add($poPoint3);  
1771 - $linhas->add($poPoint4);  
1772 - $linhas->add($poPoint1);  
1773 - $shapen = ms_newShapeObj(MS_SHP_POLYGON);  
1774 - $shapen->add($linhas);  
1775 - $novoshpf->addShape($shapen);  
1776 - $reg[] = $linha."-".$coluna;  
1777 - if($this->dbaseExiste == false)  
1778 - xbase_add_record($db,$reg);  
1779 - else  
1780 - dbase_add_record($db,$reg);  
1781 - $reg = array();  
1782 - }  
1783 $valorlinha = $valorlinha - $ydd; 1760 $valorlinha = $valorlinha - $ydd;
1784 - }  
1785 - }  
1786 - else  
1787 - {  
1788 - $valorcoluna = $px;  
1789 - for ($coluna = 0; $coluna < $nptx; $coluna++)  
1790 - {  
1791 - $x = $valorcoluna;  
1792 - $valorlinha = $py;  
1793 - for ($linha = 0; $linha < $npty; $linha++)  
1794 - {  
1795 - $y = $valorlinha;  
1796 - $valorlinha = $valorlinha - $ydd;  
1797 - $poPoint1 = ms_newpointobj();  
1798 - $poPoint2 = ms_newpointobj();  
1799 - $poPoint3 = ms_newpointobj();  
1800 - $poPoint4 = ms_newpointobj();  
1801 - $poPoint1->setXY($x,$y);  
1802 - $poPoint2->setXY(($x + $xdd),$y);  
1803 - $poPoint3->setXY(($x + $xdd),($y - $ydd));  
1804 - $poPoint4->setXY($x,($y - $ydd));  
1805 - $linhas = ms_newLineObj();  
1806 - $linhas->add($poPoint1);  
1807 - $linhas->add($poPoint2);  
1808 - $linhas->add($poPoint3);  
1809 - $linhas->add($poPoint4);  
1810 - $linhas->add($poPoint1);  
1811 - $shapen = ms_newShapeObj(MS_SHP_POLYGON);  
1812 - $shapen->add($linhas);  
1813 - $novoshpf->addShape($shapen);  
1814 - $reg[] = $linha."-".$coluna;  
1815 - if($this->dbaseExiste == false)  
1816 - xbase_add_record($db,$reg);  
1817 - else  
1818 - dbase_add_record($db,$reg);  
1819 - $reg = array(); 1761 + $poPoint1 = ms_newpointobj();
  1762 + $poPoint2 = ms_newpointobj();
  1763 + $poPoint3 = ms_newpointobj();
  1764 + $poPoint4 = ms_newpointobj();
  1765 + $poPoint1->setXY($x,$y);
  1766 + $poPoint2->setXY(($x + $xdd),$y);
  1767 + $poPoint3->setXY(($x + $xdd),($y - $ydd));
  1768 + $poPoint4->setXY($x,($y - $ydd));
  1769 +
  1770 + if($proj == true){
  1771 + $poPoint1->project($projOutObj,$projInObj);
  1772 + $poPoint2->project($projOutObj,$projInObj);
  1773 + $poPoint3->project($projOutObj,$projInObj);
  1774 + $poPoint4->project($projOutObj,$projInObj);
1820 } 1775 }
1821 - $valorcoluna = $valorcoluna + $xdd; 1776 +
  1777 + $linhas = ms_newLineObj();
  1778 + $linhas->add($poPoint1);
  1779 + $linhas->add($poPoint2);
  1780 + $linhas->add($poPoint3);
  1781 + $linhas->add($poPoint4);
  1782 + $linhas->add($poPoint1);
  1783 + $shapen = ms_newShapeObj(MS_SHP_POLYGON);
  1784 + $shapen->add($linhas);
  1785 + $novoshpf->addShape($shapen);
  1786 + $reg[] = $linha."-".$coluna;
  1787 + if($this->dbaseExiste == false)
  1788 + xbase_add_record($db,$reg);
  1789 + else
  1790 + dbase_add_record($db,$reg);
  1791 + $reg = array();
1822 } 1792 }
  1793 + $valorcoluna = $valorcoluna + $xdd;
1823 } 1794 }
1824 if($this->dbaseExiste == false) 1795 if($this->dbaseExiste == false)
1825 xbase_close($db); 1796 xbase_close($db);
@@ -1835,169 +1806,176 @@ $npty - N&amp;uacute;mero de pontos em Y (opcional) @@ -1835,169 +1806,176 @@ $npty - N&amp;uacute;mero de pontos em Y (opcional)
1835 {unlink ($this->qyfile);} 1806 {unlink ($this->qyfile);}
1836 return("ok"); 1807 return("ok");
1837 } 1808 }
1838 -/*  
1839 -function: gradeDeHex  
1840 -  
1841 -Gera uma grade de pol&iacute;gonos hexagonais definido em d&eacute;cimos de grau.  
1842 -  
1843 -Salva o mapa acrescentando um novo layer com a grade.  
1844 -  
1845 -parameters:  
1846 -$xdd - Espa&ccedil;amento em x.  
1847 -  
1848 -$ydd - Espa&ccedil;amento em y.  
1849 -  
1850 -$px - X do primeiro ponto (superior esquerdo) 1809 + /*
  1810 + function: gradeDeHex
  1811 +
  1812 + Gera uma grade de pol&iacute;gonos hexagonais regulares definido em d&eacute;cimos de grau.
  1813 +
  1814 + Salva o mapa acrescentando um novo layer com a grade.
  1815 +
  1816 + parameters:
  1817 +
  1818 + $dd - Comprimento dos lados (em metros se $proj=true)
  1819 +
  1820 + $px - X do primeiro ponto (superior esquerdo)
  1821 +
  1822 + $py - Y do primeiro ponto.
  1823 +
  1824 + $locaplic - Endere&ccedil;o da aplica&ccedil;&atilde;o.
  1825 +
  1826 + $nptx - N&uacute;mero de pontos em X (opcional)
  1827 +
  1828 + $npty - N&uacute;mero de pontos em Y (opcional)
  1829 +
  1830 + $proj - A grade deve ser gerada em unidades metricas e projetada para geografica
  1831 + */
  1832 + function gradeDeHex($dd,$px,$py,$locaplic,$nptx,$npty,$proj=false){
  1833 + set_time_limit(180);
  1834 + //http://gmc.yoyogames.com/index.php?showtopic=336183
  1835 + $hh = (sin(deg2rad(30)) * $dd);
  1836 + $rr = (cos(deg2rad(30)) * $dd);
  1837 + //para manipular dbf
  1838 + if($this->dbaseExiste == false){
  1839 + include_once dirname(__FILE__)."/../pacotes/phpxbase/api_conversion.php";
  1840 + }
  1841 + $nomegrade = nomeRandomico();
  1842 + $nomeshp = $this->diretorio."/".$nomegrade;
  1843 + //pega a extens&atilde;o geogr&aacute;fica do mapa
  1844 + $this->mapa->preparequery();
  1845 + $r = $this->mapa->extent;
  1846 + $ext = ms_newRectObj();
  1847 + $ext->setextent($r->minx,$r->miny,$r->maxx,$r->maxy);
  1848 + if($proj == true){
  1849 + //caso precise projetar
  1850 + $projInObj = ms_newprojectionobj("proj=latlong,a=6378137,b=6378137");
  1851 + $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");
1851 1852
1852 -$py - Y do primeiro ponto. 1853 + $ext->project($projInObj, $projOutObj);
1853 1854
1854 -$locaplic - Endere&ccedil;o da aplica&ccedil;&atilde;o. 1855 + $pt = ms_newpointobj();
  1856 + $pt->setXY($px,$py);
1855 1857
1856 -$nptx - N&uacute;mero de pontos em X (opcional) 1858 + $pt->project($projInObj, $projOutObj);
1857 1859
1858 -$npty - N&uacute;mero de pontos em Y (opcional)  
1859 -*/  
1860 - function gradeDeHex($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty)  
1861 - {  
1862 - set_time_limit(180);  
1863 - //para manipular dbf  
1864 - if($this->dbaseExiste == false){  
1865 - include_once dirname(__FILE__)."/../pacotes/phpxbase/api_conversion.php"; 1860 + $px = $pt->x;
  1861 + $py = $pt->y;
1866 } 1862 }
1867 - $nomegrade = nomeRandomico();  
1868 - $nomeshp = $this->diretorio."/".$nomegrade;  
1869 - //pega a extens&atilde;o geogr&aacute;fica do mapa  
1870 - $this->mapa->preparequery();  
1871 - $ext = $this->mapa->extent;  
1872 - $fx = $ext->maxx; 1863 +
  1864 + $fx = $ext->maxx;
1873 $fy = $ext->miny; 1865 $fy = $ext->miny;
1874 - //calcula a dist&acirc;ncia entre os pontos em dd  
1875 - $distx = $fx - $px;  
1876 - $disty = $fy - $py;  
1877 - if ($distx < 0){$distx = $distx * -1;}  
1878 - if ($disty < 0){$disty = $disty * -1;}  
1879 - if ($nptx == "")  
1880 - {$nptx = round(($distx / $xdd),0);}  
1881 - if ($npty == "")  
1882 - {$npty = round(($disty / $ydd),0);}  
1883 - // cria o shapefile  
1884 - $novoshpf = ms_newShapefileObj($nomeshp, MS_SHP_POLYGON);  
1885 - $def = array();  
1886 - $def[] = array("id","C","20");  
1887 - if($this->dbaseExiste == false)  
1888 - {$db = xbase_create($nomeshp.".dbf", $def);xbase_close($db);}  
1889 - else  
1890 - {$db = dbase_create($nomeshp.".dbf", $def);dbase_close($db);}  
1891 - //acrescenta os pontos no novo shapefile  
1892 - $dbname = $nomeshp.".dbf";  
1893 - if($this->dbaseExiste == false)  
1894 - $db=xbase_open($dbname,2);  
1895 - else  
1896 - $db=dbase_open($dbname,2);  
1897 - $reg = array();  
1898 - $w = $this->mapa->width;  
1899 - $h = $this->mapa->height;  
1900 - if ($h > $w)  
1901 - {  
1902 - $valorlinha = $py;  
1903 - for ($linha = 0; $linha < $npty; $linha++)  
1904 - {  
1905 - $y = $valorlinha;  
1906 - $valorcoluna = $px;  
1907 - for ($coluna = 0; $coluna < $nptx; $coluna++)  
1908 - {  
1909 - $x = $valorcoluna;  
1910 - $valorcoluna = $valorcoluna + $xdd;  
1911 - $poPoint1 = ms_newpointobj();  
1912 - $poPoint2 = ms_newpointobj();  
1913 - $poPoint3 = ms_newpointobj();  
1914 - $poPoint4 = ms_newpointobj();  
1915 - $poPoint1->setXY($x,$y);  
1916 - $poPoint2->setXY(($x + $xdd),$y);  
1917 - $poPoint3->setXY(($x + $xdd),($y - $ydd));  
1918 - $poPoint4->setXY($x,($y - $ydd));  
1919 - $linhas = ms_newLineObj();  
1920 - $linhas->add($poPoint1);  
1921 - $linhas->add($poPoint2);  
1922 - $linhas->add($poPoint3);  
1923 - $linhas->add($poPoint4);  
1924 - $linhas->add($poPoint1);  
1925 - $shapen = ms_newShapeObj(MS_SHP_POLYGON);  
1926 - $shapen->add($linhas);  
1927 - $novoshpf->addShape($shapen);  
1928 - $reg[] = $linha."-".$coluna;  
1929 - if($this->dbaseExiste == false)  
1930 - xbase_add_record($db,$reg);  
1931 - else  
1932 - dbase_add_record($db,$reg);  
1933 - $reg = array();  
1934 - }  
1935 - $valorlinha = $valorlinha - $ydd; 1866 +
  1867 + //calcula a dist&acirc;ncia entre os pontos em dd se nao tiver sido especificada ou for 0
  1868 + $distx = $fx - $px;
  1869 + $disty = $fy - $py;
  1870 + if ($distx < 0){$distx = $distx * -1;}
  1871 + if ($disty < 0){$disty = $disty * -1;}
  1872 + if ($nptx == "")
  1873 + {$nptx = round(($distx / $dd),0);}
  1874 + if ($npty == "")
  1875 + {$npty = round(($disty / $dd),0);}
  1876 + // cria o shapefile
  1877 + $novoshpf = ms_newShapefileObj($nomeshp, MS_SHP_POLYGON);
  1878 + $def = array();
  1879 + $def[] = array("id","C","20");
  1880 + if($this->dbaseExiste == false)
  1881 + {$db = xbase_create($nomeshp.".dbf", $def);xbase_close($db);}
  1882 + else
  1883 + {$db = dbase_create($nomeshp.".dbf", $def);dbase_close($db);}
  1884 + //acrescenta os pontos no novo shapefile
  1885 + $dbname = $nomeshp.".dbf";
  1886 + if($this->dbaseExiste == false)
  1887 + $db=xbase_open($dbname,2);
  1888 + else
  1889 + $db=dbase_open($dbname,2);
  1890 + $reg = array();
  1891 + $w = $this->mapa->width;
  1892 + $h = $this->mapa->height;
  1893 +
  1894 + $valorcoluna = $px;
  1895 + $par = false;
  1896 + for ($coluna = 0; $coluna < $nptx; $coluna++){
  1897 + $x = $valorcoluna;
  1898 + $valorlinha = $py;
  1899 +
  1900 + if ($par == true){
  1901 + $valorlinha = $valorlinha - $rr;
  1902 + $par = false;
  1903 + }
  1904 + else{
  1905 + //$y = $y + $hh;
  1906 + $par = true;
1936 } 1907 }
1937 - }  
1938 - else  
1939 - {  
1940 - $valorcoluna = $px;  
1941 - for ($coluna = 0; $coluna < $nptx; $coluna++)  
1942 - {  
1943 - $x = $valorcoluna;  
1944 - $valorlinha = $py;  
1945 - $par = true;  
1946 - for ($linha = 0; $linha < $npty; $linha++)  
1947 - {  
1948 - $y = $valorlinha;  
1949 - $valorlinha = $valorlinha - $ydd - ($ydd/2);  
1950 - $poPoint1 = ms_newpointobj();  
1951 - $poPoint2 = ms_newpointobj();  
1952 - $poPoint3 = ms_newpointobj();  
1953 - $poPoint4 = ms_newpointobj();  
1954 - $poPoint5 = ms_newpointobj();  
1955 - $poPoint6 = ms_newpointobj();  
1956 - $poPoint1->setXY($x,$y);  
1957 - $poPoint2->setXY(($x + ($xdd/2)),$y+($ydd/2));  
1958 - $poPoint3->setXY($x + $xdd,$y);  
1959 - $poPoint4->setXY($x + $xdd,$y - $ydd);  
1960 - $poPoint5->setXY(($x + ($xdd/2)),$y - $ydd - ($ydd/2));  
1961 - $poPoint6->setXY($x,$y - $ydd);  
1962 - $linhas = ms_newLineObj();  
1963 - $linhas->add($poPoint1);  
1964 - $linhas->add($poPoint2);  
1965 - $linhas->add($poPoint3);  
1966 - $linhas->add($poPoint4);  
1967 - $linhas->add($poPoint5);  
1968 - $linhas->add($poPoint6);  
1969 - $linhas->add($poPoint1);  
1970 - $shapen = ms_newShapeObj(MS_SHP_POLYGON);  
1971 - $shapen->add($linhas);  
1972 - $novoshpf->addShape($shapen);  
1973 - $reg[] = $linha."-".$coluna;  
1974 - if($this->dbaseExiste == false)  
1975 - xbase_add_record($db,$reg);  
1976 - else  
1977 - dbase_add_record($db,$reg);  
1978 - $reg = array();  
1979 - if ($par)  
1980 - {$x=$x+($xdd/2);$par=false;}  
1981 - else  
1982 - {$x=$x-($xdd/2);$par=true;} 1908 +
  1909 + for ($linha = 0; $linha < $npty; $linha++){
  1910 + $y = $valorlinha;
  1911 + $valorlinha = $valorlinha - (2 * $rr);
  1912 +
  1913 + $poPoint1 = ms_newpointobj();
  1914 + $poPoint2 = ms_newpointobj();
  1915 + $poPoint3 = ms_newpointobj();
  1916 + $poPoint4 = ms_newpointobj();
  1917 + $poPoint5 = ms_newpointobj();
  1918 + $poPoint6 = ms_newpointobj();
  1919 +
  1920 + //Point 0: $x, $y
  1921 + //Point 1: x + s, y
  1922 + //Point 2: x + s + h, y + r
  1923 + //Point 3: x + s, y + r + r
  1924 + //Point 4: x, y + r + r
  1925 + //Point 5: x - h, y + r
  1926 + $poPoint1->setXY($x,$y);
  1927 + $poPoint2->setXY(($x + $dd),$y);
  1928 + $poPoint3->setXY($x + $dd + $hh,$y - $rr);
  1929 + $poPoint4->setXY($x + $dd, $y - $rr - $rr);
  1930 + $poPoint5->setXY($x,$y - $rr - $rr);
  1931 + $poPoint6->setXY($x - $hh,$y - $rr);
  1932 +
  1933 + if($proj == true){
  1934 + $poPoint1->project($projOutObj,$projInObj);
  1935 + $poPoint2->project($projOutObj,$projInObj);
  1936 + $poPoint3->project($projOutObj,$projInObj);
  1937 + $poPoint4->project($projOutObj,$projInObj);
  1938 + $poPoint5->project($projOutObj,$projInObj);
  1939 + $poPoint6->project($projOutObj,$projInObj);
1983 } 1940 }
1984 - $valorcoluna = $valorcoluna + $xdd;  
1985 - }  
1986 - }  
1987 - if($this->dbaseExiste == false)  
1988 - xbase_close($db);  
1989 - else  
1990 - dbase_close($db); 1941 +
  1942 +
  1943 + $linhas = ms_newLineObj();
  1944 + $linhas->add($poPoint1);
  1945 + $linhas->add($poPoint2);
  1946 + $linhas->add($poPoint3);
  1947 + $linhas->add($poPoint4);
  1948 + $linhas->add($poPoint5);
  1949 + $linhas->add($poPoint6);
  1950 + $linhas->add($poPoint1);
  1951 + $shapen = ms_newShapeObj(MS_SHP_POLYGON);
  1952 + $shapen->add($linhas);
  1953 + $novoshpf->addShape($shapen);
  1954 + $reg[] = $linha."-".$coluna;
  1955 + if($this->dbaseExiste == false)
  1956 + xbase_add_record($db,$reg);
  1957 + else
  1958 + dbase_add_record($db,$reg);
  1959 + $reg = array();
  1960 + }
  1961 + $valorcoluna = $valorcoluna + $dd + $hh;
  1962 + }
  1963 + if($this->dbaseExiste == false)
  1964 + xbase_close($db);
  1965 + else
  1966 + dbase_close($db);
1991 //adiciona o novo tema no mapa 1967 //adiciona o novo tema no mapa
1992 - $novolayer = criaLayer($this->mapa,MS_LAYER_POLYGON,MS_DEFAULT,("Grade (".$nomegrade.")"),$metaClasse="SIM");  
1993 - $novolayer->set("data",$nomeshp.".shp");  
1994 - $novolayer->setmetadata("DOWNLOAD","SIM");  
1995 - $novolayer->setmetadata("TEMALOCAL","SIM");  
1996 - $novolayer->set("opacity","50");  
1997 - if (file_exists($this->qyfile))  
1998 - {unlink ($this->qyfile);} 1968 +
  1969 + $novolayer = criaLayer($this->mapa,MS_LAYER_POLYGON,MS_DEFAULT,("Grade (".$nomegrade.")"),$metaClasse="SIM");
  1970 + $novolayer->set("data",$nomeshp.".shp");
  1971 + $novolayer->setmetadata("DOWNLOAD","SIM");
  1972 + $novolayer->setmetadata("TEMALOCAL","SIM");
  1973 + $novolayer->set("opacity","50");
  1974 + if (file_exists($this->qyfile))
  1975 + {unlink ($this->qyfile);}
1999 return("ok"); 1976 return("ok");
2000 - } 1977 +
  1978 + }
2001 /* 1979 /*
2002 function: nptPol 1980 function: nptPol
2003 1981
ferramentas/gradehex/dicionario.js
@@ -19,7 +19,7 @@ i3GEOF.gradeDeHex.dicionario = { @@ -19,7 +19,7 @@ i3GEOF.gradeDeHex.dicionario = {
19 it:"" 19 it:""
20 }], 20 }],
21 4: [{ 21 4: [{
22 - pt:"Espa&ccedil;amento da grade", 22 + pt:"Tamanho dos lados",
23 en:"", 23 en:"",
24 es:"", 24 es:"",
25 it:"" 25 it:""
@@ -77,5 +77,17 @@ i3GEOF.gradeDeHex.dicionario = { @@ -77,5 +77,17 @@ i3GEOF.gradeDeHex.dicionario = {
77 en:"", 77 en:"",
78 es:"", 78 es:"",
79 it:"" 79 it:""
  80 + }],
  81 + 14: [{
  82 + pt:"Utiliza a proje&ccedil;&atilde;o Mercator na geração da grade",
  83 + en:"",
  84 + es:"",
  85 + it:""
  86 + }],
  87 + 15: [{
  88 + pt:"Metros",
  89 + en:"",
  90 + es:"",
  91 + it:""
80 }] 92 }]
81 }; 93 };
82 \ No newline at end of file 94 \ No newline at end of file
ferramentas/gradehex/exec.php
@@ -20,7 +20,14 @@ Salva o mapa acrescentando um novo layer com a grade. @@ -20,7 +20,14 @@ Salva o mapa acrescentando um novo layer com a grade.
20 copiaSeguranca($map_file); 20 copiaSeguranca($map_file);
21 $m = new Analise($map_file,$tema); 21 $m = new Analise($map_file,$tema);
22 if(!isset($tema)){$tema = "";} 22 if(!isset($tema)){$tema = "";}
23 - $retorno = $m->gradeDeHex($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty); 23 +
  24 + if($proj == "sim"){
  25 + $proj = true;
  26 + }
  27 + else{
  28 + $proj = false;
  29 + }
  30 + $retorno = $m->gradeDeHex($dd,$px,$py,$locaplic,$nptx,$npty,$proj);
24 $m->salva(); 31 $m->salva();
25 $_SESSION["contadorsalva"]++; 32 $_SESSION["contadorsalva"]++;
26 break; 33 break;
ferramentas/gradehex/index.js
@@ -127,7 +127,7 @@ i3GEOF.gradeDeHex = { @@ -127,7 +127,7 @@ i3GEOF.gradeDeHex = {
127 }; 127 };
128 janela = i3GEO.janela.cria( 128 janela = i3GEO.janela.cria(
129 "400px", 129 "400px",
130 - "150px", 130 + "190px",
131 "", 131 "",
132 "", 132 "",
133 "", 133 "",
@@ -156,18 +156,26 @@ i3GEOF.gradeDeHex = { @@ -156,18 +156,26 @@ i3GEOF.gradeDeHex = {
156 var ins = "<p class='paragrafo' >"+$trad(1,i3GEOF.gradeDeHex.dicionario); 156 var ins = "<p class='paragrafo' >"+$trad(1,i3GEOF.gradeDeHex.dicionario);
157 ins += "<p class='paragrafo'>"+$trad(2,i3GEOF.gradeDeHex.dicionario); 157 ins += "<p class='paragrafo'>"+$trad(2,i3GEOF.gradeDeHex.dicionario);
158 ins += "<p class='paragrafo'>"+$trad(3,i3GEOF.gradeDeHex.dicionario); 158 ins += "<p class='paragrafo'>"+$trad(3,i3GEOF.gradeDeHex.dicionario);
  159 + ins += "<p class='paragrafo'><input type=checkbox id=i3GEOgradedehexProj style='cursor:pointer;position:relative;top:2px;' />&nbsp;"+$trad(14,i3GEOF.gradeDeHex.dicionario);
159 i3GEO.util.proximoAnterior("","i3GEOF.gradeDeHex.t1()",ins,"i3GEOF.gradeDeHex.t0()","i3GEOgradedehexresultado",true,"i3GEOF.gradeDeHex_rodape"); 160 i3GEO.util.proximoAnterior("","i3GEOF.gradeDeHex.t1()",ins,"i3GEOF.gradeDeHex.t0()","i3GEOgradedehexresultado",true,"i3GEOF.gradeDeHex_rodape");
160 }, 161 },
161 t1: function(){ 162 t1: function(){
162 var ins = "<p class='paragrafo'>"+$trad(4,i3GEOF.gradeDeHex.dicionario); 163 var ins = "<p class='paragrafo'>"+$trad(4,i3GEOF.gradeDeHex.dicionario);
163 - ins += "<p class='paragrafo'>X: ";  
164 - ins += $trad(5,i3GEOF.gradeDeHex.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedehexxg' title='grau' type=text size=3 value='1'/>";  
165 - ins += $trad(6,i3GEOF.gradeDeHex.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedehexxm' title='minuto' type=text size=5 value='00'/>";  
166 - ins += $trad(7,i3GEOF.gradeDeHex.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedehexxs' title='segundo' type=text size=5 value='00.00'/>"; 164 + ins += "<p class='paragrafo'> ";
  165 + if($i("i3GEOgradedehexProj").checked){
  166 + ins += $trad(15,i3GEOF.gradeDeHex.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedehexxg' title='metros' type=text size=6 value='100000'/>";
  167 + }
  168 + else{
  169 + ins += $trad(5,i3GEOF.gradeDeHex.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedehexxg' title='grau' type=text size=3 value='1'/>";
  170 + ins += $trad(6,i3GEOF.gradeDeHex.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedehexxm' title='minuto' type=text size=5 value='00'/>";
  171 + ins += $trad(7,i3GEOF.gradeDeHex.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedehexxs' title='segundo' type=text size=5 value='00.00'/>";
  172 + }
  173 + /*
167 ins += "<p class='paragrafo'>Y: "; 174 ins += "<p class='paragrafo'>Y: ";
168 ins += $trad(5,i3GEOF.gradeDeHex.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedehexyg' title='grau' type=text size=3 value='1'/>"; 175 ins += $trad(5,i3GEOF.gradeDeHex.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedehexyg' title='grau' type=text size=3 value='1'/>";
169 ins += $trad(6,i3GEOF.gradeDeHex.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedehexym' title='minuto' type=text size=5 value='00'/>"; 176 ins += $trad(6,i3GEOF.gradeDeHex.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedehexym' title='minuto' type=text size=5 value='00'/>";
170 ins += $trad(7,i3GEOF.gradeDeHex.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedehexys' title='segundo' type=text size=5 value='00.00'/>"; 177 ins += $trad(7,i3GEOF.gradeDeHex.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedehexys' title='segundo' type=text size=5 value='00.00'/>";
  178 + */
171 i3GEO.util.proximoAnterior("i3GEOF.gradeDeHex.t0()","i3GEOF.gradeDeHex.t2()",ins,"i3GEOF.gradeDeHex.t1()","i3GEOgradedehexresultado",true,"i3GEOF.gradeDeHex_rodape"); 179 i3GEO.util.proximoAnterior("i3GEOF.gradeDeHex.t0()","i3GEOF.gradeDeHex.t2()",ins,"i3GEOF.gradeDeHex.t1()","i3GEOgradedehexresultado",true,"i3GEOF.gradeDeHex_rodape");
172 }, 180 },
173 t2: function(){ 181 t2: function(){
@@ -217,14 +225,19 @@ i3GEOF.gradeDeHex = { @@ -217,14 +225,19 @@ i3GEOF.gradeDeHex = {
217 if(i3GEOF.gradeDeHex.aguarde.visibility === "visible") 225 if(i3GEOF.gradeDeHex.aguarde.visibility === "visible")
218 {return;} 226 {return;}
219 i3GEOF.gradeDeHex.aguarde.visibility = "visible"; 227 i3GEOF.gradeDeHex.aguarde.visibility = "visible";
220 - var dx,dy,ix,iy,nptx,npty,fim,p,cp;  
221 - dx = i3GEO.calculo.dms2dd($i("i3GEOgradedehexxg").value,$i("i3GEOgradedehexxm").value,$i("i3GEOgradedehexxs").value);  
222 - dy = i3GEO.calculo.dms2dd($i("i3GEOgradedehexyg").value,$i("i3GEOgradedehexym").value,$i("i3GEOgradedehexys").value); 228 + var dx,ix,iy,nptx,npty,fim,p,cp,proj = "nao";
  229 + if(!$i("i3GEOgradedehexProj").checked){
  230 + dx = i3GEO.calculo.dms2dd($i("i3GEOgradedehexxg").value,$i("i3GEOgradedehexxm").value,$i("i3GEOgradedehexxs").value);
  231 + }
  232 + else{
  233 + proj = "sim";
  234 + dx = $i("i3GEOgradedehexxg").value;
  235 + }
223 ix = i3GEO.calculo.dms2dd($i("i3GEOgradedehexixg").value,$i("i3GEOgradedehexixm").value,$i("i3GEOgradedehexixs").value); 236 ix = i3GEO.calculo.dms2dd($i("i3GEOgradedehexixg").value,$i("i3GEOgradedehexixm").value,$i("i3GEOgradedehexixs").value);
224 iy = i3GEO.calculo.dms2dd($i("i3GEOgradedehexiyg").value,$i("i3GEOgradedehexiym").value,$i("i3GEOgradedehexiys").value); 237 iy = i3GEO.calculo.dms2dd($i("i3GEOgradedehexiyg").value,$i("i3GEOgradedehexiym").value,$i("i3GEOgradedehexiys").value);
225 nptx = $i("i3GEOgradedehexnptx").value; 238 nptx = $i("i3GEOgradedehexnptx").value;
226 npty = $i("i3GEOgradedehexnpty").value; 239 npty = $i("i3GEOgradedehexnpty").value;
227 - if ((dx == 0) || (dy == 0)) 240 + if ((dx == 0))
228 {i3GEO.janela.tempoMsg($trad(12,i3GEOF.gradeDeHex.dicionario));return;} 241 {i3GEO.janela.tempoMsg($trad(12,i3GEOF.gradeDeHex.dicionario));return;}
229 if ((nptx == 0) || (npty == 0)) 242 if ((nptx == 0) || (npty == 0))
230 {i3GEO.janela.tempoMsg($trad(13,i3GEOF.gradeDeHex.dicionario));return;} 243 {i3GEO.janela.tempoMsg($trad(13,i3GEOF.gradeDeHex.dicionario));return;}
@@ -238,7 +251,8 @@ i3GEOF.gradeDeHex = { @@ -238,7 +251,8 @@ i3GEOF.gradeDeHex = {
238 else 251 else
239 {i3GEO.atualiza();} 252 {i3GEO.atualiza();}
240 }; 253 };
241 - 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; 254 +
  255 + 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;
242 cp = new cpaint(); 256 cp = new cpaint();
243 cp.set_response_type("JSON"); 257 cp.set_response_type("JSON");
244 cp.call(p,"gradeDeHex",fim); 258 cp.call(p,"gradeDeHex",fim);
ferramentas/gradepol/dicionario.js
@@ -77,5 +77,17 @@ i3GEOF.gradeDePoligonos.dicionario = { @@ -77,5 +77,17 @@ i3GEOF.gradeDePoligonos.dicionario = {
77 en:"", 77 en:"",
78 es:"", 78 es:"",
79 it:"" 79 it:""
  80 + }],
  81 + 14: [{
  82 + pt:"Utiliza a proje&ccedil;&atilde;o Mercator na geração da grade",
  83 + en:"",
  84 + es:"",
  85 + it:""
  86 + }],
  87 + 15: [{
  88 + pt:"Metros",
  89 + en:"",
  90 + es:"",
  91 + it:""
80 }] 92 }]
81 }; 93 };
82 \ No newline at end of file 94 \ No newline at end of file
ferramentas/gradepol/exec.php
@@ -20,7 +20,13 @@ Salva o mapa acrescentando um novo layer com a grade. @@ -20,7 +20,13 @@ Salva o mapa acrescentando um novo layer com a grade.
20 copiaSeguranca($map_file); 20 copiaSeguranca($map_file);
21 if(!isset($tema)){$tema = "";} 21 if(!isset($tema)){$tema = "";}
22 $m = new Analise($map_file,$tema); 22 $m = new Analise($map_file,$tema);
23 - $retorno = $m->gradeDePol($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty); 23 + if($proj == "sim"){
  24 + $proj = true;
  25 + }
  26 + else{
  27 + $proj = false;
  28 + }
  29 + $retorno = $m->gradeDePol($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty,$proj);
24 $m->salva(); 30 $m->salva();
25 $_SESSION["contadorsalva"]++; 31 $_SESSION["contadorsalva"]++;
26 break; 32 break;
ferramentas/gradepol/index.js
@@ -127,7 +127,7 @@ i3GEOF.gradeDePoligonos = { @@ -127,7 +127,7 @@ i3GEOF.gradeDePoligonos = {
127 }; 127 };
128 janela = i3GEO.janela.cria( 128 janela = i3GEO.janela.cria(
129 "400px", 129 "400px",
130 - "150px", 130 + "190px",
131 "", 131 "",
132 "", 132 "",
133 "", 133 "",
@@ -155,18 +155,25 @@ i3GEOF.gradeDePoligonos = { @@ -155,18 +155,25 @@ i3GEOF.gradeDePoligonos = {
155 var ins = "<p class='paragrafo' >"+$trad(1,i3GEOF.gradeDePoligonos.dicionario); 155 var ins = "<p class='paragrafo' >"+$trad(1,i3GEOF.gradeDePoligonos.dicionario);
156 ins += "<p class='paragrafo'>"+$trad(2,i3GEOF.gradeDePoligonos.dicionario); 156 ins += "<p class='paragrafo'>"+$trad(2,i3GEOF.gradeDePoligonos.dicionario);
157 ins += "<p class='paragrafo'>"+$trad(3,i3GEOF.gradeDePoligonos.dicionario); 157 ins += "<p class='paragrafo'>"+$trad(3,i3GEOF.gradeDePoligonos.dicionario);
  158 + ins += "<p class='paragrafo'><input type=checkbox id=i3GEOgradedepoligonosProj style='cursor:pointer;position:relative;top:2px;' />&nbsp;"+$trad(14,i3GEOF.gradeDeHex.dicionario);
158 i3GEO.util.proximoAnterior("","i3GEOF.gradeDePoligonos.t1()",ins,"i3GEOF.gradeDePoligonos.t0","i3GEOgradedepoligonosresultado",true,"i3GEOF.gradeDePoligonos_rodape"); 159 i3GEO.util.proximoAnterior("","i3GEOF.gradeDePoligonos.t1()",ins,"i3GEOF.gradeDePoligonos.t0","i3GEOgradedepoligonosresultado",true,"i3GEOF.gradeDePoligonos_rodape");
159 }, 160 },
160 t1: function(){ 161 t1: function(){
161 var ins = "<p class='paragrafo'>"+$trad(4,i3GEOF.gradeDePoligonos.dicionario); 162 var ins = "<p class='paragrafo'>"+$trad(4,i3GEOF.gradeDePoligonos.dicionario);
162 - ins += "<p class='paragrafo'>X: ";  
163 - ins += $trad(5,i3GEOF.gradeDePoligonos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosxg' title='grau' type=text size=3 value='1'/>";  
164 - ins += $trad(6,i3GEOF.gradeDePoligonos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosxm' title='minuto' type=text size=5 value='00'/>";  
165 - ins += $trad(7,i3GEOF.gradeDePoligonos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosxs' title='segundo' type=text size=5 value='00.00'/>";  
166 - ins += "<p class='paragrafo'>Y: ";  
167 - ins += $trad(5,i3GEOF.gradeDePoligonos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosyg' title='grau' type=text size=3 value='1'/>";  
168 - ins += $trad(6,i3GEOF.gradeDePoligonos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosym' title='minuto' type=text size=5 value='00'/>";  
169 - ins += $trad(7,i3GEOF.gradeDePoligonos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosys' title='segundo' type=text size=5 value='00.00'/>"; 163 + if($i("i3GEOgradedepoligonosProj").checked){
  164 + ins += "<p class='paragrafo'>"+$trad(15,i3GEOF.gradeDePoligonos.dicionario)+" X:<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosxg' title='metros' type=text size=6 value='100000'/>";
  165 + ins += "<p class='paragrafo'>"+$trad(15,i3GEOF.gradeDePoligonos.dicionario)+" Y:<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosyg' title='metros' type=text size=6 value='100000'/>";
  166 + }
  167 + else{
  168 + ins += "<p class='paragrafo'>X: ";
  169 + ins += $trad(5,i3GEOF.gradeDePoligonos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosxg' title='grau' type=text size=3 value='1'/>";
  170 + ins += $trad(6,i3GEOF.gradeDePoligonos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosxm' title='minuto' type=text size=5 value='00'/>";
  171 + ins += $trad(7,i3GEOF.gradeDePoligonos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosxs' title='segundo' type=text size=5 value='00.00'/>";
  172 + ins += "<p class='paragrafo'>Y: ";
  173 + ins += $trad(5,i3GEOF.gradeDePoligonos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosyg' title='grau' type=text size=3 value='1'/>";
  174 + ins += $trad(6,i3GEOF.gradeDePoligonos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosym' title='minuto' type=text size=5 value='00'/>";
  175 + ins += $trad(7,i3GEOF.gradeDePoligonos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepoligonosys' title='segundo' type=text size=5 value='00.00'/>";
  176 + }
170 i3GEO.util.proximoAnterior("i3GEOF.gradeDePoligonos.t0()","i3GEOF.gradeDePoligonos.t2()",ins,"i3GEOF.gradeDePoligonos.t1","i3GEOgradedepoligonosresultado",true,"i3GEOF.gradeDePoligonos_rodape"); 177 i3GEO.util.proximoAnterior("i3GEOF.gradeDePoligonos.t0()","i3GEOF.gradeDePoligonos.t2()",ins,"i3GEOF.gradeDePoligonos.t1","i3GEOgradedepoligonosresultado",true,"i3GEOF.gradeDePoligonos_rodape");
171 }, 178 },
172 t2: function(){ 179 t2: function(){
@@ -220,9 +227,16 @@ i3GEOF.gradeDePoligonos = { @@ -220,9 +227,16 @@ i3GEOF.gradeDePoligonos = {
220 if(i3GEOF.gradeDePoligonos.aguarde.visibility === "visible") 227 if(i3GEOF.gradeDePoligonos.aguarde.visibility === "visible")
221 {return;} 228 {return;}
222 i3GEOF.gradeDePoligonos.aguarde.visibility = "visible"; 229 i3GEOF.gradeDePoligonos.aguarde.visibility = "visible";
223 - var dx,dy,ix,iy,nptx,npty,fim,p,cp;  
224 - dx = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosxg").value,$i("i3GEOgradedepoligonosxm").value,$i("i3GEOgradedepoligonosxs").value);  
225 - dy = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosyg").value,$i("i3GEOgradedepoligonosym").value,$i("i3GEOgradedepoligonosys").value); 230 + var dx,dy,ix,iy,nptx,npty,fim,p,cp,proj="nao";
  231 + if(!$i("i3GEOgradedepoligonosProj").checked){
  232 + dx = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosxg").value,$i("i3GEOgradedepoligonosxm").value,$i("i3GEOgradedepoligonosxs").value);
  233 + dy = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosyg").value,$i("i3GEOgradedepoligonosym").value,$i("i3GEOgradedepoligonosys").value);
  234 + }
  235 + else{
  236 + proj = "sim";
  237 + dx = $i("i3GEOgradedepoligonosxg").value;
  238 + dy = $i("i3GEOgradedepoligonosyg").value;
  239 + }
226 ix = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosixg").value,$i("i3GEOgradedepoligonosixm").value,$i("i3GEOgradedepoligonosixs").value); 240 ix = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosixg").value,$i("i3GEOgradedepoligonosixm").value,$i("i3GEOgradedepoligonosixs").value);
227 iy = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosiyg").value,$i("i3GEOgradedepoligonosiym").value,$i("i3GEOgradedepoligonosiys").value); 241 iy = i3GEO.calculo.dms2dd($i("i3GEOgradedepoligonosiyg").value,$i("i3GEOgradedepoligonosiym").value,$i("i3GEOgradedepoligonosiys").value);
228 nptx = $i("i3GEOgradedepoligonosnptx").value; 242 nptx = $i("i3GEOgradedepoligonosnptx").value;
@@ -240,7 +254,7 @@ i3GEOF.gradeDePoligonos = { @@ -240,7 +254,7 @@ i3GEOF.gradeDePoligonos = {
240 else 254 else
241 {i3GEO.atualiza("");} 255 {i3GEO.atualiza("");}
242 }; 256 };
243 - 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; 257 + 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;
244 cp = new cpaint(); 258 cp = new cpaint();
245 cp.set_response_type("JSON"); 259 cp.set_response_type("JSON");
246 cp.call(p,"gradeDePoligonos",fim); 260 cp.call(p,"gradeDePoligonos",fim);
ferramentas/gradepontos/dicionario.js
@@ -79,13 +79,13 @@ i3GEOF.gradeDePontos.dicionario = { @@ -79,13 +79,13 @@ i3GEOF.gradeDePontos.dicionario = {
79 it:"" 79 it:""
80 }], 80 }],
81 14: [{ 81 14: [{
82 - pt:"", 82 + pt:"Utiliza a proje&ccedil;&atilde;o Mercator na geração da grade",
83 en:"", 83 en:"",
84 es:"", 84 es:"",
85 it:"" 85 it:""
86 }], 86 }],
87 15: [{ 87 15: [{
88 - pt:"", 88 + pt:"Metros",
89 en:"", 89 en:"",
90 es:"", 90 es:"",
91 it:"" 91 it:""
ferramentas/gradepontos/exec.php
@@ -20,7 +20,13 @@ Salva o mapa acrescentando um novo layer com a grade de coordenadas. @@ -20,7 +20,13 @@ Salva o mapa acrescentando um novo layer com a grade de coordenadas.
20 copiaSeguranca($map_file); 20 copiaSeguranca($map_file);
21 if(!isset($tema)){$tema = "";} 21 if(!isset($tema)){$tema = "";}
22 $m = new Analise($map_file,$tema); 22 $m = new Analise($map_file,$tema);
23 - $retorno = $m->gradeDePontos($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty); 23 + if($proj == "sim"){
  24 + $proj = true;
  25 + }
  26 + else{
  27 + $proj = false;
  28 + }
  29 + $retorno = $m->gradeDePontos($xdd,$ydd,$px,$py,$locaplic,$nptx,$npty,$proj);
24 $m->salva(); 30 $m->salva();
25 $_SESSION["contadorsalva"]++; 31 $_SESSION["contadorsalva"]++;
26 break; 32 break;
ferramentas/gradepontos/index.js
@@ -127,7 +127,7 @@ i3GEOF.gradeDePontos = { @@ -127,7 +127,7 @@ i3GEOF.gradeDePontos = {
127 }; 127 };
128 janela = i3GEO.janela.cria( 128 janela = i3GEO.janela.cria(
129 "400px", 129 "400px",
130 - "150px", 130 + "190px",
131 "", 131 "",
132 "", 132 "",
133 "", 133 "",
@@ -155,18 +155,25 @@ i3GEOF.gradeDePontos = { @@ -155,18 +155,25 @@ i3GEOF.gradeDePontos = {
155 var ins = "<p class='paragrafo' >"+$trad(1,i3GEOF.gradeDePontos.dicionario); 155 var ins = "<p class='paragrafo' >"+$trad(1,i3GEOF.gradeDePontos.dicionario);
156 ins += "<p class='paragrafo'>"+$trad(2,i3GEOF.gradeDePontos.dicionario); 156 ins += "<p class='paragrafo'>"+$trad(2,i3GEOF.gradeDePontos.dicionario);
157 ins += "<p class='paragrafo'>"+$trad(3,i3GEOF.gradeDePontos.dicionario); 157 ins += "<p class='paragrafo'>"+$trad(3,i3GEOF.gradeDePontos.dicionario);
  158 + ins += "<p class='paragrafo'><input type=checkbox id=i3GEOgradedepontosProj style='cursor:pointer;position:relative;top:2px;' />&nbsp;"+$trad(14,i3GEOF.gradeDeHex.dicionario);
158 i3GEO.util.proximoAnterior("","i3GEOF.gradeDePontos.t1()",ins,"i3GEOFgradeDePontost0","i3GEOgradedepontosresultado",true,"i3GEOF.gradeDePontos_rodape"); 159 i3GEO.util.proximoAnterior("","i3GEOF.gradeDePontos.t1()",ins,"i3GEOFgradeDePontost0","i3GEOgradedepontosresultado",true,"i3GEOF.gradeDePontos_rodape");
159 }, 160 },
160 t1: function(){ 161 t1: function(){
161 var ins = "<p class='paragrafo'>"+$trad(4,i3GEOF.gradeDePontos.dicionario); 162 var ins = "<p class='paragrafo'>"+$trad(4,i3GEOF.gradeDePontos.dicionario);
162 - ins += "<p class='paragrafo'>X: ";  
163 - ins += $trad(5,i3GEOF.gradeDePontos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosxg' title='grau' type=text size=3 value='1'/>";  
164 - ins += $trad(6,i3GEOF.gradeDePontos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosxm' title='minuto' type=text size=5 value='00'/>";  
165 - ins += $trad(7,i3GEOF.gradeDePontos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosxs' title='segundo' type=text size=5 value='00.00'/>";  
166 - ins += "<p class='paragrafo'>Y: ";  
167 - ins += $trad(5,i3GEOF.gradeDePontos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosyg' title='grau' type=text size=3 value='1'/>";  
168 - ins += $trad(6,i3GEOF.gradeDePontos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosym' title='minuto' type=text size=5 value='00'/>";  
169 - ins += $trad(7,i3GEOF.gradeDePontos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosys' title='segundo' type=text size=5 value='00.00'/>"; 163 + if($i("i3GEOgradedepontosProj").checked){
  164 + ins += "<p class='paragrafo'>"+$trad(15,i3GEOF.gradeDePontos.dicionario)+" X:<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosxg' title='metros' type=text size=6 value='100000'/>";
  165 + ins += "<p class='paragrafo'>"+$trad(15,i3GEOF.gradeDePontos.dicionario)+" Y:<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosyg' title='metros' type=text size=6 value='100000'/>";
  166 + }
  167 + else{
  168 + ins += "<p class='paragrafo'>X: ";
  169 + ins += $trad(5,i3GEOF.gradeDePontos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosxg' title='grau' type=text size=3 value='1'/>";
  170 + ins += $trad(6,i3GEOF.gradeDePontos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosxm' title='minuto' type=text size=5 value='00'/>";
  171 + ins += $trad(7,i3GEOF.gradeDePontos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosxs' title='segundo' type=text size=5 value='00.00'/>";
  172 + ins += "<p class='paragrafo'>Y: ";
  173 + ins += $trad(5,i3GEOF.gradeDePontos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosyg' title='grau' type=text size=3 value='1'/>";
  174 + ins += $trad(6,i3GEOF.gradeDePontos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosym' title='minuto' type=text size=5 value='00'/>";
  175 + ins += $trad(7,i3GEOF.gradeDePontos.dicionario)+"<input onclick='javascript:this.select();' class=digitar id='i3GEOgradedepontosys' title='segundo' type=text size=5 value='00.00'/>";
  176 + }
170 i3GEO.util.proximoAnterior("i3GEOF.gradeDePontos.t0()","i3GEOF.gradeDePontos.t2()",ins,"i3GEOF.gradeDePontos.t1","i3GEOgradedepontosresultado",true,"i3GEOF.gradeDePontos_rodape"); 177 i3GEO.util.proximoAnterior("i3GEOF.gradeDePontos.t0()","i3GEOF.gradeDePontos.t2()",ins,"i3GEOF.gradeDePontos.t1","i3GEOgradedepontosresultado",true,"i3GEOF.gradeDePontos_rodape");
171 }, 178 },
172 t2: function(){ 179 t2: function(){
@@ -216,9 +223,16 @@ i3GEOF.gradeDePontos = { @@ -216,9 +223,16 @@ i3GEOF.gradeDePontos = {
216 if(i3GEOF.gradeDePontos.aguarde.visibility === "visible") 223 if(i3GEOF.gradeDePontos.aguarde.visibility === "visible")
217 {return;} 224 {return;}
218 i3GEOF.gradeDePontos.aguarde.visibility = "visible"; 225 i3GEOF.gradeDePontos.aguarde.visibility = "visible";
219 - var dx,dy,ix,iy,nptx,npty,fim,p,cp;  
220 - dx = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosxg").value,$i("i3GEOgradedepontosxm").value,$i("i3GEOgradedepontosxs").value);  
221 - dy = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosyg").value,$i("i3GEOgradedepontosym").value,$i("i3GEOgradedepontosys").value); 226 + var dx,dy,ix,iy,nptx,npty,fim,p,cp,proj="nao";
  227 + if(!$i("i3GEOgradedepontosProj").checked){
  228 + dx = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosxg").value,$i("i3GEOgradedepontosxm").value,$i("i3GEOgradedepontosxs").value);
  229 + dy = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosyg").value,$i("i3GEOgradedepontosym").value,$i("i3GEOgradedepontosys").value);
  230 + }
  231 + else{
  232 + proj = "sim";
  233 + dx = $i("i3GEOgradedepontosxg").value;
  234 + dy = $i("i3GEOgradedepontosyg").value;
  235 + }
222 ix = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosixg").value,$i("i3GEOgradedepontosixm").value,$i("i3GEOgradedepontosixs").value); 236 ix = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosixg").value,$i("i3GEOgradedepontosixm").value,$i("i3GEOgradedepontosixs").value);
223 iy = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosiyg").value,$i("i3GEOgradedepontosiym").value,$i("i3GEOgradedepontosiys").value); 237 iy = i3GEO.calculo.dms2dd($i("i3GEOgradedepontosiyg").value,$i("i3GEOgradedepontosiym").value,$i("i3GEOgradedepontosiys").value);
224 nptx = $i("i3GEOgradedepontosnptx").value; 238 nptx = $i("i3GEOgradedepontosnptx").value;
@@ -237,7 +251,7 @@ i3GEOF.gradeDePontos = { @@ -237,7 +251,7 @@ i3GEOF.gradeDePontos = {
237 else 251 else
238 {i3GEO.atualiza("");} 252 {i3GEO.atualiza("");}
239 }; 253 };
240 - 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; 254 + 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;
241 cp = new cpaint(); 255 cp = new cpaint();
242 cp.set_response_type("JSON"); 256 cp.set_response_type("JSON");
243 cp.call(p,"gradeDePontos",fim); 257 cp.call(p,"gradeDePontos",fim);