From 5dea5c643d74186cb13f532e23741800e208ec77 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Sun, 13 Aug 2017 00:28:52 -0300 Subject: [PATCH] Adaptação da ferramenta de geração WMS e WMC para bootstrap e correção de erros na geração dos serviços. Uso da session php para obter o arquivo mapfile ao invés de parâmetro enviado via url --- admin/admin.db | Bin 340992 -> 0 bytes classesphp/classe_mapa.php | 24 +++++++++--------------- css/i3geo7.css.php | 0 ferramentas/convertews/dependencias.php | 11 ----------- ferramentas/convertews/dicionario.js | 2 +- ferramentas/convertews/exec.php | 10 +++++++--- ferramentas/convertews/index.js | 81 +++++++++++++++++++++++++++++++-------------------------------------------------- ferramentas/convertews/ogc.php | 1527 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ferramentas/convertews/template_mst.html | 31 +++++++++++++------------------ ferramentas/editorgm/editorgm_compacto.js | 0 ferramentas/editorol/editorol_compacto.js | 0 js/compactados/ajuda_compacto.js | 0 js/compactados/analise_compacto.js | 0 js/compactados/arvoredecamadas_compacto.js | 0 js/compactados/arvoredetemas_compacto.js | 0 js/compactados/base64_compacto.js | 0 js/compactados/busca_compacto.js | 0 js/compactados/caixaDeFerramentas_compacto.js | 0 js/compactados/calculo_compacto.js | 0 js/compactados/catalogoDir_compacto.js | 0 js/compactados/catalogoEstrelas_compacto.js | 0 js/compactados/catalogoInde_compacto.js | 0 js/compactados/catalogoMapas_compacto.js | 0 js/compactados/catalogoMenus_compacto.js | 0 js/compactados/catalogoMetaestat_compacto.js | 0 js/compactados/catalogoOgc_compacto.js | 0 js/compactados/catalogoRegioes_compacto.js | 0 js/compactados/catalogoSistemas_compacto.js | 0 js/compactados/configura_compacto.js | 0 js/compactados/coordenadas_compacto.js | 0 js/compactados/desenho_compacto.js | 0 js/compactados/dicionario_ajuda_compacto.js | 0 js/compactados/dicionario_compacto.js | 0 js/compactados/editor_compacto.js | 0 js/compactados/eventos_compacto.js | 0 js/compactados/guias_compacto.js | 0 js/compactados/idioma_compacto.js | 0 js/compactados/ini_i3geo_compacto.js | 0 js/compactados/interface_compacto.js | 0 js/compactados/janela_compacto.js | 0 js/compactados/legenda_compacto.js | 0 js/compactados/login_compacto.js | 0 js/compactados/mapa_compacto.js | 0 js/compactados/maparef_compacto.js | 0 js/compactados/marcador_compacto.js | 0 js/compactados/mustache.js | 0 js/compactados/navega_compacto.js | 0 js/compactados/php_compacto.js | 0 js/compactados/plugini3geo_compacto.js | 0 js/compactados/proj4js.js | 0 js/compactados/social_compacto.js | 0 js/compactados/tema_compacto.js | 0 js/compactados/util_compacto.js | 0 js/compactados/wicket.js | 0 js/i3geo_tudo_compacto7.js.php | 0 js/listaDeFerramentas.js | 4 ---- js/mapa.js | 9 --------- pacotes/cpaint/cpaint2_compacto.inc.js | 0 pacotes/mobileesp/mdetect_compacto.js | 0 pacotes/yui290/build/carousel/carousel_compacto.js | 0 pacotes/yui290/build/container/container_compacto.js | 0 pacotes/yui290/build/container/container_core_compacto.js | 0 pacotes/yui290/build/resize/resize_compacto.js | 0 pacotes/yui290/build/treeview/treeview_compacto.js | 0 pacotes/yui290/build/utilities/utilities_compacto.js | 0 65 files changed, 1588 insertions(+), 111 deletions(-) mode change 100644 => 100755 css/i3geo7.css.php create mode 100755 ferramentas/convertews/ogc.php mode change 100644 => 100755 ferramentas/editorgm/editorgm_compacto.js mode change 100644 => 100755 ferramentas/editorol/editorol_compacto.js mode change 100644 => 100755 js/compactados/ajuda_compacto.js mode change 100644 => 100755 js/compactados/analise_compacto.js mode change 100644 => 100755 js/compactados/arvoredecamadas_compacto.js mode change 100644 => 100755 js/compactados/arvoredetemas_compacto.js mode change 100644 => 100755 js/compactados/base64_compacto.js mode change 100644 => 100755 js/compactados/busca_compacto.js mode change 100644 => 100755 js/compactados/caixaDeFerramentas_compacto.js mode change 100644 => 100755 js/compactados/calculo_compacto.js mode change 100644 => 100755 js/compactados/catalogoDir_compacto.js mode change 100644 => 100755 js/compactados/catalogoEstrelas_compacto.js mode change 100644 => 100755 js/compactados/catalogoInde_compacto.js mode change 100644 => 100755 js/compactados/catalogoMapas_compacto.js mode change 100644 => 100755 js/compactados/catalogoMenus_compacto.js mode change 100644 => 100755 js/compactados/catalogoMetaestat_compacto.js mode change 100644 => 100755 js/compactados/catalogoOgc_compacto.js mode change 100644 => 100755 js/compactados/catalogoRegioes_compacto.js mode change 100644 => 100755 js/compactados/catalogoSistemas_compacto.js mode change 100644 => 100755 js/compactados/configura_compacto.js mode change 100644 => 100755 js/compactados/coordenadas_compacto.js mode change 100644 => 100755 js/compactados/desenho_compacto.js mode change 100644 => 100755 js/compactados/dicionario_ajuda_compacto.js mode change 100644 => 100755 js/compactados/dicionario_compacto.js mode change 100644 => 100755 js/compactados/editor_compacto.js mode change 100644 => 100755 js/compactados/eventos_compacto.js mode change 100644 => 100755 js/compactados/guias_compacto.js mode change 100644 => 100755 js/compactados/idioma_compacto.js mode change 100644 => 100755 js/compactados/ini_i3geo_compacto.js mode change 100644 => 100755 js/compactados/interface_compacto.js mode change 100644 => 100755 js/compactados/janela_compacto.js mode change 100644 => 100755 js/compactados/legenda_compacto.js mode change 100644 => 100755 js/compactados/login_compacto.js mode change 100644 => 100755 js/compactados/mapa_compacto.js mode change 100644 => 100755 js/compactados/maparef_compacto.js mode change 100644 => 100755 js/compactados/marcador_compacto.js mode change 100644 => 100755 js/compactados/mustache.js mode change 100644 => 100755 js/compactados/navega_compacto.js mode change 100644 => 100755 js/compactados/php_compacto.js mode change 100644 => 100755 js/compactados/plugini3geo_compacto.js mode change 100644 => 100755 js/compactados/proj4js.js mode change 100644 => 100755 js/compactados/social_compacto.js mode change 100644 => 100755 js/compactados/tema_compacto.js mode change 100644 => 100755 js/compactados/util_compacto.js mode change 100644 => 100755 js/compactados/wicket.js mode change 100644 => 100755 js/i3geo_tudo_compacto7.js.php mode change 100644 => 100755 pacotes/cpaint/cpaint2_compacto.inc.js mode change 100644 => 100755 pacotes/mobileesp/mdetect_compacto.js mode change 100644 => 100755 pacotes/yui290/build/carousel/carousel_compacto.js mode change 100644 => 100755 pacotes/yui290/build/container/container_compacto.js mode change 100644 => 100755 pacotes/yui290/build/container/container_core_compacto.js mode change 100644 => 100755 pacotes/yui290/build/resize/resize_compacto.js mode change 100644 => 100755 pacotes/yui290/build/treeview/treeview_compacto.js mode change 100644 => 100755 pacotes/yui290/build/utilities/utilities_compacto.js diff --git a/admin/admin.db b/admin/admin.db index dee49a8..290b80d 100755 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/classesphp/classe_mapa.php b/classesphp/classe_mapa.php index 73fd412..7072daf 100755 --- a/classesphp/classe_mapa.php +++ b/classesphp/classe_mapa.php @@ -1684,7 +1684,7 @@ class Mapa */ function converteWS($locaplic,$h) { - $nomeurl = "/ogc.php?tema=".$this->arquivo; + $nomeurl = "/ogc.php?sid=".$this->arquivo; return($nomeurl); } /* @@ -1704,33 +1704,27 @@ class Mapa Endereço do WMC */ - function converteWMC($locmapserv,$h) + function converteWMC($locmapserv,$urli3geo) { - $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); - $protocolo = $protocolo[0]; - $protocolo1 = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME']; - $protocolo = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; - $urli3geo = str_replace("/classesphp/mapa_controle.php","",$protocolo.$_SERVER["PHP_SELF"]); + $r = nomeRandomico(5); + $nomews = str_replace(".map",$r."wmc.map",$this->arquivo); - $nomews = str_replace(".map","wmc.map",$this->arquivo); $nomeurl = $locmapserv."?map=".$nomews; $nomeogc = $urli3geo."/ogc.php?tema=".$nomews; $w = $this->mapa->web; $w->set("template",""); // adiciona os parametros no nivel do mapa $this->mapa->setmetadata("wms_title","i3Geo"); - $this->mapa->setmetadata("wms_onlineresource","http://".$h.$nomeurl); + $this->mapa->setmetadata("wms_onlineresource","http://".$nomeurl); $projecao = pegaProjecaoDefault("epsg"); $this->mapa->setmetadata("wms_srs","EPSG:".$projecao); $this->mapa->setmetadata("wms_getcontext_enabled","1"); - foreach ($this->layers as $layer) - { + foreach ($this->layers as $layer){ if($layer->connectiontype != 7 && $layer->connectiontype != 9){ $n = pegaNome($layer); $layer->setmetadata("wms_title",$n); $codigo = $layer->getmetadata("nomeoriginal"); - if($codigo == "") - { + if($codigo == ""){ $codigo = $layer->name; } $layer->setmetadata("wms_server_version","1.0.0"); @@ -1742,14 +1736,14 @@ class Mapa $layer->setmetadata("wms_format","image/png"); $layer->setmetadata("wms_formatlist","image/gif,image/png,image/png; mode=24bit,image/jpeg,image/wbmp,image/tiff"); $layer->set("dump",MS_TRUE); - $layer->set("status","ON"); + $layer->set("status",MS_DEFAULT); $layer->set("template","none.htm"); $c = $layer->getclass(0); if ($c->name == "") { $c->name = " "; } - if($layer->connectiontype != "WS_WMS" && $layer->getmetadata("permiteogc") == "" && $layer->getmetadata("TEMALOCAL") == ""){ + if($layer->connectiontype != "WS_WMS" && strtolower($layer->getmetadata("permiteogc")) != "nao" && $layer->getmetadata("TEMALOCAL") == ""){ if(ms_GetVersionInt() > 50201) { $layer->setconnectiontype(MS_WMS); diff --git a/css/i3geo7.css.php b/css/i3geo7.css.php old mode 100644 new mode 100755 index bec61fe..bec61fe --- a/css/i3geo7.css.php +++ b/css/i3geo7.css.php diff --git a/ferramentas/convertews/dependencias.php b/ferramentas/convertews/dependencias.php index 792d732..c1f6cbb 100755 --- a/ferramentas/convertews/dependencias.php +++ b/ferramentas/convertews/dependencias.php @@ -17,17 +17,6 @@ header("Content-type: text/javascript"); include("index.js"); include("dicionario.js"); echo "\n"; -/** - * Inclui o template mustache do HTML usado para criar o conteudo da janela - */ -echo 'i3GEOF.converteMapaWS.MUSTACHE = "'; -$texto = file_get_contents("template_mst.html"); -$texto = str_replace("\n", "", $texto); -$texto = str_replace("\r", "", $texto); -$texto = str_replace("\t", "", $texto); -$texto = str_replace('"', "'", $texto); -echo $texto; -echo '";'; if(extension_loaded('zlib')){ ob_end_flush(); } diff --git a/ferramentas/convertews/dicionario.js b/ferramentas/convertews/dicionario.js index 292ce12..7d32b76 100755 --- a/ferramentas/convertews/dicionario.js +++ b/ferramentas/convertews/dicionario.js @@ -1,7 +1,7 @@ //+$trad(1,i3GEOF.converteMapaWS.dicionario)+ i3GEOF.converteMapaWS.dicionario = { 'ajudaDesktop' : [ { - pt : "Você pode utilizar o endereço em softwares de geoprocessamento instalados em seu computador, como por exemplo, o", + pt : "Você pode utilizar o endereço em softwares de geoprocessamento instalados em seu computador, como por exemplo, o gvSIG ou QGIS", en : "", es : "Usted puede utilizar la dirección en el software de geoprocesamiento instalado en su ordenador, como por ejemplo: el" } ], diff --git a/ferramentas/convertews/exec.php b/ferramentas/convertews/exec.php index bd79927..b6eddf5 100755 --- a/ferramentas/convertews/exec.php +++ b/ferramentas/convertews/exec.php @@ -17,9 +17,13 @@ Converte o mapa atual em um wms e wmc. case "CONVERTEWMSWMC": include_once(dirname(__FILE__)."/../../classesphp/classe_mapa.php"); $m = new Mapa($map_file); - if(!isset($_GET["h"])){$_GET["h"] = "";} - $wms = $m->converteWS($locmapserv,$_GET["h"]); - $wmc = $m->converteWMC($locmapserv,$_GET["h"]); + $wms = "/ferramentas/convertews/ogc.php?sid=".$g_sid; + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); + $protocolo = $protocolo[0]; + $protocolo1 = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME']; + $protocolo = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; + $urli3geo = str_replace("/ferramentas/convertews/exec.php","",$protocolo.$_SERVER["PHP_SELF"]); + $wmc = $m->converteWMC($locmapserv,$urli3geo); $retorno = array("wms"=>$wms,"wmc"=>$wmc); break; } diff --git a/ferramentas/convertews/index.js b/ferramentas/convertews/index.js index 5659efe..7879f6a 100755 --- a/ferramentas/convertews/index.js +++ b/ferramentas/convertews/index.js @@ -60,33 +60,16 @@ i3GEOF.converteMapaWS = { /** * Susbtitutos para o template */ - mustacheHash : function() { + mustacheHash : function(enderecowms,enderecowmc) { var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.converteMapaWS.dicionario); dicionario["nomewms"] = enderecowms; dicionario["nomewmc"] = enderecowmc; - dicionario["divid"] = $i(divid).innerHTML; + dicionario["bbox"] = i3GEO.parametros.mapexten.split(" ").join(","); + dicionario["w"] = i3GEO.parametros.w; + dicionario["h"] = i3GEO.parametros.h; return dicionario; }, /* - Function: iniciaDicionario - - Carrega o dicionário e chama a função que inicia a ferramenta - - O Javascript é carregado com o id i3GEOF.nomedaferramenta.dicionario_script - */ - iniciaDicionario: function(){ - if(typeof(i3GEOF.converteMapaWS.dicionario) === 'undefined'){ - i3GEO.util.scriptTag( - i3GEO.configura.locaplic+"/ferramentas/convertews/dicionario.js", - "i3GEOF.converteMapaWS.iniciaJanelaFlutuante()", - "i3GEOF.converteMapaWS.dicionario_script" - ); - } - else{ - i3GEOF.converteMapaWS.iniciaJanelaFlutuante(); - } - }, - /* Function: html Gera o código html para apresentação das opções da ferramenta @@ -96,19 +79,31 @@ i3GEOF.converteMapaWS = { divid {String} - id do div que receberá o conteudo HTML da ferramenta */ - html:function(divid,enderecowms,enderecowmc){ - try{ - var ins = '

'+$trad('ajudaDesktop',i3GEOF.converteMapaWS.dicionario)+' gvSig' + - '

' + $trad('ajudaWms',i3GEOF.converteMapaWS.dicionario) + - '

' + $trad('ajudaWmc',i3GEOF.converteMapaWS.dicionario) + ''+$trad('wmc',i3GEOF.converteMapaWS.dicionario)+'' + - '

WMS:

' + - '

' + - '

' + - ''+$trad('testa',i3GEOF.converteMapaWS.dicionario)+'

'; - $i(divid).innerHTML += ins; - i3GEOF.converteMapaWS.aguarde.visibility = "hidden"; - }catch(e){i3GEO.janela.tempoMsg(e);i3GEOF.converteMapaWS.aguarde.visibility = "hidden";} + html:function(enderecowms,enderecowmc){ + var ins = Mustache.render(i3GEOF.converteMapaWS.MUSTACHE, i3GEOF.converteMapaWS.mustacheHash(enderecowms,enderecowmc)); + return ins; + }, + inicia: function(divid){ + if(i3GEOF.converteMapaWS.MUSTACHE == ""){ + $.get(i3GEO.configura.locaplic + "/ferramentas/convertews/template_mst.html", function(template) { + i3GEOF.converteMapaWS.MUSTACHE = template; + i3GEOF.converteMapaWS.inicia(divid); + }); + return; + } + var temp = function(retorno){ + var enderecowms = $trad('erroWms',i3GEOF.converteMapaWS.dicionario), + enderecowmc = $trad('erroWms',i3GEOF.converteMapaWS.dicionario); + if (retorno.data != undefined){ + enderecowms = i3GEO.configura.locaplic+retorno.data.wms+"&"; + enderecowmc = window.location.protocol+"//"+window.location.host+retorno.data.wmc+"&"; + } + $i(divid).innerHTML = i3GEOF.converteMapaWS.html(enderecowms,enderecowmc); + }; + var p = i3GEO.configura.locaplic+"/ferramentas/convertews/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=convertewmswmc"; + var cp = new cpaint(); + cp.set_response_type("JSON"); + cp.call(p,"converteWMSWMC",temp); }, /* Function: iniciaJanelaFlutuante @@ -131,7 +126,7 @@ i3GEOF.converteMapaWS = { titulo = "WMS"; janela = i3GEO.janela.cria( "440px", - "290px", + "310px", "", "", "", @@ -150,20 +145,6 @@ i3GEOF.converteMapaWS = { "12" ); divid = janela[2].id; - i3GEOF.converteMapaWS.aguarde = $i("i3GEOF.converteMapaWS_imagemCabecalho").style; - i3GEOF.converteMapaWS.aguarde.visibility = "visible"; - temp = function(retorno){ - var enderecowms = $trad('erroWms',i3GEOF.converteMapaWS.dicionario), - enderecowmc = $trad('erroWms',i3GEOF.converteMapaWS.dicionario); - if (retorno.data != undefined){ - enderecowms = i3GEO.configura.locaplic+retorno.data.wms+"&"; - enderecowmc = window.location.protocol+"//"+window.location.host+retorno.data.wmc+"&"; - } - i3GEOF.converteMapaWS.html(divid,enderecowms,enderecowmc); - }; - p = i3GEO.configura.locaplic+"/ferramentas/convertews/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=convertewmswmc&h="+window.location.host; - cp = new cpaint(); - cp.set_response_type("JSON"); - cp.call(p,"converteWMSWMC",temp); + i3GEOF.converteMapaWS.inicia(divid); } }; \ No newline at end of file diff --git a/ferramentas/convertews/ogc.php b/ferramentas/convertews/ogc.php new file mode 100755 index 0000000..b8c8426 --- /dev/null +++ b/ferramentas/convertews/ogc.php @@ -0,0 +1,1527 @@ +"; + } +} +// +//pega a versao do Mapserver +// +//error_reporting(0); +$versao = versao(); +$versao = $versao["principal"]; + +$req = ms_newowsrequestobj(); +$tipo = ""; + +$cache = false; + +// +//inclui todos os parametros na requisicao e aproveita para verificar getcapabilities +// + +$oMap = ms_newMapobj($tema); +$c = $oMap->numlayers; +$ls = array(); +for ($i=0;$i < $c;++$i){ + $l = $oMap->getlayer($i); + if($l->status == MS_DEFAULT){ + $ls[] = $l->name; + } +} +$_GET["LAYERS"] = implode(",",$ls); + +foreach ($_GET as $k=>$v){ + $req->setParameter(strtoupper($k), $v); + if(strtolower($v) == "getcapabilities"){ + $tipo = "metadados"; + $cache = false; + } +} +// +//cria uma lista de epsgs para o getcapabilities +// +$req->setParameter("srsName",$req->getValueByName("SRS")); +$listaepsg = $req->getValueByName("SRS")." EPSG:4618 EPSG:4291 EPSG:4326 EPSG:22521 EPSG:22522 EPSG:22523 EPSG:22524 EPSG:22525 EPSG:29101 EPSG:29119 EPSG:29120 EPSG:29121 EPSG:29122 EPSG:29177 EPSG:29178 EPSG:29179 EPSG:29180 EPSG:29181 EPSG:29182 EPSG:29183 EPSG:29184 EPSG:29185"; +$VERSION = $_GET["VERSION"]; +if(isset($_GET["version"]) && !isset($_GET["VERSION"])){ + $VERSION = $_GET["version"]; +} +if(!isset($VERSION) || $VERSION == ""){ + $req->setParameter("VeRsIoN","1.1.1"); +} + +// +//nome do mapfile que ficara em cache +// + +$agora = intval(time() / 1000); +//acrescenta ao nome a indicacao do tipo de TMS +if(isset($_GET["tms"])){ + $agora .= "tms"; +} +if(isset($_GET["Z"]) && isset($_GET["X"])){ + $agora .= "google"; +} +// +//se o outputformat for definido, evita o cahce de arquivo +//o mesmo se existir filtro para o layer +// +if(isset($_GET["OUTPUTFORMAT"]) || !empty($_GET["map_layer_".$tema."_filter"])){ + $_GET["DESLIGACACHE"] = "sim"; +} +if(isset($_GET["DESLIGACACHE"]) && $_GET["DESLIGACACHE"] == "sim"){ + $agora = time(); + $cache = false; +} +//remove o bbox do calculo do nome do mapfile +$arrayget = $_GET; +$arrayget["bbox"] = ""; +$arrayget["BBOX"] = ""; +$arrayget["Z"] = ""; +$arrayget["X"] = ""; +$arrayget["Y"] = ""; +$arrayget["tms"] = ""; +$arrayget["TileMatrix"] = ""; +$arrayget["TileCol"] = ""; +$arrayget["TileRow"] = ""; + +$nomeMapfileTmp = $dir_tmp."/ogc_".md5(implode("",$arrayget))."_".$agora.".map"; + +//essa variavel e usada para definir se a imagem final gerada devera ser cortada ou nao +$cortePixels = 0; +if(empty($ogcwsmap)){ + $ogcwsmap = $_GET["ogcwsmap"]; +} +$oMap = ms_newMapobj($_SESSION["map_file"]); +substituiConObj($oMap,$postgis_mapa); + + $proto = "http" . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://"; + $server = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']; + $or = $urli3geo."/ogc.php"; + if((isset($tema)) && ($tema != "") && ($tipo=="metadados")){ + $or = $or."?tema=".$tema."&"; + } + // + //parametros no nível maior + // + $oMap->setmetadata("ows_onlineresource",$or); + $oMap->setmetadata("wms_onlineresource",$or); + $oMap->setmetadata("wms_title",$tituloInstituicao." - i3geo"); + $oMap->setmetadata("wfs_title",$tituloInstituicao." - i3geo"); + $oMap->setmetadata("wms_attribution_logourl_format","image/png"); + $oMap->setmetadata("wms_attribution_logourl_height","56"); + $oMap->setmetadata("wms_attribution_logourl_width","85"); + $oMap->setmetadata("wms_attribution_logourl_href",$urli3geo."/imagens/i3geo.png"); + $oMap->setmetadata("wms_attribution_onlineresource",$urli3geo); + $oMap->setmetadata("wms_attribution_title",$tituloInstituicao); + $oMap->setmetadata("ows_enable_request","*"); + //parametro mandatario + if($oMap->getmetadata("wms_srs") == ""){ + $projecao = pegaProjecaoDefault("epsg"); + $oMap->setmetadata("wms_srs","EPSG:".$projecao); + } + $e = $oMap->extent; + $extensaoMap = ($e->minx)." ".($e->miny)." ".($e->maxx)." ".($e->maxy); + //gera o mapa + if ($tema != ""){ + $listatema = explode(" ",str_replace(","," ",$tema)); + //para o caso do tema ser um arquivo mapfile existente em uma pasta qualquer + //$temai3geo = true indica que o layer será buscado na pasta i3geo/temas + $temai3geo = true; + if(file_exists($_GET["tema"]) && !isset($_GET["id_medida_variavel"])){ + $nmap = ms_newMapobj($_GET["tema"]); + $temai3geo = false; + $nmap->setmetadata("ows_enable_request","*"); + } + //inclui o layer com a grade de coordenadas + if((isset($_GET["grade"])) && (strtolower($_GET["grade"]) == "sim") && file_exists($locaplic."/temas/gridg.map")){ + $listatema[] = "gridg"; + } + foreach ($listatema as $tx){ + $extensao = ".map"; + if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".php")){ + //$extensao = ".php"; + } + if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".gvp")){ + $extensao = ".gvp"; + } + if($extensao == ".map"){ + //cria o mapfile com base no sistema de metadados estatisticos + //verifica se o id_medida_variavel existe no mapfile e nao foi passado como um parametro + if(!isset($_GET["id_medida_variavel"]) && $temai3geo == true){ + $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); + $l = $nmap->getlayer(0); + $teste = $l->getmetadata("METAESTAT_ID_MEDIDA_VARIAVEL"); + if($teste != "" && $l->data == ""){ + $_GET["id_medida_variavel"] = $teste; + } + } + + if($temai3geo == true){ + $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); + $nmap->setmetadata("ows_enable_request","*"); + } + if($temai3geo == false || empty($layers)){ + $ts = $nmap->getalllayernames(); + $nmap->setmetadata("ows_enable_request","*"); + } + else{ + $ts = explode(",",str_replace(" ",",",$layers)); + } + foreach ($ts as $t){ + $l = $nmap->getlayerbyname($t); + if($l == ""){ + $l = $nmap->getlayer(0); + } + //verifica se ja existe layer com mesmo nome + if($oMap->getlayerbyname($l->name) == ""){ + $permite = $l->getmetadata("permiteogc"); + if(strtolower($permite) != "nao"){ + //necessário pq o mapfile pode ter todos os layers como default + if($temai3geo == false){ + $l->set("status",MS_OFF); + } + else{ + $l->set("status",MS_DEFAULT); + } + $l->setmetadata("ows_title",pegaNome($l)); + $l->setmetadata("ows_srs",$listaepsg); + $l->set("group",""); + //timeout + $tout = $l->getmetadata("wms_connectiontimeout"); + if($tout == ""){ + $l->setmetadata("wms_connectiontimeout",0); + } + //essa linha é necessária pq as vezes no mapfile não tem nenhum layer com o nome igual ao nome do mapfile + if(count($ts)==1 && $temai3geo == true){ + $l->set("name",$tx); + } + $l->setmetadata("gml_include_items","all"); + $l->set("template","none.htm"); + $l->set("dump",MS_TRUE); + $l->setmetadata("WMS_INCLUDE_ITEMS","all"); + $l->setmetadata("WFS_INCLUDE_ITEMS","all"); + + if(file_exists($locaplic."/temas/miniaturas/".$t.".map.mini.png")){ + $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$t.".map.mini.png"; + $l->setmetadata("wms_attribution_logourl_format","image/png"); + $l->setmetadata("wms_attribution_logourl_height","50"); + $l->setmetadata("wms_attribution_logourl_width","50"); + $l->setmetadata("wms_attribution_logourl_href",$mini); + } + if($l->type == MS_LAYER_RASTER && $l->numclasses > 0){ + $c = $l->getclass(0); + if($c->name == ""){ + $c->name = " "; + } + } + //inclui extensao geografica + $extensao = $l->getmetadata("EXTENSAO"); + if($extensao == ""){ + $extensao = $extensaoMap; + } + $l->setmetadata("wms_extent",$extensao); + if (!empty($postgis_mapa)){ + if ($l->connectiontype == MS_POSTGIS){ + + $lcon = $l->connection; + if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ + // + //o metadata CONEXAOORIGINAL guarda o valor original para posterior substituição + // + if(($lcon == " ") || ($lcon == "")){ + $l->set("connection",$postgis_mapa); + $l->setmetadata("CONEXAOORIGINAL",$lcon); + } + else{ + $l->set("connection",$postgis_mapa[$lcon]); + $l->setmetadata("CONEXAOORIGINAL",$lcon); + } + } + } + } + + autoClasses($l,$oMap); + + if($versao > 5){ + $pr = $l->getProcessing(); + if(!in_array("LABEL_NO_CLIP=True",$pr)){ + $l->setprocessing("LABEL_NO_CLIP=True"); + } + if(!in_array("POLYLINE_NO_CLIP=True",$pr)){ + $l->setprocessing("POLYLINE_NO_CLIP=True"); + } + } + + // + //verifica se existem parametros de substituicao passados via url + // + $parametro = $_GET["map_layer_".$l->name."_filter"]; + //echo $parametro;exit; + if(!empty($parametro)){ + $l->setfilter($parametro); + $cache = false; + } + //muda o title se for vazio + $nclass = $l->numclasses; + for($i=0;$i<$nclass;$i++){ + $classe = $l->getclass($i); + if($classe->title == ""){ + $classe->title = $classe->name; + } + } + if($nclass == 1){ + $classe = $l->getclass(0); + if($classe->name == ""){ + $classe->title = $l->getmetadata("tema"); + $classe->set("name",$l->getmetadata("tema")); + } + } + $layerAdicionado = ms_newLayerObj($oMap, $l); + corrigeLayerGrid($l,$layerAdicionado); + corrigeLayerGrid ( $layerAdicionado,$oMap ); + } + else{ + //a camada nao pode ser usada como servico WMS, entao e enviada uma mensagem + $l->set("data",""); + $l->set("type",MS_POINT); + $l->setmetadata("cache","nao"); + //apaga as classes + $nclass = $l->numclasses; + for($i=0;$i<$nclass;$i++){ + $classe = $l->getclass($i); + $classe->set("status",MS_DELETE); + } + $l->updatefromstring(' + LAYER + SIZEUNITS PIXELS + TRANSFORM FALSE + CLASS + LABEL + SIZE 10 + TYPE truetype + FONT arial + COLOR 255 0 0 + POSITION cc + FORCE true + END + END + FEATURE POINTS 100 100 END + TEXT "OGC denied" END + FEATURE POINTS 100 120 END + TEXT "' . $l->name . '" END + END + '); + ms_newLayerObj($oMap, $l); + } + } + } + } + + } + } + else{ + $intervalo = "0,5000"; + $conta = 0; + $int = explode(",",$intervalo); + $codigosTema = array(); + if(empty($_GET["perfil"])){ + $perfil = ""; + } + include("../../classesphp/classe_menutemas.php"); + $m = new Menutemas("",$perfil,$locaplic,$urli3geo); + $menus = $m->pegaListaDeMenus(); + foreach ($menus as $menu){ + $grupos = $m->pegaListaDeGrupos($menu["idmenu"],$listasistemas="nao",$listasgrupos="sim"); + //temas na raiz do menu + $lts = $menu["temas"]; + //var_dump($lts);exit; + foreach($lts as $t){ + if(strtolower($t["ogc_tema"]) != "nao"){ + $codigosTema[$t["codigo_tema"]] = array("tema"=>$t["codigo_tema"],"fonte"=>$t["link_tema"]); + } + } + foreach($grupos as $grupo){ + $lts = $grupo["temasgrupo"]; + //var_dump($lts); + foreach($lts as $t){ + if(strtolower($t["ogc"]) != "nao"){ + $codigosTema[$t["tid"]] = array("tema"=>$t["tid"],"fonte"=>$t["link"]); + } + } + if(strtolower($grupo["ogc"]) == "sim"){ + foreach($grupo["subgrupos"] as $sgrupo){ + if(strtolower($sgrupo["ogc"]) == "sim"){ + $lts = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); + foreach($lts as $t){ + if(strtolower($t["ogc"]) == "sim"){ + $codigosTema[$t["tid"]] = array("tema"=>$t["tid"],"fonte"=>$t["link"]); + } + } + } + } + } + } + } + //echo "
".var_dump($codigosTema);exit;
+		foreach($codigosTema as $c){
+			$codigoTema = $c["tema"];
+			if(file_exists($locaplic."/temas/".$codigoTema.".map")){
+				if (@ms_newMapobj($locaplic."/temas/".$codigoTema.".map")){
+					$nmap = ms_newMapobj($locaplic."/temas/".$codigoTema.".map");
+					$nmap->setmetadata("ows_enable_request","*");
+					$ts = $nmap->getalllayernames();
+					foreach ($ts as $t){
+						if ($oMap->getlayerbyname($t) == ""){
+							$l = $nmap->getlayerbyname($t);
+							$extensao = $l->getmetadata("EXTENSAO");
+							if($extensao == ""){
+								$extensao = $extensaoMap;
+							}
+							$l->setmetadata("wms_extent",$extensao);
+							$l->setmetadata("ows_title",pegaNome($l));
+							$l->setmetadata("ows_srs",$listaepsg);
+							$l->set("status",MS_OFF);
+							$l->setmetadata("gml_include_items","all");
+							$l->set("dump",MS_TRUE);
+							$l->setmetadata("WMS_INCLUDE_ITEMS","all");
+							$l->setmetadata("WFS_INCLUDE_ITEMS","all");
+							if($l->getmetadata("ows_metadataurl_href") == ""){
+								$l->setmetadata("ows_metadataurl_href",$c["fonte"]);
+								$l->setmetadata("ows_metadataurl_type","TC211");
+								$l->setmetadata("ows_metadataurl_format","text/html");
+							}
+							if(file_exists($locaplic."/temas/miniaturas/".$t.".map.mini.png")){
+								$mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$t.".map.mini.png";
+								$l->setmetadata("wms_attribution_logourl_format","image/png");
+								$l->setmetadata("wms_attribution_logourl_height","50");
+								$l->setmetadata("wms_attribution_logourl_width","50");
+								$l->setmetadata("wms_attribution_logourl_href",$mini);
+							}
+							//
+							//numero de pixels que serao considerados para corte da imagem no caso de cache ativo e tema de pontos
+							//
+							if ($l->getmetadata("cortepixels") != ""){
+								$cortePixels = $l->getmetadata("cortepixels");
+							}
+							cloneInlineSymbol($l,$nmap,$oMap);
+							ms_newLayerObj($oMap, $l);
+						}
+					}
+				}
+				else{
+					echo "Erro no arquivo ".$locaplic."/temas/".$codigoTema.".map 
"; + $error = ms_GetErrorObj(); + while($error && $error->code != MS_NOERR){ + //printf("
Error in %s: %s
\n", $error->routine, $error->message); + //$error = $error->next(); + } + } + } + } + } + // + //a imagem do mapa recebera a legenda + // + if((isset($_GET["legenda"])) && (strtolower($_GET["legenda"]) == "sim")){ + processaLegenda(); + } + // + //a imagem do mapa recebera a barra de escala + // + if((isset($_GET["escala"])) && (strtolower($_GET["escala"]) == "sim")){ + processaEscala(); + } + // + //aplica os parametros sobre a grade de coordenadas + // + if((isset($_GET["grade"])) && (strtolower($_GET["grade"]) == "sim")){ + processaGrade(); + } + $oMap->setSymbolSet($locaplic."/symbols/".basename($oMap->symbolsetfilename)); + $oMap->setFontSet($locaplic."/symbols/".basename($oMap->fontsetfilename)); + //verifica se existem layers com plugin definido e processa conforme o tipo de plugin + processaPluginI3geo(); + // + //caso seja download ou json ou csv + // + processaOutputformatMapfile(); +if(ob_get_contents ()){ + ob_end_clean(); +} +// +//verifica se a requisicao e do tipo TMS. +// +// +//calcula a extensao geografica com base no x,y,z em requisisoes TMS +//quando for do tipo tms $_GET["tms"] contem os parametros do tile +//essa rotina faz um exit ao final +//o cache tms so fucniona se houver apenas uma camada no mapa +//tms e usado basicamente por mashup ou openlayers +// +if(isset($_GET["tms"])){ + if(!isset($_GET["TileMatrix"])){ + $temp = explode("/",$_GET["tms"]); + $z = $temp[2]; + $x = $temp[3]; + $y = str_replace(".png","",$temp[4]); + $n = pow(2,$z+1); + $lon1 = $x / $n * 360.0 - 180.0; + $lon2 = ($x+1) / $n * 360.0 - 180.0; + $n = pow(2,$z); + $lat1 = $y / $n * 180.0 - 90.0; + $lat2 = ($y+1) / $n * 180.0 - 90.0; + } + else{ + $top_left_minx = -180; + $top_left_maxy = 90; + + $x_size = $res[$_GET["TileMatrix"] - 1] * 256; + $y_size = $x_size; + + $lon1 = $top_left_minx + ($_GET["TileCol"] * $x_size); + $lat1 = $top_left_maxy - ($_GET["TileRow"] * $y_size) - $y_size; + $lon2 = $top_left_minx + ($_GET["TileCol"] * $x_size) + $x_size; + $lat2 = $top_left_maxy - ($_GET["TileRow"] * $y_size); + } + + //essa funcao termina o processo se a imagem existir + if($cache == true){ + carregaCacheImagem($cachedir,$nomeMapfileTmp,$_GET["tms"]); + } + + $layer0 = $oMap->getlayer(0); + // + //numero de pixels que serao considerados para corte da imagem no caso de cache ativo e tema de pontos + // + if ($layer0->getmetadata("cortepixels") != ""){ + $cortePixels = $layer0->getmetadata("cortepixels"); + } + //se nao existir, salva a imagem + //echo $lon1." ".$lat1." ".$lon2." ".$lat2;exit; + $oMap->setsize(256,256); + $oMap->setExtent($lon1,$lat1,$lon2,$lat2); + + $layer0->set("status",MS_DEFAULT); + // + //se o layer foi marcado para corte altera os parametros para ampliar o mapa + //antes de gerar a imagem + // + if($cortePixels > 0){ + //$oMap->prepareImage(); + $escalaInicial = $oMap->scaledenom; + $extensaoInicial = $oMap->extent; + $wh = 256+($cortePixels*2); + $oMap->setsize($wh,$wh); + $ponto = new pointObj(); + $ponto->setxy(($wh/2),($wh/2)); + $oMap->zoomScale($escalaInicial, $ponto, $wh, $wh, $extensaoInicial); + } + + $img = $oMap->draw(); + + if($img->imagepath == ""){ + //tenta mais uma vez + $img = $oMap->draw(); + } + if($img->imagepath == ""){ + exit; + } + if($cache == true){ + salvaCacheImagem($cachedir,$nomeMapfileTmp,$_GET["tms"]); + } + renderNocacheTms(); +} + +// +//verifica se a chamada do servico e do tipo TILE no padrao do Google +// +if(isset($_GET["Z"]) && isset($_GET["X"])){ + $x = $_GET["X"]; + $y = $_GET["Y"]; + $z = $_GET["Z"]; + $proj4 = pegaProjecaoDefault("proj4"); + if(file_exists($tema)){ + $layer0 = $oMap->getlayer(0); + $layer0->set("status",MS_DEFAULT); + $layer0->setProjection($proj4); + } + else{ + //pode ter mais de um tema + $lista = explode(" ",$tema); + foreach($lista as $nomeLayer){ + $layer0 = $oMap->getlayerbyname($nomeLayer); + $layer0->set("status",MS_DEFAULT); + $layer0->setProjection($proj4); + } + } + // + //numero de pixels que serao considerados para corte da imagem no caso de cache ativo e tema de pontos + // + if ($layer0->getmetadata("cortepixels") != ""){ + $cortePixels = $layer0->getmetadata("cortepixels"); + } + + if($cache == true){ + carregaCacheImagem($cachedir,$nomeMapfileTmp,"/googlemaps/$layer0->name/$z/$x/$y"); + } + $n = pow(2,$z); + $lon1 = $x / $n * 360.0 - 180.0; + $lat2 = rad2deg(atan(sinh(pi() * (1 - 2 * $y / $n)))); + $x++; + $y++; + $lon2 = $x / $n * 360.0 - 180.0; + $lat1 = rad2deg(atan(sinh(pi() * (1 - 2 * $y / $n)))); + $x--; + $y--; + + $projInObj = ms_newprojectionobj("proj=latlong,a=6378137,b=6378137"); + $projOutObj = ms_newprojectionobj("proj=merc,a=6378137,b=6378137,lat_ts=0.0,lon_0=0.0,x_0=0.0,y_0=0,k=1.0,units=m"); + + $poPoint1 = ms_newpointobj(); + $poPoint1->setXY($lon1, $lat1); + $poPoint1->project($projInObj, $projOutObj); + $poPoint2 = ms_newpointobj(); + $poPoint2->setXY($lon2, $lat2); + $poPoint2->project($projInObj, $projOutObj); + $oMap->setsize(256,256); + $oMap->setExtent($poPoint1->x,$poPoint1->y,$poPoint2->x,$poPoint2->y); + + $oMap->setProjection("proj=merc,a=6378137,b=6378137,lat_ts=0.0,lon_0=0.0,x_0=0.0,y_0=0,k=1.0,units=m"); + + // + //se o layer foi marcado para corte altera os parametros para ampliar o mapa + //antes de gerar a imagem + // + if($cortePixels > 0){ + //$oMap->prepareImage(); + $escalaInicial = $oMap->scaledenom; + $extensaoInicial = $oMap->extent; + $wh = 256+($cortePixels*2); + $oMap->setsize($wh,$wh); + $ponto = new pointObj(); + $ponto->setxy(($wh/2),($wh/2)); + $oMap->zoomScale($escalaInicial, $ponto, $wh, $wh, $extensaoInicial); + } + $img = $oMap->draw(); + if($img->imagepath == ""){ + exit; + } + if($cache == true){ + salvaCacheImagem($cachedir,$nomeMapfileTmp,"/googlemaps/$layer0->name/$z/$x/$y"); + } + renderNocacheTms(); +} +if(strtolower($req->getValueByName("REQUEST")) == "getlegendgraphic"){ + $legenda = $oMap->legend; + $legenda->set("status",MS_ON); + $numlayers = $oMap->numlayers; + for ($i=0;$i < $numlayers;$i++){ + $l = $oMap->getlayer($i); + $l->set("status",MS_DEFAULT); + if($req->getValueByName("LAYER") == ""){ + $req->setParameter("LAYER",$l->name); + } + + //muda o title se for vazio + /* + $nclass = $l->numclasses; + for($i=0;$i<$nclass;$i++){ + $classe = $l->getclass($i); + if($classe->title == ""){ + $classe->title = $classe->name; + } + } + if($nclass == 1){ + $classe = $l->getclass(0); + if($classe->name == ""){ + $classe->title = $l->getmetadata("tema"); + $classe->set("name",$l->getmetadata("tema")); + } + } + */ + if($req->getValueByName("FORMAT") == ""){ + $req->setParameter("FORMAT","image/png"); + } + $l->set("minscaledenom",0); + $l->set("maxscaledenom",0); + if($req->getValueByName("FORMAT") == "text/html"){ + //remove offset de simbolos pontuais + $nclass = $l->numclasses; + for($cc = 0; $cc < $nclass; $cc++){ + $classe = $l->getclass($cc); + if($classe->numstyles > 0){ + $estilo = $classe->getstyle(0); + if($estilo->symbolname != "" && file_exists($estilo->symbolname)){ + $estilo->set("offsetx",0); + $estilo->set("offsety",0); + } + } + } + } + } + if($req->getValueByName("FORMAT") == "text/html"){ + //define qual template utilizar + if(empty($_GET["templateLegenda"])){ + $legenda->set("template",$locaplic."/aplicmap/legendaOgc.html"); + } else { + $_GET["templateLegenda"] = str_replace(".htm","",$_GET["templateLegenda"]); + $_GET["templateLegenda"] = str_replace(".","",$_GET["templateLegenda"]); + if(file_exists($locaplic."/".$_GET["templateLegenda"].".htm")){ + $legenda->set("template",$locaplic."/".$_GET["templateLegenda"].".htm"); + } else { + $legenda->set("template",$locaplic."/aplicmap/legendaOgc.html"); + } + } + $tmparray["my_tag"] = "value_of_my_tag"; + if($leg = @$oMap->processlegendtemplate($tmparray)){ + if (function_exists("mb_convert_encoding")){ + $leg = mb_convert_encoding($leg,"UTF-8","ISO-8859-1"); + } + echo $leg; + exit; + } + } +} + +if(strtolower($req->getValueByName("REQUEST")) == "getfeature"){ + $l = $oMap->getlayer(0); + if($req->getValueByName("TYPENAME") == "" || $req->getValueByName("TYPENAME") == "undefined"){ + $req->setParameter("TYPENAME",$l->name); + } + if($l->getProjection() == "" ){ + $l->setProjection(pegaProjecaoDefault("proj4")); + } + if(strtolower($req->getValueByName("SRS")) == "epsg:900913"){ + $req->setParameter("SRS","EPSG:3857"); + } +} +if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo"){ + $l = $oMap->getlayer(0); + $req->setParameter("LAYERS",$l->name); + $req->setParameter("QUERY_LAYERS",$l->name); + if(strtolower($req->getValueByName("SRS")) == "epsg:900913"){ + $req->setParameter("SRS","EPSG:3857"); + $_GET["SRS"] = "EPSG:3857"; + } +} +ms_ioinstallstdouttobuffer(); +// +//verifica parametro outputformat e ajusta a requisicao +// +if(strtolower($req->getValueByName("REQUEST")) == "getmap" && $req->getValueByName("format") == ""){ + $req->setParameter("format","image/png"); +} +if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo" && $_GET["info_format"] == "text/xml"){ + $req->setParameter("info_format","application/vnd.ogc.gml"); +} +//json conforme cesium +if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo" && $_GET["info_format"] == "application/json"){ + getfeatureinfoJson(); + exit; +} +if(strtolower($request) == "getcapabilities"){ + //header('Content-Disposition: attachment; filename=getcapabilities.xml'); +} +elseif(!isset($OUTPUTFORMAT)){ + //$contenttype = ms_iostripstdoutbuffercontenttype(); + header("Content-type: $contenttype"); +} +//$ogrOutput vem de ms_configura.php + +//precisa limpar o cabecalho +if(strtolower($OUTPUTFORMAT) == "geojson" || strtolower($OUTPUTFORMAT) == "json"){ + $arq = $dir_tmp."/".$tema.".json"; + if(isset($ogrOutput) && $ogrOutput == false){ + exportaGeojson(); + exit; + } + $oMap->owsdispatch($req); + + $contenttype = ms_iostripstdoutbuffercontenttype(); + ms_iostripstdoutbuffercontentheaders(); + //grava em disco + $contents = ms_iogetstdoutbufferstring(); + file_put_contents($arq,$contents); + //envia para download + + header("Content-type: application/json; subtype=geojson"); + + ms_iogetStdoutBufferBytes(); + ms_ioresethandlers(); + + exit; +} +if(strtolower($OUTPUTFORMAT) == "kml"){ + $oMap->owsdispatch($req); + $contenttype = ms_iostripstdoutbuffercontenttype(); + ms_iostripstdoutbuffercontentheaders(); + //grava em disco + $arq = $dir_tmp."/".$tema.".kml"; + $contents = ms_iogetstdoutbufferstring(); + file_put_contents($arq,$contents); + //envia para download + header('Content-Disposition: attachment; filename='.$tema.'.kml'); + ms_iogetStdoutBufferBytes(); + ms_ioresethandlers(); + exit; +} +//kmz nao funciona quando fornecido diretamente pelo mapserver +if(strtolower($OUTPUTFORMAT) == "kmz"){ + $oMap->owsdispatch($req); + $contenttype = ms_iostripstdoutbuffercontenttype(); + ms_iostripstdoutbuffercontentheaders(); + //grava em disco + $arq = $dir_tmp."/".$tema.".kmz"; + $contents = ms_iogetstdoutbufferstring(); + file_put_contents($arq,$contents); + //envia para download + header('Content-Disposition: attachment; filename='.$tema.'.kmz'); + ms_iogetStdoutBufferBytes(); + ms_ioresethandlers(); + exit; +} +if(strtolower($OUTPUTFORMAT) == "shape-zip"){ + $oMap->owsdispatch($req); + $contenttype = ms_iostripstdoutbuffercontenttype(); + //grava em disco + $arq = $dir_tmp."/".$tema."_shapefile.zip"; + $contents = ms_iogetstdoutbufferstring(); + file_put_contents($arq,$contents); + //envia para download + header('Content-Disposition: attachment; filename='.$tema.'_shapefile.zip'); + ms_iogetStdoutBufferBytes(); + ms_ioresethandlers(); + exit; +} +if(strtolower($OUTPUTFORMAT) == "csv"){ + $arq = $dir_tmp."/".$tema.$ows_geomtype.".csv"; + $fileName = $tema.$ows_geomtype.'.csv'; + if(isset($ogrOutput) && $ogrOutput == false){ + exportaCsv(); + exit; + } + // + $oMap->owsdispatch($req); + $contenttype = ms_iostripstdoutbuffercontenttype(); + ms_iostripstdoutbuffercontentheaders(); + //grava em disco + $contents = ms_iogetstdoutbufferstring(); + file_put_contents($arq,$contents); + //envia para download + header('Content-Disposition: attachment; filename='.$fileName); + header("Content-type: text/csv"); + ms_iogetStdoutBufferBytes(); + ms_ioresethandlers(); + exit; +} +//echo $req->getValue(1);exit; +ob_clean(); +$oMap->owsdispatch($req); +$contenttype = ms_iostripstdoutbuffercontenttype(); +$buffer = ms_iogetStdoutBufferBytes(); + +ms_ioresethandlers(); +// +//funções +// +function ogc_pegaListaDeMenus(){ + global $perfil,$locaplic,$urli3geo; + if(!isset($perfil)){ + $perfil = ""; + } + $m = new Menutemas("",$perfil,$locsistemas,$locaplic,"",$urli3geo); + foreach($m->pegaListaDeMenus() as $menu) + { + $menus[] = $urli3geo."/admin/xmlmenutemas.php?id_menu=".$menu["idmenu"]; + } + return $menus; +} +function ogc_imprimeAjuda(){ + echo "
Construtor de web services do I3Geo.

"; + echo "Esse programa usa os arquivos mapfiles existentes em
"; + echo "i3geo/temas para gerar web services OGC.
"; + echo "Para escolher um tema, utilize:
"; + echo "ogc.php?lista=temas - para listar os temas disponíveis
"; + echo "Para usar esse web service voce pode usar o parametro &tema=,
"; + echo "ou seja,http://[host]/i3geo/ogc.php?tema=[codigo do tema]
"; + echo "no lugar do codigo pode ser especificado um arquivo mapfile qualquer. "; + echo "Nesse caso, deve ser digitado o caminho completo no servidor

"; + echo "Utilize o sistema de administracao do i3Geo para configurar quais os temas da pasta i3geo/temas podem ser utilizados.

"; + echo "Utilize o parametro restauramapa para indicar o ID de um mapa salvo no banco
"; + echo "de dados de administracao para utiliza-lo como um WMS"; +} +function ogc_imprimeListaDeTemas(){ +} +function ogc_imprimeListaDeTemasWfs(){ +} +function carregaCacheImagem($cachedir,$map,$tms){ + global $dir_tmp; + if($cachedir == ""){ + $nome = $dir_tmp."/cache".$tms; + } + else{ + $nome = $cachedir.$tms; + } + $nome = str_replace(".png","",$nome).".png"; + if(file_exists($nome)){ + ob_clean(); + //header('Content-Length: '.filesize($nome)); + header('Cache: '.$tms); + header('Content-Type: image/png'); + //header('Cache-Control: max-age=3600, must-revalidate'); + //header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); + //header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); + //$etag = md5_file($nome); + //header('Etag: '.$etag); + readfile($nome); + exit; + } +} +function salvaCacheImagem($cachedir,$map,$tms){ + global $img,$dir_tmp,$cortePixels; + //por seguranca + if($cachedir == ""){ + $nome = $dir_tmp."/cache".$tms; + } + else{ + $nome = $cachedir.$tms; + } + $nome = str_replace(".png","",$nome).".png"; + if(!file_exists(dirname($nome))){ + @mkdir(dirname($nome),0744,true); + chmod(dirname($nome),0744); + } + $img->saveImage($nome); + //tenta mais uma vez + if(!file_exists($nome)){ + $img->saveImage($nome); + } + // + //corta a imagem gerada para voltar ao tamanho normal + // + if($cortePixels > 0){ + $img = imagecreatefrompng($nome); + $imgc = imagecreate(256,256); + + imagesavealpha($imgc, true); + // Fill the image with transparent color + $color = imagecolorallocatealpha($imgc,0x00,0x00,0x00,127); + imagefill($imgc, 0, 0, $color); + + imagecopy($imgc, $img, 0 , 0 , $cortePixels , $cortePixels , 256, 256); + imagepng($imgc,$nome); + } + chmod($nome,0744); + //header('Content-Length: '.filesize($nome)); + ob_clean(); + header('Content-Type: image/png'); + //header('Cache-Control: max-age=3600, must-revalidate'); + //header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); + //header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); + readfile($nome); + exit; +} +function texto2iso($texto){ + if (function_exists("mb_convert_encoding")){ + if (mb_detect_encoding($texto,"UTF-8",true)){ + $texto = mb_convert_encoding($texto,"ISO-8859-1","UTF-8"); + } + } + return $texto; +} +function nomeRand($n=10) +{ + $nomes = ""; + $a = 'azertyuiopqsdfghjklmwxcvbnABCDEFGHIJKLMNOPQRSTUVWXYZ'; + $max = 51; + for($i=0; $i < $n; ++$i) + { + $nomes .= $a{mt_rand(0, $max)}; + } + return $nomes; +} +function renderNocacheTms(){ + global $img,$i3georendermode,$dir_tmp,$cortePixels; + if($i3georendermode == 1 && $cortePixels == 0){ + ob_clean(); + header('Content-Type: image/png'); + $img->saveImage(); + exit; + } + if($i3georendermode == 1 && $cortePixels > 0){ + $i3georendermode = 0; + } + $nomer = $dir_tmp."/temp".nomeRand().".png"; + $img->saveImage($nomer); + // + //corta a imagem gerada para voltar ao tamanho normal + // + if($cortePixels > 0){ + $img = imagecreatefrompng($nomer); + $imgc = imagecreate(256,256); + imagecopy( $imgc, $img, 0 , 0 , $cortePixels , $cortePixels , 256, 256 ); + imagepng($imgc,$nomer); + } + if($i3georendermode == 0 || !isset($i3georendermode)){ + ob_clean(); + //header('Content-Length: '.filesize($nomer)); + header('Content-Type: image/png'); + //header('Cache-Control: max-age=3600, must-revalidate'); + //header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); + //header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nomer)).' GMT', true, 200); + readfile($nomer); + exit; + } + if($i3georendermode == 2){ + ob_clean(); + //header('Cache-Control: public, max-age=22222222'); + //header('Expires: ' . gmdate('D, d M Y H:i:s', time()+48*60*60) . ' GMT'); + header("X-Sendfile: $nomer"); + header("Content-type: image/png"); + exit; + } +} +function getfeatureinfoJson(){ + global $req, $oMap; + $req->setParameter("info_format","application/vnd.ogc.gml"); + $oMap->owsdispatch($req); + ms_iostripstdoutbuffercontentheaders(); + ob_clean(); + $r = ms_iogetstdoutbufferstring(); + //$r = converteenc($r); + $nome = $oMap->getlayer(0)->name; + $xml = simplexml_load_string($r); + + $json = json_encode($xml); + $r = json_decode($json,TRUE); + $propriedades = $r[$nome."_layer"]; + $propriedades = $propriedades[$nome."_feature"]; + $propriedades = converteenc(json_encode($propriedades)); + $propriedades = json_decode($propriedades); + $n = array(); + $n[] = array ( + "type" => "FeatureCollection", + "features" => array( + array( + "type"=>"Feature", + "id" => "", + "geometry" => array(), + "properties" => array( + $propriedades + ), + "geometry_name" => "" + ) + ) + ); + header("Content-type: application/json"); + $json = json_encode($n[0]); + //verifica a substituicao de alias + $itens = $oMap->getlayer(0)->getmetadata("ITENS"); // itens + $itensdesc = $oMap->getlayer(0)->getmetadata("ITENSDESC"); // descrição dos itens + $itens = explode(",",$itens); + $itensdesc = explode(",",converteenc($itensdesc)); + $n = count($itens); + for($i = 0; $i < $n; $i++){ + $json = str_ireplace($itens[$i],$itensdesc[$i],$json); + } + echo $json; +} +function processaOutputformatMapfile(){ + global $OUTPUTFORMAT, $oMap, $tema, $ows_geomtype; + if(strtolower($OUTPUTFORMAT) == "kml"){ + $l = $oMap->getlayer(0); + $n = $l->name; + $oMap->selectOutputFormat("kml"); + $oMap->outputformat->setOption("STORAGE", "filesystem"); + $oMap->outputformat->setOption("FILENAME", $tema.".kml"); + $l->setmetadata("wfs_getfeature_formatlist","kml"); + } + if(strtolower($OUTPUTFORMAT) == "shape-zip"){ + $l = $oMap->getlayer(0); + $n = $l->name; + $oMap->selectOutputFormat("shape-zip"); + $oMap->outputformat->setOption("STORAGE", "filesystem"); + $oMap->outputformat->setOption("FORM", "zip"); + $oMap->outputformat->setOption("FILENAME", $tema."_shapefile.zip"); + $l->setmetadata("wfs_getfeature_formatlist","shape-zip"); + } + if(strtolower($OUTPUTFORMAT) == "csv"){ + $l = $oMap->getlayer(0); + $n = $l->name."-csv"; + $oMap->selectOutputFormat("csv"); + $oMap->outputformat->setOption("STORAGE", "filesystem"); + $oMap->outputformat->setOption("FILENAME", $tema.$ows_geomtype.".csv"); + $oMap->outputformat->setOption("FORM", "simple"); + if(isset($ows_geomtype) && $ows_geomtype != ""){ + $oMap->outputformat->setOption("LCO:GEOMETRY", $ows_geomtype); + } + $l->setmetadata("wfs_getfeature_formatlist","csv"); + } + if(strtolower($OUTPUTFORMAT) == "geojson" || strtolower($OUTPUTFORMAT) == "json"){ + $l = $oMap->getlayer(0); + $oMap->selectOutputFormat("geojson"); + $l->setmetadata("wfs_getfeature_formatlist","geojson"); + } +} +function carregaCacheArquivo(){ + global $dir_tmp, $tema, $OUTPUTFORMAT, $ows_geomtype; + if(strtolower($OUTPUTFORMAT) == "shape-zip"){ + $arq = $dir_tmp."/".$tema."_shapefile.zip"; + if(file_exists($arq)){ + header('Content-Disposition: attachment; filename='.$tema.'_shapefile.zip'); + readfile($arq); + exit; + } + } + if(strtolower($OUTPUTFORMAT) == "csv"){ + $arq = $dir_tmp."/".$tema.$ows_geomtype.".csv"; + if(file_exists($arq)){ + header('Content-Disposition: attachment; filename='.$tema.$ows_geomtype.'.csv'); + header("Content-type: text/csv"); + readfile($arq); + exit; + } + } + if(strtolower($OUTPUTFORMAT) == "kml"){ + $arq = $dir_tmp."/".$tema.".kml"; + if(file_exists($arq)){ + header('Content-Disposition: attachment; filename='.$tema.'.kml'); + header("Content-type: application/vnd.google-earth.kml+xml"); + readfile($arq); + exit; + } + } + if(strtolower($OUTPUTFORMAT) == "kmz"){ + $arq = $dir_tmp."/".$tema.".kmz"; + if(file_exists($arq)){ + header('Content-Disposition: attachment; filename='.$tema.'.kmz'); + header("Content-type: application/vnd.google-earth.kmz"); + readfile($arq); + exit; + } + } + if(strtolower($OUTPUTFORMAT) == "geojson" || strtolower($OUTPUTFORMAT) == "json"){ + $arq = $dir_tmp."/".$tema.".json"; + if(file_exists($arq)){ + header("Content-type: application/json; subtype=geojson"); + readfile($arq); + exit; + } + } +} +function converteenc($texto){ + if (!mb_detect_encoding($texto,"UTF-8",true)){ + $texto = mb_convert_encoding($texto,"UTF-8","ISO-8859-1"); + } + return $texto; +} +function processaPluginI3geo(){ + global $oMap, $locaplic; + $numlayers = $oMap->numlayers; + for ($i=0;$i < $numlayers;$i++){ + $l = $oMap->getlayer($i); + $c = $l->getmetadata("PLUGINI3GEO"); + if($c != ""){ + $cs = json_decode($c,true); + if($cs["plugin"] == "parametrossql"){ + $data = $l->data; + $cs = $cs["parametros"]; + $chaves = array(); + foreach($cs as $c){ + $chaves[] = $c["chave"]; + } + $chaves = implode(",",$chaves); + $filtro = $l->getFilterString(); + $chaves = str_ireplace(array(" and ", " or ", "select","from","where","update","delete","insert","--"),"",$chaves); + $chaves = explode(",",$chaves); + $n = count($chaves); + //a variavel $plugin vem da URL e contem os valores + //que devem ser substituidos + //se $plugin for vazio, usa o primeiro valor definido na configuracao do plugin + //A ordem dos valores deve ser exatamente a ordem das chaves + if(empty($plugin)){ + $plugin = array(); + foreach($cs as $c){ + if($c["chave"] != ""){ + //valores definidos no plugin como uma string + if($c["valores"] != ""){ + $temp = explode(",",$c["valores"]); + $plugin[] = $temp[0]; + } + elseif ($c["prog"] != ""){ + $plugin[] = execProg($c["prog"]); + } + } + } + $plugin = implode(",",$plugin); + } + $l->setmetadata("TEMA",$l->getmetadata("TEMA")." - ".$plugin); + $valores = str_ireplace(array(" and ", " or ", "select","from","where","update","delete","insert","--"),"",$plugin); + $valores = explode(",",strip_tags($valores)); + for($i = 0; $i < $n; $i++){ + if($chaves[$i] != ""){ + $v = (int) $valores[$i]; + $data = str_replace($chaves[$i],$v,$data); + if($filtro != ""){ + $filtro = str_replace($chaves[$i],$v,$filtro); + } + } + } + if($filtro != ""){ + $l->setfilter($filtro); + } + $l->set("data",$data); + } + } + } +} +function processaEscala(){ + global $oMap, $locaplic, $req; + $eb = $oMap->scalebar; + $eb->set("status",MS_EMBED); + if(!empty($_GET["escala_width"])){ + $eb->set("width",$_GET["escala_width"]); + } + if(!empty($_GET["escala_height"])){ + $eb->set("height",$_GET["escala_height"]); + } + //0 ou 1 + if(!empty($_GET["escala_style"])){ + $eb->set("style",$_GET["escala_style"]); + } + if(!empty($_GET["escala_intervals"])){ + $eb->set("intervals",$_GET["escala_intervals"]); + } + //MS_INCHES, MS_FEET, MS_MILES, MS_METERS, MS_KILOMETERS, MS_DD, MS_PIXELS, MS_NAUTICALMILES + if(!empty($_GET["escala_units"])){ + $eb->set("units",$_GET["escala_units"]); + } + if(!empty($_GET["escala_color"])){ + $_GET["escala_color"] = str_replace(","," ",$_GET["escala_color"]); + $ncor = explode(" ",$_GET["escala_color"]); + $cor = $eb->color; + $cor->setRGB($ncor[0],$ncor[1],$ncor[2]); + } + if(!empty($_GET["escala_backgroundcolor"])){ + $_GET["escala_backgroundcolor"] = str_replace(","," ",$_GET["escala_backgroundcolor"]); + $ncor = explode(" ",$_GET["escala_backgroundcolor"]); + $cor = $eb->backgroundcolor; + $cor->setRGB($ncor[0],$ncor[1],$ncor[2]); + } + if(!empty($_GET["escala_outlinecolor"])){ + $_GET["escala_outlinecolor"] = str_replace(","," ",$_GET["escala_outlinecolor"]); + $ncor = explode(" ",$_GET["escala_outlinecolor"]); + $cor = $eb->outlinecolor; + $cor->setRGB($ncor[0],$ncor[1],$ncor[2]); + } + //ul|uc|ur|ll|lc|lr + if(!empty($_GET["escala_position"])){ + if($_GET["escala_position"] == "ul") $eb->set("position",MS_UL); + if($_GET["escala_position"] == "uc") $eb->set("position",MS_UC); + if($_GET["escala_position"] == "ur") $eb->set("position",MS_UR); + if($_GET["escala_position"] == "ll") $eb->set("position",MS_LL); + if($_GET["escala_position"] == "lc") $eb->set("position",MS_LC); + if($_GET["escala_position"] == "lr") $eb->set("position",MS_LR); + } + //fonte e size so com truetype + if (!empty($_GET["escala_font"])){ + $label = $eb->label; + $label->updatefromstring("LABEL TYPE TRUETYPE END"); + $label->set("font",$_GET["escala_font"]); + } + if (!empty($_GET["escala_size"])){ + $label = $eb->label; + $label->updatefromstring("LABEL TYPE TRUETYPE END"); + if(empty($_GET["escala_size"])){ + $label->set("font","arial"); + } + $label->set("size",$_GET["escala_size"]); + } +} +function processaLegenda(){ + global $oMap, $locaplic, $req; + $leg = $oMap->legend; + $leg->set("status",MS_EMBED); + if(!empty($_GET["legenda_imagecolor"])){ + $_GET["legenda_imagecolor"] = str_replace(","," ",$_GET["legenda_imagecolor"]); + $ncor = explode(" ",$_GET["legenda_imagecolor"]); + $cor = $leg->imagecolor; + $cor->setRGB($ncor[0],$ncor[1],$ncor[2]); + $req->setParameter("TRANSPARENT",0); + } + if(!empty($_GET["legenda_keysizex"])){ + $leg->set("keysizex",$_GET["legenda_keysizex"]); + } + if(!empty($_GET["legenda_keysizey"])){ + $leg->set("keysizey",$_GET["legenda_keysizey"]); + } + if(!empty($_GET["legenda_keyspacingx"])){ + $leg->set("keyspacingx",$_GET["legenda_keyspacingx"]); + } + //ul|uc|ur|ll|lc|lr + if(!empty($_GET["legenda_position"])){ + if($_GET["legenda_position"] == "ul") $leg->set("position",MS_UL); + if($_GET["legenda_position"] == "uc") $leg->set("position",MS_UC); + if($_GET["legenda_position"] == "ur") $leg->set("position",MS_UR); + if($_GET["legenda_position"] == "ll") $leg->set("position",MS_LL); + if($_GET["legenda_position"] == "lc") $leg->set("position",MS_LC); + if($_GET["legenda_position"] == "lr") $leg->set("position",MS_LR); + } + if(!empty($_GET["legenda_keyspacingy"])){ + $leg->set("keyspacingy",$_GET["legenda_keyspacingy"]); + } + if(!empty($_GET["legenda_outlinecolor"])){ + $_GET["legenda_outlinecolor"] = str_replace(","," ",$_GET["legenda_outlinecolor"]); + $ncor = explode(" ",$_GET["legenda_outlinecolor"]); + $cor = $leg->outlinecolor; + $cor->setRGB($ncor[0],$ncor[1],$ncor[2]); + } + //fonte e size so com truetype + if (!empty($_GET["legenda_font"])){ + $label = $leg->label; + $label->updatefromstring("LABEL TYPE TRUETYPE END"); + $label->set("font",$_GET["legenda_font"]); + } + if (!empty($_GET["legenda_size"])){ + $label = $leg->label; + $label->updatefromstring("LABEL TYPE TRUETYPE END"); + if(empty($_GET["legenda_font"])){ + $label->set("font","arial"); + } + $label->set("size",$_GET["legenda_size"]); + } +} +function processaGrade(){ + global $oMap; + //veja o mapfile gridg.map em i3geo/temas + $layer = $oMap->getlayerbyname("gridg"); + if($layer != ""){ + if(!empty($_GET["grade_labelformat"])){ + $layer->grid->set("labelformat", $_GET["grade_labelformat"]); + } + if(!empty($_GET["grade_interval"])){ + $layer->grid->set("mininterval", $_GET["grade_interval"]); + $layer->grid->set("maxinterval", $_GET["grade_interval"]); + } + $classe = $layer->getclass(0); + $estilo = $classe->getstyle(0); + $label = $classe->getLabel(0); + if(!empty($_GET["grade_position"])){ + //("MS_AUTO"=>MS_AUTO,"MS_UL"=>MS_UL,"MS_LR"=>MS_LR,"MS_UR"=>MS_UR,"MS_LL"=>MS_LL, + //"MS_CR"=>MS_CR,"MS_CL"=>MS_CL,"MS_UC"=>MS_UC,"MS_LC"=>MS_LC,"MS_CC"=>MS_CC); + if($_GET["grade_position"] == "auto") $label->set("position",MS_AUTO); + if($_GET["grade_position"] == "cc") $label->set("position",MS_CC); + if($_GET["grade_position"] == "ul") $label->set("position",MS_UL); + if($_GET["grade_position"] == "uc") $label->set("position",MS_UC); + if($_GET["grade_position"] == "ur") $label->set("position",MS_UR); + if($_GET["grade_position"] == "ll") $label->set("position",MS_LL); + if($_GET["grade_position"] == "lc") $label->set("position",MS_LC); + if($_GET["grade_position"] == "lr") $label->set("position",MS_LR); + } + //fonte e size so com truetype + if (!empty($_GET["grade_font"])){ + $label->updatefromstring("LABEL TYPE TRUETYPE END"); + $label->set("font",$_GET["grade_font"]); + } + if (!empty($_GET["grade_size"])){ + $label->updatefromstring("LABEL TYPE TRUETYPE END"); + if(empty($_GET["grade_font"])){ + $label->set("font","arial"); + } + $label->set("size",$_GET["grade_size"]); + } + if(!empty($_GET["grade_color"])){ + $_GET["grade_color"] = str_replace(","," ",$_GET["grade_color"]); + $ncor = explode(" ",$_GET["grade_color"]); + $cor = $estilo->color; + $cor->setRGB($ncor[0],$ncor[1],$ncor[2]); + } + } + else { + echo "Layer gridg nao encontrado"; exit; + } +} +//utilizada para obter os dados default quando se utiliza o plugin parametrossql +function execProg($prog){ + //$retorno variavel deve ser retornada pelo programa $prog + //veja como exemplo i3geo/aplicmap/daods/listaano.php + global $urli3geo; + $handle = curl_init(); + curl_setopt( $handle, CURLOPT_URL, $urli3geo."/".$prog); + curl_setopt( $handle, CURLOPT_HEADER, false ); + curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); + $str = curl_exec( $handle ); + curl_close( $handle ); + $retorno = json_decode($str,true); + return $retorno[0]["v"]; +} +?> diff --git a/ferramentas/convertews/template_mst.html b/ferramentas/convertews/template_mst.html index 26af00a..8d8bba0 100755 --- a/ferramentas/convertews/template_mst.html +++ b/ferramentas/convertews/template_mst.html @@ -1,20 +1,15 @@ -
-

- {{{ajudaDesktop}}} - gvSig -

{{{ajudaWms}}} -

- {{{ajudaWmc}}}{{{wmc}}} -

+

+
{{{ajudaDesktop}}}
+
{{{ajudaWms}}}
+
{{{ajudaWmc}}}
+ {{{wmc}}} +
WMS: -

-

- -

-

- {{{testa}}}
+

+ {{{nomewms}}} +
+ {{{testa}}} GetCapabilities +
+ {{{testa}}} getMap +
\ No newline at end of file diff --git a/ferramentas/editorgm/editorgm_compacto.js b/ferramentas/editorgm/editorgm_compacto.js old mode 100644 new mode 100755 index cc66aa6..cc66aa6 --- a/ferramentas/editorgm/editorgm_compacto.js +++ b/ferramentas/editorgm/editorgm_compacto.js diff --git a/ferramentas/editorol/editorol_compacto.js b/ferramentas/editorol/editorol_compacto.js old mode 100644 new mode 100755 index 8df1c51..8df1c51 --- a/ferramentas/editorol/editorol_compacto.js +++ b/ferramentas/editorol/editorol_compacto.js diff --git a/js/compactados/ajuda_compacto.js b/js/compactados/ajuda_compacto.js old mode 100644 new mode 100755 index 8e4086f..8e4086f --- a/js/compactados/ajuda_compacto.js +++ b/js/compactados/ajuda_compacto.js diff --git a/js/compactados/analise_compacto.js b/js/compactados/analise_compacto.js old mode 100644 new mode 100755 index a3ab166..a3ab166 --- a/js/compactados/analise_compacto.js +++ b/js/compactados/analise_compacto.js diff --git a/js/compactados/arvoredecamadas_compacto.js b/js/compactados/arvoredecamadas_compacto.js old mode 100644 new mode 100755 index f0f9fe2..f0f9fe2 --- a/js/compactados/arvoredecamadas_compacto.js +++ b/js/compactados/arvoredecamadas_compacto.js diff --git a/js/compactados/arvoredetemas_compacto.js b/js/compactados/arvoredetemas_compacto.js old mode 100644 new mode 100755 index 192e851..192e851 --- a/js/compactados/arvoredetemas_compacto.js +++ b/js/compactados/arvoredetemas_compacto.js diff --git a/js/compactados/base64_compacto.js b/js/compactados/base64_compacto.js old mode 100644 new mode 100755 index 9ff1f1a..9ff1f1a --- a/js/compactados/base64_compacto.js +++ b/js/compactados/base64_compacto.js diff --git a/js/compactados/busca_compacto.js b/js/compactados/busca_compacto.js old mode 100644 new mode 100755 index 380c4a5..380c4a5 --- a/js/compactados/busca_compacto.js +++ b/js/compactados/busca_compacto.js diff --git a/js/compactados/caixaDeFerramentas_compacto.js b/js/compactados/caixaDeFerramentas_compacto.js old mode 100644 new mode 100755 index 33f12c4..33f12c4 --- a/js/compactados/caixaDeFerramentas_compacto.js +++ b/js/compactados/caixaDeFerramentas_compacto.js diff --git a/js/compactados/calculo_compacto.js b/js/compactados/calculo_compacto.js old mode 100644 new mode 100755 index 32b90de..32b90de --- a/js/compactados/calculo_compacto.js +++ b/js/compactados/calculo_compacto.js diff --git a/js/compactados/catalogoDir_compacto.js b/js/compactados/catalogoDir_compacto.js old mode 100644 new mode 100755 index f414552..f414552 --- a/js/compactados/catalogoDir_compacto.js +++ b/js/compactados/catalogoDir_compacto.js diff --git a/js/compactados/catalogoEstrelas_compacto.js b/js/compactados/catalogoEstrelas_compacto.js old mode 100644 new mode 100755 index 7d8e059..7d8e059 --- a/js/compactados/catalogoEstrelas_compacto.js +++ b/js/compactados/catalogoEstrelas_compacto.js diff --git a/js/compactados/catalogoInde_compacto.js b/js/compactados/catalogoInde_compacto.js old mode 100644 new mode 100755 index 5ee129b..5ee129b --- a/js/compactados/catalogoInde_compacto.js +++ b/js/compactados/catalogoInde_compacto.js diff --git a/js/compactados/catalogoMapas_compacto.js b/js/compactados/catalogoMapas_compacto.js old mode 100644 new mode 100755 index 670e4ce..670e4ce --- a/js/compactados/catalogoMapas_compacto.js +++ b/js/compactados/catalogoMapas_compacto.js diff --git a/js/compactados/catalogoMenus_compacto.js b/js/compactados/catalogoMenus_compacto.js old mode 100644 new mode 100755 index 7014248..7014248 --- a/js/compactados/catalogoMenus_compacto.js +++ b/js/compactados/catalogoMenus_compacto.js diff --git a/js/compactados/catalogoMetaestat_compacto.js b/js/compactados/catalogoMetaestat_compacto.js old mode 100644 new mode 100755 index 2787ab5..2787ab5 --- a/js/compactados/catalogoMetaestat_compacto.js +++ b/js/compactados/catalogoMetaestat_compacto.js diff --git a/js/compactados/catalogoOgc_compacto.js b/js/compactados/catalogoOgc_compacto.js old mode 100644 new mode 100755 index ffce5a9..ffce5a9 --- a/js/compactados/catalogoOgc_compacto.js +++ b/js/compactados/catalogoOgc_compacto.js diff --git a/js/compactados/catalogoRegioes_compacto.js b/js/compactados/catalogoRegioes_compacto.js old mode 100644 new mode 100755 index 404db8e..404db8e --- a/js/compactados/catalogoRegioes_compacto.js +++ b/js/compactados/catalogoRegioes_compacto.js diff --git a/js/compactados/catalogoSistemas_compacto.js b/js/compactados/catalogoSistemas_compacto.js old mode 100644 new mode 100755 index 9245cfc..9245cfc --- a/js/compactados/catalogoSistemas_compacto.js +++ b/js/compactados/catalogoSistemas_compacto.js diff --git a/js/compactados/configura_compacto.js b/js/compactados/configura_compacto.js old mode 100644 new mode 100755 index e3d6fe5..e3d6fe5 --- a/js/compactados/configura_compacto.js +++ b/js/compactados/configura_compacto.js diff --git a/js/compactados/coordenadas_compacto.js b/js/compactados/coordenadas_compacto.js old mode 100644 new mode 100755 index 404bf09..404bf09 --- a/js/compactados/coordenadas_compacto.js +++ b/js/compactados/coordenadas_compacto.js diff --git a/js/compactados/desenho_compacto.js b/js/compactados/desenho_compacto.js old mode 100644 new mode 100755 index 5f8b91a..5f8b91a --- a/js/compactados/desenho_compacto.js +++ b/js/compactados/desenho_compacto.js diff --git a/js/compactados/dicionario_ajuda_compacto.js b/js/compactados/dicionario_ajuda_compacto.js old mode 100644 new mode 100755 index e69de29..e69de29 --- a/js/compactados/dicionario_ajuda_compacto.js +++ b/js/compactados/dicionario_ajuda_compacto.js diff --git a/js/compactados/dicionario_compacto.js b/js/compactados/dicionario_compacto.js old mode 100644 new mode 100755 index a6543b5..a6543b5 --- a/js/compactados/dicionario_compacto.js +++ b/js/compactados/dicionario_compacto.js diff --git a/js/compactados/editor_compacto.js b/js/compactados/editor_compacto.js old mode 100644 new mode 100755 index c77bc37..c77bc37 --- a/js/compactados/editor_compacto.js +++ b/js/compactados/editor_compacto.js diff --git a/js/compactados/eventos_compacto.js b/js/compactados/eventos_compacto.js old mode 100644 new mode 100755 index cda2a72..cda2a72 --- a/js/compactados/eventos_compacto.js +++ b/js/compactados/eventos_compacto.js diff --git a/js/compactados/guias_compacto.js b/js/compactados/guias_compacto.js old mode 100644 new mode 100755 index cd919b6..cd919b6 --- a/js/compactados/guias_compacto.js +++ b/js/compactados/guias_compacto.js diff --git a/js/compactados/idioma_compacto.js b/js/compactados/idioma_compacto.js old mode 100644 new mode 100755 index 50f94a7..50f94a7 --- a/js/compactados/idioma_compacto.js +++ b/js/compactados/idioma_compacto.js diff --git a/js/compactados/ini_i3geo_compacto.js b/js/compactados/ini_i3geo_compacto.js old mode 100644 new mode 100755 index 9bab14a..9bab14a --- a/js/compactados/ini_i3geo_compacto.js +++ b/js/compactados/ini_i3geo_compacto.js diff --git a/js/compactados/interface_compacto.js b/js/compactados/interface_compacto.js old mode 100644 new mode 100755 index 9eb415a..9eb415a --- a/js/compactados/interface_compacto.js +++ b/js/compactados/interface_compacto.js diff --git a/js/compactados/janela_compacto.js b/js/compactados/janela_compacto.js old mode 100644 new mode 100755 index cc79de3..cc79de3 --- a/js/compactados/janela_compacto.js +++ b/js/compactados/janela_compacto.js diff --git a/js/compactados/legenda_compacto.js b/js/compactados/legenda_compacto.js old mode 100644 new mode 100755 index 864b4a9..864b4a9 --- a/js/compactados/legenda_compacto.js +++ b/js/compactados/legenda_compacto.js diff --git a/js/compactados/login_compacto.js b/js/compactados/login_compacto.js old mode 100644 new mode 100755 index 6d4d052..6d4d052 --- a/js/compactados/login_compacto.js +++ b/js/compactados/login_compacto.js diff --git a/js/compactados/mapa_compacto.js b/js/compactados/mapa_compacto.js old mode 100644 new mode 100755 index 3587aa8..3587aa8 --- a/js/compactados/mapa_compacto.js +++ b/js/compactados/mapa_compacto.js diff --git a/js/compactados/maparef_compacto.js b/js/compactados/maparef_compacto.js old mode 100644 new mode 100755 index e99060c..e99060c --- a/js/compactados/maparef_compacto.js +++ b/js/compactados/maparef_compacto.js diff --git a/js/compactados/marcador_compacto.js b/js/compactados/marcador_compacto.js old mode 100644 new mode 100755 index 64fd288..64fd288 --- a/js/compactados/marcador_compacto.js +++ b/js/compactados/marcador_compacto.js diff --git a/js/compactados/mustache.js b/js/compactados/mustache.js old mode 100644 new mode 100755 index 7473a81..7473a81 --- a/js/compactados/mustache.js +++ b/js/compactados/mustache.js diff --git a/js/compactados/navega_compacto.js b/js/compactados/navega_compacto.js old mode 100644 new mode 100755 index 30c3799..30c3799 --- a/js/compactados/navega_compacto.js +++ b/js/compactados/navega_compacto.js diff --git a/js/compactados/php_compacto.js b/js/compactados/php_compacto.js old mode 100644 new mode 100755 index 5514e62..5514e62 --- a/js/compactados/php_compacto.js +++ b/js/compactados/php_compacto.js diff --git a/js/compactados/plugini3geo_compacto.js b/js/compactados/plugini3geo_compacto.js old mode 100644 new mode 100755 index 28ebf67..28ebf67 --- a/js/compactados/plugini3geo_compacto.js +++ b/js/compactados/plugini3geo_compacto.js diff --git a/js/compactados/proj4js.js b/js/compactados/proj4js.js old mode 100644 new mode 100755 index 9bdc4ce..9bdc4ce --- a/js/compactados/proj4js.js +++ b/js/compactados/proj4js.js diff --git a/js/compactados/social_compacto.js b/js/compactados/social_compacto.js old mode 100644 new mode 100755 index 8aa672a..8aa672a --- a/js/compactados/social_compacto.js +++ b/js/compactados/social_compacto.js diff --git a/js/compactados/tema_compacto.js b/js/compactados/tema_compacto.js old mode 100644 new mode 100755 index 1c08e5e..1c08e5e --- a/js/compactados/tema_compacto.js +++ b/js/compactados/tema_compacto.js diff --git a/js/compactados/util_compacto.js b/js/compactados/util_compacto.js old mode 100644 new mode 100755 index e75deee..e75deee --- a/js/compactados/util_compacto.js +++ b/js/compactados/util_compacto.js diff --git a/js/compactados/wicket.js b/js/compactados/wicket.js old mode 100644 new mode 100755 index e0e5f3b..e0e5f3b --- a/js/compactados/wicket.js +++ b/js/compactados/wicket.js diff --git a/js/i3geo_tudo_compacto7.js.php b/js/i3geo_tudo_compacto7.js.php old mode 100644 new mode 100755 index fd4de50..fd4de50 --- a/js/i3geo_tudo_compacto7.js.php +++ b/js/i3geo_tudo_compacto7.js.php diff --git a/js/listaDeFerramentas.js b/js/listaDeFerramentas.js index 8de900e..cdec04e 100755 --- a/js/listaDeFerramentas.js +++ b/js/listaDeFerramentas.js @@ -18,10 +18,6 @@ i3GEO.listaDeFerramentas = { descricao: $trad("descArquivos"), id : "arquivos" }, - //{ - // nome : $trad("d32"), - // id : "interface" - //}, { nome : $trad("operacoesMapaTema"), descricao: $trad("descOperacoesMapaTema"), diff --git a/js/mapa.js b/js/mapa.js index b9c0906..1525afd 100755 --- a/js/mapa.js +++ b/js/mapa.js @@ -733,11 +733,6 @@ i3GEO.mapa = * Abre a janela de dialogo da ferramenta convertews */ convertews : function() { - if (i3GEO.parametros.mapfile === "") { - i3GEO.janela - .tempoMsg("Essa opcao nao pode ser ativada. Consulte o administrador do sistema. Mapfile nao esta exposto."); - return; - } i3GEO.util.dialogoFerramenta( "i3GEO.mapa.dialogo.convertews()", "convertews", @@ -751,10 +746,6 @@ i3GEO.mapa = * Abre a janela de dialogo da ferramenta convertemapakml */ convertekml : function() { - if (i3GEO.parametros.mapfile === "") { - alert("Essa opcao nao pode ser ativada. Consulte o administrador do sistema. Mapfile nao esta exposto."); - return; - } i3GEO.util.dialogoFerramenta( "i3GEO.mapa.dialogo.convertekml()", "convertemapakml", diff --git a/pacotes/cpaint/cpaint2_compacto.inc.js b/pacotes/cpaint/cpaint2_compacto.inc.js old mode 100644 new mode 100755 index 1179423..1179423 --- a/pacotes/cpaint/cpaint2_compacto.inc.js +++ b/pacotes/cpaint/cpaint2_compacto.inc.js diff --git a/pacotes/mobileesp/mdetect_compacto.js b/pacotes/mobileesp/mdetect_compacto.js old mode 100644 new mode 100755 index 9ab0db5..9ab0db5 --- a/pacotes/mobileesp/mdetect_compacto.js +++ b/pacotes/mobileesp/mdetect_compacto.js diff --git a/pacotes/yui290/build/carousel/carousel_compacto.js b/pacotes/yui290/build/carousel/carousel_compacto.js old mode 100644 new mode 100755 index 2111cd6..2111cd6 --- a/pacotes/yui290/build/carousel/carousel_compacto.js +++ b/pacotes/yui290/build/carousel/carousel_compacto.js diff --git a/pacotes/yui290/build/container/container_compacto.js b/pacotes/yui290/build/container/container_compacto.js old mode 100644 new mode 100755 index aa7fb0c..aa7fb0c --- a/pacotes/yui290/build/container/container_compacto.js +++ b/pacotes/yui290/build/container/container_compacto.js diff --git a/pacotes/yui290/build/container/container_core_compacto.js b/pacotes/yui290/build/container/container_core_compacto.js old mode 100644 new mode 100755 index f2c2d3c..f2c2d3c --- a/pacotes/yui290/build/container/container_core_compacto.js +++ b/pacotes/yui290/build/container/container_core_compacto.js diff --git a/pacotes/yui290/build/resize/resize_compacto.js b/pacotes/yui290/build/resize/resize_compacto.js old mode 100644 new mode 100755 index 335f70f..335f70f --- a/pacotes/yui290/build/resize/resize_compacto.js +++ b/pacotes/yui290/build/resize/resize_compacto.js diff --git a/pacotes/yui290/build/treeview/treeview_compacto.js b/pacotes/yui290/build/treeview/treeview_compacto.js old mode 100644 new mode 100755 index 6ff4374..6ff4374 --- a/pacotes/yui290/build/treeview/treeview_compacto.js +++ b/pacotes/yui290/build/treeview/treeview_compacto.js diff --git a/pacotes/yui290/build/utilities/utilities_compacto.js b/pacotes/yui290/build/utilities/utilities_compacto.js old mode 100644 new mode 100755 index 7a1455c..7a1455c --- a/pacotes/yui290/build/utilities/utilities_compacto.js +++ b/pacotes/yui290/build/utilities/utilities_compacto.js -- libgit2 0.21.2