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 | ... | ... |