From ec317260720ca7f7f27115512da9ba367965d914 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Mon, 6 Jul 2015 15:09:25 +0000 Subject: [PATCH] Correções para versão OL3 --- admin/admin.db | Bin 286720 -> 0 bytes admin/php/editormapfile.php | 1 + classesjs/compactajs.php | 4 ++++ classesjs/teste.txt | 0 ferramentas/congelamapa/openlayers3.php | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ferramentas/geolocal/dicionario.js | 4 ++-- ferramentas/geolocal/index.js | 467 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ferramentas/geolocal/template_mst.html | 2 +- ferramentas/selecao/index.js | 11 +++++++---- interface/openlayersdebug.htm | 17 +++++------------ js/compactajs.php | 4 ++++ js/interface.js | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------- js/mapa.js | 2 +- mashups/teste.txt | 0 temas/_lbiomashp.map | 4 ++-- 15 files changed, 455 insertions(+), 277 deletions(-) create mode 100755 classesjs/teste.txt create mode 100644 ferramentas/congelamapa/openlayers3.php create mode 100755 mashups/teste.txt diff --git a/admin/admin.db b/admin/admin.db index ebc51b5..45d0a1c 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/php/editormapfile.php b/admin/php/editormapfile.php index 7ea6d83..d85ee58 100644 --- a/admin/php/editormapfile.php +++ b/admin/php/editormapfile.php @@ -83,6 +83,7 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){ if(verificaOperacaoSessao("admin/html/editormapfile") == false){ retornaJSON("Vc nao pode realizar essa operacao.");exit; } + unlink("$locaplic/temas/teste.txt"); } error_reporting(0); //define o parametro de output do resultado da funcao diff --git a/classesjs/compactajs.php b/classesjs/compactajs.php index a469e52..db0ffc3 100644 --- a/classesjs/compactajs.php +++ b/classesjs/compactajs.php @@ -59,24 +59,28 @@ $f = @fopen("../classesjs/teste.txt",w); if (!file_exists("../classesjs/teste.txt")){ echo "Não foi possivel escrever em classesjs";exit; } +unlink("../classesjs/teste.txt"); unlink("../css/teste.txt"); $f = @fopen("../css/teste.txt",w); @fclose($f); if (!file_exists("../css/teste.txt")){ echo "
Não foi possivel escrever em css";exit; } +unlink("../css/teste.txt"); unlink("../pacotes/teste.txt"); $f = @fopen("../pacotes/teste.txt",w); @fclose($f); if (!file_exists("../pacotes/teste.txt")){ echo "
Não foi possivel escrever em pacotes";exit; } +unlink("../pacotes/teste.txt"); unlink("../mashups/teste.txt"); $f = @fopen("../mashups/teste.txt",w); @fclose($f); if (!file_exists("../mashups/teste.txt")){ echo "
Não foi possivel escrever em mashups";exit; } +unlink("../mashups/teste.txt"); echo "
";
 //
 //compacta os arquivos do i3geo
diff --git a/classesjs/teste.txt b/classesjs/teste.txt
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/classesjs/teste.txt
diff --git a/ferramentas/congelamapa/openlayers3.php b/ferramentas/congelamapa/openlayers3.php
new file mode 100644
index 0000000..2cb90a8
--- /dev/null
+++ b/ferramentas/congelamapa/openlayers3.php
@@ -0,0 +1,97 @@
+setProjection("+proj=longlat +ellps=GRS67 +no_defs");
+$numlayers = $mapa->numlayers;
+$layers = array();
+for($i = 0;$i < $numlayers;++$i){
+	$l = $mapa->getLayer($i);
+	$l->setmetadata("permiteogc","sim");
+	if($l->status != MS_DEFAULT){
+		$l->set("status",MS_DELETE);
+	}
+	else{
+		$layers[] = $l->name;
+	}
+}
+//$legenda = $mapa->legend;
+//$legenda->set("status",MS_EMBED);
+$mapa->save($novo_mapfile);
+$layers = implode(",",$layers);
+$mapext = str_replace(" ",",",strip_tags($_GET["ext"]));
+$urllayer = "../../ogc.php?tema=".$novo_mapfile;
+?>
+
+
+
+
+
+
+
+
+
+	
+ + \ No newline at end of file diff --git a/ferramentas/geolocal/dicionario.js b/ferramentas/geolocal/dicionario.js index 6a80a12..a47d3c6 100755 --- a/ferramentas/geolocal/dicionario.js +++ b/ferramentas/geolocal/dicionario.js @@ -20,8 +20,8 @@ i3GEOF.geolocal.dicionario = { en : "", es : "" } ], - 'exclui' : [ { - pt : "Exclui", + 'shp' : [ { + pt : "Cria camada com os pontos", en : "", es : "" } ], diff --git a/ferramentas/geolocal/index.js b/ferramentas/geolocal/index.js index 711bbb2..cccfd32 100755 --- a/ferramentas/geolocal/index.js +++ b/ferramentas/geolocal/index.js @@ -33,26 +33,27 @@ GNU junto com este programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ -if(typeof(i3GEOF) === 'undefined'){ +if (typeof (i3GEOF) === 'undefined') { var i3GEOF = {}; } /* -Classe: i3GEOF.geolocal + * Classe: i3GEOF.geolocal */ -i3GEOF.geolocal = { +i3GEOF.geolocal = + { /* - Variavel: posicoes - - Objetos capturados + * Variavel: posicoes + * + * Objetos capturados */ - posicoes: [], - tempo: null, + posicoes : [], + tempo : null, /* - Variavel: aguarde - - Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. + * Variavel: aguarde + * + * Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. */ - aguarde: "", + aguarde : "", /** * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php */ @@ -66,124 +67,121 @@ i3GEOF.geolocal = { return dicionario; }, /* - Function: inicia - - Inicia a ferramenta. É chamado por criaJanelaFlutuante - - Parametro: - - iddiv {String} - id do div que receberá o conteudo HTML da ferramenta + * Function: inicia + * + * Inicia a ferramenta. É chamado por criaJanelaFlutuante + * + * Parametro: + * + * iddiv {String} - id do div que receberá o conteudo HTML da ferramenta */ - inicia: function(iddiv){ - var ics,n,i; - //se nao permitir a localizacao, retorna uma mensagem - if(navigator.geolocation){ + inicia : function(iddiv) { + var ics, n, i; + // se nao permitir a localizacao, retorna uma mensagem + if (navigator.geolocation) { $i(iddiv).innerHTML = i3GEOF.geolocal.html(); $i("i3GEOFgeolocalFormTempo").onsubmit = i3GEOF.geolocal.capturaTempo; ics = $i(iddiv).getElementsByTagName("button"); n = ics.length; - for(i=0;i "; - janela = i3GEO.janela.cria( - "290", - "220", - "", - "", - "", - titulo, - "i3GEOF.geolocal", - false, - "hd", - cabecalho, - minimiza - ); + // cria a janela flutuante + titulo = + "
" + $trad( + 'localizaUsuario', + i3GEOF.geolocal.dicionario) + + "
"; + janela = i3GEO.janela.cria("290", "220", "", "", "", titulo, "i3GEOF.geolocal", false, "hd", cabecalho, minimiza); divid = janela[2].id; $i("i3GEOF.geolocal_corpo").style.backgroundColor = "white"; $i("i3GEOF.geolocal_corpo").style.textAlign = "left"; i3GEOF.geolocal.aguarde = $i("i3GEOF.geolocal_imagemCabecalho").style; i3GEOF.geolocal.inicia(divid); - temp = function(){ + temp = function() { i3GEOF.geolocal[i3GEO.Interface.ATUAL].removeLayer(); i3GEOF.geolocal.paraTempo(); }; YAHOO.util.Event.addListener(janela[0].close, "click", temp); }, - capturaCoordenada: function(){ - if(i3GEOF.geolocal.aguarde.visibility == "visible"){ + capturaCoordenada : function() { + if (i3GEOF.geolocal.aguarde.visibility == "visible") { return; } i3GEOF.geolocal.aguarde.visibility = "visible"; - var retorno = function(position){ + var retorno = function(position) { i3GEOF.geolocal.posicoes.push(position); - var n = parseInt($i("i3GEOFgeolocalMaximo").value,10); - if(n > 0 && i3GEOF.geolocal.posicoes.length > n){ - i3GEOF.geolocal.posicoes.splice(0,(i3GEOF.geolocal.posicoes.length - n)); + var n = parseInt($i("i3GEOFgeolocalMaximo").value, 10); + if (n > 0 && i3GEOF.geolocal.posicoes.length > n) { + i3GEOF.geolocal.posicoes.splice(0, (i3GEOF.geolocal.posicoes.length - n)); } i3GEOF.geolocal.listaCoord(); }; - navigator.geolocation.getCurrentPosition(retorno,i3GEOF.geolocal.erro); + navigator.geolocation.getCurrentPosition(retorno, i3GEOF.geolocal.erro); }, - capturaTempo: function(){ - var tempo = parseInt($i("i3GEOFgeolocalTempo").value,10); - if(tempo){ - if(tempo > 0){ - i3GEOF.geolocal.tempo = setInterval("i3GEOF.geolocal.capturaCoordenada()",tempo*1000); - } - else{ + capturaTempo : function() { + var tempo = parseInt($i("i3GEOFgeolocalTempo").value, 10); + if (tempo) { + if (tempo > 0) { + i3GEOF.geolocal.tempo = setInterval("i3GEOF.geolocal.capturaCoordenada()", tempo * 1000); + } else { clearInterval(i3GEOF.geolocal.tempo); } } return false; }, - paraTempo: function(){ - if($i("i3GEOFgeolocalTempo")){ + paraTempo : function() { + if ($i("i3GEOFgeolocalTempo")) { $i("i3GEOFgeolocalTempo").value = 0; } clearInterval(i3GEOF.geolocal.tempo); }, - erro: function(error){ + erro : function(error) { i3GEOF.geolocal.paraTempo(); var erro = ""; - switch(error.code){ + switch (error.code) { case error.PERMISSION_DENIED: erro = "User denied the request for Geolocation."; break; @@ -200,100 +198,193 @@ i3GEOF.geolocal = { i3GEO.janela.tempoMsg(erro); i3GEOF.geolocal.aguarde.visibility = "hidden"; }, - listaCoord: function(position){ - var ps = i3GEOF.geolocal.posicoes, - n = ps.length, - i, - ins = "", - res = ["LatitudeLongitude"]; - for(i=(n-1);i>=0;i--){ - ins = "" + - '' + - '' + - '' + - "" + ps[i].coords.latitude + "" + ps[i].coords.longitude + ""; + listaCoord : function(position) { + var ps = i3GEOF.geolocal.posicoes, n = ps.length, i, ins = "", res = [ + "LatitudeLongitude" + ]; + for (i = (n - 1); i >= 0; i--) { + ins = + "" + '' + + '' + + '' + + "" + + ps[i].coords.latitude + + "" + + ps[i].coords.longitude + + ""; res.push(ins); } $i("i3GEOFgeolocalListaDePontos").innerHTML = "" + res.join("") + "
"; $i("i3GEOFgeolocalNcoord").innerHTML = n; - i3GEOF.geolocal[i3GEO.Interface.ATUAL].desenha(); + if (i3GEO.Interface["ATUAL"] === "openlayers") { + if (typeof OpenLayers == "undefined") { + api = "ol3"; + } else { + api = "openlayers"; + } + } else { + api = i3GEO.Interface["ATUAL"]; + } + i3GEOF.geolocal[api].desenha(); i3GEOF.geolocal.aguarde.visibility = "hidden"; }, - limpa: function(){ + limpa : function() { i3GEOF.geolocal.posicoes = []; - i3GEOF.geolocal[i3GEO.Interface.ATUAL].removeLayer(); + if (i3GEO.Interface["ATUAL"] === "openlayers") { + if (typeof OpenLayers == "undefined") { + api = "ol3"; + } else { + api = "openlayers"; + } + } else { + api = i3GEO.Interface["ATUAL"]; + } + i3GEOF.geolocal[api].removeLayer(); i3GEOF.geolocal.listaCoord(); }, - excluiLinha: function(i){ - i3GEOF.geolocal.posicoes.splice(i,1); + excluiLinha : function(i) { + i3GEOF.geolocal.posicoes.splice(i, 1); i3GEOF.geolocal.listaCoord(); }, - panLinha: function(i){ + panLinha : function(i) { var posicao = i3GEOF.geolocal.posicoes[i]; - //@FIXME o pan nao funciona no OSM - if(posicao != undefined && i3GEO.Interface.openlayers.googleLike != true){ - i3GEO.navega.pan2ponto((posicao.coords.longitude),(posicao.coords.latitude)); + // @FIXME o pan nao funciona no OSM + if (posicao != undefined && i3GEO.Interface.openlayers.googleLike != true) { + i3GEO.navega.pan2ponto((posicao.coords.longitude), (posicao.coords.latitude)); } }, - info: function(i){ - i3GEO.mapa.dialogo.cliqueIdentificaDefault(i3GEOF.geolocal.posicoes[i].coords.longitude,i3GEOF.geolocal.posicoes[i].coords.latitude); + info : function(i) { + i3GEO.mapa.dialogo.cliqueIdentificaDefault( + i3GEOF.geolocal.posicoes[i].coords.longitude, + i3GEOF.geolocal.posicoes[i].coords.latitude); }, - mostraxy: function(i){ - if(i3GEO.Interface.ATUAL === "googleearth") - {return;} + mostraxy : function(i) { + if (i3GEO.Interface.ATUAL === "googleearth") { + return; + } var posicao = i3GEOF.geolocal.posicoes[i]; - i3GEO.desenho.addPin(posicao.coords.longitude,posicao.coords.latitude,"","",i3GEO.configura.locaplic+'/imagens/google/confluence.png',"pingeolocal"); + i3GEO.desenho.addPin( + posicao.coords.longitude, + posicao.coords.latitude, + "", + "", + i3GEO.configura.locaplic + '/imagens/google/confluence.png', + "pingeolocal"); }, - escondexy: function(){ + escondexy : function() { i3GEO.desenho.removePins("pingeolocal"); }, - posicoes2pontos: function(){ - var ps = i3GEOF.geolocal.posicoes, - n = ps.length, - i, - pontos = []; - for(i=0;i < n;i++){ + posicoes2pontos : function() { + var ps = i3GEOF.geolocal.posicoes, n = ps.length, i, pontos = []; + for (i = 0; i < n; i++) { pontos.push((ps[i].coords.longitude) + " " + ps[i].coords.latitude); } return pontos; }, - criaShp: function(){ - function ativanovotema(retorno){ - var pontos = i3GEOF.geolocal.posicoes2pontos(), - temaNovo = retorno.data, - converteParaLinha = function(){ - var cp = new cpaint(); - cp.set_response_type("JSON"); - var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=sphPT2shp¶=linha&tema="+temaNovo; - cp.call(p,"sphPT2shp",i3GEO.atualiza); - }; - var p = window.parent.i3GEO.configura.locaplic+"/ferramentas/inserexy2/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=insereSHP&tema="+retorno.data; + criaShp : function() { + function ativanovotema(retorno) { + var pontos = i3GEOF.geolocal.posicoes2pontos(), temaNovo = retorno.data, converteParaLinha = + function() { + var cp = new cpaint(); + cp.set_response_type("JSON"); + var p = + i3GEO.configura.locaplic + "/classesphp/mapa_controle.php?g_sid=" + + i3GEO.configura.sid + + "&funcao=sphPT2shp¶=linha&tema=" + + temaNovo; + cp.call(p, "sphPT2shp", i3GEO.atualiza); + }; + var p = + window.parent.i3GEO.configura.locaplic + "/ferramentas/inserexy2/exec.php?g_sid=" + + i3GEO.configura.sid + + "&funcao=insereSHP&tema=" + + retorno.data; var cp = new cpaint(); cp.set_response_type("JSON"); cp.set_transfer_mode('POST'); - cp.call(p,"insereSHP",converteParaLinha,"&xy="+pontos.join(" ")); + cp.call(p, "insereSHP", converteParaLinha, "&xy=" + pontos.join(" ")); } var cp = new cpaint(); cp.set_response_type("JSON"); cp.set_transfer_mode("POST"); - var p = window.parent.i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid; - cp.call(p,"criaSHPvazio",ativanovotema,"&funcao=criashpvazio"); + var p = window.parent.i3GEO.configura.locaplic + "/classesphp/mapa_controle.php?g_sid=" + i3GEO.configura.sid; + cp.call(p, "criaSHPvazio", ativanovotema, "&funcao=criashpvazio"); }, - openlayers: { - desenha: function(){ + ol3 : { + desenha : function() { + if (!i3GEO.desenho.layergrafico) { + i3GEO.desenho.openlayers.criaLayerGrafico(); + } + i3GEOF.geolocal.ol3.removeFiguras(); + var ps = i3GEOF.geolocal.posicoes, n = ps.length, i, feature; + for (i = 0; i < n; i++) { + feature = new ol.Feature({ + geometry : new ol.geom.Point([ + ps[i].coords.longitude, ps[i].coords.latitude + ]), + origem : 'i3GEOFgeolocal' + }); + i3GEO.desenho.layergrafico.addFeature(feature); + // linha + if (ps[i + 1]) { + feature = new ol.Feature({ + geometry : new ol.geom.LineString([ + [ + ps[i].coords.longitude, ps[i].coords.latitude + ], [ + ps[i + 1].coords.longitude, ps[i + 1].coords.latitude + ] + ]), + origem : 'i3GEOFgeolocal' + }); + i3GEO.desenho.layergrafico.addFeature(feature); + } + } + }, + removeFiguras : function() { + var features, n, f, i, remover = []; + features = i3GEO.desenho.layergrafico.getFeatures(); + n = features.getLength(); + for (i = 0; i < n; i++) { + f = features.item(i); + if (f.getProperties().origem === "i3GEOFgeolocal") { + remover.push(f); + } + } + for (r in remover) { + i3GEO.desenho.layergrafico.removeFeature(remover[r]); + } + }, + removeLayer : function() { + + } + }, + openlayers : { + desenha : function() { // allow testing of specific renderers via "?renderer=Canvas", etc - var renderer = OpenLayers.Util.getParameters(window.location.href).renderer, - layer_style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']), - style_blue = OpenLayers.Util.extend({}, layer_style), - vectorLayer, - ps = i3GEOF.geolocal.posicoes, - n = ps.length, - i, - point, - pointFeature = [], - pointList = []; + var renderer = OpenLayers.Util.getParameters(window.location.href).renderer, layer_style = + OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']), style_blue = + OpenLayers.Util.extend({}, layer_style), vectorLayer, ps = i3GEOF.geolocal.posicoes, n = ps.length, i, point, pointFeature = + [], pointList = []; - renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers; + renderer = (renderer) ? [ + renderer + ] : OpenLayers.Layer.Vector.prototype.renderers; style_blue.strokeColor = "blue"; style_blue.fillColor = "yellow"; @@ -302,91 +393,83 @@ i3GEOF.geolocal = { style_blue.strokeWidth = 2; style_blue.rotation = 0; style_blue.strokeLinecap = "butt"; - if(i3geoOL.getLayersByName("Coordenadas").length === 0){ + if (i3geoOL.getLayersByName("Coordenadas").length === 0) { vectorLayer = new OpenLayers.Layer.Vector("Coordenadas", { - style: layer_style, - renderers: renderer + style : layer_style, + renderers : renderer }); - } - else{ + } else { vectorLayer = i3geoOL.getLayersByName("Coordenadas")[0]; vectorLayer.removeFeatures(vectorLayer.features); } - for(i=0;i - diff --git a/ferramentas/selecao/index.js b/ferramentas/selecao/index.js index 461901a..ee6e5e5 100644 --- a/ferramentas/selecao/index.js +++ b/ferramentas/selecao/index.js @@ -595,15 +595,18 @@ i3GEOF.selecao = */ removeFiguras : { ol3 : function(){ - var features, n, f, i; + var features, n, f, i, remover = []; features = i3GEO.desenho.layergrafico.getFeatures(); n = features.getLength(); - for(i=0; i< n; i++){ + for(i = 0; i < n; i++){ f = features.item(i); - if(f.getGeometryName() === "i3GEOFselecao"){ - i3GEO.desenho.layergrafico.getFeatures().removeAt(i); + if(f.getProperties().origem === "i3GEOFselecao"){ + remover.push(f); } } + for(r in remover){ + i3GEO.desenho.layergrafico.removeFeature(remover[r]); + } }, openlayers : function() { if (i3GEO.desenho.layergrafico) { diff --git a/interface/openlayersdebug.htm b/interface/openlayersdebug.htm index e7a38b2..a985abf 100644 --- a/interface/openlayersdebug.htm +++ b/interface/openlayersdebug.htm @@ -94,28 +94,20 @@