Commit b9002e5ea0580d60bc770ceb8c44fef64014a176

Authored by Edmar Moretti
1 parent 25f52973

Inclusão da grade de coordenadas como parâmetro em ogc.php

Showing 2 changed files with 101 additions and 7 deletions   Show diff stats
@@ -89,6 +89,24 @@ escala - (opcional) mostra a barra de escala no corpo do mapa sim|nao @@ -89,6 +89,24 @@ escala - (opcional) mostra a barra de escala no corpo do mapa sim|nao
89 89
90 escala_units - unidade de medida 0 (INCHES)|1 (FEET)|2 (milhas)|3 (METERS)|4 (KILOMETERS)|5 (DD)|6 (NAUTICALMILES) 90 escala_units - unidade de medida 0 (INCHES)|1 (FEET)|2 (milhas)|3 (METERS)|4 (KILOMETERS)|5 (DD)|6 (NAUTICALMILES)
91 91
  92 +grade - (opcional) mostra a grade de coordenadas no corpo do mapa sim|nao
  93 +
  94 + Obs.: a grade utiliza como template o mapfile temas/gridg.map
  95 +
  96 + Ao ativar a grade, os seguintes parametros podem ser utilizados para controlar as características:
  97 +
  98 + grade_labelformat - formato dos textos indicativos das coordenadas da grade DD|DDMM|DDMMSS|C format string (mais detalhes em http://mapserver.org/mapfile/grid.html#grid )
  99 +
  100 + grade_interval - intervalo entre as linhas da grade
  101 +
  102 + grade_color - cor RGB da grade. Exemplo: &grade_color=255,0,0
  103 +
  104 + grade_font - fonte (tipogafica) utilizada nos textos (arial, verdana...)
  105 +
  106 + grade_size - tamanho dos textos
  107 +
  108 + grade_position - posicao do texto auto|cc|ul|uc|ur|ll|lc|lr
  109 +
92 perfil - (opcional) perfil utilizado para restringir os temas que serão mostrados 110 perfil - (opcional) perfil utilizado para restringir os temas que serão mostrados
93 111
94 format - (opcional) pode ser utilizado a opção &format=application/openlayers para 112 format - (opcional) pode ser utilizado a opção &format=application/openlayers para
@@ -130,7 +148,6 @@ ogc.php?tema=/var/www/i3geo/aplicmap/geral1debianv6.map&layers=mundo @@ -130,7 +148,6 @@ ogc.php?tema=/var/www/i3geo/aplicmap/geral1debianv6.map&layers=mundo
130 if(count($_GET) == 0){ 148 if(count($_GET) == 0){
131 echo "<pre> 149 echo "<pre>
132 Par&acirc;metros: 150 Par&acirc;metros:
133 -  
134 lista - (opcional) se for igual a 'temas', mostra uma lista de links em HTML dos temas dispon&iacute;veis, 151 lista - (opcional) se for igual a 'temas', mostra uma lista de links em HTML dos temas dispon&iacute;veis,
135 se for igual a 'temaswfs', mostra a lista de links WFS 152 se for igual a 'temaswfs', mostra a lista de links WFS
136 153
@@ -189,6 +206,24 @@ escala - (opcional) mostra a barra de escala no corpo do mapa sim|nao @@ -189,6 +206,24 @@ escala - (opcional) mostra a barra de escala no corpo do mapa sim|nao
189 206
190 escala_units - unidade de medida 0 (INCHES)|1 (FEET)|2 (milhas)|3 (METERS)|4 (KILOMETERS)|5 (DD)|6 (NAUTICALMILES) 207 escala_units - unidade de medida 0 (INCHES)|1 (FEET)|2 (milhas)|3 (METERS)|4 (KILOMETERS)|5 (DD)|6 (NAUTICALMILES)
191 208
  209 +grade - (opcional) mostra a grade de coordenadas no corpo do mapa sim|nao
  210 +
  211 + Obs.: a grade utiliza como template o mapfile temas/gridg.map
  212 +
  213 + Ao ativar a grade, os seguintes parametros podem ser utilizados para controlar as características:
  214 +
  215 + grade_labelformat - formato dos textos indicativos das coordenadas da grade DD|DDMM|DDMMSS|C format string (mais detalhes em http://mapserver.org/mapfile/grid.html#grid )
  216 +
  217 + grade_interval - intervalo entre as linhas da grade
  218 +
  219 + grade_color - cor RGB da grade. Exemplo: &grade_color=255,0,0
  220 +
  221 + grade_font - fonte (tipogafica) utilizada nos textos (arial, verdana...)
  222 +
  223 + grade_size - tamanho dos textos
  224 +
  225 + grade_position - posicao do texto auto|cc|ul|uc|ur|ll|lc|lr
  226 +
192 perfil - (opcional) perfil utilizado para restringir os temas que ser&atilde;o mostrados 227 perfil - (opcional) perfil utilizado para restringir os temas que ser&atilde;o mostrados
193 228
194 format - (opcional) pode ser utilizado a op&ccedil;&atilde;o &format=application/openlayers para 229 format - (opcional) pode ser utilizado a op&ccedil;&atilde;o &format=application/openlayers para
@@ -595,6 +630,10 @@ else{ @@ -595,6 +630,10 @@ else{
595 $temai3geo = false; 630 $temai3geo = false;
596 $nmap->setmetadata("ows_enable_request","*"); 631 $nmap->setmetadata("ows_enable_request","*");
597 } 632 }
  633 + //inclui o layer com a grade de coordenadas
  634 + if((isset($_GET["grade"])) && (strtolower($_GET["grade"]) == "sim") && file_exists($locaplic."/temas/gridg.map")){
  635 + $listatema[] = "gridg";
  636 + }
598 foreach ($listatema as $tx){ 637 foreach ($listatema as $tx){
599 $extensao = ".map"; 638 $extensao = ".map";
600 if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".php")){ 639 if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".php")){
@@ -948,6 +987,12 @@ else{ @@ -948,6 +987,12 @@ else{
948 if((isset($_GET["escala"])) && (strtolower($_GET["escala"]) == "sim")){ 987 if((isset($_GET["escala"])) && (strtolower($_GET["escala"]) == "sim")){
949 processaEscala(); 988 processaEscala();
950 } 989 }
  990 + //
  991 + //aplica os parametros sobre a grade de coordenadas
  992 + //
  993 + if((isset($_GET["grade"])) && (strtolower($_GET["grade"]) == "sim")){
  994 + processaGrade();
  995 + }
951 $oMap->setSymbolSet($locaplic."/symbols/".basename($oMap->symbolsetfilename)); 996 $oMap->setSymbolSet($locaplic."/symbols/".basename($oMap->symbolsetfilename));
952 $oMap->setFontSet($locaplic."/symbols/".basename($oMap->fontsetfilename)); 997 $oMap->setFontSet($locaplic."/symbols/".basename($oMap->fontsetfilename));
953 //verifica se existem layers com plugin definido e processa conforme o tipo de plugin 998 //verifica se existem layers com plugin definido e processa conforme o tipo de plugin
@@ -1917,6 +1962,56 @@ function processaLegenda(){ @@ -1917,6 +1962,56 @@ function processaLegenda(){
1917 $label->set("size",$_GET["legenda_size"]); 1962 $label->set("size",$_GET["legenda_size"]);
1918 } 1963 }
1919 } 1964 }
  1965 +function processaGrade(){
  1966 + global $oMap;
  1967 + //veja o mapfile gridg.map em i3geo/temas
  1968 + $layer = $oMap->getlayerbyname("gridg");
  1969 + if($layer != ""){
  1970 + if(!empty($_GET["grade_labelformat"])){
  1971 + $layer->grid->set("labelformat", $_GET["grade_labelformat"]);
  1972 + }
  1973 + if(!empty($_GET["grade_interval"])){
  1974 + $layer->grid->set("mininterval", $_GET["grade_interval"]);
  1975 + $layer->grid->set("maxinterval", $_GET["grade_interval"]);
  1976 + }
  1977 + $classe = $layer->getclass(0);
  1978 + $estilo = $classe->getstyle(0);
  1979 + $label = $classe->getLabel(0);
  1980 + if(!empty($_GET["grade_position"])){
  1981 + //("MS_AUTO"=>MS_AUTO,"MS_UL"=>MS_UL,"MS_LR"=>MS_LR,"MS_UR"=>MS_UR,"MS_LL"=>MS_LL,
  1982 + //"MS_CR"=>MS_CR,"MS_CL"=>MS_CL,"MS_UC"=>MS_UC,"MS_LC"=>MS_LC,"MS_CC"=>MS_CC);
  1983 + if($_GET["grade_position"] == "auto") $label->set("position",MS_AUTO);
  1984 + if($_GET["grade_position"] == "cc") $label->set("position",MS_CC);
  1985 + if($_GET["grade_position"] == "ul") $label->set("position",MS_UL);
  1986 + if($_GET["grade_position"] == "uc") $label->set("position",MS_UC);
  1987 + if($_GET["grade_position"] == "ur") $label->set("position",MS_UR);
  1988 + if($_GET["grade_position"] == "ll") $label->set("position",MS_LL);
  1989 + if($_GET["grade_position"] == "lc") $label->set("position",MS_LC);
  1990 + if($_GET["grade_position"] == "lr") $label->set("position",MS_LR);
  1991 + }
  1992 + //fonte e size so com truetype
  1993 + if (!empty($_GET["grade_font"])){
  1994 + $label->updatefromstring("LABEL TYPE TRUETYPE END");
  1995 + $label->set("font",$_GET["grade_font"]);
  1996 + }
  1997 + if (!empty($_GET["grade_size"])){
  1998 + $label->updatefromstring("LABEL TYPE TRUETYPE END");
  1999 + if(empty($_GET["grade_font"])){
  2000 + $label->set("font","arial");
  2001 + }
  2002 + $label->set("size",$_GET["grade_size"]);
  2003 + }
  2004 + if(!empty($_GET["grade_color"])){
  2005 + $_GET["grade_color"] = str_replace(","," ",$_GET["grade_color"]);
  2006 + $ncor = explode(" ",$_GET["grade_color"]);
  2007 + $cor = $estilo->color;
  2008 + $cor->setRGB($ncor[0],$ncor[1],$ncor[2]);
  2009 + }
  2010 + }
  2011 + else {
  2012 + echo "Layer gridg nao encontrado"; exit;
  2013 + }
  2014 +}
1920 //utilizada para obter os dados default quando se utiliza o plugin parametrossql 2015 //utilizada para obter os dados default quando se utiliza o plugin parametrossql
1921 function execProg($prog){ 2016 function execProg($prog){
1922 //$retorno variavel deve ser retornada pelo programa $prog 2017 //$retorno variavel deve ser retornada pelo programa $prog
temas/gridg.map
1 MAP 1 MAP
  2 +#utilizado tambem em ogc.php
2 FONTSET "../symbols/fontes.txt" 3 FONTSET "../symbols/fontes.txt"
3 SYMBOLSET "../symbols/simbolos.sym" 4 SYMBOLSET "../symbols/simbolos.sym"
4 LAYER 5 LAYER
5 METADATA 6 METADATA
6 - "METAESTAT_ID_MEDIDA_VARIAVEL" ""  
7 "CACHE" "nao" 7 "CACHE" "nao"
8 "DESCRIPTION" "Grid" 8 "DESCRIPTION" "Grid"
9 "permitekmz" "nao" 9 "permitekmz" "nao"
10 "TILES" "nao" 10 "TILES" "nao"
11 - "METAESTAT_CODIGO_TIPO_REGIAO" ""  
12 - "permitedownload" "sim"  
13 - "metaestat" ""  
14 - "download" "sim"  
15 - "permitekml" "sim" 11 + "permitedownload" "nao"
  12 + "download" "nao"
  13 + "permitekml" "nao"
16 "permiteogc" "sim" 14 "permiteogc" "sim"
17 "TEMA" "Grade DMS" 15 "TEMA" "Grade DMS"
18 END # METADATA 16 END # METADATA
  17 + #nao mude o nome desse layer pois e utilizado em ogc.php
19 NAME "gridg" 18 NAME "gridg"
20 PROJECTION 19 PROJECTION
21 "proj=longlat" 20 "proj=longlat"