Commit 98095dc90ca73cf5010f3ed858c2118a004da911
1 parent
7178a511
Exists in
master
and in
7 other branches
#538
Showing
2 changed files
with
50 additions
and
19 deletions
Show diff stats
mashups/openlayers.php
| @@ -105,11 +105,11 @@ if(isset($fundo) && $fundo != ""){ | @@ -105,11 +105,11 @@ if(isset($fundo) && $fundo != ""){ | ||
| 105 | $fundo = str_replace(","," ",$fundo); | 105 | $fundo = str_replace(","," ",$fundo); |
| 106 | $fundo = explode(" ",$fundo); | 106 | $fundo = explode(" ",$fundo); |
| 107 | } | 107 | } |
| 108 | + | ||
| 108 | // | 109 | // |
| 109 | //define quais os layers que comporão o mapa | 110 | //define quais os layers que comporão o mapa |
| 110 | // | 111 | // |
| 111 | if(isset($temas)){ | 112 | if(isset($temas)){ |
| 112 | - $layers = array(); | ||
| 113 | $objOpenLayers = array(); | 113 | $objOpenLayers = array(); |
| 114 | } | 114 | } |
| 115 | if($temas != "") | 115 | if($temas != "") |
| @@ -124,22 +124,43 @@ if($temas != "") | @@ -124,22 +124,43 @@ if($temas != "") | ||
| 124 | $visiveis = strtolower($visiveis); | 124 | $visiveis = strtolower($visiveis); |
| 125 | $visiveis = explode(",",$visiveis); | 125 | $visiveis = explode(",",$visiveis); |
| 126 | } | 126 | } |
| 127 | - $layers = array(); | ||
| 128 | $objOpenLayers = array(); | 127 | $objOpenLayers = array(); |
| 129 | if(isset($servidor) && $servidor != "../ogc.php"){ | 128 | if(isset($servidor) && $servidor != "../ogc.php"){ |
| 130 | $layers = $temas; | 129 | $layers = $temas; |
| 131 | foreach($temas as $tema){ | 130 | foreach($temas as $tema){ |
| 132 | - $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tema.'", "'.$servidor.'?tema='.$tema.'&",{layers:"'.$tema.'",transparent: "true", format: "image/png"},{isBaseLayer:false})'; | 131 | + $nomeLayer = str_replace(".map","",basename($tema)); |
| 132 | + $nomeLayer = str_replace(".php","",$nomeLayer); | ||
| 133 | + $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tema.'", "'.$servidor.'?tema='.$tema.'&",{layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{isBaseLayer:false})'; | ||
| 133 | } | 134 | } |
| 134 | } | 135 | } |
| 135 | else{ | 136 | else{ |
| 136 | foreach($temas as $tema){ | 137 | foreach($temas as $tema){ |
| 138 | + $nomeMap = ""; | ||
| 137 | if(file_exists($locaplic."/temas/".$tema.".map")){ | 139 | if(file_exists($locaplic."/temas/".$tema.".map")){ |
| 138 | - $maptemp = @ms_newMapObj($locaplic."/temas/".$tema.".map"); | ||
| 139 | - for($i=0;$i<($maptemp->numlayers);++$i) | ||
| 140 | - { | ||
| 141 | - $layern = $maptemp->getLayer($i); | ||
| 142 | - $layers[] = $layern->name; | 140 | + $nomeMap = $locaplic."/temas/".$tema.".map"; |
| 141 | + } | ||
| 142 | + else{ | ||
| 143 | + if(file_exists($tema)){ | ||
| 144 | + $nomeMap = $tema; | ||
| 145 | + } | ||
| 146 | + } | ||
| 147 | + if($nomeMap != ""){ | ||
| 148 | + if(empty($layers)){ | ||
| 149 | + $layers = array(); | ||
| 150 | + $maptemp = @ms_newMapObj($nomeMap); | ||
| 151 | + for($i=0;$i<($maptemp->numlayers);++$i) { | ||
| 152 | + $layern = $maptemp->getLayer($i); | ||
| 153 | + $layers[] = $layern->name; | ||
| 154 | + } | ||
| 155 | + $nomeLayer = implode(",",$layers); | ||
| 156 | + $tituloLayer = $layern->getmetadata("tema"); | ||
| 157 | + } | ||
| 158 | + else{ | ||
| 159 | + $nomeLayer = str_replace(" ",",",$layers); | ||
| 160 | + $maptemp = @ms_newMapObj($nomeMap); | ||
| 161 | + $temp = explode(",",$layers); | ||
| 162 | + $layern = $maptemp->getLayerByName($temp[0]); | ||
| 163 | + $tituloLayer = $layern->getmetadata("tema"); | ||
| 143 | } | 164 | } |
| 144 | $ebase = "false"; | 165 | $ebase = "false"; |
| 145 | if(isset($fundo) && in_array($tema,$fundo)) | 166 | if(isset($fundo) && in_array($tema,$fundo)) |
| @@ -147,11 +168,10 @@ if($temas != "") | @@ -147,11 +168,10 @@ if($temas != "") | ||
| 147 | $visivel = "false"; | 168 | $visivel = "false"; |
| 148 | if(in_array($tema,$visiveis)) | 169 | if(in_array($tema,$visiveis)) |
| 149 | {$visivel = "true";} | 170 | {$visivel = "true";} |
| 150 | - $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.($layern->getmetadata("tema")).'", "../ogc.php?tema='.$tema.'&",{layers:"'.implode(",",$layers).'",transparent: "true", format: "image/png"},{singleTile:true,visibility:'.$visivel.',isBaseLayer:'.$ebase.'})'; | 171 | + $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tituloLayer.'", "../ogc.php?tema='.$tema.'&",{layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{singleTile:true,visibility:'.$visivel.',isBaseLayer:'.$ebase.'})'; |
| 151 | } | 172 | } |
| 152 | else | 173 | else |
| 153 | {echo $tema." não foi encontrado.<br>";} | 174 | {echo $tema." não foi encontrado.<br>";} |
| 154 | - $layers = array(); | ||
| 155 | } | 175 | } |
| 156 | } | 176 | } |
| 157 | } | 177 | } |
| @@ -162,7 +182,7 @@ Mashup OpenLayers | @@ -162,7 +182,7 @@ Mashup OpenLayers | ||
| 162 | Parâmetros: | 182 | Parâmetros: |
| 163 | kml - lista de endereços (url) de um arquivos kml que serão adicionados ao mapa. Separado por ',' | 183 | kml - lista de endereços (url) de um arquivos kml que serão adicionados ao mapa. Separado por ',' |
| 164 | servidor - por default é ../ogc.php o que força o uso do i3geo local. Esse é o programa que será utilizado em conjunto com a lista definida no parâmetro 'temas' | 184 | servidor - por default é ../ogc.php o que força o uso do i3geo local. Esse é o programa que será utilizado em conjunto com a lista definida no parâmetro 'temas' |
| 165 | - temas - lista com os temas (mapfiles) do i3Geo que serão incluídos no mapa | 185 | + temas - lista com os temas (mapfiles) do i3Geo que serão incluídos no mapa. Pode ser incluído um arquivo mapfile que esteja fora da pasta i3geo/temas. Nesse caso, deve-se definir o caminho completo do arquivo e também o parâmetro &layers |
| 166 | visiveis - lista de temas (mesmos nomes do parâmetro temas) que iniciarão como visíveis no mapa. Se não for definido, todos os temas serão visíveis. | 186 | visiveis - lista de temas (mesmos nomes do parâmetro temas) que iniciarão como visíveis no mapa. Se não for definido, todos os temas serão visíveis. |
| 167 | numzoomlevels - número de níveis de zoom, default=6 | 187 | numzoomlevels - número de níveis de zoom, default=6 |
| 168 | maxextent - extensão geográfica máxima do mapa (xmin,ymin,xmax,ymax) | 188 | maxextent - extensão geográfica máxima do mapa (xmin,ymin,xmax,ymax) |
| @@ -360,7 +380,7 @@ else | @@ -360,7 +380,7 @@ else | ||
| 360 | echo "i3GEO.editorOL.mapext = new OpenLayers.Bounds(".$mapext.");"; | 380 | echo "i3GEO.editorOL.mapext = new OpenLayers.Bounds(".$mapext.");"; |
| 361 | } | 381 | } |
| 362 | ?> | 382 | ?> |
| 363 | -i3GEO.editorOL.mapa = new OpenLayers.Map('i3geoMapa',{controls:[]}) | 383 | +i3GEO.editorOL.mapa = new OpenLayers.Map('i3geoMapa',{controls:[]}); |
| 364 | i3GEO.editorOL.inicia(); | 384 | i3GEO.editorOL.inicia(); |
| 365 | </script> | 385 | </script> |
| 366 | </body> | 386 | </body> |
ogc.php
| @@ -35,7 +35,7 @@ lista - se for igual a "temas", mostra uma lista dos temas disponíveis | @@ -35,7 +35,7 @@ lista - se for igual a "temas", mostra uma lista dos temas disponíveis | ||
| 35 | 35 | ||
| 36 | ajuda - se for definida na URL, mostra uma ajuda ao usuário | 36 | ajuda - se for definida na URL, mostra uma ajuda ao usuário |
| 37 | 37 | ||
| 38 | -tema - nome do tema do serviço. Se for definido, o web service conterá apenas o tema. | 38 | +tema - nome do tema do serviço. Se for definido, o web service conterá apenas esse tema. O tema é o nome do mapfile existente em i3geo/temas, mas pode ser especificado um mapfile existente em outra pasta. Nesse caso, deve-se especificar o caminho completo para o arquivo. |
| 39 | 39 | ||
| 40 | intervalo - valor inicial e final com o número de temas que serão mostrados no serviço | 40 | intervalo - valor inicial e final com o número de temas que serão mostrados no serviço |
| 41 | 41 | ||
| @@ -52,6 +52,8 @@ ogc.php?lista=temas | @@ -52,6 +52,8 @@ ogc.php?lista=temas | ||
| 52 | 52 | ||
| 53 | ogc.php?tema=bioma | 53 | ogc.php?tema=bioma |
| 54 | 54 | ||
| 55 | +ogc.php?tema=/var/www/i3geo/aplicmap/geral1debianv6.map&layers=mundo | ||
| 56 | + | ||
| 55 | ogc.php?intervalo=0,50 | 57 | ogc.php?intervalo=0,50 |
| 56 | */ | 58 | */ |
| 57 | // | 59 | // |
| @@ -198,7 +200,8 @@ if(!isset($tema)){ | @@ -198,7 +200,8 @@ if(!isset($tema)){ | ||
| 198 | if ($tipo == "" || $tipo == "metadados") | 200 | if ($tipo == "" || $tipo == "metadados") |
| 199 | { | 201 | { |
| 200 | $tema = explode(" ",$tema); | 202 | $tema = explode(" ",$tema); |
| 201 | - //para o caso do tema ser um arquivo mapfile existente em uma pasta | 203 | + //para o caso do tema ser um arquivo mapfile existente em uma pasta qualquer |
| 204 | + //$temai3geo = true indica que o layer será buscado na pasta i3geo/temas | ||
| 202 | $temai3geo = true; | 205 | $temai3geo = true; |
| 203 | if(file_exists($_GET["tema"])){ | 206 | if(file_exists($_GET["tema"])){ |
| 204 | $nmap = ms_newMapobj($_GET["tema"]); | 207 | $nmap = ms_newMapobj($_GET["tema"]); |
| @@ -216,12 +219,19 @@ if ($tipo == "" || $tipo == "metadados") | @@ -216,12 +219,19 @@ if ($tipo == "" || $tipo == "metadados") | ||
| 216 | $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); | 219 | $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); |
| 217 | $nmap->setmetadata("ows_enable_request","*"); | 220 | $nmap->setmetadata("ows_enable_request","*"); |
| 218 | } | 221 | } |
| 219 | - $ts = $nmap->getalllayernames(); | 222 | + if($temai3geo == false || empty($layers)) |
| 223 | + {$ts = $nmap->getalllayernames();} | ||
| 224 | + else{ | ||
| 225 | + $ts = explode(",",str_replace(" ",",",$layers)); | ||
| 226 | + } | ||
| 220 | foreach ($ts as $t) | 227 | foreach ($ts as $t) |
| 221 | { | 228 | { |
| 222 | $l = $nmap->getlayerbyname($t); | 229 | $l = $nmap->getlayerbyname($t); |
| 223 | - if($cache == true && strtolower($l->getmetadata("cache")) == "sim" && $tipo == "" && count($tema) == 1){ | ||
| 224 | - carregaCacheImagem($_GET["BBOX"],$tx,$_GET["WIDTH"],$_GET["HEIGHT"],$cachedir); | 230 | + //necessário pq o mapfile pode ter todos os layers como default |
| 231 | + if($temai3geo == false) | ||
| 232 | + {$l->set("status",MS_OFF);} | ||
| 233 | + if($cache == true && strtolower($l->getmetadata('cache')) == 'sim' && $tipo == '' && count($tema) == 1){ | ||
| 234 | + carregaCacheImagem($_GET['BBOX'],$tx,$_GET['WIDTH'],$_GET['HEIGHT'],$cachedir); | ||
| 225 | } | 235 | } |
| 226 | $l->setmetadata("ows_title",pegaNome($l)); | 236 | $l->setmetadata("ows_title",pegaNome($l)); |
| 227 | $l->setmetadata("ows_srs",$listaepsg); | 237 | $l->setmetadata("ows_srs",$listaepsg); |
| @@ -408,8 +418,9 @@ function ogc_imprimeAjuda() | @@ -408,8 +418,9 @@ function ogc_imprimeAjuda() | ||
| 408 | echo "Para escolher um tema, utilize:<br>"; | 418 | echo "Para escolher um tema, utilize:<br>"; |
| 409 | echo "ogc.php?lista=temas - para listar os temas disponíveis<br>"; | 419 | echo "ogc.php?lista=temas - para listar os temas disponíveis<br>"; |
| 410 | echo "Para usar esse web service, além dos parâmetros normais, vc deverá incluir o parâmetro &tema=,<br>"; | 420 | echo "Para usar esse web service, além dos parâmetros normais, vc deverá incluir o parâmetro &tema=,<br>"; |
| 411 | - echo "ou seja,http://[host]/i3geo/ogc.php?tema=[código do tema]<br><br>"; | ||
| 412 | - echo "Utilize o sistema de administração do i3Geo para configurar quais os temas podem ser utilizados."; | 421 | + echo "ou seja,http://[host]/i3geo/ogc.php?tema=[código do tema]<br>"; |
| 422 | + echo "no lugar do código pode ser especificado também um arquivo mapfile qualquer. Nesse caso, deve ser digitado o caminho completo no servidor<br><br>"; | ||
| 423 | + echo "Utilize o sistema de administração do i3Geo para configurar quais os temas da pasta i3geo/temas podem ser utilizados."; | ||
| 413 | echo "Utilize o parametro &intervalo=0,20 para definir o número de temas desejado na função getcapabilities."; | 424 | echo "Utilize o parametro &intervalo=0,20 para definir o número de temas desejado na função getcapabilities."; |
| 414 | } | 425 | } |
| 415 | function ogc_imprimeListaDeTemas() | 426 | function ogc_imprimeListaDeTemas() |