Commit 52839c5b7714a4574bbb78cefe752d90bad6eaee

Authored by Edmar Moretti
1 parent ee89673e

Correções no gerador de KML para adaptá-lo ao sistema de administração

Showing 2 changed files with 124 additions and 64 deletions   Show diff stats
admin/php/admin.php
@@ -46,7 +46,7 @@ if(!isset($locaplic)) @@ -46,7 +46,7 @@ if(!isset($locaplic))
46 } 46 }
47 } 47 }
48 include_once($locaplic."/classesphp/pega_variaveis.php"); 48 include_once($locaplic."/classesphp/pega_variaveis.php");
49 -error_reporting(E_ALL); 49 +error_reporting(0);
50 // 50 //
51 //carrega o phpmapscript 51 //carrega o phpmapscript
52 // 52 //
@@ -91,6 +91,7 @@ function retornaJSON($obj) @@ -91,6 +91,7 @@ function retornaJSON($obj)
91 $texto = $j->encode($obj); 91 $texto = $j->encode($obj);
92 if (!mb_detect_encoding($texto,"UTF-8",true)) 92 if (!mb_detect_encoding($texto,"UTF-8",true))
93 $texto = utf8_encode($texto); 93 $texto = utf8_encode($texto);
  94 + header("Content-type: text/ascii; charset=UTF-8");
94 echo $texto; 95 echo $texto;
95 } 96 }
96 else 97 else
@@ -36,6 +36,7 @@ error_reporting(0); @@ -36,6 +36,7 @@ error_reporting(0);
36 include_once ("classesphp/carrega_ext.php"); 36 include_once ("classesphp/carrega_ext.php");
37 include_once ("classesphp/classe_menutemas.php"); 37 include_once ("classesphp/classe_menutemas.php");
38 include_once ("ms_configura.php"); 38 include_once ("ms_configura.php");
  39 +echo header("Content-type: application/xml");
39 echo '<?xml version="1.0" encoding="UTF-8"?>'; 40 echo '<?xml version="1.0" encoding="UTF-8"?>';
40 echo "<kml xmlns='http://earth.google.com/kml/2.2'>\n"; 41 echo "<kml xmlns='http://earth.google.com/kml/2.2'>\n";
41 // 42 //
@@ -47,86 +48,144 @@ $protocolo = $protocolo[0]; @@ -47,86 +48,144 @@ $protocolo = $protocolo[0];
47 $protocolo1 = strtolower($protocolo . '://'.$_SERVER['SERVER_NAME']); 48 $protocolo1 = strtolower($protocolo . '://'.$_SERVER['SERVER_NAME']);
48 $protocolo = $protocolo . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; 49 $protocolo = $protocolo . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT'];
49 $urli3geo = str_replace("/kml.php","",$protocolo.$_SERVER["PHP_SELF"]); 50 $urli3geo = str_replace("/kml.php","",$protocolo.$_SERVER["PHP_SELF"]);
  51 +
  52 +if(!isset($perfil)){$perfil = "";}
  53 +//
  54 +//monta o xml
50 // 55 //
51 -//pega a lista de menus que será processada  
52 -//se a variável definida em ms_configura for = "", a busca é feita  
53 -//pelo método Menutemas 56 +echo "<Document><name>Menu i3geo</name><open>0</open><description></description><visibility>0</visibility>\n";
54 // 57 //
55 -if(!isset($perfil)){$perfil = "";}  
56 -if ($menutemas == "") 58 +//no caso do arquivo com o meu vir de um arquivo XML
  59 +//
  60 +if ($menutemas != "" || is_array($menutemas))
57 { 61 {
58 - $m = new Menutemas("",$perfil,$locsistemas,$locaplic,"",$urli3geo);  
59 - foreach($m->pegaListaDeMenus() as $menu) 62 + //
  63 + //para manter a compatibilidade entre as versões do i3geo
  64 + //é necessário verificar se a variável $menutemas é um array ou não
  65 + //
  66 + if(is_array($menutemas))
60 { 67 {
61 - $menus[] = $menu["url"]; 68 + foreach($menutemas as $m)
  69 + {$menus[] = $m["arquivo"];}
62 } 70 }
63 -}  
64 -else  
65 -{  
66 - foreach($menutemas as $m) 71 + else
  72 + $menu[] = $menutemas;
  73 +
  74 + foreach ($menus as $menu)
67 { 75 {
68 - $menus[] = $m["arquivo"]; 76 + $xml = simplexml_load_file($menu);
  77 + foreach($xml->GRUPO as $grupo)
  78 + {
  79 + $nome = mb_convert_encoding($grupo->GTIPO,"auto","auto");
  80 + $desc = mb_convert_encoding($grupo->DTIPO,"auto","auto");
  81 + kml_cabecalho($nome,$desc);
  82 + foreach($grupo->SGRUPO as $sgrupo)
  83 + {
  84 + $nome = mb_convert_encoding($sgrupo->SDTIPO,"auto","auto");
  85 + kml_folder($nome);
  86 + foreach($sgrupo->TEMA as $tema)
  87 + {
  88 + $nome = mb_convert_encoding($tema->TNOME,"auto","auto");
  89 + $desc = mb_convert_encoding($tema->TDESC,"auto","auto");
  90 + $id = mb_convert_encoding($tema->TID,"auto","auto");
  91 + $fonte = mb_convert_encoding($tema->TLINK,"auto","auto");
  92 + $tipoa = "";
  93 + if($tema->TIPOA)
  94 + $tipoa = mb_convert_encoding($tema->TIPOA,"auto","auto");
  95 + $ogc = sim;
  96 + if($tema->TID)
  97 + {
  98 + $kml = mb_convert_encoding($tema->KML,"auto","auto");
  99 + }
  100 + if(strtolower($kml) != "nao" && strtolower($tipoa) != "wms")
  101 + {
  102 + $fonte = "<a href='$fonte' >Fonte </a>";
  103 + $legenda = "<a href='$urli3geo/ogc.php?tema=$id&layer=$id&request=getlegendgraphic&service=wms&format=image/jpeg' >Legenda </a>";
  104 + $href = "$urli3geo/ogc.php?tema=$id&amp;width=800&amp;height=800&amp;VERSION=1.1.1&amp;REQUEST=GetMap&amp;SRS=EPSG:4326&amp;STYLES=&amp;BGCOLOR=0xFFFFFF&amp;FORMAT=image/png&amp;TRANSPARENT=TRUE&amp;layers=$id";
  105 + kml_servico($nome,$fonte,$legenda,$desc,$href);
  106 + }
  107 + }
  108 + echo "</Folder>\n";
  109 + }
  110 + echo "</Folder>\n";
  111 + }
69 } 112 }
70 } 113 }
71 -if(!isset($menus))  
72 -$menus = array("/opt/www/html/i3geo/menutemas/menutemas.xml");  
73 // 114 //
74 -//monta o xml 115 +//no caso do menu vir do sistema de administração
75 // 116 //
76 -echo "<Document><name>Menu i3geo</name><open>0</open><description></description><visibility>0</visibility>\n";  
77 -foreach ($menus as $menu) 117 +if($menutemas == "")
78 { 118 {
79 - $xml = simplexml_load_file($menu);  
80 - foreach($xml->GRUPO as $grupo) 119 + //include("admin/php/conexao.php");
  120 + include("admin/php/admin.php");
  121 + $grupos = pegaDados("SELECT * from i3geoadmin_grupos order by nome_grupo");
  122 + foreach($grupos as $grupo)
81 { 123 {
82 - $nome = mb_convert_encoding($grupo->GTIPO,"auto","auto");  
83 - $desc = mb_convert_encoding($grupo->DTIPO,"auto","auto");  
84 - echo "<Folder>\n";  
85 - echo "<name>".str_replace("&","&amp;",$nome)."</name>\n";  
86 - echo "<description>".str_replace("&","&amp;",$desc)."</description>\n";  
87 - echo "<open>0</open><visibility>0</visibility>\n";  
88 - foreach($grupo->SGRUPO as $sgrupo) 124 + kml_cabecalho($grupo["nome_grupo"],$grupo["desc_grupo"]);
  125 + $id_grupo = $grupo["id_grupo"];
  126 + $sql = "select s.nome_subgrupo,n2.id_n2 from i3geoadmin_n2 as n2,i3geoadmin_n1 as n1, i3geoadmin_subgrupos as s ";
  127 + $sql .= "where n1.id_grupo = '$id_grupo' and n2.id_subgrupo = s.id_subgrupo ";
  128 + $sql .= "and n2.id_n1 = n1.id_n1 ";
  129 + $sql .= "and n1.n1_perfil = '' and n2.n2_perfil = '' ";
  130 + //$sql .= "and n1.publicado != 'nao' and n2.publicado != 'nao' ";
  131 + $sql .= "order by s.nome_subgrupo";
  132 + //echo $sql;exit;
  133 + $subgrupos = pegaDados($sql);
  134 + foreach ($subgrupos as $subgrupo)
89 { 135 {
90 - echo "<Folder>\n";  
91 - $nome = mb_convert_encoding($sgrupo->SDTIPO,"auto","auto");  
92 - echo "<name>".str_replace("&","&amp;",$nome)."</name>\n";  
93 - echo "<description></description>\n";  
94 - echo "<open>0</open><visibility>0</visibility>\n";  
95 - foreach($sgrupo->TEMA as $tema) 136 + kml_folder($subgrupo["nome_subgrupo"]);
  137 + $id_n2 = $subgrupo["id_n2"];
  138 + $sql = "select t.codigo_tema,t.nome_tema,t.link_tema, t.desc_tema from i3geoadmin_n3 as n3,i3geoadmin_temas as t where ";
  139 + $sql .= "n3.id_n2='$id_n2' ";
  140 + $sql .= "and n3.id_tema = t.id_tema ";
  141 + $sql .= "and n3_perfil = '' ";
  142 + $sql .= "and t.kml_tema != 'nao' ";
  143 + $sql .= "and t.tipoa_tema = ''";
  144 + //echo $sql;exit;
  145 + $temas = pegadados($sql);
  146 + foreach ($temas as $tema)
96 { 147 {
97 - $nome = mb_convert_encoding($tema->TNOME,"auto","auto");  
98 - $desc = mb_convert_encoding($tema->TDESC,"auto","auto");  
99 - $id = mb_convert_encoding($tema->TID,"auto","auto");  
100 - $fonte = mb_convert_encoding($tema->TLINK,"auto","auto");  
101 - $tipoa = "";  
102 - if($tema->TIPOA)  
103 - $tipoa = mb_convert_encoding($tema->TIPOA,"auto","auto");  
104 - $ogc = sim;  
105 - if($tema->TID)  
106 - {  
107 - $kml = mb_convert_encoding($tema->KML,"auto","auto");  
108 - }  
109 - if(strtolower($kml) != "nao" && strtolower($tipoa) != "wms")  
110 - {  
111 - echo "<GroundOverlay>\n";  
112 - echo "<name>".str_replace("&","&amp;",$nome)."</name>\n";  
113 - $fonte = "<a href='$fonte' >Fonte </a>";  
114 - $legenda = "<a href='$urli3geo/ogc.php?tema=$id&layer=$id&request=getlegendgraphic&service=wms&format=image/jpeg' >Legenda </a>";  
115 - echo "<description><![CDATA[".$fonte.$legenda.$desc."]]></description>\n";  
116 - echo "<visibility>0</visibility>\n";  
117 - echo "<Icon>\n";  
118 - $l = $protocolo."/i3geo/ogc.php?tema=$id&amp;width=800&amp;height=800&amp;VERSION=1.1.1&amp;REQUEST=GetMap&amp;SRS=EPSG:4326&amp;STYLES=&amp;BGCOLOR=0xFFFFFF&amp;FORMAT=image/png&amp;TRANSPARENT=TRUE&amp;layers=$id";  
119 - echo "<viewRefreshMode>onStop</viewRefreshMode>\n";  
120 - echo "<href>$l</href>\n";  
121 - echo "</Icon>\n";  
122 - echo "<LatLonBox><north>9.49014618085</north><south>-39.3925604735</south><east>-29.5851853</east><west>-76.5125927</west></LatLonBox>\n";  
123 - echo "</GroundOverlay>\n";  
124 - }  
125 - }  
126 - echo "</Folder>\n"; 148 + $fonte = $tema["link_tema"];
  149 + $nome = $tema["nome_tema"];
  150 + $id = $tema["codigo_tema"];
  151 + $desc = $tema["desc_tema"];
  152 + $fonte = "<a href='$fonte' >Fonte </a>";
  153 + $legenda = "<a href='$urli3geo/ogc.php?tema=$id&layer=$id&request=getlegendgraphic&service=wms&format=image/jpeg' >Legenda </a>";
  154 + $href = "$urli3geo/ogc.php?tema=$id&amp;width=800&amp;height=800&amp;VERSION=1.1.1&amp;REQUEST=GetMap&amp;SRS=EPSG:4326&amp;STYLES=&amp;BGCOLOR=0xFFFFFF&amp;FORMAT=image/png&amp;TRANSPARENT=TRUE&amp;layers=$id";
  155 + kml_servico($nome,$fonte,$legenda,$desc,$href);
  156 + }
  157 + echo "</Folder>\n";
127 } 158 }
128 echo "</Folder>\n"; 159 echo "</Folder>\n";
129 } 160 }
  161 +
130 } 162 }
131 echo "</Document></kml>\n"; 163 echo "</Document></kml>\n";
  164 +function kml_cabecalho($nome,$desc)
  165 +{
  166 + echo "<Folder>\n";
  167 + echo " <name>".str_replace("&","&amp;",$nome)."</name>\n";
  168 + echo " <description>".str_replace("&","&amp;",$desc)."</description>\n";
  169 + echo " <open>0</open><visibility>0</visibility>\n";
  170 +}
  171 +function kml_folder($nome)
  172 +{
  173 + echo " <Folder>\n";
  174 + echo " <name>".str_replace("&","&amp;",$nome)."</name>\n";
  175 + echo " <description></description>\n";
  176 + echo " <open>0</open><visibility>0</visibility>\n";
  177 +}
  178 +function kml_servico($nome,$fonte,$legenda,$desc,$href)
  179 +{
  180 + echo " <GroundOverlay>\n";
  181 + echo " <name>".str_replace("&","&amp;",$nome)."</name>\n";
  182 + echo " <description><![CDATA[".$fonte.$legenda.$desc."]]></description>\n";
  183 + echo " <visibility>0</visibility>\n";
  184 + echo " <Icon>\n";
  185 + echo " <viewRefreshMode>onStop</viewRefreshMode>\n";
  186 + echo " <href>$href</href>\n";
  187 + echo " </Icon>\n";
  188 + echo " <LatLonBox><north>9.49014618085</north><south>-39.3925604735</south><east>-29.5851853</east><west>-76.5125927</west></LatLonBox>\n";
  189 + echo " </GroundOverlay>\n";
  190 +}
132 ?> 191 ?>
133 \ No newline at end of file 192 \ No newline at end of file