Commit 5dea5c643d74186cb13f532e23741800e208ec77
1 parent
6278a4ea
Exists in
master
and in
7 other branches
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
Showing
65 changed files
with
1588 additions
and
111 deletions
Show diff stats
admin/admin.db
No preview for this file type
classesphp/classe_mapa.php
... | ... | @@ -1684,7 +1684,7 @@ class Mapa |
1684 | 1684 | */ |
1685 | 1685 | function converteWS($locaplic,$h) |
1686 | 1686 | { |
1687 | - $nomeurl = "/ogc.php?tema=".$this->arquivo; | |
1687 | + $nomeurl = "/ogc.php?sid=".$this->arquivo; | |
1688 | 1688 | return($nomeurl); |
1689 | 1689 | } |
1690 | 1690 | /* |
... | ... | @@ -1704,33 +1704,27 @@ class Mapa |
1704 | 1704 | |
1705 | 1705 | Endereço do WMC |
1706 | 1706 | */ |
1707 | - function converteWMC($locmapserv,$h) | |
1707 | + function converteWMC($locmapserv,$urli3geo) | |
1708 | 1708 | { |
1709 | - $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); | |
1710 | - $protocolo = $protocolo[0]; | |
1711 | - $protocolo1 = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME']; | |
1712 | - $protocolo = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; | |
1713 | - $urli3geo = str_replace("/classesphp/mapa_controle.php","",$protocolo.$_SERVER["PHP_SELF"]); | |
1709 | + $r = nomeRandomico(5); | |
1710 | + $nomews = str_replace(".map",$r."wmc.map",$this->arquivo); | |
1714 | 1711 | |
1715 | - $nomews = str_replace(".map","wmc.map",$this->arquivo); | |
1716 | 1712 | $nomeurl = $locmapserv."?map=".$nomews; |
1717 | 1713 | $nomeogc = $urli3geo."/ogc.php?tema=".$nomews; |
1718 | 1714 | $w = $this->mapa->web; |
1719 | 1715 | $w->set("template",""); |
1720 | 1716 | // adiciona os parametros no nivel do mapa |
1721 | 1717 | $this->mapa->setmetadata("wms_title","i3Geo"); |
1722 | - $this->mapa->setmetadata("wms_onlineresource","http://".$h.$nomeurl); | |
1718 | + $this->mapa->setmetadata("wms_onlineresource","http://".$nomeurl); | |
1723 | 1719 | $projecao = pegaProjecaoDefault("epsg"); |
1724 | 1720 | $this->mapa->setmetadata("wms_srs","EPSG:".$projecao); |
1725 | 1721 | $this->mapa->setmetadata("wms_getcontext_enabled","1"); |
1726 | - foreach ($this->layers as $layer) | |
1727 | - { | |
1722 | + foreach ($this->layers as $layer){ | |
1728 | 1723 | if($layer->connectiontype != 7 && $layer->connectiontype != 9){ |
1729 | 1724 | $n = pegaNome($layer); |
1730 | 1725 | $layer->setmetadata("wms_title",$n); |
1731 | 1726 | $codigo = $layer->getmetadata("nomeoriginal"); |
1732 | - if($codigo == "") | |
1733 | - { | |
1727 | + if($codigo == ""){ | |
1734 | 1728 | $codigo = $layer->name; |
1735 | 1729 | } |
1736 | 1730 | $layer->setmetadata("wms_server_version","1.0.0"); |
... | ... | @@ -1742,14 +1736,14 @@ class Mapa |
1742 | 1736 | $layer->setmetadata("wms_format","image/png"); |
1743 | 1737 | $layer->setmetadata("wms_formatlist","image/gif,image/png,image/png; mode=24bit,image/jpeg,image/wbmp,image/tiff"); |
1744 | 1738 | $layer->set("dump",MS_TRUE); |
1745 | - $layer->set("status","ON"); | |
1739 | + $layer->set("status",MS_DEFAULT); | |
1746 | 1740 | $layer->set("template","none.htm"); |
1747 | 1741 | $c = $layer->getclass(0); |
1748 | 1742 | if ($c->name == "") |
1749 | 1743 | { |
1750 | 1744 | $c->name = " "; |
1751 | 1745 | } |
1752 | - if($layer->connectiontype != "WS_WMS" && $layer->getmetadata("permiteogc") == "" && $layer->getmetadata("TEMALOCAL") == ""){ | |
1746 | + if($layer->connectiontype != "WS_WMS" && strtolower($layer->getmetadata("permiteogc")) != "nao" && $layer->getmetadata("TEMALOCAL") == ""){ | |
1753 | 1747 | if(ms_GetVersionInt() > 50201) |
1754 | 1748 | { |
1755 | 1749 | $layer->setconnectiontype(MS_WMS); | ... | ... |
ferramentas/convertews/dependencias.php
... | ... | @@ -17,17 +17,6 @@ header("Content-type: text/javascript"); |
17 | 17 | include("index.js"); |
18 | 18 | include("dicionario.js"); |
19 | 19 | echo "\n"; |
20 | -/** | |
21 | - * Inclui o template mustache do HTML usado para criar o conteudo da janela | |
22 | - */ | |
23 | -echo 'i3GEOF.converteMapaWS.MUSTACHE = "'; | |
24 | -$texto = file_get_contents("template_mst.html"); | |
25 | -$texto = str_replace("\n", "", $texto); | |
26 | -$texto = str_replace("\r", "", $texto); | |
27 | -$texto = str_replace("\t", "", $texto); | |
28 | -$texto = str_replace('"', "'", $texto); | |
29 | -echo $texto; | |
30 | -echo '";'; | |
31 | 20 | if(extension_loaded('zlib')){ |
32 | 21 | ob_end_flush(); |
33 | 22 | } | ... | ... |
ferramentas/convertews/dicionario.js
1 | 1 | //+$trad(1,i3GEOF.converteMapaWS.dicionario)+ |
2 | 2 | i3GEOF.converteMapaWS.dicionario = { |
3 | 3 | 'ajudaDesktop' : [ { |
4 | - pt : "Você pode utilizar o endereço em softwares de geoprocessamento instalados em seu computador, como por exemplo, o", | |
4 | + pt : "Você pode utilizar o endereço em softwares de geoprocessamento instalados em seu computador, como por exemplo, o gvSIG ou QGIS", | |
5 | 5 | en : "", |
6 | 6 | es : "Usted puede utilizar la dirección en el software de geoprocesamiento instalado en su ordenador, como por ejemplo: el" |
7 | 7 | } ], | ... | ... |
ferramentas/convertews/exec.php
... | ... | @@ -17,9 +17,13 @@ Converte o mapa atual em um wms e wmc. |
17 | 17 | case "CONVERTEWMSWMC": |
18 | 18 | include_once(dirname(__FILE__)."/../../classesphp/classe_mapa.php"); |
19 | 19 | $m = new Mapa($map_file); |
20 | - if(!isset($_GET["h"])){$_GET["h"] = "";} | |
21 | - $wms = $m->converteWS($locmapserv,$_GET["h"]); | |
22 | - $wmc = $m->converteWMC($locmapserv,$_GET["h"]); | |
20 | + $wms = "/ferramentas/convertews/ogc.php?sid=".$g_sid; | |
21 | + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); | |
22 | + $protocolo = $protocolo[0]; | |
23 | + $protocolo1 = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME']; | |
24 | + $protocolo = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; | |
25 | + $urli3geo = str_replace("/ferramentas/convertews/exec.php","",$protocolo.$_SERVER["PHP_SELF"]); | |
26 | + $wmc = $m->converteWMC($locmapserv,$urli3geo); | |
23 | 27 | $retorno = array("wms"=>$wms,"wmc"=>$wmc); |
24 | 28 | break; |
25 | 29 | } | ... | ... |
ferramentas/convertews/index.js
... | ... | @@ -60,33 +60,16 @@ i3GEOF.converteMapaWS = { |
60 | 60 | /** |
61 | 61 | * Susbtitutos para o template |
62 | 62 | */ |
63 | - mustacheHash : function() { | |
63 | + mustacheHash : function(enderecowms,enderecowmc) { | |
64 | 64 | var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.converteMapaWS.dicionario); |
65 | 65 | dicionario["nomewms"] = enderecowms; |
66 | 66 | dicionario["nomewmc"] = enderecowmc; |
67 | - dicionario["divid"] = $i(divid).innerHTML; | |
67 | + dicionario["bbox"] = i3GEO.parametros.mapexten.split(" ").join(","); | |
68 | + dicionario["w"] = i3GEO.parametros.w; | |
69 | + dicionario["h"] = i3GEO.parametros.h; | |
68 | 70 | return dicionario; |
69 | 71 | }, |
70 | 72 | /* |
71 | - Function: iniciaDicionario | |
72 | - | |
73 | - Carrega o dicionário e chama a função que inicia a ferramenta | |
74 | - | |
75 | - O Javascript é carregado com o id i3GEOF.nomedaferramenta.dicionario_script | |
76 | - */ | |
77 | - iniciaDicionario: function(){ | |
78 | - if(typeof(i3GEOF.converteMapaWS.dicionario) === 'undefined'){ | |
79 | - i3GEO.util.scriptTag( | |
80 | - i3GEO.configura.locaplic+"/ferramentas/convertews/dicionario.js", | |
81 | - "i3GEOF.converteMapaWS.iniciaJanelaFlutuante()", | |
82 | - "i3GEOF.converteMapaWS.dicionario_script" | |
83 | - ); | |
84 | - } | |
85 | - else{ | |
86 | - i3GEOF.converteMapaWS.iniciaJanelaFlutuante(); | |
87 | - } | |
88 | - }, | |
89 | - /* | |
90 | 73 | Function: html |
91 | 74 | |
92 | 75 | Gera o código html para apresentação das opções da ferramenta |
... | ... | @@ -96,19 +79,31 @@ i3GEOF.converteMapaWS = { |
96 | 79 | divid {String} - id do div que receberá o conteudo HTML da ferramenta |
97 | 80 | |
98 | 81 | */ |
99 | - html:function(divid,enderecowms,enderecowmc){ | |
100 | - try{ | |
101 | - var ins = '<div style=margin-left:5px; ><p class="paragrafo" >'+$trad('ajudaDesktop',i3GEOF.converteMapaWS.dicionario)+' <a href="http://www.gvsig.gva.es/" target=blank > gvSig</a>' + | |
102 | - '<p class="paragrafo" >' + $trad('ajudaWms',i3GEOF.converteMapaWS.dicionario) + | |
103 | - '<p class="paragrafo" >' + $trad('ajudaWmc',i3GEOF.converteMapaWS.dicionario) + '<a href=\"'+enderecowmc+'\" target=_blank >'+$trad('wmc',i3GEOF.converteMapaWS.dicionario)+'</a>' + | |
104 | - '<p class="paragrafo" ><b>WMS: </b></p>' + | |
105 | - '<p class="paragrafo" > <textarea cols="55" rows="3" style=cursor:pointer onclick="javascript:this.select()">' + | |
106 | - enderecowms + '</textarea></p>' + | |
107 | - '<p class="paragrafo" >' + | |
108 | - '<a href="' + enderecowms + '&request=getcapabilities&version=1.1.0&service=wms" target=blank >'+$trad('testa',i3GEOF.converteMapaWS.dicionario)+'<br></div>'; | |
109 | - $i(divid).innerHTML += ins; | |
110 | - i3GEOF.converteMapaWS.aguarde.visibility = "hidden"; | |
111 | - }catch(e){i3GEO.janela.tempoMsg(e);i3GEOF.converteMapaWS.aguarde.visibility = "hidden";} | |
82 | + html:function(enderecowms,enderecowmc){ | |
83 | + var ins = Mustache.render(i3GEOF.converteMapaWS.MUSTACHE, i3GEOF.converteMapaWS.mustacheHash(enderecowms,enderecowmc)); | |
84 | + return ins; | |
85 | + }, | |
86 | + inicia: function(divid){ | |
87 | + if(i3GEOF.converteMapaWS.MUSTACHE == ""){ | |
88 | + $.get(i3GEO.configura.locaplic + "/ferramentas/convertews/template_mst.html", function(template) { | |
89 | + i3GEOF.converteMapaWS.MUSTACHE = template; | |
90 | + i3GEOF.converteMapaWS.inicia(divid); | |
91 | + }); | |
92 | + return; | |
93 | + } | |
94 | + var temp = function(retorno){ | |
95 | + var enderecowms = $trad('erroWms',i3GEOF.converteMapaWS.dicionario), | |
96 | + enderecowmc = $trad('erroWms',i3GEOF.converteMapaWS.dicionario); | |
97 | + if (retorno.data != undefined){ | |
98 | + enderecowms = i3GEO.configura.locaplic+retorno.data.wms+"&"; | |
99 | + enderecowmc = window.location.protocol+"//"+window.location.host+retorno.data.wmc+"&"; | |
100 | + } | |
101 | + $i(divid).innerHTML = i3GEOF.converteMapaWS.html(enderecowms,enderecowmc); | |
102 | + }; | |
103 | + var p = i3GEO.configura.locaplic+"/ferramentas/convertews/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=convertewmswmc"; | |
104 | + var cp = new cpaint(); | |
105 | + cp.set_response_type("JSON"); | |
106 | + cp.call(p,"converteWMSWMC",temp); | |
112 | 107 | }, |
113 | 108 | /* |
114 | 109 | Function: iniciaJanelaFlutuante |
... | ... | @@ -131,7 +126,7 @@ i3GEOF.converteMapaWS = { |
131 | 126 | titulo = "<span class='i3GeoTituloJanelaBsNolink' >WMS</span></div>"; |
132 | 127 | janela = i3GEO.janela.cria( |
133 | 128 | "440px", |
134 | - "290px", | |
129 | + "310px", | |
135 | 130 | "", |
136 | 131 | "", |
137 | 132 | "", |
... | ... | @@ -150,20 +145,6 @@ i3GEOF.converteMapaWS = { |
150 | 145 | "12" |
151 | 146 | ); |
152 | 147 | divid = janela[2].id; |
153 | - i3GEOF.converteMapaWS.aguarde = $i("i3GEOF.converteMapaWS_imagemCabecalho").style; | |
154 | - i3GEOF.converteMapaWS.aguarde.visibility = "visible"; | |
155 | - temp = function(retorno){ | |
156 | - var enderecowms = $trad('erroWms',i3GEOF.converteMapaWS.dicionario), | |
157 | - enderecowmc = $trad('erroWms',i3GEOF.converteMapaWS.dicionario); | |
158 | - if (retorno.data != undefined){ | |
159 | - enderecowms = i3GEO.configura.locaplic+retorno.data.wms+"&"; | |
160 | - enderecowmc = window.location.protocol+"//"+window.location.host+retorno.data.wmc+"&"; | |
161 | - } | |
162 | - i3GEOF.converteMapaWS.html(divid,enderecowms,enderecowmc); | |
163 | - }; | |
164 | - p = i3GEO.configura.locaplic+"/ferramentas/convertews/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=convertewmswmc&h="+window.location.host; | |
165 | - cp = new cpaint(); | |
166 | - cp.set_response_type("JSON"); | |
167 | - cp.call(p,"converteWMSWMC",temp); | |
148 | + i3GEOF.converteMapaWS.inicia(divid); | |
168 | 149 | } |
169 | 150 | }; |
170 | 151 | \ No newline at end of file | ... | ... |
... | ... | @@ -0,0 +1,1527 @@ |
1 | +<?php | |
2 | +include(dirname(__FILE__)."/../../classesphp/sani_request.php"); | |
3 | +include_once (dirname(__FILE__)."/../../classesphp/carrega_ext.php"); | |
4 | +include(dirname(__FILE__)."/../../ms_configura.php"); | |
5 | +$_GET = array_merge($_GET,$_POST); | |
6 | + | |
7 | +session_name("i3GeoPHP"); | |
8 | +session_id($_GET["sid"]); | |
9 | +session_start(); | |
10 | +$_GET["tema"] = $_SESSION["map_file"]; | |
11 | + | |
12 | +if(isset($_GET["BBOX"])){ | |
13 | + $_GET["BBOX"] = str_replace(" ",",",$_GET["BBOX"]); | |
14 | +} | |
15 | + | |
16 | +if(isset($_GET["tema"])){ | |
17 | + $tema = $_GET["tema"]; | |
18 | +} | |
19 | +if(isset($_GET["TileMatrix"])){ | |
20 | + $_GET["WIDTH"] = 256; | |
21 | + $_GET["HEIGHT"] = 256; | |
22 | + //calcula resolucoes | |
23 | + $res = array(); | |
24 | + $temp = 0.703125; | |
25 | + for($i = 0; $i < 40; $i++){ | |
26 | + $res[] = $temp; | |
27 | + $temp = $temp / 2; | |
28 | + } | |
29 | + $_GET["tms"] = "/wmts/".$tema."/".$_GET["TileMatrix"]."/".$_GET["TileCol"]."/".$_GET["TileRow"]; | |
30 | + $_GET["tms"] = str_replace(".png","",$_GET["tms"]).".png"; | |
31 | + | |
32 | + if($_GET["TileMatrix"]."/".$_GET["TileCol"]."/".$_GET["TileRow"] == "0/0/0" || $_GET["TileCol"] == -1 || $_GET["TileRow"]== -1){ | |
33 | + return; | |
34 | + } | |
35 | + $_GET["BBOX"] = $lon1.",".$lat1.",".$lon2.",".$lat2; | |
36 | + $_GET["SERVICE"] = "WMS"; | |
37 | + $_GET["REQUEST"] = "getMap"; | |
38 | + | |
39 | +} | |
40 | +set_time_limit(0); | |
41 | +ini_set('memory_limit', '512M'); | |
42 | +// | |
43 | +//caso nenhum parametros tenha sido enviado | |
44 | +// | |
45 | +if(count($_GET) == 0){ | |
46 | + $tipo="metadados"; | |
47 | + $_GET["REQUEST"] = "getCapabilities"; | |
48 | + $_GET["request"] = "getCapabilities"; | |
49 | + $_GET["SERVICE"] = "WMS"; | |
50 | +} | |
51 | +// | |
52 | +//compatibiliza chamadas fora do padrao | |
53 | +// | |
54 | +if(isset($_GET["outputFormat"]) && $_GET["outputFormat"] != ""){ | |
55 | + $_GET["OUTPUTFORMAT"] = $_GET["outputFormat"]; | |
56 | +} | |
57 | +if(isset($_GET["outputformat"]) && $_GET["outputformat"] != ""){ | |
58 | + $_GET["OUTPUTFORMAT"] = $_GET["outputformat"]; | |
59 | +} | |
60 | +$cache = true; | |
61 | + | |
62 | +include(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php"); | |
63 | + | |
64 | +if(isset($logExec) && $logExec["ogc"] == true){ | |
65 | + i3GeoLog("prog: ogc url: ".implode("&",array_merge($_GET,$_POST)),$_SESSION["dir_tmp"]); | |
66 | +} | |
67 | +// | |
68 | +//ajusta o default | |
69 | +// | |
70 | +if(!isset($_GET["ows_geomtype"]) || $_GET["ows_geomtype"] == ""){ | |
71 | + $ows_geomtype = "none"; | |
72 | +} | |
73 | +else{ | |
74 | + $ows_geomtype = $_GET["ows_geomtype"]; | |
75 | +} | |
76 | + | |
77 | +// | |
78 | +//imprime na tela a ajuda | |
79 | +// | |
80 | +if(isset($_GET["ajuda"])){ | |
81 | + ogc_imprimeAjuda(); | |
82 | + exit; | |
83 | +} | |
84 | +// | |
85 | +//pega os enderecos para compor a url de chamada do gerador de web services | |
86 | +// | |
87 | +$protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); | |
88 | +$protocolo = $protocolo[0]; | |
89 | +$protocolo1 = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME']; | |
90 | +$protocolo = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; | |
91 | +$urli3geo = str_replace("/ogc.php","",$protocolo.$_SERVER["PHP_SELF"]); | |
92 | + | |
93 | +//ajusta o OUTPUTFORMAT | |
94 | +$OUTPUTFORMAT = $_GET["OUTPUTFORMAT"]; | |
95 | +if(strpos(strtolower($OUTPUTFORMAT),"kml") !== false){ | |
96 | + $OUTPUTFORMAT = "kml"; | |
97 | +} | |
98 | +if(strpos(strtolower($OUTPUTFORMAT),"kmz") !== false){ | |
99 | + $OUTPUTFORMAT = "kmz"; | |
100 | +} | |
101 | +// | |
102 | +//para o caso da requisicao kmz | |
103 | +//kmz nao funciona diretamente com mapserver | |
104 | +// | |
105 | +if(strtolower($OUTPUTFORMAT) == "kmz"){ | |
106 | + $urln = "../../pacotes/kmlmapserver/kmlservice.php?request=kmz&map=".$tema."&typename=".$tema; | |
107 | + header("Location:".$urln); | |
108 | + exit; | |
109 | +} | |
110 | +if(strtolower($OUTPUTFORMAT) == "kml" && $ogrOutput == false){ | |
111 | + $urln = "../../pacotes/kmlmapserver/kmlservice.php?request=kmz&map=".$tema."&typename=".$tema; | |
112 | + header("Location:".$urln); | |
113 | + exit; | |
114 | +} | |
115 | +if(strtolower($OUTPUTFORMAT) == "shape-zip" && $ogrOutput == false){ | |
116 | + $retorno = downloadTema2("",$tema,$locaplic,$dir_tmp,$postgis_mapa); | |
117 | + $zip = $retorno["shape-zip"]; | |
118 | + if(file_exists($zip)){ | |
119 | + ob_end_clean(); | |
120 | + header('Content-type: application/zip'); | |
121 | + header('Content-Disposition: attachment; filename='.basename($zip)); | |
122 | + readfile($zip); | |
123 | + } | |
124 | + exit; | |
125 | +} | |
126 | +// | |
127 | +//caso seja uma requisição WMS com format | |
128 | +// | |
129 | +$format = $_GET["format"]; | |
130 | +if(strpos(strtolower($format),"kml") !== false){ | |
131 | + $urln = "../..pacotes/kmlmapserver/kmlservice.php?request=kml&map=".$tema."&typename=".$tema; | |
132 | + header("Location:".$urln); | |
133 | + exit; | |
134 | +} | |
135 | +if(strpos(strtolower($format),"kmz") !== false){ | |
136 | + $urln = "../../pacotes/kmlmapserver/kmlservice.php?request=kml&map=".$tema."&typename=".$tema; | |
137 | + header("Location:".$urln); | |
138 | + exit; | |
139 | +} | |
140 | +// | |
141 | +//usa o epsg correto ao inves do apelido inventado pelo Google | |
142 | +// | |
143 | +if($_GET["SRS"] == "EPSG:900913" || $_GET["srs"] == "EPSG:900913"){ | |
144 | + $_GET["SRS"] = "EPSG:3857"; | |
145 | + $_GET["srs"] = "EPSG:3857"; | |
146 | +} | |
147 | +if(!isset($_GET["srs"]) && !isset($_GET["SRS"])){ | |
148 | + $_GET["srs"] = "EPSG:4326"; | |
149 | + $_GET["SRS"] = "EPSG:4326"; | |
150 | +} | |
151 | + | |
152 | +// | |
153 | +//trata geojson da mesma forma que json | |
154 | +// | |
155 | +if(strtolower($OUTPUTFORMAT) == "geojson"){ | |
156 | + $OUTPUTFORMAT = "json"; | |
157 | +} | |
158 | +// | |
159 | +//para operar como o Geoserver, abre o openlayers | |
160 | +// | |
161 | +if(isset($format) && strtolower($format) == "application/openlayers"){ | |
162 | + $urln = dirname($_SERVER["PHP_SELF"])."/mashups/openlayers.php?layers=".$layers."&mapext=".$bbox."&botoes=pan,zoombox,zoomtot,identifica,legenda"; | |
163 | + //caso exista o openlayers3 | |
164 | + if(file_exists(dirname(__FILE__)."/mashups/openlayers3.php")){ | |
165 | + $urln = dirname($_SERVER["PHP_SELF"])."/mashups/openlayers3.php?layers=".$layers."&mapext=".$bbox."&botoes=pan,zoombox,zoomtot,identifica,legenda"; | |
166 | + } | |
167 | + if(!headers_sent()){ | |
168 | + header("Location:".$urln); | |
169 | + } | |
170 | + else{ | |
171 | + echo "<meta http-equiv='refresh' content='0;url=$urln'>"; | |
172 | + } | |
173 | +} | |
174 | +// | |
175 | +//pega a versao do Mapserver | |
176 | +// | |
177 | +//error_reporting(0); | |
178 | +$versao = versao(); | |
179 | +$versao = $versao["principal"]; | |
180 | + | |
181 | +$req = ms_newowsrequestobj(); | |
182 | +$tipo = ""; | |
183 | + | |
184 | +$cache = false; | |
185 | + | |
186 | +// | |
187 | +//inclui todos os parametros na requisicao e aproveita para verificar getcapabilities | |
188 | +// | |
189 | + | |
190 | +$oMap = ms_newMapobj($tema); | |
191 | +$c = $oMap->numlayers; | |
192 | +$ls = array(); | |
193 | +for ($i=0;$i < $c;++$i){ | |
194 | + $l = $oMap->getlayer($i); | |
195 | + if($l->status == MS_DEFAULT){ | |
196 | + $ls[] = $l->name; | |
197 | + } | |
198 | +} | |
199 | +$_GET["LAYERS"] = implode(",",$ls); | |
200 | + | |
201 | +foreach ($_GET as $k=>$v){ | |
202 | + $req->setParameter(strtoupper($k), $v); | |
203 | + if(strtolower($v) == "getcapabilities"){ | |
204 | + $tipo = "metadados"; | |
205 | + $cache = false; | |
206 | + } | |
207 | +} | |
208 | +// | |
209 | +//cria uma lista de epsgs para o getcapabilities | |
210 | +// | |
211 | +$req->setParameter("srsName",$req->getValueByName("SRS")); | |
212 | +$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"; | |
213 | +$VERSION = $_GET["VERSION"]; | |
214 | +if(isset($_GET["version"]) && !isset($_GET["VERSION"])){ | |
215 | + $VERSION = $_GET["version"]; | |
216 | +} | |
217 | +if(!isset($VERSION) || $VERSION == ""){ | |
218 | + $req->setParameter("VeRsIoN","1.1.1"); | |
219 | +} | |
220 | + | |
221 | +// | |
222 | +//nome do mapfile que ficara em cache | |
223 | +// | |
224 | + | |
225 | +$agora = intval(time() / 1000); | |
226 | +//acrescenta ao nome a indicacao do tipo de TMS | |
227 | +if(isset($_GET["tms"])){ | |
228 | + $agora .= "tms"; | |
229 | +} | |
230 | +if(isset($_GET["Z"]) && isset($_GET["X"])){ | |
231 | + $agora .= "google"; | |
232 | +} | |
233 | +// | |
234 | +//se o outputformat for definido, evita o cahce de arquivo | |
235 | +//o mesmo se existir filtro para o layer | |
236 | +// | |
237 | +if(isset($_GET["OUTPUTFORMAT"]) || !empty($_GET["map_layer_".$tema."_filter"])){ | |
238 | + $_GET["DESLIGACACHE"] = "sim"; | |
239 | +} | |
240 | +if(isset($_GET["DESLIGACACHE"]) && $_GET["DESLIGACACHE"] == "sim"){ | |
241 | + $agora = time(); | |
242 | + $cache = false; | |
243 | +} | |
244 | +//remove o bbox do calculo do nome do mapfile | |
245 | +$arrayget = $_GET; | |
246 | +$arrayget["bbox"] = ""; | |
247 | +$arrayget["BBOX"] = ""; | |
248 | +$arrayget["Z"] = ""; | |
249 | +$arrayget["X"] = ""; | |
250 | +$arrayget["Y"] = ""; | |
251 | +$arrayget["tms"] = ""; | |
252 | +$arrayget["TileMatrix"] = ""; | |
253 | +$arrayget["TileCol"] = ""; | |
254 | +$arrayget["TileRow"] = ""; | |
255 | + | |
256 | +$nomeMapfileTmp = $dir_tmp."/ogc_".md5(implode("",$arrayget))."_".$agora.".map"; | |
257 | + | |
258 | +//essa variavel e usada para definir se a imagem final gerada devera ser cortada ou nao | |
259 | +$cortePixels = 0; | |
260 | +if(empty($ogcwsmap)){ | |
261 | + $ogcwsmap = $_GET["ogcwsmap"]; | |
262 | +} | |
263 | +$oMap = ms_newMapobj($_SESSION["map_file"]); | |
264 | +substituiConObj($oMap,$postgis_mapa); | |
265 | + | |
266 | + $proto = "http" . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://"; | |
267 | + $server = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']; | |
268 | + $or = $urli3geo."/ogc.php"; | |
269 | + if((isset($tema)) && ($tema != "") && ($tipo=="metadados")){ | |
270 | + $or = $or."?tema=".$tema."&"; | |
271 | + } | |
272 | + // | |
273 | + //parametros no nível maior | |
274 | + // | |
275 | + $oMap->setmetadata("ows_onlineresource",$or); | |
276 | + $oMap->setmetadata("wms_onlineresource",$or); | |
277 | + $oMap->setmetadata("wms_title",$tituloInstituicao." - i3geo"); | |
278 | + $oMap->setmetadata("wfs_title",$tituloInstituicao." - i3geo"); | |
279 | + $oMap->setmetadata("wms_attribution_logourl_format","image/png"); | |
280 | + $oMap->setmetadata("wms_attribution_logourl_height","56"); | |
281 | + $oMap->setmetadata("wms_attribution_logourl_width","85"); | |
282 | + $oMap->setmetadata("wms_attribution_logourl_href",$urli3geo."/imagens/i3geo.png"); | |
283 | + $oMap->setmetadata("wms_attribution_onlineresource",$urli3geo); | |
284 | + $oMap->setmetadata("wms_attribution_title",$tituloInstituicao); | |
285 | + $oMap->setmetadata("ows_enable_request","*"); | |
286 | + //parametro mandatario | |
287 | + if($oMap->getmetadata("wms_srs") == ""){ | |
288 | + $projecao = pegaProjecaoDefault("epsg"); | |
289 | + $oMap->setmetadata("wms_srs","EPSG:".$projecao); | |
290 | + } | |
291 | + $e = $oMap->extent; | |
292 | + $extensaoMap = ($e->minx)." ".($e->miny)." ".($e->maxx)." ".($e->maxy); | |
293 | + //gera o mapa | |
294 | + if ($tema != ""){ | |
295 | + $listatema = explode(" ",str_replace(","," ",$tema)); | |
296 | + //para o caso do tema ser um arquivo mapfile existente em uma pasta qualquer | |
297 | + //$temai3geo = true indica que o layer será buscado na pasta i3geo/temas | |
298 | + $temai3geo = true; | |
299 | + if(file_exists($_GET["tema"]) && !isset($_GET["id_medida_variavel"])){ | |
300 | + $nmap = ms_newMapobj($_GET["tema"]); | |
301 | + $temai3geo = false; | |
302 | + $nmap->setmetadata("ows_enable_request","*"); | |
303 | + } | |
304 | + //inclui o layer com a grade de coordenadas | |
305 | + if((isset($_GET["grade"])) && (strtolower($_GET["grade"]) == "sim") && file_exists($locaplic."/temas/gridg.map")){ | |
306 | + $listatema[] = "gridg"; | |
307 | + } | |
308 | + foreach ($listatema as $tx){ | |
309 | + $extensao = ".map"; | |
310 | + if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".php")){ | |
311 | + //$extensao = ".php"; | |
312 | + } | |
313 | + if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".gvp")){ | |
314 | + $extensao = ".gvp"; | |
315 | + } | |
316 | + if($extensao == ".map"){ | |
317 | + //cria o mapfile com base no sistema de metadados estatisticos | |
318 | + //verifica se o id_medida_variavel existe no mapfile e nao foi passado como um parametro | |
319 | + if(!isset($_GET["id_medida_variavel"]) && $temai3geo == true){ | |
320 | + $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); | |
321 | + $l = $nmap->getlayer(0); | |
322 | + $teste = $l->getmetadata("METAESTAT_ID_MEDIDA_VARIAVEL"); | |
323 | + if($teste != "" && $l->data == ""){ | |
324 | + $_GET["id_medida_variavel"] = $teste; | |
325 | + } | |
326 | + } | |
327 | + | |
328 | + if($temai3geo == true){ | |
329 | + $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); | |
330 | + $nmap->setmetadata("ows_enable_request","*"); | |
331 | + } | |
332 | + if($temai3geo == false || empty($layers)){ | |
333 | + $ts = $nmap->getalllayernames(); | |
334 | + $nmap->setmetadata("ows_enable_request","*"); | |
335 | + } | |
336 | + else{ | |
337 | + $ts = explode(",",str_replace(" ",",",$layers)); | |
338 | + } | |
339 | + foreach ($ts as $t){ | |
340 | + $l = $nmap->getlayerbyname($t); | |
341 | + if($l == ""){ | |
342 | + $l = $nmap->getlayer(0); | |
343 | + } | |
344 | + //verifica se ja existe layer com mesmo nome | |
345 | + if($oMap->getlayerbyname($l->name) == ""){ | |
346 | + $permite = $l->getmetadata("permiteogc"); | |
347 | + if(strtolower($permite) != "nao"){ | |
348 | + //necessário pq o mapfile pode ter todos os layers como default | |
349 | + if($temai3geo == false){ | |
350 | + $l->set("status",MS_OFF); | |
351 | + } | |
352 | + else{ | |
353 | + $l->set("status",MS_DEFAULT); | |
354 | + } | |
355 | + $l->setmetadata("ows_title",pegaNome($l)); | |
356 | + $l->setmetadata("ows_srs",$listaepsg); | |
357 | + $l->set("group",""); | |
358 | + //timeout | |
359 | + $tout = $l->getmetadata("wms_connectiontimeout"); | |
360 | + if($tout == ""){ | |
361 | + $l->setmetadata("wms_connectiontimeout",0); | |
362 | + } | |
363 | + //essa linha é necessária pq as vezes no mapfile não tem nenhum layer com o nome igual ao nome do mapfile | |
364 | + if(count($ts)==1 && $temai3geo == true){ | |
365 | + $l->set("name",$tx); | |
366 | + } | |
367 | + $l->setmetadata("gml_include_items","all"); | |
368 | + $l->set("template","none.htm"); | |
369 | + $l->set("dump",MS_TRUE); | |
370 | + $l->setmetadata("WMS_INCLUDE_ITEMS","all"); | |
371 | + $l->setmetadata("WFS_INCLUDE_ITEMS","all"); | |
372 | + | |
373 | + if(file_exists($locaplic."/temas/miniaturas/".$t.".map.mini.png")){ | |
374 | + $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$t.".map.mini.png"; | |
375 | + $l->setmetadata("wms_attribution_logourl_format","image/png"); | |
376 | + $l->setmetadata("wms_attribution_logourl_height","50"); | |
377 | + $l->setmetadata("wms_attribution_logourl_width","50"); | |
378 | + $l->setmetadata("wms_attribution_logourl_href",$mini); | |
379 | + } | |
380 | + if($l->type == MS_LAYER_RASTER && $l->numclasses > 0){ | |
381 | + $c = $l->getclass(0); | |
382 | + if($c->name == ""){ | |
383 | + $c->name = " "; | |
384 | + } | |
385 | + } | |
386 | + //inclui extensao geografica | |
387 | + $extensao = $l->getmetadata("EXTENSAO"); | |
388 | + if($extensao == ""){ | |
389 | + $extensao = $extensaoMap; | |
390 | + } | |
391 | + $l->setmetadata("wms_extent",$extensao); | |
392 | + if (!empty($postgis_mapa)){ | |
393 | + if ($l->connectiontype == MS_POSTGIS){ | |
394 | + | |
395 | + $lcon = $l->connection; | |
396 | + if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | |
397 | + // | |
398 | + //o metadata CONEXAOORIGINAL guarda o valor original para posterior substituição | |
399 | + // | |
400 | + if(($lcon == " ") || ($lcon == "")){ | |
401 | + $l->set("connection",$postgis_mapa); | |
402 | + $l->setmetadata("CONEXAOORIGINAL",$lcon); | |
403 | + } | |
404 | + else{ | |
405 | + $l->set("connection",$postgis_mapa[$lcon]); | |
406 | + $l->setmetadata("CONEXAOORIGINAL",$lcon); | |
407 | + } | |
408 | + } | |
409 | + } | |
410 | + } | |
411 | + | |
412 | + autoClasses($l,$oMap); | |
413 | + | |
414 | + if($versao > 5){ | |
415 | + $pr = $l->getProcessing(); | |
416 | + if(!in_array("LABEL_NO_CLIP=True",$pr)){ | |
417 | + $l->setprocessing("LABEL_NO_CLIP=True"); | |
418 | + } | |
419 | + if(!in_array("POLYLINE_NO_CLIP=True",$pr)){ | |
420 | + $l->setprocessing("POLYLINE_NO_CLIP=True"); | |
421 | + } | |
422 | + } | |
423 | + | |
424 | + // | |
425 | + //verifica se existem parametros de substituicao passados via url | |
426 | + // | |
427 | + $parametro = $_GET["map_layer_".$l->name."_filter"]; | |
428 | + //echo $parametro;exit; | |
429 | + if(!empty($parametro)){ | |
430 | + $l->setfilter($parametro); | |
431 | + $cache = false; | |
432 | + } | |
433 | + //muda o title se for vazio | |
434 | + $nclass = $l->numclasses; | |
435 | + for($i=0;$i<$nclass;$i++){ | |
436 | + $classe = $l->getclass($i); | |
437 | + if($classe->title == ""){ | |
438 | + $classe->title = $classe->name; | |
439 | + } | |
440 | + } | |
441 | + if($nclass == 1){ | |
442 | + $classe = $l->getclass(0); | |
443 | + if($classe->name == ""){ | |
444 | + $classe->title = $l->getmetadata("tema"); | |
445 | + $classe->set("name",$l->getmetadata("tema")); | |
446 | + } | |
447 | + } | |
448 | + $layerAdicionado = ms_newLayerObj($oMap, $l); | |
449 | + corrigeLayerGrid($l,$layerAdicionado); | |
450 | + corrigeLayerGrid ( $layerAdicionado,$oMap ); | |
451 | + } | |
452 | + else{ | |
453 | + //a camada nao pode ser usada como servico WMS, entao e enviada uma mensagem | |
454 | + $l->set("data",""); | |
455 | + $l->set("type",MS_POINT); | |
456 | + $l->setmetadata("cache","nao"); | |
457 | + //apaga as classes | |
458 | + $nclass = $l->numclasses; | |
459 | + for($i=0;$i<$nclass;$i++){ | |
460 | + $classe = $l->getclass($i); | |
461 | + $classe->set("status",MS_DELETE); | |
462 | + } | |
463 | + $l->updatefromstring(' | |
464 | + LAYER | |
465 | + SIZEUNITS PIXELS | |
466 | + TRANSFORM FALSE | |
467 | + CLASS | |
468 | + LABEL | |
469 | + SIZE 10 | |
470 | + TYPE truetype | |
471 | + FONT arial | |
472 | + COLOR 255 0 0 | |
473 | + POSITION cc | |
474 | + FORCE true | |
475 | + END | |
476 | + END | |
477 | + FEATURE POINTS 100 100 END | |
478 | + TEXT "OGC denied" END | |
479 | + FEATURE POINTS 100 120 END | |
480 | + TEXT "' . $l->name . '" END | |
481 | + END | |
482 | + '); | |
483 | + ms_newLayerObj($oMap, $l); | |
484 | + } | |
485 | + } | |
486 | + } | |
487 | + } | |
488 | + | |
489 | + } | |
490 | + } | |
491 | + else{ | |
492 | + $intervalo = "0,5000"; | |
493 | + $conta = 0; | |
494 | + $int = explode(",",$intervalo); | |
495 | + $codigosTema = array(); | |
496 | + if(empty($_GET["perfil"])){ | |
497 | + $perfil = ""; | |
498 | + } | |
499 | + include("../../classesphp/classe_menutemas.php"); | |
500 | + $m = new Menutemas("",$perfil,$locaplic,$urli3geo); | |
501 | + $menus = $m->pegaListaDeMenus(); | |
502 | + foreach ($menus as $menu){ | |
503 | + $grupos = $m->pegaListaDeGrupos($menu["idmenu"],$listasistemas="nao",$listasgrupos="sim"); | |
504 | + //temas na raiz do menu | |
505 | + $lts = $menu["temas"]; | |
506 | + //var_dump($lts);exit; | |
507 | + foreach($lts as $t){ | |
508 | + if(strtolower($t["ogc_tema"]) != "nao"){ | |
509 | + $codigosTema[$t["codigo_tema"]] = array("tema"=>$t["codigo_tema"],"fonte"=>$t["link_tema"]); | |
510 | + } | |
511 | + } | |
512 | + foreach($grupos as $grupo){ | |
513 | + $lts = $grupo["temasgrupo"]; | |
514 | + //var_dump($lts); | |
515 | + foreach($lts as $t){ | |
516 | + if(strtolower($t["ogc"]) != "nao"){ | |
517 | + $codigosTema[$t["tid"]] = array("tema"=>$t["tid"],"fonte"=>$t["link"]); | |
518 | + } | |
519 | + } | |
520 | + if(strtolower($grupo["ogc"]) == "sim"){ | |
521 | + foreach($grupo["subgrupos"] as $sgrupo){ | |
522 | + if(strtolower($sgrupo["ogc"]) == "sim"){ | |
523 | + $lts = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
524 | + foreach($lts as $t){ | |
525 | + if(strtolower($t["ogc"]) == "sim"){ | |
526 | + $codigosTema[$t["tid"]] = array("tema"=>$t["tid"],"fonte"=>$t["link"]); | |
527 | + } | |
528 | + } | |
529 | + } | |
530 | + } | |
531 | + } | |
532 | + } | |
533 | + } | |
534 | + //echo "<pre>".var_dump($codigosTema);exit; | |
535 | + foreach($codigosTema as $c){ | |
536 | + $codigoTema = $c["tema"]; | |
537 | + if(file_exists($locaplic."/temas/".$codigoTema.".map")){ | |
538 | + if (@ms_newMapobj($locaplic."/temas/".$codigoTema.".map")){ | |
539 | + $nmap = ms_newMapobj($locaplic."/temas/".$codigoTema.".map"); | |
540 | + $nmap->setmetadata("ows_enable_request","*"); | |
541 | + $ts = $nmap->getalllayernames(); | |
542 | + foreach ($ts as $t){ | |
543 | + if ($oMap->getlayerbyname($t) == ""){ | |
544 | + $l = $nmap->getlayerbyname($t); | |
545 | + $extensao = $l->getmetadata("EXTENSAO"); | |
546 | + if($extensao == ""){ | |
547 | + $extensao = $extensaoMap; | |
548 | + } | |
549 | + $l->setmetadata("wms_extent",$extensao); | |
550 | + $l->setmetadata("ows_title",pegaNome($l)); | |
551 | + $l->setmetadata("ows_srs",$listaepsg); | |
552 | + $l->set("status",MS_OFF); | |
553 | + $l->setmetadata("gml_include_items","all"); | |
554 | + $l->set("dump",MS_TRUE); | |
555 | + $l->setmetadata("WMS_INCLUDE_ITEMS","all"); | |
556 | + $l->setmetadata("WFS_INCLUDE_ITEMS","all"); | |
557 | + if($l->getmetadata("ows_metadataurl_href") == ""){ | |
558 | + $l->setmetadata("ows_metadataurl_href",$c["fonte"]); | |
559 | + $l->setmetadata("ows_metadataurl_type","TC211"); | |
560 | + $l->setmetadata("ows_metadataurl_format","text/html"); | |
561 | + } | |
562 | + if(file_exists($locaplic."/temas/miniaturas/".$t.".map.mini.png")){ | |
563 | + $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$t.".map.mini.png"; | |
564 | + $l->setmetadata("wms_attribution_logourl_format","image/png"); | |
565 | + $l->setmetadata("wms_attribution_logourl_height","50"); | |
566 | + $l->setmetadata("wms_attribution_logourl_width","50"); | |
567 | + $l->setmetadata("wms_attribution_logourl_href",$mini); | |
568 | + } | |
569 | + // | |
570 | + //numero de pixels que serao considerados para corte da imagem no caso de cache ativo e tema de pontos | |
571 | + // | |
572 | + if ($l->getmetadata("cortepixels") != ""){ | |
573 | + $cortePixels = $l->getmetadata("cortepixels"); | |
574 | + } | |
575 | + cloneInlineSymbol($l,$nmap,$oMap); | |
576 | + ms_newLayerObj($oMap, $l); | |
577 | + } | |
578 | + } | |
579 | + } | |
580 | + else{ | |
581 | + echo "Erro no arquivo ".$locaplic."/temas/".$codigoTema.".map <br>"; | |
582 | + $error = ms_GetErrorObj(); | |
583 | + while($error && $error->code != MS_NOERR){ | |
584 | + //printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message); | |
585 | + //$error = $error->next(); | |
586 | + } | |
587 | + } | |
588 | + } | |
589 | + } | |
590 | + } | |
591 | + // | |
592 | + //a imagem do mapa recebera a legenda | |
593 | + // | |
594 | + if((isset($_GET["legenda"])) && (strtolower($_GET["legenda"]) == "sim")){ | |
595 | + processaLegenda(); | |
596 | + } | |
597 | + // | |
598 | + //a imagem do mapa recebera a barra de escala | |
599 | + // | |
600 | + if((isset($_GET["escala"])) && (strtolower($_GET["escala"]) == "sim")){ | |
601 | + processaEscala(); | |
602 | + } | |
603 | + // | |
604 | + //aplica os parametros sobre a grade de coordenadas | |
605 | + // | |
606 | + if((isset($_GET["grade"])) && (strtolower($_GET["grade"]) == "sim")){ | |
607 | + processaGrade(); | |
608 | + } | |
609 | + $oMap->setSymbolSet($locaplic."/symbols/".basename($oMap->symbolsetfilename)); | |
610 | + $oMap->setFontSet($locaplic."/symbols/".basename($oMap->fontsetfilename)); | |
611 | + //verifica se existem layers com plugin definido e processa conforme o tipo de plugin | |
612 | + processaPluginI3geo(); | |
613 | + // | |
614 | + //caso seja download ou json ou csv | |
615 | + // | |
616 | + processaOutputformatMapfile(); | |
617 | +if(ob_get_contents ()){ | |
618 | + ob_end_clean(); | |
619 | +} | |
620 | +// | |
621 | +//verifica se a requisicao e do tipo TMS. | |
622 | +// | |
623 | +// | |
624 | +//calcula a extensao geografica com base no x,y,z em requisisoes TMS | |
625 | +//quando for do tipo tms $_GET["tms"] contem os parametros do tile | |
626 | +//essa rotina faz um exit ao final | |
627 | +//o cache tms so fucniona se houver apenas uma camada no mapa | |
628 | +//tms e usado basicamente por mashup ou openlayers | |
629 | +// | |
630 | +if(isset($_GET["tms"])){ | |
631 | + if(!isset($_GET["TileMatrix"])){ | |
632 | + $temp = explode("/",$_GET["tms"]); | |
633 | + $z = $temp[2]; | |
634 | + $x = $temp[3]; | |
635 | + $y = str_replace(".png","",$temp[4]); | |
636 | + $n = pow(2,$z+1); | |
637 | + $lon1 = $x / $n * 360.0 - 180.0; | |
638 | + $lon2 = ($x+1) / $n * 360.0 - 180.0; | |
639 | + $n = pow(2,$z); | |
640 | + $lat1 = $y / $n * 180.0 - 90.0; | |
641 | + $lat2 = ($y+1) / $n * 180.0 - 90.0; | |
642 | + } | |
643 | + else{ | |
644 | + $top_left_minx = -180; | |
645 | + $top_left_maxy = 90; | |
646 | + | |
647 | + $x_size = $res[$_GET["TileMatrix"] - 1] * 256; | |
648 | + $y_size = $x_size; | |
649 | + | |
650 | + $lon1 = $top_left_minx + ($_GET["TileCol"] * $x_size); | |
651 | + $lat1 = $top_left_maxy - ($_GET["TileRow"] * $y_size) - $y_size; | |
652 | + $lon2 = $top_left_minx + ($_GET["TileCol"] * $x_size) + $x_size; | |
653 | + $lat2 = $top_left_maxy - ($_GET["TileRow"] * $y_size); | |
654 | + } | |
655 | + | |
656 | + //essa funcao termina o processo se a imagem existir | |
657 | + if($cache == true){ | |
658 | + carregaCacheImagem($cachedir,$nomeMapfileTmp,$_GET["tms"]); | |
659 | + } | |
660 | + | |
661 | + $layer0 = $oMap->getlayer(0); | |
662 | + // | |
663 | + //numero de pixels que serao considerados para corte da imagem no caso de cache ativo e tema de pontos | |
664 | + // | |
665 | + if ($layer0->getmetadata("cortepixels") != ""){ | |
666 | + $cortePixels = $layer0->getmetadata("cortepixels"); | |
667 | + } | |
668 | + //se nao existir, salva a imagem | |
669 | + //echo $lon1." ".$lat1." ".$lon2." ".$lat2;exit; | |
670 | + $oMap->setsize(256,256); | |
671 | + $oMap->setExtent($lon1,$lat1,$lon2,$lat2); | |
672 | + | |
673 | + $layer0->set("status",MS_DEFAULT); | |
674 | + // | |
675 | + //se o layer foi marcado para corte altera os parametros para ampliar o mapa | |
676 | + //antes de gerar a imagem | |
677 | + // | |
678 | + if($cortePixels > 0){ | |
679 | + //$oMap->prepareImage(); | |
680 | + $escalaInicial = $oMap->scaledenom; | |
681 | + $extensaoInicial = $oMap->extent; | |
682 | + $wh = 256+($cortePixels*2); | |
683 | + $oMap->setsize($wh,$wh); | |
684 | + $ponto = new pointObj(); | |
685 | + $ponto->setxy(($wh/2),($wh/2)); | |
686 | + $oMap->zoomScale($escalaInicial, $ponto, $wh, $wh, $extensaoInicial); | |
687 | + } | |
688 | + | |
689 | + $img = $oMap->draw(); | |
690 | + | |
691 | + if($img->imagepath == ""){ | |
692 | + //tenta mais uma vez | |
693 | + $img = $oMap->draw(); | |
694 | + } | |
695 | + if($img->imagepath == ""){ | |
696 | + exit; | |
697 | + } | |
698 | + if($cache == true){ | |
699 | + salvaCacheImagem($cachedir,$nomeMapfileTmp,$_GET["tms"]); | |
700 | + } | |
701 | + renderNocacheTms(); | |
702 | +} | |
703 | + | |
704 | +// | |
705 | +//verifica se a chamada do servico e do tipo TILE no padrao do Google | |
706 | +// | |
707 | +if(isset($_GET["Z"]) && isset($_GET["X"])){ | |
708 | + $x = $_GET["X"]; | |
709 | + $y = $_GET["Y"]; | |
710 | + $z = $_GET["Z"]; | |
711 | + $proj4 = pegaProjecaoDefault("proj4"); | |
712 | + if(file_exists($tema)){ | |
713 | + $layer0 = $oMap->getlayer(0); | |
714 | + $layer0->set("status",MS_DEFAULT); | |
715 | + $layer0->setProjection($proj4); | |
716 | + } | |
717 | + else{ | |
718 | + //pode ter mais de um tema | |
719 | + $lista = explode(" ",$tema); | |
720 | + foreach($lista as $nomeLayer){ | |
721 | + $layer0 = $oMap->getlayerbyname($nomeLayer); | |
722 | + $layer0->set("status",MS_DEFAULT); | |
723 | + $layer0->setProjection($proj4); | |
724 | + } | |
725 | + } | |
726 | + // | |
727 | + //numero de pixels que serao considerados para corte da imagem no caso de cache ativo e tema de pontos | |
728 | + // | |
729 | + if ($layer0->getmetadata("cortepixels") != ""){ | |
730 | + $cortePixels = $layer0->getmetadata("cortepixels"); | |
731 | + } | |
732 | + | |
733 | + if($cache == true){ | |
734 | + carregaCacheImagem($cachedir,$nomeMapfileTmp,"/googlemaps/$layer0->name/$z/$x/$y"); | |
735 | + } | |
736 | + $n = pow(2,$z); | |
737 | + $lon1 = $x / $n * 360.0 - 180.0; | |
738 | + $lat2 = rad2deg(atan(sinh(pi() * (1 - 2 * $y / $n)))); | |
739 | + $x++; | |
740 | + $y++; | |
741 | + $lon2 = $x / $n * 360.0 - 180.0; | |
742 | + $lat1 = rad2deg(atan(sinh(pi() * (1 - 2 * $y / $n)))); | |
743 | + $x--; | |
744 | + $y--; | |
745 | + | |
746 | + $projInObj = ms_newprojectionobj("proj=latlong,a=6378137,b=6378137"); | |
747 | + $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"); | |
748 | + | |
749 | + $poPoint1 = ms_newpointobj(); | |
750 | + $poPoint1->setXY($lon1, $lat1); | |
751 | + $poPoint1->project($projInObj, $projOutObj); | |
752 | + $poPoint2 = ms_newpointobj(); | |
753 | + $poPoint2->setXY($lon2, $lat2); | |
754 | + $poPoint2->project($projInObj, $projOutObj); | |
755 | + $oMap->setsize(256,256); | |
756 | + $oMap->setExtent($poPoint1->x,$poPoint1->y,$poPoint2->x,$poPoint2->y); | |
757 | + | |
758 | + $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"); | |
759 | + | |
760 | + // | |
761 | + //se o layer foi marcado para corte altera os parametros para ampliar o mapa | |
762 | + //antes de gerar a imagem | |
763 | + // | |
764 | + if($cortePixels > 0){ | |
765 | + //$oMap->prepareImage(); | |
766 | + $escalaInicial = $oMap->scaledenom; | |
767 | + $extensaoInicial = $oMap->extent; | |
768 | + $wh = 256+($cortePixels*2); | |
769 | + $oMap->setsize($wh,$wh); | |
770 | + $ponto = new pointObj(); | |
771 | + $ponto->setxy(($wh/2),($wh/2)); | |
772 | + $oMap->zoomScale($escalaInicial, $ponto, $wh, $wh, $extensaoInicial); | |
773 | + } | |
774 | + $img = $oMap->draw(); | |
775 | + if($img->imagepath == ""){ | |
776 | + exit; | |
777 | + } | |
778 | + if($cache == true){ | |
779 | + salvaCacheImagem($cachedir,$nomeMapfileTmp,"/googlemaps/$layer0->name/$z/$x/$y"); | |
780 | + } | |
781 | + renderNocacheTms(); | |
782 | +} | |
783 | +if(strtolower($req->getValueByName("REQUEST")) == "getlegendgraphic"){ | |
784 | + $legenda = $oMap->legend; | |
785 | + $legenda->set("status",MS_ON); | |
786 | + $numlayers = $oMap->numlayers; | |
787 | + for ($i=0;$i < $numlayers;$i++){ | |
788 | + $l = $oMap->getlayer($i); | |
789 | + $l->set("status",MS_DEFAULT); | |
790 | + if($req->getValueByName("LAYER") == ""){ | |
791 | + $req->setParameter("LAYER",$l->name); | |
792 | + } | |
793 | + | |
794 | + //muda o title se for vazio | |
795 | + /* | |
796 | + $nclass = $l->numclasses; | |
797 | + for($i=0;$i<$nclass;$i++){ | |
798 | + $classe = $l->getclass($i); | |
799 | + if($classe->title == ""){ | |
800 | + $classe->title = $classe->name; | |
801 | + } | |
802 | + } | |
803 | + if($nclass == 1){ | |
804 | + $classe = $l->getclass(0); | |
805 | + if($classe->name == ""){ | |
806 | + $classe->title = $l->getmetadata("tema"); | |
807 | + $classe->set("name",$l->getmetadata("tema")); | |
808 | + } | |
809 | + } | |
810 | + */ | |
811 | + if($req->getValueByName("FORMAT") == ""){ | |
812 | + $req->setParameter("FORMAT","image/png"); | |
813 | + } | |
814 | + $l->set("minscaledenom",0); | |
815 | + $l->set("maxscaledenom",0); | |
816 | + if($req->getValueByName("FORMAT") == "text/html"){ | |
817 | + //remove offset de simbolos pontuais | |
818 | + $nclass = $l->numclasses; | |
819 | + for($cc = 0; $cc < $nclass; $cc++){ | |
820 | + $classe = $l->getclass($cc); | |
821 | + if($classe->numstyles > 0){ | |
822 | + $estilo = $classe->getstyle(0); | |
823 | + if($estilo->symbolname != "" && file_exists($estilo->symbolname)){ | |
824 | + $estilo->set("offsetx",0); | |
825 | + $estilo->set("offsety",0); | |
826 | + } | |
827 | + } | |
828 | + } | |
829 | + } | |
830 | + } | |
831 | + if($req->getValueByName("FORMAT") == "text/html"){ | |
832 | + //define qual template utilizar | |
833 | + if(empty($_GET["templateLegenda"])){ | |
834 | + $legenda->set("template",$locaplic."/aplicmap/legendaOgc.html"); | |
835 | + } else { | |
836 | + $_GET["templateLegenda"] = str_replace(".htm","",$_GET["templateLegenda"]); | |
837 | + $_GET["templateLegenda"] = str_replace(".","",$_GET["templateLegenda"]); | |
838 | + if(file_exists($locaplic."/".$_GET["templateLegenda"].".htm")){ | |
839 | + $legenda->set("template",$locaplic."/".$_GET["templateLegenda"].".htm"); | |
840 | + } else { | |
841 | + $legenda->set("template",$locaplic."/aplicmap/legendaOgc.html"); | |
842 | + } | |
843 | + } | |
844 | + $tmparray["my_tag"] = "value_of_my_tag"; | |
845 | + if($leg = @$oMap->processlegendtemplate($tmparray)){ | |
846 | + if (function_exists("mb_convert_encoding")){ | |
847 | + $leg = mb_convert_encoding($leg,"UTF-8","ISO-8859-1"); | |
848 | + } | |
849 | + echo $leg; | |
850 | + exit; | |
851 | + } | |
852 | + } | |
853 | +} | |
854 | + | |
855 | +if(strtolower($req->getValueByName("REQUEST")) == "getfeature"){ | |
856 | + $l = $oMap->getlayer(0); | |
857 | + if($req->getValueByName("TYPENAME") == "" || $req->getValueByName("TYPENAME") == "undefined"){ | |
858 | + $req->setParameter("TYPENAME",$l->name); | |
859 | + } | |
860 | + if($l->getProjection() == "" ){ | |
861 | + $l->setProjection(pegaProjecaoDefault("proj4")); | |
862 | + } | |
863 | + if(strtolower($req->getValueByName("SRS")) == "epsg:900913"){ | |
864 | + $req->setParameter("SRS","EPSG:3857"); | |
865 | + } | |
866 | +} | |
867 | +if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo"){ | |
868 | + $l = $oMap->getlayer(0); | |
869 | + $req->setParameter("LAYERS",$l->name); | |
870 | + $req->setParameter("QUERY_LAYERS",$l->name); | |
871 | + if(strtolower($req->getValueByName("SRS")) == "epsg:900913"){ | |
872 | + $req->setParameter("SRS","EPSG:3857"); | |
873 | + $_GET["SRS"] = "EPSG:3857"; | |
874 | + } | |
875 | +} | |
876 | +ms_ioinstallstdouttobuffer(); | |
877 | +// | |
878 | +//verifica parametro outputformat e ajusta a requisicao | |
879 | +// | |
880 | +if(strtolower($req->getValueByName("REQUEST")) == "getmap" && $req->getValueByName("format") == ""){ | |
881 | + $req->setParameter("format","image/png"); | |
882 | +} | |
883 | +if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo" && $_GET["info_format"] == "text/xml"){ | |
884 | + $req->setParameter("info_format","application/vnd.ogc.gml"); | |
885 | +} | |
886 | +//json conforme cesium | |
887 | +if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo" && $_GET["info_format"] == "application/json"){ | |
888 | + getfeatureinfoJson(); | |
889 | + exit; | |
890 | +} | |
891 | +if(strtolower($request) == "getcapabilities"){ | |
892 | + //header('Content-Disposition: attachment; filename=getcapabilities.xml'); | |
893 | +} | |
894 | +elseif(!isset($OUTPUTFORMAT)){ | |
895 | + //$contenttype = ms_iostripstdoutbuffercontenttype(); | |
896 | + header("Content-type: $contenttype"); | |
897 | +} | |
898 | +//$ogrOutput vem de ms_configura.php | |
899 | + | |
900 | +//precisa limpar o cabecalho | |
901 | +if(strtolower($OUTPUTFORMAT) == "geojson" || strtolower($OUTPUTFORMAT) == "json"){ | |
902 | + $arq = $dir_tmp."/".$tema.".json"; | |
903 | + if(isset($ogrOutput) && $ogrOutput == false){ | |
904 | + exportaGeojson(); | |
905 | + exit; | |
906 | + } | |
907 | + $oMap->owsdispatch($req); | |
908 | + | |
909 | + $contenttype = ms_iostripstdoutbuffercontenttype(); | |
910 | + ms_iostripstdoutbuffercontentheaders(); | |
911 | + //grava em disco | |
912 | + $contents = ms_iogetstdoutbufferstring(); | |
913 | + file_put_contents($arq,$contents); | |
914 | + //envia para download | |
915 | + | |
916 | + header("Content-type: application/json; subtype=geojson"); | |
917 | + | |
918 | + ms_iogetStdoutBufferBytes(); | |
919 | + ms_ioresethandlers(); | |
920 | + | |
921 | + exit; | |
922 | +} | |
923 | +if(strtolower($OUTPUTFORMAT) == "kml"){ | |
924 | + $oMap->owsdispatch($req); | |
925 | + $contenttype = ms_iostripstdoutbuffercontenttype(); | |
926 | + ms_iostripstdoutbuffercontentheaders(); | |
927 | + //grava em disco | |
928 | + $arq = $dir_tmp."/".$tema.".kml"; | |
929 | + $contents = ms_iogetstdoutbufferstring(); | |
930 | + file_put_contents($arq,$contents); | |
931 | + //envia para download | |
932 | + header('Content-Disposition: attachment; filename='.$tema.'.kml'); | |
933 | + ms_iogetStdoutBufferBytes(); | |
934 | + ms_ioresethandlers(); | |
935 | + exit; | |
936 | +} | |
937 | +//kmz nao funciona quando fornecido diretamente pelo mapserver | |
938 | +if(strtolower($OUTPUTFORMAT) == "kmz"){ | |
939 | + $oMap->owsdispatch($req); | |
940 | + $contenttype = ms_iostripstdoutbuffercontenttype(); | |
941 | + ms_iostripstdoutbuffercontentheaders(); | |
942 | + //grava em disco | |
943 | + $arq = $dir_tmp."/".$tema.".kmz"; | |
944 | + $contents = ms_iogetstdoutbufferstring(); | |
945 | + file_put_contents($arq,$contents); | |
946 | + //envia para download | |
947 | + header('Content-Disposition: attachment; filename='.$tema.'.kmz'); | |
948 | + ms_iogetStdoutBufferBytes(); | |
949 | + ms_ioresethandlers(); | |
950 | + exit; | |
951 | +} | |
952 | +if(strtolower($OUTPUTFORMAT) == "shape-zip"){ | |
953 | + $oMap->owsdispatch($req); | |
954 | + $contenttype = ms_iostripstdoutbuffercontenttype(); | |
955 | + //grava em disco | |
956 | + $arq = $dir_tmp."/".$tema."_shapefile.zip"; | |
957 | + $contents = ms_iogetstdoutbufferstring(); | |
958 | + file_put_contents($arq,$contents); | |
959 | + //envia para download | |
960 | + header('Content-Disposition: attachment; filename='.$tema.'_shapefile.zip'); | |
961 | + ms_iogetStdoutBufferBytes(); | |
962 | + ms_ioresethandlers(); | |
963 | + exit; | |
964 | +} | |
965 | +if(strtolower($OUTPUTFORMAT) == "csv"){ | |
966 | + $arq = $dir_tmp."/".$tema.$ows_geomtype.".csv"; | |
967 | + $fileName = $tema.$ows_geomtype.'.csv'; | |
968 | + if(isset($ogrOutput) && $ogrOutput == false){ | |
969 | + exportaCsv(); | |
970 | + exit; | |
971 | + } | |
972 | + // | |
973 | + $oMap->owsdispatch($req); | |
974 | + $contenttype = ms_iostripstdoutbuffercontenttype(); | |
975 | + ms_iostripstdoutbuffercontentheaders(); | |
976 | + //grava em disco | |
977 | + $contents = ms_iogetstdoutbufferstring(); | |
978 | + file_put_contents($arq,$contents); | |
979 | + //envia para download | |
980 | + header('Content-Disposition: attachment; filename='.$fileName); | |
981 | + header("Content-type: text/csv"); | |
982 | + ms_iogetStdoutBufferBytes(); | |
983 | + ms_ioresethandlers(); | |
984 | + exit; | |
985 | +} | |
986 | +//echo $req->getValue(1);exit; | |
987 | +ob_clean(); | |
988 | +$oMap->owsdispatch($req); | |
989 | +$contenttype = ms_iostripstdoutbuffercontenttype(); | |
990 | +$buffer = ms_iogetStdoutBufferBytes(); | |
991 | + | |
992 | +ms_ioresethandlers(); | |
993 | +// | |
994 | +//funções | |
995 | +// | |
996 | +function ogc_pegaListaDeMenus(){ | |
997 | + global $perfil,$locaplic,$urli3geo; | |
998 | + if(!isset($perfil)){ | |
999 | + $perfil = ""; | |
1000 | + } | |
1001 | + $m = new Menutemas("",$perfil,$locsistemas,$locaplic,"",$urli3geo); | |
1002 | + foreach($m->pegaListaDeMenus() as $menu) | |
1003 | + { | |
1004 | + $menus[] = $urli3geo."/admin/xmlmenutemas.php?id_menu=".$menu["idmenu"]; | |
1005 | + } | |
1006 | + return $menus; | |
1007 | +} | |
1008 | +function ogc_imprimeAjuda(){ | |
1009 | + echo "<pre><b>Construtor de web services do I3Geo.</b><br><br>"; | |
1010 | + echo "Esse programa usa os arquivos mapfiles existentes em <br>"; | |
1011 | + echo "i3geo/temas para gerar web services OGC.<br>"; | |
1012 | + echo "Para escolher um tema, utilize:<br>"; | |
1013 | + echo "ogc.php?lista=temas - para listar os temas disponíveis<br>"; | |
1014 | + echo "Para usar esse web service voce pode usar o parametro &tema=,<br>"; | |
1015 | + echo "ou seja,http://[host]/i3geo/ogc.php?tema=[codigo do tema]<br>"; | |
1016 | + echo "no lugar do codigo pode ser especificado um arquivo mapfile qualquer. "; | |
1017 | + echo "Nesse caso, deve ser digitado o caminho completo no servidor<br><br>"; | |
1018 | + echo "Utilize o sistema de administracao do i3Geo para configurar quais os temas da pasta i3geo/temas podem ser utilizados.<br><br>"; | |
1019 | + echo "Utilize o parametro restauramapa para indicar o ID de um mapa salvo no banco <br>"; | |
1020 | + echo "de dados de administracao para utiliza-lo como um WMS"; | |
1021 | +} | |
1022 | +function ogc_imprimeListaDeTemas(){ | |
1023 | +} | |
1024 | +function ogc_imprimeListaDeTemasWfs(){ | |
1025 | +} | |
1026 | +function carregaCacheImagem($cachedir,$map,$tms){ | |
1027 | + global $dir_tmp; | |
1028 | + if($cachedir == ""){ | |
1029 | + $nome = $dir_tmp."/cache".$tms; | |
1030 | + } | |
1031 | + else{ | |
1032 | + $nome = $cachedir.$tms; | |
1033 | + } | |
1034 | + $nome = str_replace(".png","",$nome).".png"; | |
1035 | + if(file_exists($nome)){ | |
1036 | + ob_clean(); | |
1037 | + //header('Content-Length: '.filesize($nome)); | |
1038 | + header('Cache: '.$tms); | |
1039 | + header('Content-Type: image/png'); | |
1040 | + //header('Cache-Control: max-age=3600, must-revalidate'); | |
1041 | + //header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); | |
1042 | + //header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); | |
1043 | + //$etag = md5_file($nome); | |
1044 | + //header('Etag: '.$etag); | |
1045 | + readfile($nome); | |
1046 | + exit; | |
1047 | + } | |
1048 | +} | |
1049 | +function salvaCacheImagem($cachedir,$map,$tms){ | |
1050 | + global $img,$dir_tmp,$cortePixels; | |
1051 | + //por seguranca | |
1052 | + if($cachedir == ""){ | |
1053 | + $nome = $dir_tmp."/cache".$tms; | |
1054 | + } | |
1055 | + else{ | |
1056 | + $nome = $cachedir.$tms; | |
1057 | + } | |
1058 | + $nome = str_replace(".png","",$nome).".png"; | |
1059 | + if(!file_exists(dirname($nome))){ | |
1060 | + @mkdir(dirname($nome),0744,true); | |
1061 | + chmod(dirname($nome),0744); | |
1062 | + } | |
1063 | + $img->saveImage($nome); | |
1064 | + //tenta mais uma vez | |
1065 | + if(!file_exists($nome)){ | |
1066 | + $img->saveImage($nome); | |
1067 | + } | |
1068 | + // | |
1069 | + //corta a imagem gerada para voltar ao tamanho normal | |
1070 | + // | |
1071 | + if($cortePixels > 0){ | |
1072 | + $img = imagecreatefrompng($nome); | |
1073 | + $imgc = imagecreate(256,256); | |
1074 | + | |
1075 | + imagesavealpha($imgc, true); | |
1076 | + // Fill the image with transparent color | |
1077 | + $color = imagecolorallocatealpha($imgc,0x00,0x00,0x00,127); | |
1078 | + imagefill($imgc, 0, 0, $color); | |
1079 | + | |
1080 | + imagecopy($imgc, $img, 0 , 0 , $cortePixels , $cortePixels , 256, 256); | |
1081 | + imagepng($imgc,$nome); | |
1082 | + } | |
1083 | + chmod($nome,0744); | |
1084 | + //header('Content-Length: '.filesize($nome)); | |
1085 | + ob_clean(); | |
1086 | + header('Content-Type: image/png'); | |
1087 | + //header('Cache-Control: max-age=3600, must-revalidate'); | |
1088 | + //header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); | |
1089 | + //header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); | |
1090 | + readfile($nome); | |
1091 | + exit; | |
1092 | +} | |
1093 | +function texto2iso($texto){ | |
1094 | + if (function_exists("mb_convert_encoding")){ | |
1095 | + if (mb_detect_encoding($texto,"UTF-8",true)){ | |
1096 | + $texto = mb_convert_encoding($texto,"ISO-8859-1","UTF-8"); | |
1097 | + } | |
1098 | + } | |
1099 | + return $texto; | |
1100 | +} | |
1101 | +function nomeRand($n=10) | |
1102 | +{ | |
1103 | + $nomes = ""; | |
1104 | + $a = 'azertyuiopqsdfghjklmwxcvbnABCDEFGHIJKLMNOPQRSTUVWXYZ'; | |
1105 | + $max = 51; | |
1106 | + for($i=0; $i < $n; ++$i) | |
1107 | + { | |
1108 | + $nomes .= $a{mt_rand(0, $max)}; | |
1109 | + } | |
1110 | + return $nomes; | |
1111 | +} | |
1112 | +function renderNocacheTms(){ | |
1113 | + global $img,$i3georendermode,$dir_tmp,$cortePixels; | |
1114 | + if($i3georendermode == 1 && $cortePixels == 0){ | |
1115 | + ob_clean(); | |
1116 | + header('Content-Type: image/png'); | |
1117 | + $img->saveImage(); | |
1118 | + exit; | |
1119 | + } | |
1120 | + if($i3georendermode == 1 && $cortePixels > 0){ | |
1121 | + $i3georendermode = 0; | |
1122 | + } | |
1123 | + $nomer = $dir_tmp."/temp".nomeRand().".png"; | |
1124 | + $img->saveImage($nomer); | |
1125 | + // | |
1126 | + //corta a imagem gerada para voltar ao tamanho normal | |
1127 | + // | |
1128 | + if($cortePixels > 0){ | |
1129 | + $img = imagecreatefrompng($nomer); | |
1130 | + $imgc = imagecreate(256,256); | |
1131 | + imagecopy( $imgc, $img, 0 , 0 , $cortePixels , $cortePixels , 256, 256 ); | |
1132 | + imagepng($imgc,$nomer); | |
1133 | + } | |
1134 | + if($i3georendermode == 0 || !isset($i3georendermode)){ | |
1135 | + ob_clean(); | |
1136 | + //header('Content-Length: '.filesize($nomer)); | |
1137 | + header('Content-Type: image/png'); | |
1138 | + //header('Cache-Control: max-age=3600, must-revalidate'); | |
1139 | + //header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); | |
1140 | + //header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nomer)).' GMT', true, 200); | |
1141 | + readfile($nomer); | |
1142 | + exit; | |
1143 | + } | |
1144 | + if($i3georendermode == 2){ | |
1145 | + ob_clean(); | |
1146 | + //header('Cache-Control: public, max-age=22222222'); | |
1147 | + //header('Expires: ' . gmdate('D, d M Y H:i:s', time()+48*60*60) . ' GMT'); | |
1148 | + header("X-Sendfile: $nomer"); | |
1149 | + header("Content-type: image/png"); | |
1150 | + exit; | |
1151 | + } | |
1152 | +} | |
1153 | +function getfeatureinfoJson(){ | |
1154 | + global $req, $oMap; | |
1155 | + $req->setParameter("info_format","application/vnd.ogc.gml"); | |
1156 | + $oMap->owsdispatch($req); | |
1157 | + ms_iostripstdoutbuffercontentheaders(); | |
1158 | + ob_clean(); | |
1159 | + $r = ms_iogetstdoutbufferstring(); | |
1160 | + //$r = converteenc($r); | |
1161 | + $nome = $oMap->getlayer(0)->name; | |
1162 | + $xml = simplexml_load_string($r); | |
1163 | + | |
1164 | + $json = json_encode($xml); | |
1165 | + $r = json_decode($json,TRUE); | |
1166 | + $propriedades = $r[$nome."_layer"]; | |
1167 | + $propriedades = $propriedades[$nome."_feature"]; | |
1168 | + $propriedades = converteenc(json_encode($propriedades)); | |
1169 | + $propriedades = json_decode($propriedades); | |
1170 | + $n = array(); | |
1171 | + $n[] = array ( | |
1172 | + "type" => "FeatureCollection", | |
1173 | + "features" => array( | |
1174 | + array( | |
1175 | + "type"=>"Feature", | |
1176 | + "id" => "", | |
1177 | + "geometry" => array(), | |
1178 | + "properties" => array( | |
1179 | + $propriedades | |
1180 | + ), | |
1181 | + "geometry_name" => "" | |
1182 | + ) | |
1183 | + ) | |
1184 | + ); | |
1185 | + header("Content-type: application/json"); | |
1186 | + $json = json_encode($n[0]); | |
1187 | + //verifica a substituicao de alias | |
1188 | + $itens = $oMap->getlayer(0)->getmetadata("ITENS"); // itens | |
1189 | + $itensdesc = $oMap->getlayer(0)->getmetadata("ITENSDESC"); // descrição dos itens | |
1190 | + $itens = explode(",",$itens); | |
1191 | + $itensdesc = explode(",",converteenc($itensdesc)); | |
1192 | + $n = count($itens); | |
1193 | + for($i = 0; $i < $n; $i++){ | |
1194 | + $json = str_ireplace($itens[$i],$itensdesc[$i],$json); | |
1195 | + } | |
1196 | + echo $json; | |
1197 | +} | |
1198 | +function processaOutputformatMapfile(){ | |
1199 | + global $OUTPUTFORMAT, $oMap, $tema, $ows_geomtype; | |
1200 | + if(strtolower($OUTPUTFORMAT) == "kml"){ | |
1201 | + $l = $oMap->getlayer(0); | |
1202 | + $n = $l->name; | |
1203 | + $oMap->selectOutputFormat("kml"); | |
1204 | + $oMap->outputformat->setOption("STORAGE", "filesystem"); | |
1205 | + $oMap->outputformat->setOption("FILENAME", $tema.".kml"); | |
1206 | + $l->setmetadata("wfs_getfeature_formatlist","kml"); | |
1207 | + } | |
1208 | + if(strtolower($OUTPUTFORMAT) == "shape-zip"){ | |
1209 | + $l = $oMap->getlayer(0); | |
1210 | + $n = $l->name; | |
1211 | + $oMap->selectOutputFormat("shape-zip"); | |
1212 | + $oMap->outputformat->setOption("STORAGE", "filesystem"); | |
1213 | + $oMap->outputformat->setOption("FORM", "zip"); | |
1214 | + $oMap->outputformat->setOption("FILENAME", $tema."_shapefile.zip"); | |
1215 | + $l->setmetadata("wfs_getfeature_formatlist","shape-zip"); | |
1216 | + } | |
1217 | + if(strtolower($OUTPUTFORMAT) == "csv"){ | |
1218 | + $l = $oMap->getlayer(0); | |
1219 | + $n = $l->name."-csv"; | |
1220 | + $oMap->selectOutputFormat("csv"); | |
1221 | + $oMap->outputformat->setOption("STORAGE", "filesystem"); | |
1222 | + $oMap->outputformat->setOption("FILENAME", $tema.$ows_geomtype.".csv"); | |
1223 | + $oMap->outputformat->setOption("FORM", "simple"); | |
1224 | + if(isset($ows_geomtype) && $ows_geomtype != ""){ | |
1225 | + $oMap->outputformat->setOption("LCO:GEOMETRY", $ows_geomtype); | |
1226 | + } | |
1227 | + $l->setmetadata("wfs_getfeature_formatlist","csv"); | |
1228 | + } | |
1229 | + if(strtolower($OUTPUTFORMAT) == "geojson" || strtolower($OUTPUTFORMAT) == "json"){ | |
1230 | + $l = $oMap->getlayer(0); | |
1231 | + $oMap->selectOutputFormat("geojson"); | |
1232 | + $l->setmetadata("wfs_getfeature_formatlist","geojson"); | |
1233 | + } | |
1234 | +} | |
1235 | +function carregaCacheArquivo(){ | |
1236 | + global $dir_tmp, $tema, $OUTPUTFORMAT, $ows_geomtype; | |
1237 | + if(strtolower($OUTPUTFORMAT) == "shape-zip"){ | |
1238 | + $arq = $dir_tmp."/".$tema."_shapefile.zip"; | |
1239 | + if(file_exists($arq)){ | |
1240 | + header('Content-Disposition: attachment; filename='.$tema.'_shapefile.zip'); | |
1241 | + readfile($arq); | |
1242 | + exit; | |
1243 | + } | |
1244 | + } | |
1245 | + if(strtolower($OUTPUTFORMAT) == "csv"){ | |
1246 | + $arq = $dir_tmp."/".$tema.$ows_geomtype.".csv"; | |
1247 | + if(file_exists($arq)){ | |
1248 | + header('Content-Disposition: attachment; filename='.$tema.$ows_geomtype.'.csv'); | |
1249 | + header("Content-type: text/csv"); | |
1250 | + readfile($arq); | |
1251 | + exit; | |
1252 | + } | |
1253 | + } | |
1254 | + if(strtolower($OUTPUTFORMAT) == "kml"){ | |
1255 | + $arq = $dir_tmp."/".$tema.".kml"; | |
1256 | + if(file_exists($arq)){ | |
1257 | + header('Content-Disposition: attachment; filename='.$tema.'.kml'); | |
1258 | + header("Content-type: application/vnd.google-earth.kml+xml"); | |
1259 | + readfile($arq); | |
1260 | + exit; | |
1261 | + } | |
1262 | + } | |
1263 | + if(strtolower($OUTPUTFORMAT) == "kmz"){ | |
1264 | + $arq = $dir_tmp."/".$tema.".kmz"; | |
1265 | + if(file_exists($arq)){ | |
1266 | + header('Content-Disposition: attachment; filename='.$tema.'.kmz'); | |
1267 | + header("Content-type: application/vnd.google-earth.kmz"); | |
1268 | + readfile($arq); | |
1269 | + exit; | |
1270 | + } | |
1271 | + } | |
1272 | + if(strtolower($OUTPUTFORMAT) == "geojson" || strtolower($OUTPUTFORMAT) == "json"){ | |
1273 | + $arq = $dir_tmp."/".$tema.".json"; | |
1274 | + if(file_exists($arq)){ | |
1275 | + header("Content-type: application/json; subtype=geojson"); | |
1276 | + readfile($arq); | |
1277 | + exit; | |
1278 | + } | |
1279 | + } | |
1280 | +} | |
1281 | +function converteenc($texto){ | |
1282 | + if (!mb_detect_encoding($texto,"UTF-8",true)){ | |
1283 | + $texto = mb_convert_encoding($texto,"UTF-8","ISO-8859-1"); | |
1284 | + } | |
1285 | + return $texto; | |
1286 | +} | |
1287 | +function processaPluginI3geo(){ | |
1288 | + global $oMap, $locaplic; | |
1289 | + $numlayers = $oMap->numlayers; | |
1290 | + for ($i=0;$i < $numlayers;$i++){ | |
1291 | + $l = $oMap->getlayer($i); | |
1292 | + $c = $l->getmetadata("PLUGINI3GEO"); | |
1293 | + if($c != ""){ | |
1294 | + $cs = json_decode($c,true); | |
1295 | + if($cs["plugin"] == "parametrossql"){ | |
1296 | + $data = $l->data; | |
1297 | + $cs = $cs["parametros"]; | |
1298 | + $chaves = array(); | |
1299 | + foreach($cs as $c){ | |
1300 | + $chaves[] = $c["chave"]; | |
1301 | + } | |
1302 | + $chaves = implode(",",$chaves); | |
1303 | + $filtro = $l->getFilterString(); | |
1304 | + $chaves = str_ireplace(array(" and ", " or ", "select","from","where","update","delete","insert","--"),"",$chaves); | |
1305 | + $chaves = explode(",",$chaves); | |
1306 | + $n = count($chaves); | |
1307 | + //a variavel $plugin vem da URL e contem os valores | |
1308 | + //que devem ser substituidos | |
1309 | + //se $plugin for vazio, usa o primeiro valor definido na configuracao do plugin | |
1310 | + //A ordem dos valores deve ser exatamente a ordem das chaves | |
1311 | + if(empty($plugin)){ | |
1312 | + $plugin = array(); | |
1313 | + foreach($cs as $c){ | |
1314 | + if($c["chave"] != ""){ | |
1315 | + //valores definidos no plugin como uma string | |
1316 | + if($c["valores"] != ""){ | |
1317 | + $temp = explode(",",$c["valores"]); | |
1318 | + $plugin[] = $temp[0]; | |
1319 | + } | |
1320 | + elseif ($c["prog"] != ""){ | |
1321 | + $plugin[] = execProg($c["prog"]); | |
1322 | + } | |
1323 | + } | |
1324 | + } | |
1325 | + $plugin = implode(",",$plugin); | |
1326 | + } | |
1327 | + $l->setmetadata("TEMA",$l->getmetadata("TEMA")." - ".$plugin); | |
1328 | + $valores = str_ireplace(array(" and ", " or ", "select","from","where","update","delete","insert","--"),"",$plugin); | |
1329 | + $valores = explode(",",strip_tags($valores)); | |
1330 | + for($i = 0; $i < $n; $i++){ | |
1331 | + if($chaves[$i] != ""){ | |
1332 | + $v = (int) $valores[$i]; | |
1333 | + $data = str_replace($chaves[$i],$v,$data); | |
1334 | + if($filtro != ""){ | |
1335 | + $filtro = str_replace($chaves[$i],$v,$filtro); | |
1336 | + } | |
1337 | + } | |
1338 | + } | |
1339 | + if($filtro != ""){ | |
1340 | + $l->setfilter($filtro); | |
1341 | + } | |
1342 | + $l->set("data",$data); | |
1343 | + } | |
1344 | + } | |
1345 | + } | |
1346 | +} | |
1347 | +function processaEscala(){ | |
1348 | + global $oMap, $locaplic, $req; | |
1349 | + $eb = $oMap->scalebar; | |
1350 | + $eb->set("status",MS_EMBED); | |
1351 | + if(!empty($_GET["escala_width"])){ | |
1352 | + $eb->set("width",$_GET["escala_width"]); | |
1353 | + } | |
1354 | + if(!empty($_GET["escala_height"])){ | |
1355 | + $eb->set("height",$_GET["escala_height"]); | |
1356 | + } | |
1357 | + //0 ou 1 | |
1358 | + if(!empty($_GET["escala_style"])){ | |
1359 | + $eb->set("style",$_GET["escala_style"]); | |
1360 | + } | |
1361 | + if(!empty($_GET["escala_intervals"])){ | |
1362 | + $eb->set("intervals",$_GET["escala_intervals"]); | |
1363 | + } | |
1364 | + //MS_INCHES, MS_FEET, MS_MILES, MS_METERS, MS_KILOMETERS, MS_DD, MS_PIXELS, MS_NAUTICALMILES | |
1365 | + if(!empty($_GET["escala_units"])){ | |
1366 | + $eb->set("units",$_GET["escala_units"]); | |
1367 | + } | |
1368 | + if(!empty($_GET["escala_color"])){ | |
1369 | + $_GET["escala_color"] = str_replace(","," ",$_GET["escala_color"]); | |
1370 | + $ncor = explode(" ",$_GET["escala_color"]); | |
1371 | + $cor = $eb->color; | |
1372 | + $cor->setRGB($ncor[0],$ncor[1],$ncor[2]); | |
1373 | + } | |
1374 | + if(!empty($_GET["escala_backgroundcolor"])){ | |
1375 | + $_GET["escala_backgroundcolor"] = str_replace(","," ",$_GET["escala_backgroundcolor"]); | |
1376 | + $ncor = explode(" ",$_GET["escala_backgroundcolor"]); | |
1377 | + $cor = $eb->backgroundcolor; | |
1378 | + $cor->setRGB($ncor[0],$ncor[1],$ncor[2]); | |
1379 | + } | |
1380 | + if(!empty($_GET["escala_outlinecolor"])){ | |
1381 | + $_GET["escala_outlinecolor"] = str_replace(","," ",$_GET["escala_outlinecolor"]); | |
1382 | + $ncor = explode(" ",$_GET["escala_outlinecolor"]); | |
1383 | + $cor = $eb->outlinecolor; | |
1384 | + $cor->setRGB($ncor[0],$ncor[1],$ncor[2]); | |
1385 | + } | |
1386 | + //ul|uc|ur|ll|lc|lr | |
1387 | + if(!empty($_GET["escala_position"])){ | |
1388 | + if($_GET["escala_position"] == "ul") $eb->set("position",MS_UL); | |
1389 | + if($_GET["escala_position"] == "uc") $eb->set("position",MS_UC); | |
1390 | + if($_GET["escala_position"] == "ur") $eb->set("position",MS_UR); | |
1391 | + if($_GET["escala_position"] == "ll") $eb->set("position",MS_LL); | |
1392 | + if($_GET["escala_position"] == "lc") $eb->set("position",MS_LC); | |
1393 | + if($_GET["escala_position"] == "lr") $eb->set("position",MS_LR); | |
1394 | + } | |
1395 | + //fonte e size so com truetype | |
1396 | + if (!empty($_GET["escala_font"])){ | |
1397 | + $label = $eb->label; | |
1398 | + $label->updatefromstring("LABEL TYPE TRUETYPE END"); | |
1399 | + $label->set("font",$_GET["escala_font"]); | |
1400 | + } | |
1401 | + if (!empty($_GET["escala_size"])){ | |
1402 | + $label = $eb->label; | |
1403 | + $label->updatefromstring("LABEL TYPE TRUETYPE END"); | |
1404 | + if(empty($_GET["escala_size"])){ | |
1405 | + $label->set("font","arial"); | |
1406 | + } | |
1407 | + $label->set("size",$_GET["escala_size"]); | |
1408 | + } | |
1409 | +} | |
1410 | +function processaLegenda(){ | |
1411 | + global $oMap, $locaplic, $req; | |
1412 | + $leg = $oMap->legend; | |
1413 | + $leg->set("status",MS_EMBED); | |
1414 | + if(!empty($_GET["legenda_imagecolor"])){ | |
1415 | + $_GET["legenda_imagecolor"] = str_replace(","," ",$_GET["legenda_imagecolor"]); | |
1416 | + $ncor = explode(" ",$_GET["legenda_imagecolor"]); | |
1417 | + $cor = $leg->imagecolor; | |
1418 | + $cor->setRGB($ncor[0],$ncor[1],$ncor[2]); | |
1419 | + $req->setParameter("TRANSPARENT",0); | |
1420 | + } | |
1421 | + if(!empty($_GET["legenda_keysizex"])){ | |
1422 | + $leg->set("keysizex",$_GET["legenda_keysizex"]); | |
1423 | + } | |
1424 | + if(!empty($_GET["legenda_keysizey"])){ | |
1425 | + $leg->set("keysizey",$_GET["legenda_keysizey"]); | |
1426 | + } | |
1427 | + if(!empty($_GET["legenda_keyspacingx"])){ | |
1428 | + $leg->set("keyspacingx",$_GET["legenda_keyspacingx"]); | |
1429 | + } | |
1430 | + //ul|uc|ur|ll|lc|lr | |
1431 | + if(!empty($_GET["legenda_position"])){ | |
1432 | + if($_GET["legenda_position"] == "ul") $leg->set("position",MS_UL); | |
1433 | + if($_GET["legenda_position"] == "uc") $leg->set("position",MS_UC); | |
1434 | + if($_GET["legenda_position"] == "ur") $leg->set("position",MS_UR); | |
1435 | + if($_GET["legenda_position"] == "ll") $leg->set("position",MS_LL); | |
1436 | + if($_GET["legenda_position"] == "lc") $leg->set("position",MS_LC); | |
1437 | + if($_GET["legenda_position"] == "lr") $leg->set("position",MS_LR); | |
1438 | + } | |
1439 | + if(!empty($_GET["legenda_keyspacingy"])){ | |
1440 | + $leg->set("keyspacingy",$_GET["legenda_keyspacingy"]); | |
1441 | + } | |
1442 | + if(!empty($_GET["legenda_outlinecolor"])){ | |
1443 | + $_GET["legenda_outlinecolor"] = str_replace(","," ",$_GET["legenda_outlinecolor"]); | |
1444 | + $ncor = explode(" ",$_GET["legenda_outlinecolor"]); | |
1445 | + $cor = $leg->outlinecolor; | |
1446 | + $cor->setRGB($ncor[0],$ncor[1],$ncor[2]); | |
1447 | + } | |
1448 | + //fonte e size so com truetype | |
1449 | + if (!empty($_GET["legenda_font"])){ | |
1450 | + $label = $leg->label; | |
1451 | + $label->updatefromstring("LABEL TYPE TRUETYPE END"); | |
1452 | + $label->set("font",$_GET["legenda_font"]); | |
1453 | + } | |
1454 | + if (!empty($_GET["legenda_size"])){ | |
1455 | + $label = $leg->label; | |
1456 | + $label->updatefromstring("LABEL TYPE TRUETYPE END"); | |
1457 | + if(empty($_GET["legenda_font"])){ | |
1458 | + $label->set("font","arial"); | |
1459 | + } | |
1460 | + $label->set("size",$_GET["legenda_size"]); | |
1461 | + } | |
1462 | +} | |
1463 | +function processaGrade(){ | |
1464 | + global $oMap; | |
1465 | + //veja o mapfile gridg.map em i3geo/temas | |
1466 | + $layer = $oMap->getlayerbyname("gridg"); | |
1467 | + if($layer != ""){ | |
1468 | + if(!empty($_GET["grade_labelformat"])){ | |
1469 | + $layer->grid->set("labelformat", $_GET["grade_labelformat"]); | |
1470 | + } | |
1471 | + if(!empty($_GET["grade_interval"])){ | |
1472 | + $layer->grid->set("mininterval", $_GET["grade_interval"]); | |
1473 | + $layer->grid->set("maxinterval", $_GET["grade_interval"]); | |
1474 | + } | |
1475 | + $classe = $layer->getclass(0); | |
1476 | + $estilo = $classe->getstyle(0); | |
1477 | + $label = $classe->getLabel(0); | |
1478 | + if(!empty($_GET["grade_position"])){ | |
1479 | + //("MS_AUTO"=>MS_AUTO,"MS_UL"=>MS_UL,"MS_LR"=>MS_LR,"MS_UR"=>MS_UR,"MS_LL"=>MS_LL, | |
1480 | + //"MS_CR"=>MS_CR,"MS_CL"=>MS_CL,"MS_UC"=>MS_UC,"MS_LC"=>MS_LC,"MS_CC"=>MS_CC); | |
1481 | + if($_GET["grade_position"] == "auto") $label->set("position",MS_AUTO); | |
1482 | + if($_GET["grade_position"] == "cc") $label->set("position",MS_CC); | |
1483 | + if($_GET["grade_position"] == "ul") $label->set("position",MS_UL); | |
1484 | + if($_GET["grade_position"] == "uc") $label->set("position",MS_UC); | |
1485 | + if($_GET["grade_position"] == "ur") $label->set("position",MS_UR); | |
1486 | + if($_GET["grade_position"] == "ll") $label->set("position",MS_LL); | |
1487 | + if($_GET["grade_position"] == "lc") $label->set("position",MS_LC); | |
1488 | + if($_GET["grade_position"] == "lr") $label->set("position",MS_LR); | |
1489 | + } | |
1490 | + //fonte e size so com truetype | |
1491 | + if (!empty($_GET["grade_font"])){ | |
1492 | + $label->updatefromstring("LABEL TYPE TRUETYPE END"); | |
1493 | + $label->set("font",$_GET["grade_font"]); | |
1494 | + } | |
1495 | + if (!empty($_GET["grade_size"])){ | |
1496 | + $label->updatefromstring("LABEL TYPE TRUETYPE END"); | |
1497 | + if(empty($_GET["grade_font"])){ | |
1498 | + $label->set("font","arial"); | |
1499 | + } | |
1500 | + $label->set("size",$_GET["grade_size"]); | |
1501 | + } | |
1502 | + if(!empty($_GET["grade_color"])){ | |
1503 | + $_GET["grade_color"] = str_replace(","," ",$_GET["grade_color"]); | |
1504 | + $ncor = explode(" ",$_GET["grade_color"]); | |
1505 | + $cor = $estilo->color; | |
1506 | + $cor->setRGB($ncor[0],$ncor[1],$ncor[2]); | |
1507 | + } | |
1508 | + } | |
1509 | + else { | |
1510 | + echo "Layer gridg nao encontrado"; exit; | |
1511 | + } | |
1512 | +} | |
1513 | +//utilizada para obter os dados default quando se utiliza o plugin parametrossql | |
1514 | +function execProg($prog){ | |
1515 | + //$retorno variavel deve ser retornada pelo programa $prog | |
1516 | + //veja como exemplo i3geo/aplicmap/daods/listaano.php | |
1517 | + global $urli3geo; | |
1518 | + $handle = curl_init(); | |
1519 | + curl_setopt( $handle, CURLOPT_URL, $urli3geo."/".$prog); | |
1520 | + curl_setopt( $handle, CURLOPT_HEADER, false ); | |
1521 | + curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); | |
1522 | + $str = curl_exec( $handle ); | |
1523 | + curl_close( $handle ); | |
1524 | + $retorno = json_decode($str,true); | |
1525 | + return $retorno[0]["v"]; | |
1526 | +} | |
1527 | +?> | ... | ... |
ferramentas/convertews/template_mst.html
1 | -<div style='margin-left: 5px;'> | |
2 | - <p class='paragrafo'> | |
3 | - {{{ajudaDesktop}}} <a href='http://www.gvsig.gva.es/' target='blank'> | |
4 | - gvSig</a> | |
5 | - <p class='paragrafo'>{{{ajudaWms}}} | |
6 | - <p class='paragrafo'> | |
7 | - {{{ajudaWmc}}}<a href='\{{{nomewmc}}}\' target='_blank'>{{{wmc}}}</a> | |
8 | - <p class='paragrafo'> | |
1 | +<div class='container-fluid'> | |
2 | + <h5>{{{ajudaDesktop}}}</h5> | |
3 | + <h5>{{{ajudaWms}}}</h5> | |
4 | + <h5>{{{ajudaWmc}}}</h5> | |
5 | + <a href='{{{nomewmc}}}' target='_blank'>{{{wmc}}}</a> | |
6 | + <h5> | |
9 | 7 | <b>WMS: </b> |
10 | - </p> | |
11 | - <p class='paragrafo'> | |
12 | - <textarea cols='55' rows='3' style='cursor: pointer' | |
13 | - onclick='javascript:this.select()'> | |
14 | - {{{nomewms}}} </textarea> | |
15 | - </p> | |
16 | - <p class='paragrafo'> | |
17 | - <a | |
18 | - href='{{{nomewms}}}&request=getcapabilities&version=1.1.0&service=wms' | |
19 | - target=blank>{{{testa}}}</a><br> | |
8 | + </h5> | |
9 | + <a href='{{{nomewms}}}' target='_blank'>{{{nomewms}}}</a> | |
10 | + <br> | |
11 | + <a href='{{{nomewms}}}&request=getcapabilities&version=1.1.0&service=wms' target=blank>{{{testa}}} GetCapabilities</a> | |
12 | + <br> | |
13 | + <a href='{{{nomewms}}}&request=getmap&version=1.1.0&service=wms&WIDTH={{{w}}}&HEIGHT={{{h}}}&BBOX={{{bbox}}}' target=blank>{{{testa}}} getMap</a> | |
14 | + | |
20 | 15 | </div> |
21 | 16 | \ No newline at end of file | ... | ... |
js/listaDeFerramentas.js
... | ... | @@ -18,10 +18,6 @@ i3GEO.listaDeFerramentas = { |
18 | 18 | descricao: $trad("descArquivos"), |
19 | 19 | id : "arquivos" |
20 | 20 | }, |
21 | - //{ | |
22 | - // nome : $trad("d32"), | |
23 | - // id : "interface" | |
24 | - //}, | |
25 | 21 | { |
26 | 22 | nome : $trad("operacoesMapaTema"), |
27 | 23 | descricao: $trad("descOperacoesMapaTema"), | ... | ... |
js/mapa.js
... | ... | @@ -733,11 +733,6 @@ i3GEO.mapa = |
733 | 733 | * Abre a janela de dialogo da ferramenta convertews |
734 | 734 | */ |
735 | 735 | convertews : function() { |
736 | - if (i3GEO.parametros.mapfile === "") { | |
737 | - i3GEO.janela | |
738 | - .tempoMsg("Essa opcao nao pode ser ativada. Consulte o administrador do sistema. Mapfile nao esta exposto."); | |
739 | - return; | |
740 | - } | |
741 | 736 | i3GEO.util.dialogoFerramenta( |
742 | 737 | "i3GEO.mapa.dialogo.convertews()", |
743 | 738 | "convertews", |
... | ... | @@ -751,10 +746,6 @@ i3GEO.mapa = |
751 | 746 | * Abre a janela de dialogo da ferramenta convertemapakml |
752 | 747 | */ |
753 | 748 | convertekml : function() { |
754 | - if (i3GEO.parametros.mapfile === "") { | |
755 | - alert("Essa opcao nao pode ser ativada. Consulte o administrador do sistema. Mapfile nao esta exposto."); | |
756 | - return; | |
757 | - } | |
758 | 749 | i3GEO.util.dialogoFerramenta( |
759 | 750 | "i3GEO.mapa.dialogo.convertekml()", |
760 | 751 | "convertemapakml", | ... | ... |
pacotes/yui290/build/container/container_compacto.js
100644 → 100755
pacotes/yui290/build/container/container_core_compacto.js
100644 → 100755
pacotes/yui290/build/utilities/utilities_compacto.js
100644 → 100755