Commit 69e9763f777943b75011cb5c2e3a67b1569c8af7
1 parent
37bc2a44
Exists in
master
and in
7 other branches
--no commit message
Showing
1 changed file
with
176 additions
and
167 deletions
Show diff stats
ogc.php
... | ... | @@ -89,39 +89,72 @@ if(isset($_GET["outputFormat"]) && $_GET["outputFormat"] != ""){ |
89 | 89 | if(isset($_GET["outputformat"]) && $_GET["outputformat"] != ""){ |
90 | 90 | $_GET["OUTPUTFORMAT"] = $_GET["outputformat"]; |
91 | 91 | } |
92 | -if(strtolower($OUTPUTFORMAT) == "geojson"){ | |
93 | - $OUTPUTFORMAT = "json"; | |
94 | -} | |
95 | 92 | $cache = true; |
96 | 93 | require_once(dirname(__FILE__)."/classesphp/carrega_ext.php"); |
97 | 94 | include(dirname(__FILE__)."/ms_configura.php"); |
98 | 95 | include(dirname(__FILE__)."/classesphp/pega_variaveis.php"); |
99 | 96 | include(dirname(__FILE__)."/classesphp/funcoes_gerais.php"); |
97 | +// | |
98 | +//imprime na tela a ajuda | |
99 | +// | |
100 | +if(isset($ajuda)){ | |
101 | + ogc_imprimeAjuda(); | |
102 | + exit; | |
103 | +} | |
104 | +// | |
105 | +//pega os enderecos para compor a url de chamada do gerador de web services | |
106 | +// | |
107 | +$protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); | |
108 | +$protocolo = $protocolo[0]; | |
109 | +$protocolo1 = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME']; | |
110 | +$protocolo = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; | |
111 | +$urli3geo = str_replace("/ogc.php","",$protocolo.$_SERVER["PHP_SELF"]); | |
112 | +// | |
113 | +//imprime na tela a lista de temas disponiveis | |
114 | +// | |
115 | +if(isset($lista) && $lista == "temas"){ | |
116 | + include_once(dirname(__FILE__)."/classesphp/classe_menutemas.php"); | |
117 | + ogc_imprimeListaDeTemas(); | |
118 | + exit; | |
119 | +} | |
120 | +if(isset($lista) && $lista == "temaswfs"){ | |
121 | + include_once(dirname(__FILE__)."/classesphp/classe_menutemas.php"); | |
122 | + ogc_imprimeListaDeTemasWfs(); | |
123 | + exit; | |
124 | +} | |
125 | +// | |
100 | 126 | //para o caso da requisicao kml |
127 | +// | |
101 | 128 | if(strtolower($OUTPUTFORMAT) == "kml" || strtolower($OUTPUTFORMAT) == "kmz"){ |
102 | 129 | //http://localhost/i3geo/pacotes/kmlmapserver/kmlservice.php?request=kmz&map=_lbiomashp&typename=_lbiomashp |
103 | - if(!isset($tema) && isset($layers)){ | |
104 | - $tema = $layers; | |
105 | - } | |
106 | - $urln = "pacotes/kmlmapserver/kmlservice.php?request=kmz&map=".$tema."&typename=".$tema; | |
107 | - header("Location:".$urln); | |
130 | + if(!isset($tema) && isset($layers)){ | |
131 | + $tema = $layers; | |
132 | + } | |
133 | + $urln = "pacotes/kmlmapserver/kmlservice.php?request=kmz&map=".$tema."&typename=".$tema; | |
134 | + header("Location:".$urln); | |
108 | 135 | exit; |
109 | 136 | } |
110 | - | |
111 | -//define um nome para o mapfile caso a origem seja o sistema de metadados estatisticos | |
137 | +// | |
138 | +//trata geojson da mesma forma que json | |
139 | +// | |
140 | +if(strtolower($OUTPUTFORMAT) == "geojson"){ | |
141 | + $OUTPUTFORMAT = "json"; | |
142 | +} | |
143 | +// | |
144 | +//define um nome para o mapfile caso a origem seja o sistema de metadados estatisticos | |
145 | +// | |
112 | 146 | if(isset($id_medida_variavel)){ |
113 | 147 | $tema = "ogcmetaestat".$id_medida_variavel; |
114 | 148 | $_GET["layers"] = $tema; |
115 | 149 | $_GET["LAYERS"] = $tema; |
116 | 150 | } |
117 | -if(!isset($temas) && isset($tema)){ | |
118 | - $temas = $tema; | |
151 | +if(!isset($tema) && isset($temas)){ | |
152 | + $tema = $temas; | |
119 | 153 | } |
120 | 154 | if(isset($typeName)){ |
121 | 155 | $typename = $typeName; |
122 | 156 | } |
123 | -if(!isset($temas) && isset($typename)){ | |
124 | - $temas = $typename; | |
157 | +if(!isset($tema) && isset($typename)){ | |
125 | 158 | $tema = $typename; |
126 | 159 | } |
127 | 160 | // |
... | ... | @@ -144,8 +177,8 @@ if(!empty($restauramapa)){ |
144 | 177 | } |
145 | 178 | $m->save($xbase); |
146 | 179 | //$fundo = $xbase; |
147 | - $temas = $xbase; | |
148 | - $_GET["tema"] = $temas; | |
180 | + $tema = $xbase; | |
181 | + $_GET["tema"] = $xbase; | |
149 | 182 | $_GET["layers"] = ""; |
150 | 183 | $l = $m->getlayer(0); |
151 | 184 | $_GET["LAYERS"] = $l->name; |
... | ... | @@ -154,11 +187,10 @@ if(!empty($restauramapa)){ |
154 | 187 | //para operar como o Geoserver |
155 | 188 | // |
156 | 189 | if(isset($format) && strtolower($format) == "application/openlayers"){ |
157 | - //var_dump($_SERVER);exit; | |
158 | 190 | if(!isset($layers)){ |
159 | - $layers = $temas; | |
191 | + $layers = $tema; | |
160 | 192 | } |
161 | - $urln = dirname($_SERVER["PHP_SELF"])."/mashups/openlayers.php?temas=".$layers."&layers=".$layers."&mapext=".$bbox."&botoes=pan,zoombox,zoomtot,identifica"; | |
193 | + $urln = diogc_imprimeAjudarname($_SERVER["PHP_SELF"])."/mashups/openlayers.php?temas=".$layers."&layers=".$layers."&mapext=".$bbox."&botoes=pan,zoombox,zoomtot,identifica"; | |
162 | 194 | //echo $urln;exit; |
163 | 195 | if(!headers_sent()){ |
164 | 196 | header("Location:".$urln); |
... | ... | @@ -168,35 +200,6 @@ if(isset($format) && strtolower($format) == "application/openlayers"){ |
168 | 200 | } |
169 | 201 | } |
170 | 202 | // |
171 | -//pega os endereços para compor a url de chamada do gerador de web services | |
172 | -//ogc.php | |
173 | -// | |
174 | -$protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); | |
175 | -$protocolo = $protocolo[0]; | |
176 | -$protocolo1 = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME']; | |
177 | -$protocolo = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; | |
178 | -$urli3geo = str_replace("/ogc.php","",$protocolo.$_SERVER["PHP_SELF"]); | |
179 | -// | |
180 | -//imprime na tela a ajuda | |
181 | -// | |
182 | -if(isset($ajuda)){ | |
183 | - ogc_imprimeAjuda(); | |
184 | - exit; | |
185 | -} | |
186 | -// | |
187 | -//imprime na tela a lista de temas disponíveis | |
188 | -// | |
189 | -if(isset($lista) && $lista == "temas"){ | |
190 | - include_once(dirname(__FILE__)."/classesphp/classe_menutemas.php"); | |
191 | - ogc_imprimeListaDeTemas(); | |
192 | - exit; | |
193 | -} | |
194 | -if(isset($lista) && $lista == "temaswfs"){ | |
195 | - include_once(dirname(__FILE__)."/classesphp/classe_menutemas.php"); | |
196 | - ogc_imprimeListaDeTemasWfs(); | |
197 | - exit; | |
198 | -} | |
199 | -// | |
200 | 203 | //cria o web service |
201 | 204 | // |
202 | 205 | error_reporting(0); |
... | ... | @@ -257,7 +260,9 @@ if(!isset($tema)){ |
257 | 260 | } |
258 | 261 | $tipo = "intervalo"; |
259 | 262 | } |
263 | +// | |
260 | 264 | //nome do mapfile que ficara em cache |
265 | +// | |
261 | 266 | $agora = intval(time() / 1000); |
262 | 267 | //acrescenta ao nome a indicacao do tipo de TMS |
263 | 268 | if(isset($_GET["tms"])){ |
... | ... | @@ -266,7 +271,6 @@ if(isset($_GET["tms"])){ |
266 | 271 | if(isset($_GET["Z"]) && isset($_GET["X"])){ |
267 | 272 | $agora .= "google"; |
268 | 273 | } |
269 | - | |
270 | 274 | // |
271 | 275 | //se o outputformat for definido, evita o cahce de arquivo |
272 | 276 | //o mesmo se existir filtro para o layer |
... | ... | @@ -473,7 +477,7 @@ else{ |
473 | 477 | $oMap = $gm->addLayers($oMap,$gv,$dataView["layerNames"]); |
474 | 478 | } |
475 | 479 | $numlayers = $oMap->numlayers; |
476 | - $layers = array(); | |
480 | + $lys = array(); | |
477 | 481 | //$layers[] = "default"; |
478 | 482 | for ($i=0;$i < $numlayers;$i++){ |
479 | 483 | $l = $oMap->getlayer($i); |
... | ... | @@ -484,7 +488,7 @@ else{ |
484 | 488 | $l->setmetadata("ows_srs",$listaepsg); |
485 | 489 | $l->setmetadata("ows_title",$l->getmetadata("TEMA")); |
486 | 490 | $l->set("status",MS_OFF); |
487 | - $layers[] = $l->name; | |
491 | + $lys[] = $l->name; | |
488 | 492 | if(file_exists($locaplic."/temas/miniaturas/".$tx.".map.mini.png")){ |
489 | 493 | $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$tx.".map.mini.png"; |
490 | 494 | $l->setmetadata("wms_attribution_logourl_format","image/png"); |
... | ... | @@ -511,9 +515,8 @@ else{ |
511 | 515 | $cortePixels = $l->getmetadata("cortepixels"); |
512 | 516 | } |
513 | 517 | } |
514 | - $req->setParameter("LAYERS", implode(",",$layers)); | |
518 | + $req->setParameter("LAYERS", implode(",",$lys)); | |
515 | 519 | $req->setParameter("STYLES", ""); |
516 | - //r_dump($req);exit; | |
517 | 520 | } |
518 | 521 | } |
519 | 522 | } |
... | ... | @@ -533,10 +536,10 @@ else{ |
533 | 536 | if(strtolower($grupo["ogc"]) == "sim"){ |
534 | 537 | foreach($grupo["subgrupos"] as $sgrupo){ |
535 | 538 | if(strtolower($sgrupo["ogc"]) == "sim"){ |
536 | - $temas = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
537 | - foreach($temas as $tema){ | |
538 | - if(strtolower($tema["ogc"]) == "sim"){ | |
539 | - $codigosTema[] = array("tema"=>$tema["tid"],"fonte"=>$tema["link"]); | |
539 | + $lts = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
540 | + foreach($lts as $t){ | |
541 | + if(strtolower($t["ogc"]) == "sim"){ | |
542 | + $codigosTema[] = array("tema"=>$t["tid"],"fonte"=>$t["link"]); | |
540 | 543 | } |
541 | 544 | } |
542 | 545 | } |
... | ... | @@ -544,10 +547,6 @@ else{ |
544 | 547 | } |
545 | 548 | } |
546 | 549 | } |
547 | - //echo "<pre>"; | |
548 | - //var_dump($codigosTema); | |
549 | - //exit; | |
550 | - | |
551 | 550 | foreach($codigosTema as $c){ |
552 | 551 | $codigoTema = $c["tema"]; |
553 | 552 | if(file_exists($locaplic."/temas/".$codigoTema.".map")){ |
... | ... | @@ -611,6 +610,13 @@ else{ |
611 | 610 | } |
612 | 611 | } |
613 | 612 | } |
613 | + // | |
614 | + //a imagem do mapa recebera a legenda | |
615 | + // | |
616 | + if((isset($legenda)) && (strtolower($legenda) == "sim")){ | |
617 | + $leg = $oMap->legend; | |
618 | + $leg->set("status",MS_EMBED); | |
619 | + } | |
614 | 620 | $oMap->setSymbolSet($locaplic."/symbols/".basename($oMap->symbolsetfilename)); |
615 | 621 | $oMap->setFontSet($locaplic."/symbols/".basename($oMap->fontsetfilename)); |
616 | 622 | $oMap->save($nomeMapfileTmp); |
... | ... | @@ -788,10 +794,10 @@ if(strtolower($req->getValueByName("REQUEST")) == "getlegendgraphic"){ |
788 | 794 | if (function_exists("mb_convert_encoding")){ |
789 | 795 | $leg = mb_convert_encoding($leg,"UTF-8","ISO-8859-1"); |
790 | 796 | } |
791 | - echo $leg;exit; | |
797 | + echo $leg; | |
798 | + exit; | |
792 | 799 | } |
793 | - } | |
794 | - | |
800 | + } | |
795 | 801 | } |
796 | 802 | if(strtolower($req->getValueByName("REQUEST")) == "getfeature"){ |
797 | 803 | $l = $oMap->getlayer(0); |
... | ... | @@ -814,54 +820,16 @@ if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo"){ |
814 | 820 | $_GET["SRS"] = "EPSG:3857"; |
815 | 821 | } |
816 | 822 | } |
817 | -// | |
818 | -//altera os caminhos das imagens | |
819 | -// | |
820 | -if((isset($legenda)) && (strtolower($legenda) == "sim")){ | |
821 | - $leg = $oMap->legend; | |
822 | - $leg->set("status",MS_EMBED); | |
823 | -} | |
824 | 823 | // |
825 | 824 | //altera o outputformat |
826 | 825 | // |
827 | 826 | if(isset($OUTPUTFORMAT)){ |
828 | - if(strtolower($OUTPUTFORMAT) == "shape-zip"){ | |
829 | - $l = $oMap->getlayer(0); | |
830 | - $n = $l->name; | |
831 | - $oMap->selectOutputFormat("shape-zip"); | |
832 | - $oMap->outputformat->setOption("STORAGE", "memory"); | |
833 | - $oMap->outputformat->setOption("FORM", "zip"); | |
834 | - $oMap->outputformat->setOption("FILENAME", $n.".zip"); | |
835 | - $l->setmetadata("wfs_getfeature_formatlist","shape-zip"); | |
836 | - $oMap->save($nomeMapfileTmp); | |
837 | - if(strtolower($request) != "getcapabilities"){ | |
838 | - header('Content-Disposition: attachment; filename='.$n.'.zip'); | |
839 | - } | |
840 | - } | |
841 | - if(strtolower($OUTPUTFORMAT) == "csv"){ | |
842 | - $l = $oMap->getlayer(0); | |
843 | - $n = $l->name."-csv"; | |
844 | - $oMap->selectOutputFormat("csv"); | |
845 | - $oMap->outputformat->setOption("STORAGE", "memory"); | |
846 | - $oMap->outputformat->setOption("FILENAME", $n.".zip"); | |
847 | - $oMap->outputformat->setOption("FORM", "zip"); | |
848 | - $l->setmetadata("wfs_getfeature_formatlist","csv"); | |
849 | - $oMap->save($nomeMapfileTmp); | |
850 | - if(strtolower($request) != "getcapabilities"){ | |
851 | - header('Content-Disposition: attachment; filename='.$n.'.zip'); | |
852 | - } | |
853 | - } | |
854 | - if(strtolower($OUTPUTFORMAT) == "geojson"){ | |
855 | - $l = $oMap->getlayer(0); | |
856 | - $oMap->selectOutputFormat("geojson"); | |
857 | - $l->setmetadata("wfs_getfeature_formatlist","geojson"); | |
858 | - $oMap->save($nomeMapfileTmp); | |
859 | - header("Content-type: application/json; subtype=geojson"); | |
860 | - } | |
827 | + processaOutputformatMapfile(); | |
861 | 828 | } |
862 | 829 | ms_ioinstallstdouttobuffer(); |
863 | - | |
864 | -//verifica parametro outputformat | |
830 | +// | |
831 | +//verifica parametro outputformat e ajusta a requisicao | |
832 | +// | |
865 | 833 | if(strtolower($req->getValueByName("REQUEST")) == "getmap" && $req->getValueByName("format") == ""){ |
866 | 834 | $req->setParameter("format","image/png"); |
867 | 835 | } |
... | ... | @@ -870,54 +838,14 @@ if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo" && $_GET["inf |
870 | 838 | } |
871 | 839 | //json conforme cesium |
872 | 840 | if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo" && $_GET["info_format"] == "application/json"){ |
873 | - $req->setParameter("info_format","application/vnd.ogc.gml"); | |
874 | - $oMap->owsdispatch($req); | |
875 | - ms_iostripstdoutbuffercontentheaders(); | |
876 | - ob_clean(); | |
877 | - $r = ms_iogetstdoutbufferstring(); | |
878 | - //$r = converteenc($r); | |
879 | - $nome = $oMap->getlayer(0)->name; | |
880 | - $xml = simplexml_load_string($r); | |
881 | - | |
882 | - $json = json_encode($xml); | |
883 | - $r = json_decode($json,TRUE); | |
884 | - $propriedades = $r[$nome."_layer"]; | |
885 | - $propriedades = $propriedades[$nome."_feature"]; | |
886 | - $propriedades = converteenc(json_encode($propriedades)); | |
887 | - $propriedades = json_decode($propriedades); | |
888 | - $n = array(); | |
889 | - $n[] = array ( | |
890 | - "type" => "FeatureCollection", | |
891 | - "features" => array( | |
892 | - array( | |
893 | - "type"=>"Feature", | |
894 | - "id" => "", | |
895 | - "geometry" => array(), | |
896 | - "properties" => array( | |
897 | - $propriedades | |
898 | - ), | |
899 | - "geometry_name" => "" | |
900 | - ) | |
901 | - ) | |
902 | - ); | |
903 | - header("Content-type: application/json"); | |
904 | - $json = json_encode($n[0]); | |
905 | - //verifica a substituicao de alias | |
906 | - $itens = $oMap->getlayer(0)->getmetadata("ITENS"); // itens | |
907 | - $itensdesc = $oMap->getlayer(0)->getmetadata("ITENSDESC"); // descrição dos itens | |
908 | - $itens = explode(",",$itens); | |
909 | - $itensdesc = explode(",",converteenc($itensdesc)); | |
910 | - $n = count($itens); | |
911 | - for($i = 0; $i < $n; $i++){ | |
912 | - $json = str_ireplace($itens[$i],$itensdesc[$i],$json); | |
913 | - } | |
914 | - echo $json; | |
841 | + getfeatureinfoJson(); | |
915 | 842 | exit; |
916 | 843 | } |
917 | 844 | |
918 | 845 | $oMap->owsdispatch($req); |
919 | 846 | |
920 | -$contenttype = ms_iostripstdoutbuffercontenttype(); | |
847 | +$contenttype = ms_iostripstdoutbuffercontenttype(); | |
848 | + | |
921 | 849 | if(strtolower($request) == "getcapabilities"){ |
922 | 850 | header('Content-Disposition: attachment; filename=getcapabilities.xml'); |
923 | 851 | } |
... | ... | @@ -975,17 +903,17 @@ function ogc_imprimeListaDeTemas(){ |
975 | 903 | foreach($grupo["subgrupos"] as $sgrupo){ |
976 | 904 | if(strtolower($sgrupo["ogc"]) == "sim"){ |
977 | 905 | $imprimesubgrupo = $sgrupo["nome"]; |
978 | - $temas = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
979 | - foreach($temas as $tema){ | |
980 | - if(strtolower($tema["ogc"]) == "sim"){ | |
906 | + $lts = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
907 | + foreach($lts as $t){ | |
908 | + if(strtolower($t["ogc"]) == "sim"){ | |
981 | 909 | $imprimir .= texto2iso($imprimegrupo)."->".texto2iso($imprimesubgrupo)."<br>"; |
982 | 910 | $imprimir .= " "; |
983 | - $imprimir .= "<span style=color:red >".$tema["tid"]."</span>"; | |
984 | - $imprimir .= " - ".texto2iso($tema["nome"])." "; | |
985 | - $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$tema["tid"]."&service=wms&request=getcapabilities' >Getcapabilities</a>"; | |
986 | - $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$tema["tid"]."&SRS=EPSG:4618&WIDTH=500&HEIGHT=500&BBOX=-76.5125927,-39.3925675209,-29.5851853,9.49014852081&FORMAT=image/png&service=wms&version=1.1.0&request=getmap&layers=".$tema["tid"]."' >GetMap </a>"; | |
987 | - if($tema["link"] != " ") | |
988 | - $imprimir .= " <a href='".$tema["link"]."' >fonte</a>"; | |
911 | + $imprimir .= "<span style=color:red >".$t["tid"]."</span>"; | |
912 | + $imprimir .= " - ".texto2iso($t["nome"])." "; | |
913 | + $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$t["tid"]."&service=wms&request=getcapabilities' >Getcapabilities</a>"; | |
914 | + $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$t["tid"]."&SRS=EPSG:4618&WIDTH=500&HEIGHT=500&BBOX=-76.5125927,-39.3925675209,-29.5851853,9.49014852081&FORMAT=image/png&service=wms&version=1.1.0&request=getmap&layers=".$t["tid"]."' >GetMap </a>"; | |
915 | + if($t["link"] != " ") | |
916 | + $imprimir .= " <a href='".$t["link"]."' >fonte</a>"; | |
989 | 917 | $imprimir .= "<br>"; |
990 | 918 | } |
991 | 919 | } |
... | ... | @@ -1011,17 +939,17 @@ function ogc_imprimeListaDeTemasWfs(){ |
1011 | 939 | foreach($grupo["subgrupos"] as $sgrupo){ |
1012 | 940 | if(strtolower($sgrupo["ogc"]) == "sim"){ |
1013 | 941 | $imprimesubgrupo = $sgrupo["nome"]; |
1014 | - $temas = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
1015 | - foreach($temas as $tema){ | |
1016 | - if(strtolower($tema["ogc"]) == "sim" && strtolower($tema["down"]) !== "nao"){ | |
942 | + $lts = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
943 | + foreach($lts as $t){ | |
944 | + if(strtolower($t["ogc"]) == "sim" && strtolower($t["down"]) !== "nao"){ | |
1017 | 945 | $imprimir .= $imprimegrupo."->".$imprimesubgrupo."<br>"; |
1018 | 946 | $imprimir .= " "; |
1019 | - $imprimir .= "<span style=color:red >".$tema["tid"]."</span>"; | |
1020 | - $imprimir .= " - ".$tema["nome"]." "; | |
1021 | - $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$tema["tid"]."&service=wfs&request=getcapabilities' >Getcapabilities</a>"; | |
1022 | - $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$tema["tid"]."&SRS=EPSG:4618&service=wfs&version=1.1.0&request=getfeature&typename=".$tema["tid"]."' >Getfeature </a>"; | |
1023 | - if($tema["link"] != " ") | |
1024 | - $imprimir .= " <a href='".$tema["link"]."' >fonte</a>"; | |
947 | + $imprimir .= "<span style=color:red >".$t["tid"]."</span>"; | |
948 | + $imprimir .= " - ".$t["nome"]." "; | |
949 | + $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$t["tid"]."&service=wfs&request=getcapabilities' >Getcapabilities</a>"; | |
950 | + $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$t["tid"]."&SRS=EPSG:4618&service=wfs&version=1.1.0&request=getfeature&typename=".$t["tid"]."' >Getfeature </a>"; | |
951 | + if($t["link"] != " ") | |
952 | + $imprimir .= " <a href='".$t["link"]."' >fonte</a>"; | |
1025 | 953 | $imprimir .= "<br>"; |
1026 | 954 | } |
1027 | 955 | } |
... | ... | @@ -1145,6 +1073,87 @@ function renderNocacheTms(){ |
1145 | 1073 | header("Content-type: image/png"); |
1146 | 1074 | } |
1147 | 1075 | } |
1076 | +function getfeatureinfoJson(){ | |
1077 | + global $req, $oMap; | |
1078 | + $req->setParameter("info_format","application/vnd.ogc.gml"); | |
1079 | + $oMap->owsdispatch($req); | |
1080 | + ms_iostripstdoutbuffercontentheaders(); | |
1081 | + ob_clean(); | |
1082 | + $r = ms_iogetstdoutbufferstring(); | |
1083 | + //$r = converteenc($r); | |
1084 | + $nome = $oMap->getlayer(0)->name; | |
1085 | + $xml = simplexml_load_string($r); | |
1086 | + | |
1087 | + $json = json_encode($xml); | |
1088 | + $r = json_decode($json,TRUE); | |
1089 | + $propriedades = $r[$nome."_layer"]; | |
1090 | + $propriedades = $propriedades[$nome."_feature"]; | |
1091 | + $propriedades = converteenc(json_encode($propriedades)); | |
1092 | + $propriedades = json_decode($propriedades); | |
1093 | + $n = array(); | |
1094 | + $n[] = array ( | |
1095 | + "type" => "FeatureCollection", | |
1096 | + "features" => array( | |
1097 | + array( | |
1098 | + "type"=>"Feature", | |
1099 | + "id" => "", | |
1100 | + "geometry" => array(), | |
1101 | + "properties" => array( | |
1102 | + $propriedades | |
1103 | + ), | |
1104 | + "geometry_name" => "" | |
1105 | + ) | |
1106 | + ) | |
1107 | + ); | |
1108 | + header("Content-type: application/json"); | |
1109 | + $json = json_encode($n[0]); | |
1110 | + //verifica a substituicao de alias | |
1111 | + $itens = $oMap->getlayer(0)->getmetadata("ITENS"); // itens | |
1112 | + $itensdesc = $oMap->getlayer(0)->getmetadata("ITENSDESC"); // descrição dos itens | |
1113 | + $itens = explode(",",$itens); | |
1114 | + $itensdesc = explode(",",converteenc($itensdesc)); | |
1115 | + $n = count($itens); | |
1116 | + for($i = 0; $i < $n; $i++){ | |
1117 | + $json = str_ireplace($itens[$i],$itensdesc[$i],$json); | |
1118 | + } | |
1119 | + echo $json; | |
1120 | +} | |
1121 | +function processaOutputformatMapfile(){ | |
1122 | + global $OUTPUTFORMAT, $oMap; | |
1123 | + if(strtolower($OUTPUTFORMAT) == "shape-zip"){ | |
1124 | + $l = $oMap->getlayer(0); | |
1125 | + $n = $l->name; | |
1126 | + $oMap->selectOutputFormat("shape-zip"); | |
1127 | + $oMap->outputformat->setOption("STORAGE", "memory"); | |
1128 | + $oMap->outputformat->setOption("FORM", "zip"); | |
1129 | + $oMap->outputformat->setOption("FILENAME", $n.".zip"); | |
1130 | + $l->setmetadata("wfs_getfeature_formatlist","shape-zip"); | |
1131 | + $oMap->save($nomeMapfileTmp); | |
1132 | + if(strtolower($request) != "getcapabilities"){ | |
1133 | + header('Content-Disposition: attachment; filename='.$n.'.zip'); | |
1134 | + } | |
1135 | + } | |
1136 | + if(strtolower($OUTPUTFORMAT) == "csv"){ | |
1137 | + $l = $oMap->getlayer(0); | |
1138 | + $n = $l->name."-csv"; | |
1139 | + $oMap->selectOutputFormat("csv"); | |
1140 | + $oMap->outputformat->setOption("STORAGE", "memory"); | |
1141 | + $oMap->outputformat->setOption("FILENAME", $n.".zip"); | |
1142 | + $oMap->outputformat->setOption("FORM", "zip"); | |
1143 | + $l->setmetadata("wfs_getfeature_formatlist","csv"); | |
1144 | + $oMap->save($nomeMapfileTmp); | |
1145 | + if(strtolower($request) != "getcapabilities"){ | |
1146 | + header('Content-Disposition: attachment; filename='.$n.'.zip'); | |
1147 | + } | |
1148 | + } | |
1149 | + if(strtolower($OUTPUTFORMAT) == "geojson"){ | |
1150 | + $l = $oMap->getlayer(0); | |
1151 | + $oMap->selectOutputFormat("geojson"); | |
1152 | + $l->setmetadata("wfs_getfeature_formatlist","geojson"); | |
1153 | + $oMap->save($nomeMapfileTmp); | |
1154 | + header("Content-type: application/json; subtype=geojson"); | |
1155 | + } | |
1156 | +} | |
1148 | 1157 | function converteenc($texto){ |
1149 | 1158 | if (!mb_detect_encoding($texto,"UTF-8",true)){ |
1150 | 1159 | $texto = mb_convert_encoding($texto,"UTF-8","ISO-8859-1"); | ... | ... |