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 | 105 | $fundo = str_replace(","," ",$fundo); |
| 106 | 106 | $fundo = explode(" ",$fundo); |
| 107 | 107 | } |
| 108 | + | |
| 108 | 109 | // |
| 109 | 110 | //define quais os layers que comporão o mapa |
| 110 | 111 | // |
| 111 | 112 | if(isset($temas)){ |
| 112 | - $layers = array(); | |
| 113 | 113 | $objOpenLayers = array(); |
| 114 | 114 | } |
| 115 | 115 | if($temas != "") |
| ... | ... | @@ -124,22 +124,43 @@ if($temas != "") |
| 124 | 124 | $visiveis = strtolower($visiveis); |
| 125 | 125 | $visiveis = explode(",",$visiveis); |
| 126 | 126 | } |
| 127 | - $layers = array(); | |
| 128 | 127 | $objOpenLayers = array(); |
| 129 | 128 | if(isset($servidor) && $servidor != "../ogc.php"){ |
| 130 | 129 | $layers = $temas; |
| 131 | 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 | 136 | else{ |
| 136 | 137 | foreach($temas as $tema){ |
| 138 | + $nomeMap = ""; | |
| 137 | 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 | 165 | $ebase = "false"; |
| 145 | 166 | if(isset($fundo) && in_array($tema,$fundo)) |
| ... | ... | @@ -147,11 +168,10 @@ if($temas != "") |
| 147 | 168 | $visivel = "false"; |
| 148 | 169 | if(in_array($tema,$visiveis)) |
| 149 | 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 | 173 | else |
| 153 | 174 | {echo $tema." não foi encontrado.<br>";} |
| 154 | - $layers = array(); | |
| 155 | 175 | } |
| 156 | 176 | } |
| 157 | 177 | } |
| ... | ... | @@ -162,7 +182,7 @@ Mashup OpenLayers |
| 162 | 182 | Parâmetros: |
| 163 | 183 | kml - lista de endereços (url) de um arquivos kml que serão adicionados ao mapa. Separado por ',' |
| 164 | 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 | 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 | 187 | numzoomlevels - número de níveis de zoom, default=6 |
| 168 | 188 | maxextent - extensão geográfica máxima do mapa (xmin,ymin,xmax,ymax) |
| ... | ... | @@ -360,7 +380,7 @@ else |
| 360 | 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 | 384 | i3GEO.editorOL.inicia(); |
| 365 | 385 | </script> |
| 366 | 386 | </body> | ... | ... |
ogc.php
| ... | ... | @@ -35,7 +35,7 @@ lista - se for igual a "temas", mostra uma lista dos temas disponíveis |
| 35 | 35 | |
| 36 | 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 | 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 | 52 | |
| 53 | 53 | ogc.php?tema=bioma |
| 54 | 54 | |
| 55 | +ogc.php?tema=/var/www/i3geo/aplicmap/geral1debianv6.map&layers=mundo | |
| 56 | + | |
| 55 | 57 | ogc.php?intervalo=0,50 |
| 56 | 58 | */ |
| 57 | 59 | // |
| ... | ... | @@ -198,7 +200,8 @@ if(!isset($tema)){ |
| 198 | 200 | if ($tipo == "" || $tipo == "metadados") |
| 199 | 201 | { |
| 200 | 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 | 205 | $temai3geo = true; |
| 203 | 206 | if(file_exists($_GET["tema"])){ |
| 204 | 207 | $nmap = ms_newMapobj($_GET["tema"]); |
| ... | ... | @@ -216,12 +219,19 @@ if ($tipo == "" || $tipo == "metadados") |
| 216 | 219 | $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); |
| 217 | 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 | 227 | foreach ($ts as $t) |
| 221 | 228 | { |
| 222 | 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 | 236 | $l->setmetadata("ows_title",pegaNome($l)); |
| 227 | 237 | $l->setmetadata("ows_srs",$listaepsg); |
| ... | ... | @@ -408,8 +418,9 @@ function ogc_imprimeAjuda() |
| 408 | 418 | echo "Para escolher um tema, utilize:<br>"; |
| 409 | 419 | echo "ogc.php?lista=temas - para listar os temas disponíveis<br>"; |
| 410 | 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 | 424 | echo "Utilize o parametro &intervalo=0,20 para definir o número de temas desejado na função getcapabilities."; |
| 414 | 425 | } |
| 415 | 426 | function ogc_imprimeListaDeTemas() | ... | ... |