Commit c473211a4a3ad84a2afb9c9ebdb017c1e0f02c51

Authored by Edmar Moretti
1 parent 01688964

--no commit message

admin/admin.db
No preview for this file type
classesphp/mapa_openlayers.php
... ... @@ -147,7 +147,7 @@ if(!empty($_GET["request"])){
147 147 $qyfile = dirname($map_fileX)."/".$_GET["layer"].".php";
148 148 $qy = file_exists($qyfile);
149 149  
150   -if($_GET["REQUEST"] == "getfeatureinfo" || $_GET["REQUEST"] == "GetFeatureInfo" || strtolower($_GET["REQUEST"]) == "getfeature"){
  150 +if($_GET["REQUEST"] == "getlegendgraphic" || $_GET["REQUEST"] == "getfeatureinfo" || $_GET["REQUEST"] == "GetFeatureInfo" || strtolower($_GET["REQUEST"]) == "getfeature"){
151 151 $_GET["DESLIGACACHE"] = "sim";
152 152 }
153 153 else{
... ... @@ -228,6 +228,15 @@ if(!isset($_GET["telaR"])){//no caso de projecoes remotas, o mapfile nao e alter
228 228 }
229 229 }
230 230 }
  231 + if($_GET["REQUEST"] == "getlegendgraphic"){
  232 + $nclass = $l->numclasses;
  233 + for($ic=0;$ic<$nclass;$ic++){
  234 + $classe = $l->getclass($ic);
  235 + if($classe->title === ""){
  236 + $classe->title = $classe->name;
  237 + }
  238 + }
  239 + }
231 240 if($layerName == $_GET["layer"]){
232 241 if(strtolower($l->getmetadata("cache")) == "sim"){
233 242 $cache = true;
... ... @@ -251,7 +260,6 @@ if(!isset($_GET[&quot;telaR&quot;])){//no caso de projecoes remotas, o mapfile nao e alter
251 260 }
252 261 }
253 262 }
254   -
255 263 if (!function_exists('imagepng')){
256 264 $_GET["TIPOIMAGEM"] = "";
257 265 }
... ... @@ -259,7 +267,6 @@ if (!function_exists(&#39;imagepng&#39;)){
259 267 if($_GET["layer"] == ""){
260 268 $cache = true;
261 269 }
262   -
263 270 if(($_GET == false) || ($qy) || (strtolower($_GET["DESLIGACACHE"]) == "sim")){
264 271 $cache = false;
265 272 }
... ... @@ -282,7 +289,7 @@ if(isset($_GET[&quot;mapext&quot;])){
282 289 //
283 290 //qd a cahamda e para um WMS, redireciona para ogc.php
284 291 //
285   -if($_GET["REQUEST"] == "getfeatureinfo" || $_GET["REQUEST"] == "GetFeatureInfo" || $_GET["REQUEST"] == "getfeature"){
  292 +if($_GET["REQUEST"] == "getlegendgraphic" || $_GET["REQUEST"] == "getfeatureinfo" || $_GET["REQUEST"] == "GetFeatureInfo" || $_GET["REQUEST"] == "getfeature"){
286 293 $req = ms_newowsrequestobj();
287 294 if($_GET["BBOX"]){
288 295 $_GET["BBOX"] = str_replace(" ",",",$_GET["BBOX"]);
... ...
ferramentas/editorol/editorol.js
... ... @@ -152,11 +152,6 @@ i3GEO.editorOL =
152 152 var alayers = [], fundo = (i3GEO.editorOL.fundo).split(","), nfundo = fundo.length, ncontroles =
153 153 i3GEO.editorOL.controles.length, i, n, temp;
154 154  
155   - // TODO layerswitcher no OL3
156   - /*
157   - * if (i3GEO.editorOL.ativalayerswitcher === "false") { i3GEO.editorOL.ativalayerswitcher = false; } if
158   - * (i3GEO.editorOL.ativalayerswitcher === "true") { i3GEO.editorOL.ativalayerswitcher = true; }
159   - */
160 155 if (i3GEO.editorOL.ativarodadomouse === "false") {
161 156 i3GEO.editorOL.ativarodadomouse = false;
162 157 }
... ... @@ -577,59 +572,68 @@ i3GEO.editorOL =
577 572 i3GEO.editorOL.mapa.zoomToExtent(b);
578 573 },
579 574 mostraLegenda : function() {
580   - var layers = i3GEO.editorOL.layersLigados(), nlayers = layers.length, ins = "", i, icone = "", url, fers, f = "", fer = "";
  575 + var prop, layer, layers = i3GEO.editorOL.mapa.getLayers(), nlayers = layers.getLength(), ins = "", i, icone = "", url, f = "";
581 576 for (i = 0; i < nlayers; i++) {
582   - try {
583   - if (layers[i].get("isBaseLayer") === false) {
584   - url = layers[i].getFullRequestString({
585   - "request" : "getlegendgraphic"
586   - });
587   - //i3GEO.editorOL.mapa.getLayers().item(0).getSource().getUrls()[0]
588   - icone = "";
589   - if (i3GEO.editorOL.legendahtml === true) {
590   - // os parametros FORMAT e SERVICE sao inseridos de forma redundante para grantir
591   - // caso seja um TMS
592   - url = url.replace("image%2Fpng", "text/html") + "&FORMAT=text/html&SERVICE=WMS";
593   - // verifica se a camada veio de um plugin de classe_plugini3geo
594   - // e insere o icone se for necessario
595   - if (layers[i].options.plugini3geo) {
596   - if (layers[i].params.LAYERS) {
597   - // wms
598   - icone = i3GEO.pluginI3geo[layers[i].options.plugini3geo].iconeArvoreDeCamadas(layers[i].params.LAYERS);
599   - } else {
600   - // tms
601   - icone = i3GEO.pluginI3geo[layers[i].options.plugini3geo].iconeArvoreDeCamadas(layers[i].layers);
602   - }
  577 + layer = layers.item(i);
  578 + prop = layer.getProperties();
  579 + //monta a url para fazer a requisicao da legenda
  580 + //para os temas que nao sao baselayers
  581 + if(prop.source.getUrls){
  582 + url = prop.source.getUrls()[0];
  583 + url = url.replace("&cache=sim", "&DESLIGACACHE=sim");
  584 + url = url.replace("&Z=${z}&X=${x}&Y=${y}", "");
  585 + url = url.replace("Z=${z}&X=${x}&Y=${y}", "");
  586 + url += "&REQUEST=getlegendgraphic&service=wms&version=1.0.0";
  587 + if (i3GEO.Interface.openlayers.googleLike === true) {
  588 + url += "&SRS=EPSG:3857";
  589 + }
  590 + icone = "";
  591 + //TODO criar a legenda para uso no mashup
  592 + //caso do mashup
  593 + if (i3GEO.editorOL.legendahtml === true) {
  594 + // os parametros FORMAT e SERVICE sao inseridos de forma redundante para grantir
  595 + // caso seja um TMS
  596 + url = url.replace("image%2Fpng", "text/html") + "&FORMAT=text/html&SERVICE=WMS";
  597 + // verifica se a camada veio de um plugin de classe_plugini3geo
  598 + // e insere o icone se for necessario
  599 + /*
  600 + if (layers[i].options.plugini3geo) {
  601 + if (layers[i].params.LAYERS) {
  602 + // wms
  603 + icone = i3GEO.pluginI3geo[layers[i].options.plugini3geo].iconeArvoreDeCamadas(layers[i].params.LAYERS);
  604 + } else {
  605 + // tms
  606 + icone = i3GEO.pluginI3geo[layers[i].options.plugini3geo].iconeArvoreDeCamadas(layers[i].layers);
603 607 }
604   - //
605   - // verifica se a camada tem ferramentas parametrizadas
606   - // insere o icone
607   - //
608   - fers = layers[i].options.ferramentas;
609   - for (fer in fers) {
610   - if (i3GEO.configura.ferramentasLayers[fer]) {
611   - icone = i3GEO.configura.ferramentasLayers[fer].icone(layers[i]);
612   - }
  608 + }
  609 + //
  610 + // verifica se a camada tem ferramentas parametrizadas
  611 + // insere o icone
  612 + //
  613 + fers = layers[i].options.ferramentas;
  614 + for (fer in fers) {
  615 + if (i3GEO.configura.ferramentasLayers[fer]) {
  616 + icone = i3GEO.configura.ferramentasLayers[fer].icone(layers[i]);
613 617 }
614   - ins += icone + layers[i].name + "<br><div id=legendaL_" + i + " ></div><br>";
615   - // necessario pq nao e sincrono
616   - eval("var f = function(retorno){document.getElementById('legendaL_" + i
617   - + "').innerHTML = retorno.responseText;};");
618   - url = url.replace("LAYERS", "LAYER");
619   - var config = {
620   - method : "GET",
621   - url : url,
622   - callback : f
623   - };
624   - OpenLayers.Request.issue(config);
625   - } else {
626   - url = url.replace("LAYERS", "LAYER");
627   - url = url.replace("&Z=${z}&X=${x}&Y=${y}", "");
628   - url = url.replace("Z=${z}&X=${x}&Y=${y}", "");
629   - ins += layers[i].name + "<br><img src='" + url + "&SERVICE=wms' /><br>";
630 618 }
  619 + */
  620 + ins += icone + prop.name + "<br><div id=legendaL_" + i + " ></div><br>";
  621 + // necessario pq nao e sincrono
  622 + eval("var f = function(retorno){document.getElementById('legendaL_" + i
  623 + + "').innerHTML = retorno.responseText;};");
  624 + url = url.replace("LAYERS", "LAYER");
  625 + var config = {
  626 + method : "GET",
  627 + url : url,
  628 + callback : f
  629 + };
  630 + OpenLayers.Request.issue(config);
  631 + } else if (prop.isBaseLayer === false && prop.visible === true) {
  632 + //caso a legenda seja aberta dentro do i3Geo
  633 + url = url.replace("LAYERS", "LAYER");
  634 + url += "&FORMAT=image/png";
  635 + ins += prop.title + "<br><img src='" + url + "' /><br>";
631 636 }
632   - } catch (e) {
633 637 }
634 638 }
635 639 if (!document.getElementById("panellegendaeditorOL")) {
... ...