From 52839c5b7714a4574bbb78cefe752d90bad6eaee Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Fri, 7 Nov 2008 17:41:39 +0000 Subject: [PATCH] Correções no gerador de KML para adaptá-lo ao sistema de administração --- admin/php/admin.php | 3 ++- kml.php | 185 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------- 2 files changed, 124 insertions(+), 64 deletions(-) diff --git a/admin/php/admin.php b/admin/php/admin.php index 9debf7c..5de5799 100644 --- a/admin/php/admin.php +++ b/admin/php/admin.php @@ -46,7 +46,7 @@ if(!isset($locaplic)) } } include_once($locaplic."/classesphp/pega_variaveis.php"); -error_reporting(E_ALL); +error_reporting(0); // //carrega o phpmapscript // @@ -91,6 +91,7 @@ function retornaJSON($obj) $texto = $j->encode($obj); if (!mb_detect_encoding($texto,"UTF-8",true)) $texto = utf8_encode($texto); + header("Content-type: text/ascii; charset=UTF-8"); echo $texto; } else diff --git a/kml.php b/kml.php index a1453c4..414e252 100644 --- a/kml.php +++ b/kml.php @@ -36,6 +36,7 @@ error_reporting(0); include_once ("classesphp/carrega_ext.php"); include_once ("classesphp/classe_menutemas.php"); include_once ("ms_configura.php"); +echo header("Content-type: application/xml"); echo ''; echo "\n"; // @@ -47,86 +48,144 @@ $protocolo = $protocolo[0]; $protocolo1 = strtolower($protocolo . '://'.$_SERVER['SERVER_NAME']); $protocolo = $protocolo . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; $urli3geo = str_replace("/kml.php","",$protocolo.$_SERVER["PHP_SELF"]); + +if(!isset($perfil)){$perfil = "";} +// +//monta o xml // -//pega a lista de menus que será processada -//se a variável definida em ms_configura for = "", a busca é feita -//pelo método Menutemas +echo "Menu i3geo00\n"; // -if(!isset($perfil)){$perfil = "";} -if ($menutemas == "") +//no caso do arquivo com o meu vir de um arquivo XML +// +if ($menutemas != "" || is_array($menutemas)) { - $m = new Menutemas("",$perfil,$locsistemas,$locaplic,"",$urli3geo); - foreach($m->pegaListaDeMenus() as $menu) + // + //para manter a compatibilidade entre as versões do i3geo + //é necessário verificar se a variável $menutemas é um array ou não + // + if(is_array($menutemas)) { - $menus[] = $menu["url"]; + foreach($menutemas as $m) + {$menus[] = $m["arquivo"];} } -} -else -{ - foreach($menutemas as $m) + else + $menu[] = $menutemas; + + foreach ($menus as $menu) { - $menus[] = $m["arquivo"]; + $xml = simplexml_load_file($menu); + foreach($xml->GRUPO as $grupo) + { + $nome = mb_convert_encoding($grupo->GTIPO,"auto","auto"); + $desc = mb_convert_encoding($grupo->DTIPO,"auto","auto"); + kml_cabecalho($nome,$desc); + foreach($grupo->SGRUPO as $sgrupo) + { + $nome = mb_convert_encoding($sgrupo->SDTIPO,"auto","auto"); + kml_folder($nome); + foreach($sgrupo->TEMA as $tema) + { + $nome = mb_convert_encoding($tema->TNOME,"auto","auto"); + $desc = mb_convert_encoding($tema->TDESC,"auto","auto"); + $id = mb_convert_encoding($tema->TID,"auto","auto"); + $fonte = mb_convert_encoding($tema->TLINK,"auto","auto"); + $tipoa = ""; + if($tema->TIPOA) + $tipoa = mb_convert_encoding($tema->TIPOA,"auto","auto"); + $ogc = sim; + if($tema->TID) + { + $kml = mb_convert_encoding($tema->KML,"auto","auto"); + } + if(strtolower($kml) != "nao" && strtolower($tipoa) != "wms") + { + $fonte = "Fonte "; + $legenda = "Legenda "; + $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"; + kml_servico($nome,$fonte,$legenda,$desc,$href); + } + } + echo "\n"; + } + echo "\n"; + } } } -if(!isset($menus)) -$menus = array("/opt/www/html/i3geo/menutemas/menutemas.xml"); // -//monta o xml +//no caso do menu vir do sistema de administração // -echo "Menu i3geo00\n"; -foreach ($menus as $menu) +if($menutemas == "") { - $xml = simplexml_load_file($menu); - foreach($xml->GRUPO as $grupo) + //include("admin/php/conexao.php"); + include("admin/php/admin.php"); + $grupos = pegaDados("SELECT * from i3geoadmin_grupos order by nome_grupo"); + foreach($grupos as $grupo) { - $nome = mb_convert_encoding($grupo->GTIPO,"auto","auto"); - $desc = mb_convert_encoding($grupo->DTIPO,"auto","auto"); - echo "\n"; - echo "".str_replace("&","&",$nome)."\n"; - echo "".str_replace("&","&",$desc)."\n"; - echo "00\n"; - foreach($grupo->SGRUPO as $sgrupo) + kml_cabecalho($grupo["nome_grupo"],$grupo["desc_grupo"]); + $id_grupo = $grupo["id_grupo"]; + $sql = "select s.nome_subgrupo,n2.id_n2 from i3geoadmin_n2 as n2,i3geoadmin_n1 as n1, i3geoadmin_subgrupos as s "; + $sql .= "where n1.id_grupo = '$id_grupo' and n2.id_subgrupo = s.id_subgrupo "; + $sql .= "and n2.id_n1 = n1.id_n1 "; + $sql .= "and n1.n1_perfil = '' and n2.n2_perfil = '' "; + //$sql .= "and n1.publicado != 'nao' and n2.publicado != 'nao' "; + $sql .= "order by s.nome_subgrupo"; + //echo $sql;exit; + $subgrupos = pegaDados($sql); + foreach ($subgrupos as $subgrupo) { - echo "\n"; - $nome = mb_convert_encoding($sgrupo->SDTIPO,"auto","auto"); - echo "".str_replace("&","&",$nome)."\n"; - echo "\n"; - echo "00\n"; - foreach($sgrupo->TEMA as $tema) + kml_folder($subgrupo["nome_subgrupo"]); + $id_n2 = $subgrupo["id_n2"]; + $sql = "select t.codigo_tema,t.nome_tema,t.link_tema, t.desc_tema from i3geoadmin_n3 as n3,i3geoadmin_temas as t where "; + $sql .= "n3.id_n2='$id_n2' "; + $sql .= "and n3.id_tema = t.id_tema "; + $sql .= "and n3_perfil = '' "; + $sql .= "and t.kml_tema != 'nao' "; + $sql .= "and t.tipoa_tema = ''"; + //echo $sql;exit; + $temas = pegadados($sql); + foreach ($temas as $tema) { - $nome = mb_convert_encoding($tema->TNOME,"auto","auto"); - $desc = mb_convert_encoding($tema->TDESC,"auto","auto"); - $id = mb_convert_encoding($tema->TID,"auto","auto"); - $fonte = mb_convert_encoding($tema->TLINK,"auto","auto"); - $tipoa = ""; - if($tema->TIPOA) - $tipoa = mb_convert_encoding($tema->TIPOA,"auto","auto"); - $ogc = sim; - if($tema->TID) - { - $kml = mb_convert_encoding($tema->KML,"auto","auto"); - } - if(strtolower($kml) != "nao" && strtolower($tipoa) != "wms") - { - echo "\n"; - echo "".str_replace("&","&",$nome)."\n"; - $fonte = "Fonte "; - $legenda = "Legenda "; - echo "\n"; - echo "0\n"; - echo "\n"; - $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"; - echo "onStop\n"; - echo "$l\n"; - echo "\n"; - echo "9.49014618085-39.3925604735-29.5851853-76.5125927\n"; - echo "\n"; - } - } - echo "\n"; + $fonte = $tema["link_tema"]; + $nome = $tema["nome_tema"]; + $id = $tema["codigo_tema"]; + $desc = $tema["desc_tema"]; + $fonte = "Fonte "; + $legenda = "Legenda "; + $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"; + kml_servico($nome,$fonte,$legenda,$desc,$href); + } + echo "\n"; } echo "\n"; } + } echo "\n"; +function kml_cabecalho($nome,$desc) +{ + echo "\n"; + echo " ".str_replace("&","&",$nome)."\n"; + echo " ".str_replace("&","&",$desc)."\n"; + echo " 00\n"; +} +function kml_folder($nome) +{ + echo " \n"; + echo " ".str_replace("&","&",$nome)."\n"; + echo " \n"; + echo " 00\n"; +} +function kml_servico($nome,$fonte,$legenda,$desc,$href) +{ + echo " \n"; + echo " ".str_replace("&","&",$nome)."\n"; + echo " \n"; + echo " 0\n"; + echo " \n"; + echo " onStop\n"; + echo " $href\n"; + echo " \n"; + echo " 9.49014618085-39.3925604735-29.5851853-76.5125927\n"; + echo " \n"; +} ?> \ No newline at end of file -- libgit2 0.21.2