Commit e1232b4e5b149bdac2cad2bd39c9e83206713d00
1 parent
457febad
Exists in
master
and in
7 other branches
Inclusão da função "salvar" que permite listar as geometrias selecionadas e cham…
…ar uma função para salvar os dados.
Showing
4 changed files
with
97 additions
and
28 deletions
Show diff stats
mashups/openlayers.css
| @@ -89,6 +89,12 @@ background-position:-406px 0; | @@ -89,6 +89,12 @@ background-position:-406px 0; | ||
| 89 | background-position:-406px -28px; | 89 | background-position:-406px -28px; |
| 90 | } | 90 | } |
| 91 | 91 | ||
| 92 | +.olControlEditingToolbar .salvaItemInactive { | ||
| 93 | +background-position:-435px 0; | ||
| 94 | +} | ||
| 95 | +.olControlEditingToolbar .salvaItemActive { | ||
| 96 | +background-position:-435px -28px; | ||
| 97 | +} | ||
| 92 | 98 | ||
| 93 | 99 | ||
| 94 | .olControlEditingToolbar { | 100 | .olControlEditingToolbar { |
mashups/openlayers.js.php
| @@ -9,6 +9,7 @@ if (app==='N'){navn=true;}else{navm=true;} | @@ -9,6 +9,7 @@ if (app==='N'){navn=true;}else{navm=true;} | ||
| 9 | OpenLayers.ImgPath = "../pacotes/openlayers/img/" | 9 | OpenLayers.ImgPath = "../pacotes/openlayers/img/" |
| 10 | OpenLayers.Lang.setCode("pt-BR"); | 10 | OpenLayers.Lang.setCode("pt-BR"); |
| 11 | i3GEOOL = { | 11 | i3GEOOL = { |
| 12 | + nomeFuncaoSalvar: "i3GEOOL.testeSalvar()", | ||
| 12 | ol_mma: new OpenLayers.Layer.WMS( | 13 | ol_mma: new OpenLayers.Layer.WMS( |
| 13 | "Base cartográfica", | 14 | "Base cartográfica", |
| 14 | "http://mapas.mma.gov.br/cgi-bin/mapserv?map=/opt/www/html/webservices/baseraster.map&", | 15 | "http://mapas.mma.gov.br/cgi-bin/mapserv?map=/opt/www/html/webservices/baseraster.map&", |
| @@ -24,7 +25,7 @@ i3GEOOL = { | @@ -24,7 +25,7 @@ i3GEOOL = { | ||
| 24 | "http://t1.hypercube.telascience.org/cgi-bin/landsat7", | 25 | "http://t1.hypercube.telascience.org/cgi-bin/landsat7", |
| 25 | {layers: "landsat7"} | 26 | {layers: "landsat7"} |
| 26 | ), | 27 | ), |
| 27 | - layergrafico: new OpenLayers.Layer.Vector("Edição"), | 28 | + layergrafico: new OpenLayers.Layer.Vector("Edição",{displayInLayerSwitcher:true,visibility:true}), |
| 28 | layersIniciais: [<?php | 29 | layersIniciais: [<?php |
| 29 | if(isset($objOpenLayers) && $objOpenLayers != "") | 30 | if(isset($objOpenLayers) && $objOpenLayers != "") |
| 30 | {echo implode(",",$objOpenLayers);} | 31 | {echo implode(",",$objOpenLayers);} |
| @@ -54,9 +55,10 @@ i3GEOOL = { | @@ -54,9 +55,10 @@ i3GEOOL = { | ||
| 54 | i3GEOOL.mapa.addLayers(alayers); | 55 | i3GEOOL.mapa.addLayers(alayers); |
| 55 | if(i3GEOOL.layersIniciais != "") | 56 | if(i3GEOOL.layersIniciais != "") |
| 56 | {i3GEOOL.mapa.addLayers(i3GEOOL.layersIniciais);} | 57 | {i3GEOOL.mapa.addLayers(i3GEOOL.layersIniciais);} |
| 57 | - if(i3GEOOL.layergrafico != "") | ||
| 58 | - {i3GEOOL.mapa.addLayers(i3GEOOL.layergrafico);} | ||
| 59 | - | 58 | + |
| 59 | + if(i3GEOOL.layergrafico != ""){ | ||
| 60 | + i3GEOOL.mapa.addLayers([i3GEOOL.layergrafico]); | ||
| 61 | + } | ||
| 60 | 62 | ||
| 61 | i3GEOOL.mapa.zoomToMaxExtent(); | 63 | i3GEOOL.mapa.zoomToMaxExtent(); |
| 62 | i3GEOOL.coordenadas(); | 64 | i3GEOOL.coordenadas(); |
| @@ -287,6 +289,52 @@ i3GEOOL = { | @@ -287,6 +289,52 @@ i3GEOOL = { | ||
| 287 | } | 289 | } |
| 288 | }) | 290 | }) |
| 289 | }, | 291 | }, |
| 292 | + salvaGeometrias: function(){ | ||
| 293 | + try{ | ||
| 294 | + YAHOO.namespace("salvaGeometrias.container"); | ||
| 295 | + YAHOO.salvaGeometrias.container.panel = new YAHOO.widget.Panel("panelsalvageometrias", {zIndex:2000, iframe:false, width:"250px", visible:false, draggable:true, close:true } ); | ||
| 296 | + YAHOO.salvaGeometrias.container.panel.setHeader("Geometrias"); | ||
| 297 | + YAHOO.salvaGeometrias.container.panel.setBody(""); | ||
| 298 | + YAHOO.salvaGeometrias.container.panel.setFooter(""); | ||
| 299 | + YAHOO.salvaGeometrias.container.panel.render(document.body); | ||
| 300 | + YAHOO.salvaGeometrias.container.panel.center(); | ||
| 301 | + } | ||
| 302 | + catch(e){} | ||
| 303 | + YAHOO.salvaGeometrias.container.panel.show(); | ||
| 304 | + var geos = i3GEOOL.layergrafico.selectedFeatures; | ||
| 305 | + var n = geos.length; | ||
| 306 | + var ins = ""; | ||
| 307 | + if(n > 0){ | ||
| 308 | + ins += "<p class=paragrafo >Foram encontrada(s) "+n+" geometria(s) selecionada(s) </p>"; | ||
| 309 | + ins += "<p class=paragrafo ><a href='#' onclick='i3GEOOL.listaGeometriasSel()' > Listar geometrias</a> "; | ||
| 310 | + ins += "<a href='#' onclick='"+i3GEOOL.nomeFuncaoSalvar+"' >Salvar geometria(s)</a></p>"; | ||
| 311 | + YAHOO.salvaGeometrias.container.panel.setBody(ins); | ||
| 312 | + } | ||
| 313 | + else | ||
| 314 | + {alert("Selecione pelo menos um elemento");} | ||
| 315 | + }, | ||
| 316 | + listaGeometriasSel: function(){ | ||
| 317 | + var geos = i3GEOOL.layergrafico.selectedFeatures; | ||
| 318 | + var n = geos.length; | ||
| 319 | + var ins = ""; | ||
| 320 | + for(i=0;i<n;i++){ | ||
| 321 | + ins += "<b>Geometria: "+i+"</b><br>"+geos[i].geometry+"<br><br>"; | ||
| 322 | + ins += "<b>Atributos: "+i+"</b><br>"; | ||
| 323 | + var a = geos[i].attributes; | ||
| 324 | + var keys = []; | ||
| 325 | + for(key in a){ | ||
| 326 | + if(a[key]){ | ||
| 327 | + ins += key+" = "+a[key]+"<br>"; | ||
| 328 | + } | ||
| 329 | + } | ||
| 330 | + } | ||
| 331 | + var w = window.open(); | ||
| 332 | + w.document.write(ins); | ||
| 333 | + w.document.close(); | ||
| 334 | + }, | ||
| 335 | + testeSalvar: function(){ | ||
| 336 | + alert("Funcao nao disponivel. Defina o nome da funcao em i3GEOOL.nomeFuncaoSalvar "); | ||
| 337 | + }, | ||
| 290 | criaBotoes: function(botoes){ | 338 | criaBotoes: function(botoes){ |
| 291 | var sketchSymbolizers = { | 339 | var sketchSymbolizers = { |
| 292 | "Point": { | 340 | "Point": { |
| @@ -317,7 +365,6 @@ i3GEOOL = { | @@ -317,7 +365,6 @@ i3GEOOL = { | ||
| 317 | new OpenLayers.Rule({symbolizer: sketchSymbolizers}) | 365 | new OpenLayers.Rule({symbolizer: sketchSymbolizers}) |
| 318 | ]); | 366 | ]); |
| 319 | var styleMap = new OpenLayers.StyleMap({"default": style}); | 367 | var styleMap = new OpenLayers.StyleMap({"default": style}); |
| 320 | - | ||
| 321 | var adiciona = false; | 368 | var adiciona = false; |
| 322 | var controles = new Array(); | 369 | var controles = new Array(); |
| 323 | var panel = new OpenLayers.Control.Panel({ | 370 | var panel = new OpenLayers.Control.Panel({ |
| @@ -510,7 +557,16 @@ i3GEOOL = { | @@ -510,7 +557,16 @@ i3GEOOL = { | ||
| 510 | }); | 557 | }); |
| 511 | controles.push(button); | 558 | controles.push(button); |
| 512 | var adiciona = true; | 559 | var adiciona = true; |
| 513 | - } | 560 | + } |
| 561 | + if(botoes.salva==true){ | ||
| 562 | + var button = new OpenLayers.Control.Button({ | ||
| 563 | + displayClass: "salva", | ||
| 564 | + trigger: function(){i3GEOOL.salvaGeometrias();}, | ||
| 565 | + title: "Salvar" | ||
| 566 | + }); | ||
| 567 | + controles.push(button); | ||
| 568 | + var adiciona = true; | ||
| 569 | + } | ||
| 514 | // | 570 | // |
| 515 | //adiciona o painel ao mapa se alguma op��o foi inserida | 571 | //adiciona o painel ao mapa se alguma op��o foi inserida |
| 516 | // | 572 | // |
mashups/openlayers.php
| @@ -91,6 +91,7 @@ if(!isset($botoes)){ | @@ -91,6 +91,7 @@ if(!isset($botoes)){ | ||
| 91 | $objBotoes[] = "'edita':true"; | 91 | $objBotoes[] = "'edita':true"; |
| 92 | $objBotoes[] = "'apaga':true"; | 92 | $objBotoes[] = "'apaga':true"; |
| 93 | $objBotoes[] = "'procura':true"; | 93 | $objBotoes[] = "'procura':true"; |
| 94 | + $objBotoes[] = "'salva':true"; | ||
| 94 | } | 95 | } |
| 95 | else{ | 96 | else{ |
| 96 | $botoes = str_replace(" ",",",$botoes); | 97 | $botoes = str_replace(" ",",",$botoes); |
| @@ -122,36 +123,41 @@ else{ | @@ -122,36 +123,41 @@ else{ | ||
| 122 | {$objBotoes[] = "'apaga':true";} | 123 | {$objBotoes[] = "'apaga':true";} |
| 123 | if(in_array("procura",$botoes)) | 124 | if(in_array("procura",$botoes)) |
| 124 | {$objBotoes[] = "'procura':false";} | 125 | {$objBotoes[] = "'procura':false";} |
| 126 | + if(in_array("salva",$botoes)) | ||
| 127 | + {$objBotoes[] = "'salva':false";} | ||
| 125 | } | 128 | } |
| 126 | $botoes = "{".implode(",",$objBotoes)."}"; | 129 | $botoes = "{".implode(",",$objBotoes)."}"; |
| 127 | // | 130 | // |
| 128 | //define quais os layers que comporão o mapa | 131 | //define quais os layers que comporão o mapa |
| 129 | // | 132 | // |
| 130 | -$temas = str_replace(" ",",",$temas); | ||
| 131 | -$temas = strtolower($temas); | ||
| 132 | -$temas = explode(",",$temas); | ||
| 133 | -$layers = array(); | ||
| 134 | -$objOpenLayers = array(); | ||
| 135 | -if(isset($servidor) && $servidor != "../ogc.php"){ | ||
| 136 | - $layers = $temas; | ||
| 137 | - foreach($temas as $tema){ | ||
| 138 | - $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tema.'", "'.$servidor.'?tema='.$tema.'&",{layers:"'.$tema.'",transparent: "true", format: "image/png"},{isBaseLayer:false})'; | 133 | +if($temas != "") |
| 134 | +{ | ||
| 135 | + $temas = str_replace(" ",",",$temas); | ||
| 136 | + $temas = strtolower($temas); | ||
| 137 | + $temas = explode(",",$temas); | ||
| 138 | + $layers = array(); | ||
| 139 | + $objOpenLayers = array(); | ||
| 140 | + if(isset($servidor) && $servidor != "../ogc.php"){ | ||
| 141 | + $layers = $temas; | ||
| 142 | + foreach($temas as $tema){ | ||
| 143 | + $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tema.'", "'.$servidor.'?tema='.$tema.'&",{layers:"'.$tema.'",transparent: "true", format: "image/png"},{isBaseLayer:false})'; | ||
| 144 | + } | ||
| 139 | } | 145 | } |
| 140 | -} | ||
| 141 | -else{ | ||
| 142 | - foreach($temas as $tema){ | ||
| 143 | - if(file_exists("../temas/".$tema.".map")){ | ||
| 144 | - $maptemp = @ms_newMapObj("../temas/".$tema.".map"); | ||
| 145 | - for($i=0;$i<($maptemp->numlayers);++$i) | ||
| 146 | - { | ||
| 147 | - $layern = $maptemp->getLayer($i); | ||
| 148 | - $layers[] = $layern->name; | 146 | + else{ |
| 147 | + foreach($temas as $tema){ | ||
| 148 | + if(file_exists("../temas/".$tema.".map")){ | ||
| 149 | + $maptemp = @ms_newMapObj("../temas/".$tema.".map"); | ||
| 150 | + for($i=0;$i<($maptemp->numlayers);++$i) | ||
| 151 | + { | ||
| 152 | + $layern = $maptemp->getLayer($i); | ||
| 153 | + $layers[] = $layern->name; | ||
| 154 | + } | ||
| 155 | + $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.($layern->getmetadata("tema")).'", "../ogc.php?tema='.$tema.'&",{layers:"'.implode(",",$layers).'",transparent: "true", format: "image/png"},{isBaseLayer:false})'; | ||
| 149 | } | 156 | } |
| 150 | - $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.($layern->getmetadata("tema")).'", "../ogc.php?tema='.$tema.'&",{layers:"'.implode(",",$layers).'",transparent: "true", format: "image/png"},{isBaseLayer:false})'; | 157 | + else |
| 158 | + {echo $tema." não foi encontrado.<br>";} | ||
| 159 | + $layers = array(); | ||
| 151 | } | 160 | } |
| 152 | - else | ||
| 153 | - {echo $tema." não foi encontrado.<br>";} | ||
| 154 | - $layers = array(); | ||
| 155 | } | 161 | } |
| 156 | } | 162 | } |
| 157 | function ajuda(){ | 163 | function ajuda(){ |
| @@ -188,6 +194,7 @@ Parâmetros: | @@ -188,6 +194,7 @@ Parâmetros: | ||
| 188 | apaga | 194 | apaga |
| 189 | captura | 195 | captura |
| 190 | procura | 196 | procura |
| 197 | + salva | ||
| 191 | 198 | ||
| 192 | Para ver a lista de códigos de temas, que podem ser utilizados no parâmetro 'temas', acesse: | 199 | Para ver a lista de códigos de temas, que podem ser utilizados no parâmetro 'temas', acesse: |
| 193 | <a href='../ogc.php?lista=temas' >lista de temas</a>. Os códigos são mostrados em vermelho. | 200 | <a href='../ogc.php?lista=temas' >lista de temas</a>. Os códigos são mostrados em vermelho. |
mashups/openlayers.png