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 46 }
47 47 }
48 48 include_once($locaplic."/classesphp/pega_variaveis.php");
49   -error_reporting(E_ALL);
  49 +error_reporting(0);
50 50 //
51 51 //carrega o phpmapscript
52 52 //
... ... @@ -91,6 +91,7 @@ function retornaJSON($obj)
91 91 $texto = $j->encode($obj);
92 92 if (!mb_detect_encoding($texto,"UTF-8",true))
93 93 $texto = utf8_encode($texto);
  94 + header("Content-type: text/ascii; charset=UTF-8");
94 95 echo $texto;
95 96 }
96 97 else
... ...
kml.php
... ... @@ -36,6 +36,7 @@ error_reporting(0);
36 36 include_once ("classesphp/carrega_ext.php");
37 37 include_once ("classesphp/classe_menutemas.php");
38 38 include_once ("ms_configura.php");
  39 +echo header("Content-type: application/xml");
39 40 echo '<?xml version="1.0" encoding="UTF-8"?>';
40 41 echo "<kml xmlns='http://earth.google.com/kml/2.2'>\n";
41 42 //
... ... @@ -47,86 +48,144 @@ $protocolo = $protocolo[0];
47 48 $protocolo1 = strtolower($protocolo . '://'.$_SERVER['SERVER_NAME']);
48 49 $protocolo = $protocolo . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT'];
49 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 159 echo "</Folder>\n";
129 160 }
  161 +
130 162 }
131 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 192 \ No newline at end of file
... ...