Commit 8b17f02908fc2d44c44c0f515015e729ab301473

Authored by Edmar Moretti
1 parent c0623121

Reengenharia do mashup OpenLayers para permitir o uso do javascript dentro do i3geo

mashups/openlayers.js.php
@@ -21,7 +21,6 @@ i3GEOOL = { @@ -21,7 +21,6 @@ i3GEOOL = {
21 {layers: 'basic'} 21 {layers: 'basic'}
22 ), 22 ),
23 jpl_wms: new OpenLayers.Layer.WMS( "NASA Global Mosaic", "http://wms.jpl.nasa.gov/wms.cgi", {layers: "modis,global_mosaic"},{singleTile:true}), 23 jpl_wms: new OpenLayers.Layer.WMS( "NASA Global Mosaic", "http://wms.jpl.nasa.gov/wms.cgi", {layers: "modis,global_mosaic"},{singleTile:true}),
24 -  
25 osm_wms: new OpenLayers.Layer.WMS( 24 osm_wms: new OpenLayers.Layer.WMS(
26 "Open Street Map", 25 "Open Street Map",
27 "http://full.wms.geofabrik.de/std/demo_key?", 26 "http://full.wms.geofabrik.de/std/demo_key?",
@@ -36,45 +35,63 @@ i3GEOOL = { @@ -36,45 +35,63 @@ i3GEOOL = {
36 "Estados do Brasil", 35 "Estados do Brasil",
37 "http://mapas.mma.gov.br/i3geo/ogc.php?tema=estadosl&", 36 "http://mapas.mma.gov.br/i3geo/ogc.php?tema=estadosl&",
38 {layers: "estadosl",FORMAT:'image/png'} 37 {layers: "estadosl",FORMAT:'image/png'}
39 - ), 38 + ),
  39 + fundo: "ol_mma,ol_wms,jpl_wms,osm_wms,top_wms,est_wms",
40 layergrafico: new OpenLayers.Layer.Vector("Edição",{displayInLayerSwitcher:true,visibility:true}), 40 layergrafico: new OpenLayers.Layer.Vector("Edição",{displayInLayerSwitcher:true,visibility:true}),
41 - layersIniciais: [<?php  
42 - if(isset($objOpenLayers) && $objOpenLayers != "")  
43 - {echo implode(",",$objOpenLayers);}  
44 - else  
45 - {echo "''";}  
46 - ?>],  
47 - botoes: <?php echo $botoes; ?>,  
48 - pontos: [<?php  
49 - if(isset($pontos)){  
50 - $pontos = str_replace(" ",",",$pontos);  
51 - echo $pontos;  
52 - }  
53 - ?>],  
54 - marca: "<?php  
55 - if(isset($marca)){echo $marca;}  
56 - else  
57 - {echo "../pacotes/openlayers/img/marker-gold.png";}  
58 - ?>",  
59 - mapa: new OpenLayers.Map('i3geoMapa', {  
60 - controls: [  
61 - <?php echo implode(",",$objControles); ?>  
62 - ],  
63 - numZoomLevels: <?php echo $numzoomlevels;?>,  
64 - maxExtent: new OpenLayers.Bounds(<?php echo $maxextent;?>)  
65 - }), 41 + layersIniciais: [],
  42 + botoes: {
  43 + 'pan':true,
  44 + 'zoombox':true,
  45 + 'zoomtot':true,
  46 + 'legenda':true,
  47 + 'distancia':true,
  48 + 'area':true,
  49 + 'identifica':true,
  50 + 'linha':true,
  51 + 'ponto':true,
  52 + 'poligono':true,
  53 + 'edita':true,
  54 + 'apaga':true,
  55 + 'procura':true,
  56 + 'salva':true
  57 + },
  58 + pontos: [],
  59 + marca: "../pacotes/openlayers/img/marker-gold.png",
  60 + controles: [
  61 + new OpenLayers.Control.Navigation(),
  62 + new OpenLayers.Control.PanZoomBar(),
  63 + new OpenLayers.Control.LayerSwitcher({'ascending':false}),
  64 + new OpenLayers.Control.ScaleLine(),
  65 + new OpenLayers.Control.MousePosition({'separator':' '}),
  66 + new OpenLayers.Control.OverviewMap(),
  67 + new OpenLayers.Control.KeyboardDefaults()
  68 + ],
  69 + numzoom: 12,
  70 + maxext: new OpenLayers.Bounds(-76.5125927,-39.3925675209,-29.5851853,9.49014852081),
  71 + mapa: "",
66 inicia: function(){ 72 inicia: function(){
67 - var alayers = [];  
68 - <?php  
69 - foreach($fundo as $f){  
70 - echo "try{";  
71 - echo "i3GEOOL.".$f.".transitionEffect = 'resize';";  
72 - echo "i3GEOOL.".$f.".setVisibility(false);";  
73 - echo "alayers.push(i3GEOOL.".$f.");";  
74 - echo "}catch(e){}"; 73 + var alayers = [],
  74 + fundo = (i3GEOOL.fundo).split(","),
  75 + nfundo = fundo.length,
  76 + ncontroles = i3GEOOL.controles.length,
  77 + i;
  78 + if(i3GEOOL.mapa === "")
  79 + {alert("O objeto i3GEOOL.mapa precisa ser criado com new OpenLayers.Map()");return;}
  80 + i3GEOOL.mapa.setOptions({
  81 + numZoomLevels: i3GEOOL.numzoom,
  82 + maxExtent: i3GEOOL.maxext
  83 + });
  84 + for(i=0;i<ncontroles;i++){
  85 + i3GEOOL.mapa.addControl(i3GEOOL.controles[i]);
  86 + }
  87 + for(i=nfundo-1;i>=0;i--){
  88 + try{
  89 + eval("i3GEOOL."+fundo[i]+".transitionEffect = 'resize';");
  90 + eval("i3GEOOL."+fundo[i]+".setVisibility(false);");
  91 + eval("alayers.push(i3GEOOL."+fundo[i]+");");
  92 + }
  93 + catch(e){alayers[0].setVisibility(true);}
75 } 94 }
76 - echo "try{alayers[0].setVisibility(true);}catch(e){}";  
77 - ?>  
78 i3GEOOL.mapa.addLayers(alayers); 95 i3GEOOL.mapa.addLayers(alayers);
79 96
80 if(i3GEOOL.layersIniciais != ""){ 97 if(i3GEOOL.layersIniciais != ""){
mashups/openlayers.php
@@ -13,30 +13,10 @@ if(!isset($largura)) @@ -13,30 +13,10 @@ if(!isset($largura))
13 if(!isset($altura)) 13 if(!isset($altura))
14 {$altura = 400;} 14 {$altura = 400;}
15 // 15 //
16 -//define o nível de zoom  
17 -//  
18 -if(!isset ($numzoomlevels))  
19 -{$numzoomlevels = "6";}  
20 -//  
21 -//define a extensão geográfica que será aplicada  
22 -//  
23 -if(!isset($maxextent))  
24 -{$maxextent = "-76.5125927 -39.3925675209 -29.5851853 9.49014852081";}  
25 -$maxextent = str_replace(" ",",",$maxextent);  
26 -//  
27 //define quais controles serão mostrados no mapa 16 //define quais controles serão mostrados no mapa
28 // 17 //
29 $objControles = array(); 18 $objControles = array();
30 -if(!isset($controles)){  
31 - $objControles[] = "new OpenLayers.Control.Navigation()";  
32 - $objControles[] = "new OpenLayers.Control.PanZoomBar()";  
33 - $objControles[] = "new OpenLayers.Control.LayerSwitcher({'ascending':false})";  
34 - $objControles[] = "new OpenLayers.Control.ScaleLine()";  
35 - $objControles[] = "new OpenLayers.Control.MousePosition({'separator':' '})";  
36 - $objControles[] = "new OpenLayers.Control.OverviewMap()";  
37 - $objControles[] = "new OpenLayers.Control.KeyboardDefaults()";  
38 -}  
39 -else{ 19 +if(isset($controles)){
40 $controles = str_replace(" ",",",$controles); 20 $controles = str_replace(" ",",",$controles);
41 $controles = strtolower($controles); 21 $controles = strtolower($controles);
42 $controles = explode(",",$controles); 22 $controles = explode(",",$controles);
@@ -59,23 +39,7 @@ else{ @@ -59,23 +39,7 @@ else{
59 //define quais botoes serão mostrados no mapa 39 //define quais botoes serão mostrados no mapa
60 // 40 //
61 $objBotoes = array(); 41 $objBotoes = array();
62 -if(!isset($botoes)){  
63 - $objBotoes[] = "'pan':true";  
64 - $objBotoes[] = "'zoombox':true";  
65 - $objBotoes[] = "'zoomtot':true";  
66 - $objBotoes[] = "'legenda':true";  
67 - $objBotoes[] = "'distancia':true";  
68 - $objBotoes[] = "'area':true";  
69 - $objBotoes[] = "'identifica':true";  
70 - $objBotoes[] = "'linha':true";  
71 - $objBotoes[] = "'ponto':true";  
72 - $objBotoes[] = "'poligono':true";  
73 - $objBotoes[] = "'edita':true";  
74 - $objBotoes[] = "'apaga':true";  
75 - $objBotoes[] = "'procura':true";  
76 - $objBotoes[] = "'salva':true";  
77 -}  
78 -else{ 42 +if(isset($botoes)){
79 $botoes = str_replace(" ",",",$botoes); 43 $botoes = str_replace(" ",",",$botoes);
80 $botoes = strtolower($botoes); 44 $botoes = strtolower($botoes);
81 $botoes = explode(",",$botoes); 45 $botoes = explode(",",$botoes);
@@ -107,8 +71,9 @@ else{ @@ -107,8 +71,9 @@ else{
107 {$objBotoes[] = "'procura':false";} 71 {$objBotoes[] = "'procura':false";}
108 if(in_array("salva",$botoes)) 72 if(in_array("salva",$botoes))
109 {$objBotoes[] = "'salva':false";} 73 {$objBotoes[] = "'salva':false";}
  74 + $botoes = "{".implode(",",$objBotoes)."}";
110 } 75 }
111 -$botoes = "{".implode(",",$objBotoes)."}"; 76 +
112 // 77 //
113 //define a lista de layers do tipo baselayers 78 //define a lista de layers do tipo baselayers
114 //$fundo é um array com a lista dos nomes possíveis ou passados pela url 79 //$fundo é um array com a lista dos nomes possíveis ou passados pela url
@@ -118,9 +83,6 @@ if(isset($fundo) &amp;&amp; $fundo != &quot;&quot;){ @@ -118,9 +83,6 @@ if(isset($fundo) &amp;&amp; $fundo != &quot;&quot;){
118 $fundo = str_replace(","," ",$fundo); 83 $fundo = str_replace(","," ",$fundo);
119 $fundo = explode(" ",$fundo); 84 $fundo = explode(" ",$fundo);
120 } 85 }
121 -else{  
122 - $fundo = array("est_wms","ol_mma","ol_wms","jpl_wms","osm_wms","top_wms");  
123 -}  
124 // 86 //
125 //define quais os layers que comporão o mapa 87 //define quais os layers que comporão o mapa
126 // 88 //
@@ -147,10 +109,8 @@ if($temas != &quot;&quot;) @@ -147,10 +109,8 @@ if($temas != &quot;&quot;)
147 $layers[] = $layern->name; 109 $layers[] = $layern->name;
148 } 110 }
149 $ebase = "false"; 111 $ebase = "false";
150 - if(in_array($tema,$fundo))  
151 - {  
152 - $ebase = "true";  
153 - } 112 + if(isset($fundo) && in_array($tema,$fundo))
  113 + {$ebase = "true";}
154 $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.($layern->getmetadata("tema")).'", "../ogc.php?tema='.$tema.'&",{layers:"'.implode(",",$layers).'",transparent: "true", format: "image/png"},{isBaseLayer:'.$ebase.'})'; 114 $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.($layern->getmetadata("tema")).'", "../ogc.php?tema='.$tema.'&",{layers:"'.implode(",",$layers).'",transparent: "true", format: "image/png"},{isBaseLayer:'.$ebase.'})';
155 } 115 }
156 else 116 else
@@ -231,6 +191,7 @@ Parâmetros: @@ -231,6 +191,7 @@ Parâmetros:
231 <script type="text/javascript" src="../pacotes/yui270/build/container/container-min.js"></script> 191 <script type="text/javascript" src="../pacotes/yui270/build/container/container-min.js"></script>
232 <script type="text/javascript" src="../classesjs/compactados/classe_calculo_compacto.js"></script> 192 <script type="text/javascript" src="../classesjs/compactados/classe_calculo_compacto.js"></script>
233 <script type="text/javascript" src="../pacotes/openlayers/OpenLayers.js.php"></script> 193 <script type="text/javascript" src="../pacotes/openlayers/OpenLayers.js.php"></script>
  194 +<script type="text/javascript" src="openlayers.js.php"></script>
234 <link rel="stylesheet" href="theme/default/style.css" type="text/css" /> 195 <link rel="stylesheet" href="theme/default/style.css" type="text/css" />
235 <link rel="stylesheet" href="openlayers.css" type="text/css" /> 196 <link rel="stylesheet" href="openlayers.css" type="text/css" />
236 </head> 197 </head>
@@ -238,7 +199,44 @@ Parâmetros: @@ -238,7 +199,44 @@ Parâmetros:
238 <div id=i3geoMapa style="width:<?php echo $largura;?>px;height:<?php echo $altura;?>px;"></div> 199 <div id=i3geoMapa style="width:<?php echo $largura;?>px;height:<?php echo $altura;?>px;"></div>
239 <div id=i3geoSelTemaAtivo style="height:15em;z-index:3000" class=" yui-skin-sam"></div> 200 <div id=i3geoSelTemaAtivo style="height:15em;z-index:3000" class=" yui-skin-sam"></div>
240 <script> 201 <script>
241 -<?php include("openlayers.js.php");?> 202 +i3GEOOL.layersIniciais = [<?php
  203 + if(isset($objOpenLayers) && $objOpenLayers != "")
  204 + {echo implode(",",$objOpenLayers);}
  205 + else
  206 + {echo "''";}
  207 +?>];
  208 +<?php if(isset($botoes)){
  209 + echo "i3GEOOL.botoes = $botoes ;";
  210 +}
  211 +?>
  212 +i3GEOOL.pontos = [<?php
  213 + if(isset($pontos)){
  214 + $pontos = str_replace(" ",",",$pontos);
  215 + echo $pontos;
  216 + }
  217 +?>];
  218 +i3GEOOL.marca = "<?php
  219 + if(isset($marca)){echo $marca;}
  220 + else
  221 + {echo "../pacotes/openlayers/img/marker-gold.png";}
  222 +?>";
  223 +<?php if(isset($fundo)){
  224 + echo "i3GEOOL.fundo = '".implode(",",$fundo)."';";
  225 +}
  226 +?>
  227 +<?php if(isset($controles)){
  228 + echo "i3GEOOL.controle = [".implode(",",$objControles)."];";
  229 +}
  230 +?>
  231 +<?php if(isset($numzoomlevels)){
  232 + echo "i3GEOOL.numzoom = ".$numzoomlevels.";";
  233 +}
  234 +?>
  235 +<?php if(isset($maxextent)){
  236 + echo "i3GEOOL.maxext = new OpenLayers.Bounds(".$maxextent.");";
  237 +}
  238 +?>
  239 +i3GEOOL.mapa = new OpenLayers.Map('i3geoMapa',{controls:[]})
242 i3GEOOL.inicia(); 240 i3GEOOL.inicia();
243 </script> 241 </script>
244 </body> 242 </body>