Commit 52839c5b7714a4574bbb78cefe752d90bad6eaee
1 parent
ee89673e
Exists in
master
and in
7 other branches
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&width=800&height=800&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&STYLES=&BGCOLOR=0xFFFFFF&FORMAT=image/png&TRANSPARENT=TRUE&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("&","&",$nome)."</name>\n"; | |
86 | - echo "<description>".str_replace("&","&",$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("&","&",$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("&","&",$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&width=800&height=800&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&STYLES=&BGCOLOR=0xFFFFFF&FORMAT=image/png&TRANSPARENT=TRUE&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&width=800&height=800&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&STYLES=&BGCOLOR=0xFFFFFF&FORMAT=image/png&TRANSPARENT=TRUE&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("&","&",$nome)."</name>\n"; | |
168 | + echo " <description>".str_replace("&","&",$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("&","&",$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("&","&",$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 | ... | ... |