Commit 9afefac0664274f28619f447e8f6b1b8148452d1
1 parent
8ae9b14a
Exists in
master
and in
1 other branch
Alteração nos parâmetros de geração de arquivos KML na ferramenta OGC
Showing
7 changed files
with
48 additions
and
24 deletions
Show diff stats
aplicmap/ogcwsv7.map
ms_configura.php
ogc.php
| ... | ... | @@ -262,11 +262,11 @@ ogc.php?tema=/var/www/i3geo/aplicmap/geral1debianv6.map&layers=mundo |
| 262 | 262 | |
| 263 | 263 | "; |
| 264 | 264 | exit; |
| 265 | -} | |
| 266 | - | |
| 265 | +} | |
| 267 | 266 | include(dirname(__FILE__)."/classesphp/sani_request.php"); |
| 268 | 267 | include_once (dirname(__FILE__)."/classesphp/carrega_ext.php"); |
| 269 | 268 | include(dirname(__FILE__)."/ms_configura.php"); |
| 269 | +error_reporting(0); | |
| 270 | 270 | $_GET = array_merge($_GET,$_POST); |
| 271 | 271 | //error_log($_SERVER['QUERY_STRING']); |
| 272 | 272 | if(isset($_GET["BBOX"])){ |
| ... | ... | @@ -417,6 +417,9 @@ if(strpos(strtolower($OUTPUTFORMAT),"kml") !== false){ |
| 417 | 417 | if(strpos(strtolower($OUTPUTFORMAT),"kmz") !== false){ |
| 418 | 418 | $OUTPUTFORMAT = "kmz"; |
| 419 | 419 | } |
| 420 | +if(strpos(strtolower($OUTPUTFORMAT),"kmlwms") !== false){ | |
| 421 | + $OUTPUTFORMAT = "kmlwms"; | |
| 422 | +} | |
| 420 | 423 | // |
| 421 | 424 | //verifica o OUTPUTFORMAT e o cache de arquivo |
| 422 | 425 | // |
| ... | ... | @@ -428,16 +431,21 @@ if(!empty($OUTPUTFORMAT)){ |
| 428 | 431 | //para o caso da requisicao kmz |
| 429 | 432 | //kmz nao funciona diretamente com mapserver |
| 430 | 433 | // |
| 431 | -if(strtolower($OUTPUTFORMAT) == "kmz"){ | |
| 434 | +if(strtolower($OUTPUTFORMAT) == "kmz" && $ogrOutput == false){ | |
| 432 | 435 | $urln = "pacotes/kmlmapserver/kmlservice.php?request=kmz&map=".$tema."&typename=".$tema; |
| 433 | 436 | header("Location:".$urln); |
| 434 | 437 | exit; |
| 435 | 438 | } |
| 436 | 439 | if(strtolower($OUTPUTFORMAT) == "kml" && $ogrOutput == false){ |
| 437 | - $urln = "pacotes/kmlmapserver/kmlservice.php?request=kmz&map=".$tema."&typename=".$tema; | |
| 440 | + $urln = "pacotes/kmlmapserver/kmlservice.php?request=kml&map=".$tema."&typename=".$tema; | |
| 438 | 441 | header("Location:".$urln); |
| 439 | 442 | exit; |
| 440 | 443 | } |
| 444 | +if(strtolower($OUTPUTFORMAT) == "kmlwms"){ | |
| 445 | + $urln = "pacotes/kmlmapserver/kmlservice.php?request=kmlwms&map=".$tema."&typename=".$tema; | |
| 446 | + header("Location:".$urln); | |
| 447 | + exit; | |
| 448 | +} | |
| 441 | 449 | if(strtolower($OUTPUTFORMAT) == "shape-zip" && $ogrOutput == false){ |
| 442 | 450 | $retorno = downloadTema2("",$tema,$locaplic,$dir_tmp,$postgis_mapa); |
| 443 | 451 | $zip = $retorno["shape-zip"]; |
| ... | ... | @@ -1543,6 +1551,14 @@ function processaOutputformatMapfile(){ |
| 1543 | 1551 | $oMap->outputformat->setOption("FILENAME", $tema.".kml"); |
| 1544 | 1552 | $l->setmetadata("wfs_getfeature_formatlist","kml"); |
| 1545 | 1553 | } |
| 1554 | + if(strtolower($OUTPUTFORMAT) == "kmz"){ | |
| 1555 | + $l = $oMap->getlayer(0); | |
| 1556 | + $n = $l->name; | |
| 1557 | + $oMap->selectOutputFormat("kmz"); | |
| 1558 | + $oMap->outputformat->setOption("STORAGE", "filesystem"); | |
| 1559 | + $oMap->outputformat->setOption("FILENAME", $tema.".kmz"); | |
| 1560 | + $l->setmetadata("wfs_getfeature_formatlist","kmz"); | |
| 1561 | + } | |
| 1546 | 1562 | if(strtolower($OUTPUTFORMAT) == "shape-zip"){ |
| 1547 | 1563 | $l = $oMap->getlayer(0); |
| 1548 | 1564 | $n = $l->name; | ... | ... |
ogc/dicionario.js
| ... | ... | @@ -52,14 +52,19 @@ ogc.dicionario = |
| 52 | 52 | es : "Descargar CSV a través de WFS pero sin geometría" |
| 53 | 53 | }], |
| 54 | 54 | "kmz" : [{ |
| 55 | - pt : "Download KMZ", | |
| 55 | + pt : "Download KMZ (KML vetorial compactado)", | |
| 56 | 56 | en : "Download KMZ", |
| 57 | 57 | es : "Descargar KMZ" |
| 58 | 58 | }], |
| 59 | + "kmlwms" : [{ | |
| 60 | + pt : "Download KML (com WMS embutido)", | |
| 61 | + en : "", | |
| 62 | + es : "" | |
| 63 | + }], | |
| 59 | 64 | "kml" : [{ |
| 60 | - pt : "Download KML", | |
| 61 | - en : "Download KML", | |
| 62 | - es : "Descargar KML" | |
| 65 | + pt : "Download KML (vetorial)", | |
| 66 | + en : "", | |
| 67 | + es : "" | |
| 63 | 68 | }], |
| 64 | 69 | "explore" : [{ |
| 65 | 70 | pt : "Explore a tabela de atributos", | ... | ... |
ogc/templates/templatelinksdownload.php
| ... | ... | @@ -7,6 +7,7 @@ |
| 7 | 7 | <p><a target=blank href="{{{servico}}}OUTPUTFORMAT=csv&bbox={{mapext}}&service=wfs&version=1.1.0&request=getfeature&layers={{{tema}}}&typeName={{{tema}}}&ows_geomtype=AS_WKT" >{{{downCgeo}}}</a> |
| 8 | 8 | <p><a target=blank href="{{{servico}}}OUTPUTFORMAT=csv&bbox={{mapext}}&service=wfs&version=1.1.0&request=getfeature&layers={{{tema}}}&typeName={{{tema}}}&ows_geomtype=none" >{{{downSgeo}}}</a> |
| 9 | 9 | <p><a target=blank href="{{{servico}}}OUTPUTFORMAT=kmz&bbox={{mapext}}&service=wfs&version=1.1.0&request=getfeature&layers={{{tema}}}&typeName={{{tema}}}" >{{{kmz}}}</a> |
| 10 | +<p><a target=blank href="{{{servico}}}OUTPUTFORMAT=kmlwms&bbox={{mapext}}&service=wfs&version=1.1.0&request=getfeature&layers={{{tema}}}&typeName={{{tema}}}" >{{{kmlwms}}}</a> | |
| 10 | 11 | <p><a target=blank href="{{{servico}}}OUTPUTFORMAT=kml&bbox={{mapext}}&service=wfs&version=1.1.0&request=getfeature&layers={{{tema}}}&typeName={{{tema}}}" >{{{kml}}}</a> |
| 11 | 12 | <p><a target=blank href="{{{servico}}}OUTPUTFORMAT=geojson&bbox={{mapext}}&service=wfs&version=1.1.0&request=getfeature&layers={{{tema}}}&typeName={{{tema}}}" >GeoJson</a> |
| 12 | 13 | <p><a target=blank href="{{{urli3geo}}}/ferramentas/recline/default.php?tema={{{tema}}}" >{{{explore}}}</a> | ... | ... |
pacotes/kmlmapserver/classes/kmlserver.class.php
| ... | ... | @@ -70,6 +70,7 @@ class KmlServer { |
| 70 | 70 | $this->service->run(); |
| 71 | 71 | } else { |
| 72 | 72 | include 'layerserver.class.php'; |
| 73 | + error_reporting(0); | |
| 73 | 74 | $this->service = new LayerServer(); |
| 74 | 75 | $this->service->run(); |
| 75 | 76 | } |
| ... | ... | @@ -81,7 +82,10 @@ class KmlServer { |
| 81 | 82 | function get_request(){ |
| 82 | 83 | $this->service = $this->load_parm('service'); |
| 83 | 84 | if(!$this->service){ |
| 84 | - $this->service= 'kml'; | |
| 85 | + $this->service= $this->load_parm('request'); | |
| 86 | + } | |
| 87 | + if(!$this->service){ | |
| 88 | + $this->service= "kml"; | |
| 85 | 89 | } |
| 86 | 90 | } |
| 87 | 91 | ... | ... |
pacotes/kmlmapserver/classes/layerserver.class.php
| ... | ... | @@ -153,7 +153,7 @@ class LayerServer |
| 153 | 153 | * wether folder should contain networklinks instead of real geometries |
| 154 | 154 | * it is automatically set when all layers are requested |
| 155 | 155 | */ |
| 156 | - var $_networklink; | |
| 156 | + var $_networklink = false; | |
| 157 | 157 | var $postgis_mapa; |
| 158 | 158 | |
| 159 | 159 | /** |
| ... | ... | @@ -191,8 +191,6 @@ class LayerServer |
| 191 | 191 | if (! $this->typename) { |
| 192 | 192 | $this->_networklink = true; |
| 193 | 193 | $this->typename = $this->get_layer_list(); |
| 194 | - } else { | |
| 195 | - $this->_networklink = false; | |
| 196 | 194 | } |
| 197 | 195 | if ($this->_networklink == false) { |
| 198 | 196 | // desliga todos os layers |
| ... | ... | @@ -276,6 +274,11 @@ class LayerServer |
| 276 | 274 | $this->request = $this->load_parm('request', 'kml'); |
| 277 | 275 | if ($this->request == 'kmz') { |
| 278 | 276 | $this->_zipped = true; |
| 277 | + } else { | |
| 278 | + $this->_zipped = false; | |
| 279 | + } | |
| 280 | + if($this->request == "kmlwms"){ | |
| 281 | + $this->_networklink = true; | |
| 279 | 282 | } |
| 280 | 283 | if (! $this->map) { |
| 281 | 284 | $this->set_error('No mapfile specified'); |
| ... | ... | @@ -325,7 +328,6 @@ class LayerServer |
| 325 | 328 | } |
| 326 | 329 | } else { |
| 327 | 330 | foreach ($layers as $layer) { |
| 328 | - // echo "Oi";exit; | |
| 329 | 331 | $this->process_layer_request($layer); |
| 330 | 332 | } |
| 331 | 333 | } |
| ... | ... | @@ -684,6 +686,9 @@ class LayerServer |
| 684 | 686 | { |
| 685 | 687 | $ml = $element->addChild('MultiGeometry'); |
| 686 | 688 | foreach (split('\), \(', $wkt) as $line) { |
| 689 | + //$line = str_replace("MULTIPOLYGON (","POLYGON ",$line).")"; | |
| 690 | + $line = str_replace(array("MULTIPOLYGON",")","("),"",$line); | |
| 691 | + //$line = "POLYGON ((".$line."))"; | |
| 687 | 692 | $this->add_polygon($line, $ml, $featurename); |
| 688 | 693 | } |
| 689 | 694 | } |
| ... | ... | @@ -1107,7 +1112,7 @@ class LayerServer |
| 1107 | 1112 | for ($i = 0; $i < ($maptemp->numlayers); $i ++) { |
| 1108 | 1113 | $l = $maptemp->getlayer($i); |
| 1109 | 1114 | $l->set("status", MS_DEFAULT); |
| 1110 | - if (! $this->_zipped) { | |
| 1115 | + if ($this->_networklink == true || $l->type == MS_LAYER_RASTER ) { | |
| 1111 | 1116 | $l->set("type", MS_LAYER_RASTER); |
| 1112 | 1117 | $l->setmetadata('wms_onlineresource', "../../ogc.php?tema=" . $temp . "&width=1500&height=1500&TRANSPARENT=true&FORMAT=image/png&"); |
| 1113 | 1118 | $l->setmetadata("ows_enable_request", "*"); |
| ... | ... | @@ -1116,11 +1121,7 @@ class LayerServer |
| 1116 | 1121 | } |
| 1117 | 1122 | } else { |
| 1118 | 1123 | $this->map_object = ms_newMapObj($this->map); |
| 1119 | - // $w = $this->map_object->web; | |
| 1120 | - // $w->set("template","none.htm"); | |
| 1121 | - | |
| 1122 | 1124 | if (! $this->_zipped) { |
| 1123 | - // $this->map_object->setmetadata('wms_onlineresource',$servidor.":80".$locmapserv."?map=".$temp."&width=1500&height=1500&"); | |
| 1124 | 1125 | $this->map_object->setmetadata('wms_onlineresource', "../../ogc.php?tema=" . $temp . "&width=1500&height=1500&TRANSPARENT=true&FORMAT=image/png&"); |
| 1125 | 1126 | $this->map_object->setmetadata("ows_enable_request", "*"); |
| 1126 | 1127 | } |
| ... | ... | @@ -1128,10 +1129,6 @@ class LayerServer |
| 1128 | 1129 | for ($i = 0; $i < $n; $i ++) { |
| 1129 | 1130 | $l = $this->map_object->getlayer($i); |
| 1130 | 1131 | $l->set("status", MS_DEFAULT); |
| 1131 | - if (! $this->_zipped) | |
| 1132 | - $l->set("type", MS_LAYER_RASTER); | |
| 1133 | - // $l->setmetadata('wms_onlineresource',"../../ogc.php?tema=".$temp."&width=500&height=500&"); | |
| 1134 | - // ms_newLayerObj($this->map_object, $l); | |
| 1135 | 1132 | } |
| 1136 | 1133 | } |
| 1137 | 1134 | if (! $this->map_object) { |
| ... | ... | @@ -1181,7 +1178,7 @@ class LayerServer |
| 1181 | 1178 | */ |
| 1182 | 1179 | function send_header() |
| 1183 | 1180 | { |
| 1184 | - header('Content-Disposition: attachment; filename=kml.km' . ($this->_zipped ? 'z' : 'l')); | |
| 1181 | + header('Content-Disposition: attachment; filename='.$this->typename."_".$this->request .'.km' . ($this->_zipped ? 'z' : 'l')); | |
| 1185 | 1182 | header('Content-type: application/vnd.google-earth.km' . ($this->_zipped ? 'z' : 'l') . '+XML'); |
| 1186 | 1183 | } |
| 1187 | 1184 | ... | ... |