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() |