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,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 |
kml.php
@@ -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&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 | 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("&","&",$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 | \ No newline at end of file | 192 | \ No newline at end of file |