Commit 7e7021ac3c86165e88fe0da6a172cbe1f4150346
1 parent
77785f14
Exists in
master
and in
7 other branches
Otimização da geração do serviço OGC por meio do uso de cache
Showing
1 changed file
with
244 additions
and
227 deletions
Show diff stats
ogc.php
| ... | ... | @@ -4,7 +4,7 @@ |
| 4 | 4 | |
| 5 | 5 | Gera web services nos padrões OGC para os temas existentes na pasta i3geo/temas |
| 6 | 6 | |
| 7 | -A lista de projeções mostradas na função getcapabilities é definida na variável $listaepsg. Edite essa variável diretamente no programa | |
| 7 | +A lista de projeções mostradas na função getcapabilities é definida na variável $listaepsg. Edite essa variável diretamente no programa | |
| 8 | 8 | se forem necessárias outras projeções além das existentes |
| 9 | 9 | |
| 10 | 10 | Licença: |
| ... | ... | @@ -65,8 +65,7 @@ $cache = true; |
| 65 | 65 | require_once(__DIR__."/classesphp/carrega_ext.php"); |
| 66 | 66 | include(__DIR__."/ms_configura.php"); |
| 67 | 67 | include(__DIR__."/classesphp/pega_variaveis.php"); |
| 68 | -if(!isset($temas) && isset($tema)) | |
| 69 | -{ | |
| 68 | +if(!isset($temas) && isset($tema)){ | |
| 70 | 69 | $temas = $tema; |
| 71 | 70 | } |
| 72 | 71 | // |
| ... | ... | @@ -173,37 +172,7 @@ for($i=0;$i<$n;$i++){ |
| 173 | 172 | } |
| 174 | 173 | exit; |
| 175 | 174 | */ |
| 176 | -$oMap = ms_newMapobj($locaplic."/aplicmap/ogcwsv".$versao.".map"); | |
| 177 | -// | |
| 178 | -//altera os caminhos das imagens | |
| 179 | -// | |
| 180 | -if((isset($legenda)) && (strtolower($legenda) == "sim")){ | |
| 181 | - $leg = $oMap->legend; | |
| 182 | - $leg->set("status",MS_EMBED); | |
| 183 | - $cache = false; | |
| 184 | -} | |
| 185 | -$proto = "http" . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://"; | |
| 186 | -$server = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']; | |
| 187 | -$or = $proto.$server.$_SERVER['PHP_SELF']; | |
| 188 | -if((isset($tema)) && ($tema != "") && ($tipo=="metadados")){ | |
| 189 | - $or = $or."?tema=".$tema."&"; | |
| 190 | -} | |
| 191 | -// | |
| 192 | -//parametros no nível maior | |
| 193 | -// | |
| 194 | -$oMap->setmetadata("ows_onlineresource",$or); | |
| 195 | -$oMap->setmetadata("wms_onlineresource",$or); | |
| 196 | -$oMap->setmetadata("wms_title",$tituloInstituicao." - i3geo"); | |
| 197 | -$oMap->setmetadata("wfs_title",$tituloInstituicao." - i3geo"); | |
| 198 | -$oMap->setmetadata("wms_attribution_logourl_format","image/png"); | |
| 199 | -$oMap->setmetadata("wms_attribution_logourl_height","56"); | |
| 200 | -$oMap->setmetadata("wms_attribution_logourl_width","85"); | |
| 201 | -$oMap->setmetadata("wms_attribution_logourl_href",$proto.$server.dirname($_SERVER['PHP_SELF'])."/imagens/i3geo.png"); | |
| 202 | -$oMap->setmetadata("wms_attribution_onlineresource",$proto.$server.dirname($_SERVER['PHP_SELF'])); | |
| 203 | -$oMap->setmetadata("wms_attribution_title",$tituloInstituicao); | |
| 204 | -$oMap->setmetadata("ows_enable_request","*"); | |
| 205 | -$e = $oMap->extent; | |
| 206 | -$extensaoMap = ($e->minx)." ".($e->miny)." ".($e->maxx)." ".($e->maxy); | |
| 175 | + | |
| 207 | 176 | if (!isset($intervalo)){ |
| 208 | 177 | $intervalo = "0,5000"; |
| 209 | 178 | } |
| ... | ... | @@ -211,68 +180,172 @@ else{ |
| 211 | 180 | $tipo = "intervalo"; |
| 212 | 181 | } |
| 213 | 182 | if(!isset($tema)){ |
| 214 | - if(!isset($intervalo)) | |
| 215 | - { | |
| 216 | - $intervalo = "0,5000"; | |
| 183 | + if(!isset($intervalo)){ | |
| 184 | + $intervalo = "0,5000"; | |
| 217 | 185 | } |
| 218 | 186 | $tipo = "intervalo"; |
| 219 | -} | |
| 220 | -if ($tipo == "" || $tipo == "metadados"){ | |
| 221 | - $tema = explode(" ",$tema); | |
| 222 | - //para o caso do tema ser um arquivo mapfile existente em uma pasta qualquer | |
| 223 | - //$temai3geo = true indica que o layer será buscado na pasta i3geo/temas | |
| 224 | - $temai3geo = true; | |
| 225 | - //FIXME não aceita gvp quando o caminho é completo | |
| 226 | - if(file_exists($_GET["tema"])){ | |
| 227 | - $nmap = ms_newMapobj($_GET["tema"]); | |
| 228 | - $temai3geo = false; | |
| 229 | - $nmap->setmetadata("ows_enable_request","*"); | |
| 187 | +} | |
| 188 | + | |
| 189 | +//nome do mapfile que ficara em cache | |
| 190 | +$nomeMapfileTmp = $dir_tmp."/ogc_".$tema.".map"; | |
| 191 | +$nomeMapfileTmp = str_replace(",","",$nomeMapfileTmp); | |
| 192 | +$nomeMapfileTmp = str_replace(" ","",$nomeMapfileTmp); | |
| 193 | +if(file_exists($nomeMapfileTmp) && $tipo == ""){ | |
| 194 | + $oMap = ms_newMapobj($nomeMapfileTmp); | |
| 195 | +} | |
| 196 | +else{ | |
| 197 | + $oMap = ms_newMapobj($locaplic."/aplicmap/ogcwsv".$versao.".map"); | |
| 198 | + $proto = "http" . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://"; | |
| 199 | + $server = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']; | |
| 200 | + $or = $proto.$server.$_SERVER['PHP_SELF']; | |
| 201 | + if((isset($tema)) && ($tema != "") && ($tipo=="metadados")){ | |
| 202 | + $or = $or."?tema=".$tema."&"; | |
| 230 | 203 | } |
| 231 | - foreach ($tema as $tx){ | |
| 232 | - $extensao = ".map"; | |
| 233 | - if(file_exists($locaplic."/temas/".$tx.".php") && $temai3geo == true){ | |
| 234 | - $extensao = ".php"; | |
| 235 | - } | |
| 236 | - if(file_exists($locaplic."/temas/".$tx.".gvp") && $temai3geo == true){ | |
| 237 | - $extensao = ".gvp"; | |
| 204 | + // | |
| 205 | + //parametros no nível maior | |
| 206 | + // | |
| 207 | + $oMap->setmetadata("ows_onlineresource",$or); | |
| 208 | + $oMap->setmetadata("wms_onlineresource",$or); | |
| 209 | + $oMap->setmetadata("wms_title",$tituloInstituicao." - i3geo"); | |
| 210 | + $oMap->setmetadata("wfs_title",$tituloInstituicao." - i3geo"); | |
| 211 | + $oMap->setmetadata("wms_attribution_logourl_format","image/png"); | |
| 212 | + $oMap->setmetadata("wms_attribution_logourl_height","56"); | |
| 213 | + $oMap->setmetadata("wms_attribution_logourl_width","85"); | |
| 214 | + $oMap->setmetadata("wms_attribution_logourl_href",$proto.$server.dirname($_SERVER['PHP_SELF'])."/imagens/i3geo.png"); | |
| 215 | + $oMap->setmetadata("wms_attribution_onlineresource",$proto.$server.dirname($_SERVER['PHP_SELF'])); | |
| 216 | + $oMap->setmetadata("wms_attribution_title",$tituloInstituicao); | |
| 217 | + $oMap->setmetadata("ows_enable_request","*"); | |
| 218 | + $e = $oMap->extent; | |
| 219 | + $extensaoMap = ($e->minx)." ".($e->miny)." ".($e->maxx)." ".($e->maxy); | |
| 220 | + | |
| 221 | + //gera o mapa | |
| 222 | + if ($tipo == "" || $tipo == "metadados"){ | |
| 223 | + $tema = explode(" ",$tema); | |
| 224 | + //para o caso do tema ser um arquivo mapfile existente em uma pasta qualquer | |
| 225 | + //$temai3geo = true indica que o layer será buscado na pasta i3geo/temas | |
| 226 | + $temai3geo = true; | |
| 227 | + //FIXME não aceita gvp quando o caminho é completo | |
| 228 | + if(file_exists($_GET["tema"])){ | |
| 229 | + $nmap = ms_newMapobj($_GET["tema"]); | |
| 230 | + $temai3geo = false; | |
| 231 | + $nmap->setmetadata("ows_enable_request","*"); | |
| 238 | 232 | } |
| 239 | - if($extensao == ".map"){ | |
| 240 | - if($temai3geo == true){ | |
| 241 | - $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); | |
| 242 | - $nmap->setmetadata("ows_enable_request","*"); | |
| 233 | + foreach ($tema as $tx){ | |
| 234 | + $extensao = ".map"; | |
| 235 | + if(file_exists($locaplic."/temas/".$tx.".php") && $temai3geo == true){ | |
| 236 | + $extensao = ".php"; | |
| 243 | 237 | } |
| 244 | - if($temai3geo == false || empty($layers)) | |
| 245 | - { | |
| 246 | - $ts = $nmap->getalllayernames(); | |
| 238 | + if(file_exists($locaplic."/temas/".$tx.".gvp") && $temai3geo == true){ | |
| 239 | + $extensao = ".gvp"; | |
| 247 | 240 | } |
| 248 | - else{ | |
| 249 | - $ts = explode(",",str_replace(" ",",",$layers)); | |
| 250 | - } | |
| 251 | - foreach ($ts as $t){ | |
| 252 | - $l = $nmap->getlayerbyname($t); | |
| 253 | - $permite = $l->getmetadata("permiteogc"); | |
| 254 | - if(strtolower($permite) != "nao"){ | |
| 255 | - //necessário pq o mapfile pode ter todos os layers como default | |
| 256 | - if($temai3geo == false){ | |
| 257 | - $l->set("status",MS_OFF); | |
| 258 | - } | |
| 259 | - if($cache == true && strtolower($l->getmetadata('cache')) == 'sim' && $tipo == '' && count($tema) == 1){ | |
| 260 | - carregaCacheImagem($_GET['BBOX'],$tx,$_GET['WIDTH'],$_GET['HEIGHT'],$cachedir); | |
| 261 | - } | |
| 262 | - $l->setmetadata("ows_title",pegaNome($l)); | |
| 263 | - $l->setmetadata("ows_srs",$listaepsg); | |
| 264 | - $l->set("group",""); | |
| 265 | - //essa linha é necessária pq as vezes no mapfile não tem nenhum layer com o nome igual ao nome do mapfile | |
| 266 | - if(count($ts)==1 && $temai3geo == true){ | |
| 267 | - $l->set("name",$tx); | |
| 241 | + if($extensao == ".map"){ | |
| 242 | + if($temai3geo == true){ | |
| 243 | + $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); | |
| 244 | + $nmap->setmetadata("ows_enable_request","*"); | |
| 245 | + } | |
| 246 | + if($temai3geo == false || empty($layers)) | |
| 247 | + { | |
| 248 | + $ts = $nmap->getalllayernames(); | |
| 249 | + } | |
| 250 | + else{ | |
| 251 | + $ts = explode(",",str_replace(" ",",",$layers)); | |
| 252 | + } | |
| 253 | + foreach ($ts as $t){ | |
| 254 | + $l = $nmap->getlayerbyname($t); | |
| 255 | + $permite = $l->getmetadata("permiteogc"); | |
| 256 | + if(strtolower($permite) != "nao"){ | |
| 257 | + //necessário pq o mapfile pode ter todos os layers como default | |
| 258 | + if($temai3geo == false){ | |
| 259 | + $l->set("status",MS_OFF); | |
| 260 | + } | |
| 261 | + /* | |
| 262 | + if($cache == true && strtolower($l->getmetadata('cache')) == 'sim' && $tipo == '' && count($tema) == 1){ | |
| 263 | + carregaCacheImagem($_GET['BBOX'],$tx,$_GET['WIDTH'],$_GET['HEIGHT'],$cachedir); | |
| 264 | + } | |
| 265 | + */ | |
| 266 | + $l->setmetadata("ows_title",pegaNome($l)); | |
| 267 | + $l->setmetadata("ows_srs",$listaepsg); | |
| 268 | + $l->set("group",""); | |
| 269 | + //essa linha é necessária pq as vezes no mapfile não tem nenhum layer com o nome igual ao nome do mapfile | |
| 270 | + if(count($ts)==1 && $temai3geo == true){ | |
| 271 | + $l->set("name",$tx); | |
| 272 | + } | |
| 273 | + $l->setmetadata("gml_include_items","all"); | |
| 274 | + $l->set("template","none.htm"); | |
| 275 | + $l->set("dump",MS_TRUE); | |
| 276 | + $l->setmetadata("WMS_INCLUDE_ITEMS","all"); | |
| 277 | + $l->setmetadata("WFS_INCLUDE_ITEMS","all"); | |
| 278 | + if(file_exists($locaplic."/temas/miniaturas/".$t.".map.mini.png")){ | |
| 279 | + $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$t.".map.mini.png"; | |
| 280 | + $l->setmetadata("wms_attribution_logourl_format","image/png"); | |
| 281 | + $l->setmetadata("wms_attribution_logourl_height","50"); | |
| 282 | + $l->setmetadata("wms_attribution_logourl_width","50"); | |
| 283 | + $l->setmetadata("wms_attribution_logourl_href",$mini); | |
| 284 | + } | |
| 285 | + if($l->type == MS_LAYER_RASTER && $l->numclasses > 0){ | |
| 286 | + $c = $l->getclass(0); | |
| 287 | + if($c->name == "") | |
| 288 | + { | |
| 289 | + $c->name = " "; | |
| 290 | + } | |
| 291 | + } | |
| 292 | + //inclui extensao geografica | |
| 293 | + $extensao = $l->getmetadata("EXTENSAO"); | |
| 294 | + if($extensao == ""){ | |
| 295 | + $extensao = $extensaoMap; | |
| 296 | + } | |
| 297 | + $l->setmetadata("wms_extent",$extensao); | |
| 298 | + if (!empty($postgis_mapa)){ | |
| 299 | + if ($l->connectiontype == MS_POSTGIS){ | |
| 300 | + $lcon = $l->connection; | |
| 301 | + if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | |
| 302 | + // | |
| 303 | + //o metadata CONEXAOORIGINAL guarda o valor original para posterior substituição | |
| 304 | + // | |
| 305 | + if(($lcon == " ") || ($lcon == "")){ | |
| 306 | + $l->set("connection",$postgis_mapa); | |
| 307 | + $l->setmetadata("CONEXAOORIGINAL",$lcon); | |
| 308 | + } | |
| 309 | + else{ | |
| 310 | + $l->set("connection",$postgis_mapa[$lcon]); | |
| 311 | + $l->setmetadata("CONEXAOORIGINAL",$lcon); | |
| 312 | + } | |
| 313 | + } | |
| 314 | + } | |
| 315 | + } | |
| 316 | + autoClasses($l,$oMap); | |
| 317 | + ms_newLayerObj($oMap, $l); | |
| 318 | + //$req->setParameter("LAYERS", "mundo"); | |
| 268 | 319 | } |
| 320 | + } | |
| 321 | + } | |
| 322 | + if($extensao == ".php"){ | |
| 323 | + include_once($locaplic."/temas/".$tx.".php"); | |
| 324 | + eval($tx."(\$oMap);"); | |
| 325 | + } | |
| 326 | + if($extensao == ".gvp"){ | |
| 327 | + include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); | |
| 328 | + $gm = new gvsig2mapfile($locaplic."/temas/".$tx.".gvp"); | |
| 329 | + $gvsigview = $gm->getViewsNames(); | |
| 330 | + foreach($gvsigview as $gv){ | |
| 331 | + $dataView = $gm->getViewData($gv); | |
| 332 | + $oMap = $gm->addLayers($oMap,$gv,$dataView["layerNames"]); | |
| 333 | + } | |
| 334 | + $numlayers = $oMap->numlayers; | |
| 335 | + $layers = array(); | |
| 336 | + //$layers[] = "default"; | |
| 337 | + for ($i=0;$i < $numlayers;$i++){ | |
| 338 | + $l = $oMap->getlayer($i); | |
| 269 | 339 | $l->setmetadata("gml_include_items","all"); |
| 270 | - $l->set("template","none.htm"); | |
| 271 | 340 | $l->set("dump",MS_TRUE); |
| 272 | 341 | $l->setmetadata("WMS_INCLUDE_ITEMS","all"); |
| 273 | 342 | $l->setmetadata("WFS_INCLUDE_ITEMS","all"); |
| 274 | - if(file_exists($locaplic."/temas/miniaturas/".$t.".map.mini.png")){ | |
| 275 | - $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$t.".map.mini.png"; | |
| 343 | + $l->setmetadata("ows_srs",$listaepsg); | |
| 344 | + $l->setmetadata("ows_title",$l->getmetadata("TEMA")); | |
| 345 | + $l->set("status",MS_OFF); | |
| 346 | + $layers[] = $l->name; | |
| 347 | + if(file_exists($locaplic."/temas/miniaturas/".$tx.".map.mini.png")){ | |
| 348 | + $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$tx.".map.mini.png"; | |
| 276 | 349 | $l->setmetadata("wms_attribution_logourl_format","image/png"); |
| 277 | 350 | $l->setmetadata("wms_attribution_logourl_height","50"); |
| 278 | 351 | $l->setmetadata("wms_attribution_logourl_width","50"); |
| ... | ... | @@ -291,176 +364,120 @@ if ($tipo == "" || $tipo == "metadados"){ |
| 291 | 364 | $extensao = $extensaoMap; |
| 292 | 365 | } |
| 293 | 366 | $l->setmetadata("wms_extent",$extensao); |
| 294 | - if (!empty($postgis_mapa)){ | |
| 295 | - if ($l->connectiontype == MS_POSTGIS){ | |
| 296 | - $lcon = $l->connection; | |
| 297 | - if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | |
| 298 | - // | |
| 299 | - //o metadata CONEXAOORIGINAL guarda o valor original para posterior substituição | |
| 300 | - // | |
| 301 | - if(($lcon == " ") || ($lcon == "")){ | |
| 302 | - $l->set("connection",$postgis_mapa); | |
| 303 | - $l->setmetadata("CONEXAOORIGINAL",$lcon); | |
| 304 | - } | |
| 305 | - else{ | |
| 306 | - $l->set("connection",$postgis_mapa[$lcon]); | |
| 307 | - $l->setmetadata("CONEXAOORIGINAL",$lcon); | |
| 308 | - } | |
| 309 | - } | |
| 310 | - } | |
| 311 | - } | |
| 312 | - autoClasses($l,$oMap); | |
| 313 | - ms_newLayerObj($oMap, $l); | |
| 314 | - //$req->setParameter("LAYERS", "mundo"); | |
| 315 | 367 | } |
| 368 | + $req->setParameter("LAYERS", implode(",",$layers)); | |
| 369 | + $req->setParameter("STYLES", ""); | |
| 370 | + //r_dump($req);exit; | |
| 316 | 371 | } |
| 317 | 372 | } |
| 318 | - if($extensao == ".php"){ | |
| 319 | - include_once($locaplic."/temas/".$tx.".php"); | |
| 320 | - eval($tx."(\$oMap);"); | |
| 321 | - } | |
| 322 | - if($extensao == ".gvp"){ | |
| 323 | - include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); | |
| 324 | - $gm = new gvsig2mapfile($locaplic."/temas/".$tx.".gvp"); | |
| 325 | - $gvsigview = $gm->getViewsNames(); | |
| 326 | - foreach($gvsigview as $gv){ | |
| 327 | - $dataView = $gm->getViewData($gv); | |
| 328 | - $oMap = $gm->addLayers($oMap,$gv,$dataView["layerNames"]); | |
| 329 | - } | |
| 330 | - $numlayers = $oMap->numlayers; | |
| 331 | - $layers = array(); | |
| 332 | - //$layers[] = "default"; | |
| 333 | - for ($i=0;$i < $numlayers;$i++){ | |
| 334 | - $l = $oMap->getlayer($i); | |
| 335 | - $l->setmetadata("gml_include_items","all"); | |
| 336 | - $l->set("dump",MS_TRUE); | |
| 337 | - $l->setmetadata("WMS_INCLUDE_ITEMS","all"); | |
| 338 | - $l->setmetadata("WFS_INCLUDE_ITEMS","all"); | |
| 339 | - $l->setmetadata("ows_srs",$listaepsg); | |
| 340 | - $l->setmetadata("ows_title",$l->getmetadata("TEMA")); | |
| 341 | - $l->set("status",MS_OFF); | |
| 342 | - $layers[] = $l->name; | |
| 343 | - if(file_exists($locaplic."/temas/miniaturas/".$tx.".map.mini.png")){ | |
| 344 | - $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$tx.".map.mini.png"; | |
| 345 | - $l->setmetadata("wms_attribution_logourl_format","image/png"); | |
| 346 | - $l->setmetadata("wms_attribution_logourl_height","50"); | |
| 347 | - $l->setmetadata("wms_attribution_logourl_width","50"); | |
| 348 | - $l->setmetadata("wms_attribution_logourl_href",$mini); | |
| 349 | - } | |
| 350 | - if($l->type == MS_LAYER_RASTER && $l->numclasses > 0){ | |
| 351 | - $c = $l->getclass(0); | |
| 352 | - if($c->name == "") | |
| 353 | - { | |
| 354 | - $c->name = " "; | |
| 355 | - } | |
| 356 | - } | |
| 357 | - //inclui extensao geografica | |
| 358 | - $extensao = $l->getmetadata("EXTENSAO"); | |
| 359 | - if($extensao == ""){ | |
| 360 | - $extensao = $extensaoMap; | |
| 361 | - } | |
| 362 | - $l->setmetadata("wms_extent",$extensao); | |
| 363 | - } | |
| 364 | - $req->setParameter("LAYERS", implode(",",$layers)); | |
| 365 | - $req->setParameter("STYLES", ""); | |
| 366 | - //r_dump($req);exit; | |
| 367 | - } | |
| 368 | 373 | } |
| 369 | -} | |
| 370 | -else{ | |
| 371 | - $conta = 0; | |
| 372 | - $int = explode(",",$intervalo); | |
| 373 | - $codigosTema = array(); | |
| 374 | - if(empty($perfil)){ | |
| 375 | - $perfil = ""; | |
| 376 | - } | |
| 377 | - include("classesphp/classe_menutemas.php"); | |
| 378 | - $m = new Menutemas("",$perfil,$locaplic,$urli3geo); | |
| 379 | - $menus = $m->pegaListaDeMenus(); | |
| 380 | - foreach ($menus as $menu){ | |
| 381 | - $grupos = $m->pegaListaDeGrupos($menu["idmenu"],$listasistemas="nao",$listasgrupos="sim"); | |
| 382 | - foreach($grupos as $grupo){ | |
| 383 | - if(strtolower($grupo["ogc"]) == "sim"){ | |
| 384 | - foreach($grupo["subgrupos"] as $sgrupo){ | |
| 385 | - if(strtolower($sgrupo["ogc"]) == "sim"){ | |
| 386 | - $temas = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
| 387 | - foreach($temas as $tema){ | |
| 388 | - if(strtolower($tema["ogc"]) == "sim"){ | |
| 389 | - $codigosTema[] = array("tema"=>$tema["tid"],"fonte"=>$tema["link"]); | |
| 374 | + else{ | |
| 375 | + $conta = 0; | |
| 376 | + $int = explode(",",$intervalo); | |
| 377 | + $codigosTema = array(); | |
| 378 | + if(empty($perfil)){ | |
| 379 | + $perfil = ""; | |
| 380 | + } | |
| 381 | + include("classesphp/classe_menutemas.php"); | |
| 382 | + $m = new Menutemas("",$perfil,$locaplic,$urli3geo); | |
| 383 | + $menus = $m->pegaListaDeMenus(); | |
| 384 | + foreach ($menus as $menu){ | |
| 385 | + $grupos = $m->pegaListaDeGrupos($menu["idmenu"],$listasistemas="nao",$listasgrupos="sim"); | |
| 386 | + foreach($grupos as $grupo){ | |
| 387 | + if(strtolower($grupo["ogc"]) == "sim"){ | |
| 388 | + foreach($grupo["subgrupos"] as $sgrupo){ | |
| 389 | + if(strtolower($sgrupo["ogc"]) == "sim"){ | |
| 390 | + $temas = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]); | |
| 391 | + foreach($temas as $tema){ | |
| 392 | + if(strtolower($tema["ogc"]) == "sim"){ | |
| 393 | + $codigosTema[] = array("tema"=>$tema["tid"],"fonte"=>$tema["link"]); | |
| 394 | + } | |
| 390 | 395 | } |
| 391 | 396 | } |
| 392 | 397 | } |
| 393 | 398 | } |
| 394 | 399 | } |
| 395 | 400 | } |
| 396 | - } | |
| 397 | - //echo "<pre>"; | |
| 398 | - //var_dump($codigosTema); | |
| 399 | - //exit; | |
| 400 | - foreach($codigosTema as $c){ | |
| 401 | - $codigoTema = $c["tema"]; | |
| 402 | - if(file_exists($locaplic."/temas/".$codigoTema.".map")){ | |
| 403 | - if (@ms_newMapobj($locaplic."/temas/".$codigoTema.".map")){ | |
| 404 | - $nmap = ms_newMapobj($locaplic."/temas/".$codigoTema.".map"); | |
| 405 | - $nmap->setmetadata("ows_enable_request","*"); | |
| 406 | - $ts = $nmap->getalllayernames(); | |
| 407 | - if (count($ts) == 1){ | |
| 408 | - foreach ($ts as $t){ | |
| 409 | - if ($oMap->getlayerbyname($t) == ""){ | |
| 410 | - $conta++; | |
| 411 | - if (($conta >= $int[0]) && ($conta <= $int[1])){ | |
| 412 | - $l = $nmap->getlayerbyname($t); | |
| 413 | - $extensao = $l->getmetadata("EXTENSAO"); | |
| 414 | - if($extensao == "") | |
| 415 | - { | |
| 416 | - $extensao = $extensaoMap; | |
| 417 | - } | |
| 418 | - $l->setmetadata("wms_extent",$extensao); | |
| 401 | + //echo "<pre>"; | |
| 402 | + //var_dump($codigosTema); | |
| 403 | + //exit; | |
| 404 | + foreach($codigosTema as $c){ | |
| 405 | + $codigoTema = $c["tema"]; | |
| 406 | + if(file_exists($locaplic."/temas/".$codigoTema.".map")){ | |
| 407 | + if (@ms_newMapobj($locaplic."/temas/".$codigoTema.".map")){ | |
| 408 | + $nmap = ms_newMapobj($locaplic."/temas/".$codigoTema.".map"); | |
| 409 | + $nmap->setmetadata("ows_enable_request","*"); | |
| 410 | + $ts = $nmap->getalllayernames(); | |
| 411 | + if (count($ts) == 1){ | |
| 412 | + foreach ($ts as $t){ | |
| 413 | + if ($oMap->getlayerbyname($t) == ""){ | |
| 414 | + $conta++; | |
| 415 | + if (($conta >= $int[0]) && ($conta <= $int[1])){ | |
| 416 | + $l = $nmap->getlayerbyname($t); | |
| 417 | + $extensao = $l->getmetadata("EXTENSAO"); | |
| 418 | + if($extensao == "") | |
| 419 | + { | |
| 420 | + $extensao = $extensaoMap; | |
| 421 | + } | |
| 422 | + $l->setmetadata("wms_extent",$extensao); | |
| 419 | 423 | |
| 420 | - $l->setmetadata("ows_title",pegaNome($l)); | |
| 421 | - $l->setmetadata("ows_srs",$listaepsg); | |
| 422 | - $l->set("status",MS_OFF); | |
| 423 | - $l->setmetadata("gml_include_items","all"); | |
| 424 | - $l->set("dump",MS_TRUE); | |
| 425 | - $l->setmetadata("WMS_INCLUDE_ITEMS","all"); | |
| 426 | - $l->setmetadata("WFS_INCLUDE_ITEMS","all"); | |
| 424 | + $l->setmetadata("ows_title",pegaNome($l)); | |
| 425 | + $l->setmetadata("ows_srs",$listaepsg); | |
| 426 | + $l->set("status",MS_OFF); | |
| 427 | + $l->setmetadata("gml_include_items","all"); | |
| 428 | + $l->set("dump",MS_TRUE); | |
| 429 | + $l->setmetadata("WMS_INCLUDE_ITEMS","all"); | |
| 430 | + $l->setmetadata("WFS_INCLUDE_ITEMS","all"); | |
| 427 | 431 | |
| 428 | - $l->setmetadata("ows_metadataurl_href",$c["fonte"]); | |
| 429 | - $l->setmetadata("ows_metadataurl_type","TC211"); | |
| 430 | - $l->setmetadata("ows_metadataurl_format","text/html"); | |
| 431 | - if(file_exists($locaplic."/temas/miniaturas/".$t.".map.mini.png")){ | |
| 432 | - $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$t.".map.mini.png"; | |
| 433 | - $l->setmetadata("wms_attribution_logourl_format","image/png"); | |
| 434 | - $l->setmetadata("wms_attribution_logourl_height","50"); | |
| 435 | - $l->setmetadata("wms_attribution_logourl_width","50"); | |
| 436 | - $l->setmetadata("wms_attribution_logourl_href",$mini); | |
| 432 | + $l->setmetadata("ows_metadataurl_href",$c["fonte"]); | |
| 433 | + $l->setmetadata("ows_metadataurl_type","TC211"); | |
| 434 | + $l->setmetadata("ows_metadataurl_format","text/html"); | |
| 435 | + if(file_exists($locaplic."/temas/miniaturas/".$t.".map.mini.png")){ | |
| 436 | + $mini = $proto.$server.dirname($_SERVER['PHP_SELF'])."/temas/miniaturas/".$t.".map.mini.png"; | |
| 437 | + $l->setmetadata("wms_attribution_logourl_format","image/png"); | |
| 438 | + $l->setmetadata("wms_attribution_logourl_height","50"); | |
| 439 | + $l->setmetadata("wms_attribution_logourl_width","50"); | |
| 440 | + $l->setmetadata("wms_attribution_logourl_href",$mini); | |
| 441 | + } | |
| 442 | + ms_newLayerObj($oMap, $l); | |
| 437 | 443 | } |
| 438 | - ms_newLayerObj($oMap, $l); | |
| 439 | 444 | } |
| 440 | 445 | } |
| 441 | 446 | } |
| 442 | 447 | } |
| 443 | - } | |
| 444 | - else{ | |
| 445 | - echo "Erro no arquivo ".$locaplic."/temas/".$codigoTema.".map <br>"; | |
| 446 | - $error = ms_GetErrorObj(); | |
| 447 | - while($error && $error->code != MS_NOERR){ | |
| 448 | - printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message); | |
| 449 | - $error = $error->next(); | |
| 448 | + else{ | |
| 449 | + echo "Erro no arquivo ".$locaplic."/temas/".$codigoTema.".map <br>"; | |
| 450 | + $error = ms_GetErrorObj(); | |
| 451 | + while($error && $error->code != MS_NOERR){ | |
| 452 | + printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message); | |
| 453 | + $error = $error->next(); | |
| 454 | + } | |
| 450 | 455 | } |
| 451 | 456 | } |
| 452 | - } | |
| 457 | + } | |
| 453 | 458 | } |
| 459 | + $oMap->setSymbolSet($locaplic."/symbols/".basename($oMap->symbolsetfilename)); | |
| 460 | + $oMap->setFontSet($locaplic."/symbols/".basename($oMap->fontsetfilename)); | |
| 461 | + $oMap->save($nomeMapfileTmp); | |
| 454 | 462 | } |
| 455 | 463 | if($cache == true){ |
| 456 | 464 | |
| 465 | +} | |
| 466 | + | |
| 467 | +// | |
| 468 | +//altera os caminhos das imagens | |
| 469 | +// | |
| 470 | +if((isset($legenda)) && (strtolower($legenda) == "sim")){ | |
| 471 | + $leg = $oMap->legend; | |
| 472 | + $leg->set("status",MS_EMBED); | |
| 473 | + $cache = false; | |
| 457 | 474 | } |
| 475 | + | |
| 458 | 476 | ms_ioinstallstdouttobuffer(); |
| 459 | 477 | |
| 460 | 478 | $oMap->owsdispatch($req); |
| 461 | 479 | $contenttype = ms_iostripstdoutbuffercontenttype(); |
| 462 | -if(strtolower($request) == "getcapabilities") | |
| 463 | -{ | |
| 480 | +if(strtolower($request) == "getcapabilities"){ | |
| 464 | 481 | header('Content-Disposition: attachment; filename=getcapabilities.xml'); |
| 465 | 482 | } |
| 466 | 483 | //header("Content-type: application/xml"); | ... | ... |