Commit 9087fa1f3b8af9dfd7ca2403d32c7c189ea59627
1 parent
69d94d50
Exists in
master
and in
7 other branches
Inclusão de info_format json em ogc.php
Showing
2 changed files
with
63 additions
and
14 deletions
Show diff stats
.project
@@ -25,6 +25,13 @@ | @@ -25,6 +25,13 @@ | ||
25 | <nature>org.eclipse.wst.jsdt.core.jsNature</nature> | 25 | <nature>org.eclipse.wst.jsdt.core.jsNature</nature> |
26 | <nature>org.eclipse.php.core.PHPNature</nature> | 26 | <nature>org.eclipse.php.core.PHPNature</nature> |
27 | </natures> | 27 | </natures> |
28 | + <linkedResources> | ||
29 | + <link> | ||
30 | + <name>cesium</name> | ||
31 | + <type>2</type> | ||
32 | + <location>/var/www/i3geo/pacotes/cesium</location> | ||
33 | + </link> | ||
34 | + </linkedResources> | ||
28 | <filteredResources> | 35 | <filteredResources> |
29 | <filter> | 36 | <filter> |
30 | <id>1431135588159</id> | 37 | <id>1431135588159</id> |
ogc.php
1 | <?php | 1 | <?php |
2 | /* | 2 | /* |
3 | -Title: Gerador de serviços OGC | 3 | + Title: Gerador de serviços OGC |
4 | 4 | ||
5 | Gera web services nos padrões OGC para os temas existentes na pasta i3geo/temas | 5 | Gera web services nos padrões OGC para os temas existentes na pasta i3geo/temas |
6 | 6 | ||
@@ -45,13 +45,13 @@ legenda - (opcional) mostra a legenda no corpo do mapa sim|nao | @@ -45,13 +45,13 @@ legenda - (opcional) mostra a legenda no corpo do mapa sim|nao | ||
45 | perfil - (opcional) perfil utilizado para restringir os temas que serão mostrados | 45 | perfil - (opcional) perfil utilizado para restringir os temas que serão mostrados |
46 | 46 | ||
47 | format - (opcional) pode ser utilizado a opção &format=application/openlayers para | 47 | format - (opcional) pode ser utilizado a opção &format=application/openlayers para |
48 | - abrir o mashup do OpenLayers com as camadas definida em temas. | ||
49 | - Na geração da legenda pode ser utilizado text/html para gerar no formato html. | 48 | +abrir o mashup do OpenLayers com as camadas definida em temas. |
49 | +Na geração da legenda pode ser utilizado text/html para gerar no formato html. | ||
50 | 50 | ||
51 | OUTPUTFORMAT - em getfeature, aceita também shape-zip para download de shapefile e csv para download de csv compactado | 51 | OUTPUTFORMAT - em getfeature, aceita também shape-zip para download de shapefile e csv para download de csv compactado |
52 | 52 | ||
53 | id_medida_variavel - id da medida de variavel - utilizado apenas quando a fonte para definicao do layer for o sistema de metadados estatisticos | 53 | id_medida_variavel - id da medida de variavel - utilizado apenas quando a fonte para definicao do layer for o sistema de metadados estatisticos |
54 | - nao deve ser utilizado junto com tema | 54 | +nao deve ser utilizado junto com tema |
55 | 55 | ||
56 | restauramapa - ID de um mapa salvo no sistema de administracao. O mapa e restaurado e tratado como WMS | 56 | restauramapa - ID de um mapa salvo no sistema de administracao. O mapa e restaurado e tratado como WMS |
57 | 57 | ||
@@ -59,11 +59,11 @@ DESLIGACACHE (opcional) {sim|nao} - forca a nao usar o cache de imagens qd defin | @@ -59,11 +59,11 @@ DESLIGACACHE (opcional) {sim|nao} - forca a nao usar o cache de imagens qd defin | ||
59 | 59 | ||
60 | filtros - filtros podem ser adicionados incluindo o parametro da seguinte forma: &map_layer_<nomedotema>_filter= | 60 | filtros - filtros podem ser adicionados incluindo o parametro da seguinte forma: &map_layer_<nomedotema>_filter= |
61 | 61 | ||
62 | - Exemplo de filtro | 62 | +Exemplo de filtro |
63 | 63 | ||
64 | - http://localhost/i3geo/ogc.php?map_layer__lbiomashp_filter=(('[CD_LEGENDA]'='CAATINGA'))&tema=_lbiomashp&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=_lbiomashp | 64 | +http://localhost/i3geo/ogc.php?map_layer__lbiomashp_filter=(('[CD_LEGENDA]'='CAATINGA'))&tema=_lbiomashp&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=_lbiomashp |
65 | 65 | ||
66 | - no caso de camadas Postgis basta usar map_layer__lbiomashp_filter=cd_legenda='CAATINGA' | 66 | +no caso de camadas Postgis basta usar map_layer__lbiomashp_filter=cd_legenda='CAATINGA' |
67 | 67 | ||
68 | Exemplos: | 68 | Exemplos: |
69 | 69 | ||
@@ -392,8 +392,8 @@ else{ | @@ -392,8 +392,8 @@ else{ | ||
392 | $l->set("status",MS_OFF); | 392 | $l->set("status",MS_OFF); |
393 | } | 393 | } |
394 | /* | 394 | /* |
395 | - if($cache == true && strtolower($l->getmetadata('cache')) == 'sim' && $tipo == '' && count($tema) == 1){ | ||
396 | - carregaCacheImagem($_GET['BBOX'],$tx,$_GET['WIDTH'],$_GET['HEIGHT'],$cachedir); | 395 | + if($cache == true && strtolower($l->getmetadata('cache')) == 'sim' && $tipo == '' && count($tema) == 1){ |
396 | + carregaCacheImagem($_GET['BBOX'],$tx,$_GET['WIDTH'],$_GET['HEIGHT'],$cachedir); | ||
397 | } | 397 | } |
398 | */ | 398 | */ |
399 | $l->setmetadata("ows_title",pegaNome($l)); | 399 | $l->setmetadata("ows_title",pegaNome($l)); |
@@ -455,7 +455,7 @@ else{ | @@ -455,7 +455,7 @@ else{ | ||
455 | if(!in_array("POLYLINE_NO_CLIP=True",$pr)){ | 455 | if(!in_array("POLYLINE_NO_CLIP=True",$pr)){ |
456 | $l->setprocessing("POLYLINE_NO_CLIP=True"); | 456 | $l->setprocessing("POLYLINE_NO_CLIP=True"); |
457 | } | 457 | } |
458 | - } | 458 | + } |
459 | // | 459 | // |
460 | //verifica se existem parametros de substituicao passados via url | 460 | //verifica se existem parametros de substituicao passados via url |
461 | // | 461 | // |
@@ -871,11 +871,50 @@ if(isset($OUTPUTFORMAT)){ | @@ -871,11 +871,50 @@ if(isset($OUTPUTFORMAT)){ | ||
871 | } | 871 | } |
872 | } | 872 | } |
873 | ms_ioinstallstdouttobuffer(); | 873 | ms_ioinstallstdouttobuffer(); |
874 | + | ||
874 | //verifica parametro outputformat | 875 | //verifica parametro outputformat |
875 | if(strtolower($req->getValueByName("REQUEST")) == "getmap" && $req->getValueByName("format") == ""){ | 876 | if(strtolower($req->getValueByName("REQUEST")) == "getmap" && $req->getValueByName("format") == ""){ |
876 | $req->setParameter("format","image/png"); | 877 | $req->setParameter("format","image/png"); |
877 | } | 878 | } |
878 | -$oMap->owsdispatch($req); | 879 | + |
880 | +if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo" && $_GET["info_format"] == "application/json"){ | ||
881 | + $req->setParameter("info_format","text/plain"); | ||
882 | + $oMap->owsdispatch($req); | ||
883 | + ms_iostripstdoutbuffercontentheaders(); | ||
884 | + ob_clean(); | ||
885 | + $r = ms_iogetstdoutbufferstring(); | ||
886 | + $t = explode("=",$r); | ||
887 | + $n = array(); | ||
888 | + if(count($t) > 1){ | ||
889 | + $v = str_replace("\\n","",$t[1]); | ||
890 | + $v = str_replace("\\r","",$v); | ||
891 | + if(trim($v) != ""){ | ||
892 | + $va = trim($v); | ||
893 | + $coluna = trim(explode(":",$t[0])[2]); | ||
894 | + $valor = str_replace("'","",$va); | ||
895 | + $n[] = array ( | ||
896 | + "type" => "FeatureCollection", | ||
897 | + "features" => array( | ||
898 | + array( | ||
899 | + "type"=>"Feature", | ||
900 | + "id" => "", | ||
901 | + "geometry" => array(), | ||
902 | + "properties" => array( | ||
903 | + $coluna => $valor | ||
904 | + ), | ||
905 | + "geometry_name" => "" | ||
906 | + ) | ||
907 | + ) | ||
908 | + ); | ||
909 | + } | ||
910 | + } | ||
911 | + header("Content-type: application/json"); | ||
912 | + echo json_encode($n[0]); | ||
913 | + exit; | ||
914 | +} | ||
915 | + | ||
916 | +$oMap->owsdispatch($req); | ||
917 | + | ||
879 | $contenttype = ms_iostripstdoutbuffercontenttype(); | 918 | $contenttype = ms_iostripstdoutbuffercontenttype(); |
880 | if(strtolower($request) == "getcapabilities"){ | 919 | if(strtolower($request) == "getcapabilities"){ |
881 | header('Content-Disposition: attachment; filename=getcapabilities.xml'); | 920 | header('Content-Disposition: attachment; filename=getcapabilities.xml'); |
@@ -887,7 +926,8 @@ if(!isset($OUTPUTFORMAT)){ | @@ -887,7 +926,8 @@ if(!isset($OUTPUTFORMAT)){ | ||
887 | if(strtolower($OUTPUTFORMAT) == "geojson"){ | 926 | if(strtolower($OUTPUTFORMAT) == "geojson"){ |
888 | ms_iostripstdoutbuffercontentheaders(); | 927 | ms_iostripstdoutbuffercontentheaders(); |
889 | header("Content-type: application/json; subtype=geojson"); | 928 | header("Content-type: application/json; subtype=geojson"); |
890 | -} | 929 | +} |
930 | + | ||
891 | $buffer = ms_iogetStdoutBufferBytes(); | 931 | $buffer = ms_iogetStdoutBufferBytes(); |
892 | ms_ioresethandlers(); | 932 | ms_ioresethandlers(); |
893 | // | 933 | // |
@@ -1059,7 +1099,9 @@ function nomeRand($n=10) | @@ -1059,7 +1099,9 @@ function nomeRand($n=10) | ||
1059 | $a = 'azertyuiopqsdfghjklmwxcvbnABCDEFGHIJKLMNOPQRSTUVWXYZ'; | 1099 | $a = 'azertyuiopqsdfghjklmwxcvbnABCDEFGHIJKLMNOPQRSTUVWXYZ'; |
1060 | $max = 51; | 1100 | $max = 51; |
1061 | for($i=0; $i < $n; ++$i) | 1101 | for($i=0; $i < $n; ++$i) |
1062 | - {$nomes .= $a{mt_rand(0, $max)};} | 1102 | + { |
1103 | + $nomes .= $a{mt_rand(0, $max)}; | ||
1104 | + } | ||
1063 | return $nomes; | 1105 | return $nomes; |
1064 | } | 1106 | } |
1065 | function renderNocacheTms(){ | 1107 | function renderNocacheTms(){ |
@@ -1101,4 +1143,4 @@ function renderNocacheTms(){ | @@ -1101,4 +1143,4 @@ function renderNocacheTms(){ | ||
1101 | header("Content-type: image/png"); | 1143 | header("Content-type: image/png"); |
1102 | } | 1144 | } |
1103 | } | 1145 | } |
1104 | -?> | 1146 | +?> |