From 01e42cc1a6902f78773e361a58b157f15f608705 Mon Sep 17 00:00:00 2001 From: edmarmoretti Date: Sun, 2 Apr 2017 18:15:27 -0300 Subject: [PATCH] Inclusão de botão, que abre a tela de configuração do plugin layerkml, no editor gráfico de mapfiles. Correção no uso de proxy para obtenção do KML. Um novo proxy foi criado para acesso específico ao kml, com validações de segurança para impedir o uso indevido. --- classesjs/classe_arvoredecamadas.js | 3 --- classesjs/classe_plugini3geo.js | 8 +++++--- classesphp/proxy.php | 4 +--- ferramentas/atalhosedicao/index.js | 33 ++++++++++++++++++++++++++++++++- ferramentas/atalhosedicao/template_mst.html | 3 +++ ferramentas/layerkml/getkml.php | 31 +++++++++++++++++++++++++++++++ js/arvoredecamadas.js | 3 --- js/plugini3geo.js | 7 ++++--- 8 files changed, 76 insertions(+), 16 deletions(-) create mode 100755 ferramentas/layerkml/getkml.php diff --git a/classesjs/classe_arvoredecamadas.js b/classesjs/classe_arvoredecamadas.js index c89d697..7be2f78 100755 --- a/classesjs/classe_arvoredecamadas.js +++ b/classesjs/classe_arvoredecamadas.js @@ -2149,9 +2149,6 @@ i3GEO.arvoreDeCamadas = * Return: {Array} - lista de camadas */ filtraCamadas : function(propriedade, valor, operador, camadas) { - if (typeof (console) !== 'undefined') - console.info("i3GEO.arvoreDeCamadas.filtraCamadas()"); - if(!camadas){ camadas = i3GEO.arvoreDeCamadas.CAMADAS; } diff --git a/classesjs/classe_plugini3geo.js b/classesjs/classe_plugini3geo.js index 645b0c4..b01fa53 100755 --- a/classesjs/classe_plugini3geo.js +++ b/classesjs/classe_plugini3geo.js @@ -829,8 +829,8 @@ i3GEO.pluginI3geo = } parametros = config.parametros; ins += - "

Url do arquivo Kml:

" + "

Url do arquivo Kml:

" + "

Veja o exemplo utilizado no tema _lmapakml.map

"; return ins; }, @@ -906,7 +906,9 @@ i3GEO.pluginI3geo = }, inicia : function(camada, objMapa) { var layerkml; - url = i3GEO.configura.locaplic + "/classesphp/proxy.php?url=" + camada.plugini3geo.parametros.url; + //console.info(camada) + //url = i3GEO.configura.locaplic + "/classesphp/proxy.php?url=" + camada.plugini3geo.parametros.url; + var url = i3GEO.configura.locaplic + "/ferramentas/layerkml/getkml.php?tema=" + camada.nomeoriginal; layerkml = new OpenLayers.Layer.Vector(camada.name, { displayOutsideMaxExtent : true, displayInLayerSwitcher : false, diff --git a/classesphp/proxy.php b/classesphp/proxy.php index 793e5e0..0cfbd2e 100755 --- a/classesphp/proxy.php +++ b/classesphp/proxy.php @@ -50,7 +50,6 @@ if($_GET["tipoRetornoProxy"] == "gml2wkt"){ echo $resultado; - function gml2wkt($gml){ // Parse GML file include("funcoes_gerais.php"); @@ -84,6 +83,5 @@ function gml2wkt($gml){ $shape = $layer->getShape($layer->getResult(0)); $wkt = $shape->towkt(); return json_encode(array($wkt)); -} - +} ?> \ No newline at end of file diff --git a/ferramentas/atalhosedicao/index.js b/ferramentas/atalhosedicao/index.js index 8dd75c6..290571a 100755 --- a/ferramentas/atalhosedicao/index.js +++ b/ferramentas/atalhosedicao/index.js @@ -185,6 +185,37 @@ i3GEOF.atalhosedicao = }); $i("i3GEOFatalhosedicaoParametrossql-button").style.width = "200px"; + new YAHOO.widget.Button("i3GEOFatalhosedicaoLayerkml", { + onclick : { + fn : function() { + i3GEO.temaAtivo = i3GEOF.atalhosedicao.tema; + YAHOO.namespace("admin"); + YAHOO.namespace("admin.container"); + core_montaEditor("","450px","500px","","Plugin",true,false,false); + var sUrl = i3GEO.configura.locaplic + "/admin1/catalogo/mapfile/exec.php?funcao=pegaPlugin&codigoMap="+i3GEO.temaAtivo+"&codigoLayer="+i3GEO.temaAtivo+"&g_sid="+i3GEO.configura.sid; + var montaEditorPlugin = function(retorno){ + var plugin = "layerkml"; + var ins = "" + + ""; + //pega os campos do formulario + ins += i3GEO.pluginI3geo.formAdmin(plugin,retorno); + var ajuda = "

Mais informações:
" + i3GEO.pluginI3geo.linkAjuda(plugin) + "

"; + $i("editor_bd").innerHTML = ins + ajuda; + + new YAHOO.widget.Button("salvarPlugin",{ onclick: { fn: function(){ + i3GEOF.atalhosedicao.salvarDadosEditorPlugin($i("editor_bd"),plugin,i3GEOF.atalhosedicao.tema,i3GEOF.atalhosedicao.tema); + } }}); + + new YAHOO.widget.Button("removerPlugin",{ onclick: { fn: function(){ + i3GEOF.atalhosedicao.salvarDadosEditorPlugin($i("editor_bd"),"",i3GEOF.atalhosedicao.tema,i3GEOF.atalhosedicao.tema); + } }}); + }; + core_pegaDados("",sUrl,montaEditorPlugin); + } + } + }); + $i("i3GEOFatalhosedicaoLayerkml-button").style.width = "200px"; + new YAHOO.widget.Button("i3GEOFatalhosedicaoTemaComGrafico", { onclick : { fn : function() { @@ -204,7 +235,7 @@ i3GEOF.atalhosedicao = $i("i3GEOFatalhosedicaoCache").checked = true; } if(tema.classe.toLowerCase() === "nao"){ - $i("i3GEOFatalhosedicaoClasses").checked = false; + $i("i3GEOFatalhosedicaoClasse").checked = false; } if(tema.identifica.toLowerCase() === "nao"){ $i("i3GEOFatalhosedicaoIdentifica").checked = false; diff --git a/ferramentas/atalhosedicao/template_mst.html b/ferramentas/atalhosedicao/template_mst.html index 4947dbc..6a144bd 100755 --- a/ferramentas/atalhosedicao/template_mst.html +++ b/ferramentas/atalhosedicao/template_mst.html @@ -91,4 +91,7 @@

+

+ +

\ No newline at end of file diff --git a/ferramentas/layerkml/getkml.php b/ferramentas/layerkml/getkml.php new file mode 100755 index 0000000..877e541 --- /dev/null +++ b/ferramentas/layerkml/getkml.php @@ -0,0 +1,31 @@ +getlayerbyname($_GET["tema"]); +if($layer == ""){ + exit; +} +$plugin = $layer->getmetadata("PLUGINI3GEO"); +$a = json_decode($plugin); +$url = $a->parametros->url; + +$ch = curl_init(); +if(!$ch){ + echo "erro curl_init"; + exit; +} +curl_setopt($ch, CURLOPT_URL, $url); +curl_setopt($ch, CURLOPT_HEADER, 0); +curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); +if(isset($i3geo_proxy_server) && $i3geo_proxy_server != ""){ + curl_setopt($ch, CURLOPT_PROXY, $i3geo_proxy_server); +} +$resultado = curl_exec($ch); +echo $resultado; +?> \ No newline at end of file diff --git a/js/arvoredecamadas.js b/js/arvoredecamadas.js index d7b7df4..941bdc2 100755 --- a/js/arvoredecamadas.js +++ b/js/arvoredecamadas.js @@ -2295,9 +2295,6 @@ i3GEO.arvoreDeCamadas = * Return: {Array} - lista de camadas */ filtraCamadas : function(propriedade, valor, operador, camadas) { - if (typeof (console) !== 'undefined') - console.info("i3GEO.arvoreDeCamadas.filtraCamadas()"); - if(!camadas){ camadas = i3GEO.arvoreDeCamadas.CAMADAS; } diff --git a/js/plugini3geo.js b/js/plugini3geo.js index f4e73eb..5ccf2ba 100755 --- a/js/plugini3geo.js +++ b/js/plugini3geo.js @@ -834,8 +834,8 @@ i3GEO.pluginI3geo = } parametros = config.parametros; ins += - "

Url do arquivo Kml:

" + "

Url do arquivo Kml:

" + "

Veja o exemplo utilizado no tema _lmapakml.map

"; return ins; }, @@ -914,7 +914,8 @@ i3GEO.pluginI3geo = }, inicia : function(camada, objMapa) { var layerkml, url, temp; - url = i3GEO.configura.locaplic + "/classesphp/proxy.php?url=" + camada.plugini3geo.parametros.url; + //url = i3GEO.configura.locaplic + "/classesphp/proxy.php?url=" + camada.plugini3geo.parametros.url; + url = i3GEO.configura.locaplic + "/ferramentas/layerkml/getkml.php?tema=" + camada.nomeoriginal; layerkml = new ol.layer.Vector({ name : camada.name, isBaseLayer : false, -- libgit2 0.21.2