From a2dee17d458558990d2ebb7d523e5a6fd4d4281a Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 6 Aug 2014 15:05:53 +0000 Subject: [PATCH] Inclusao de $customDir no ms_configura.php Uso de $customDir em init/index.php Conclusão do mapa de calor no Saiku --- ferramentas/heatmap/openlayers_js.php | 10 ++++++++++ ferramentas/saiku/cartograma.php | 12 +++++++----- ferramentas/saiku/saiku-server/tomcat/webapps/ROOT/js/saiku/plugins/i3GeoMap/plugin.js | 40 ++++++++++++++++++++++++++++++++++++++++ guia_de_migracao.txt | 2 ++ init/index.php | 51 ++++++++++++++++++++++++++++++++++++++------------- ms_configura.php | 21 +++++++++++++++++---- 6 files changed, 114 insertions(+), 22 deletions(-) diff --git a/ferramentas/heatmap/openlayers_js.php b/ferramentas/heatmap/openlayers_js.php index 374cdbd..650462d 100644 --- a/ferramentas/heatmap/openlayers_js.php +++ b/ferramentas/heatmap/openlayers_js.php @@ -27,6 +27,16 @@ include_once($dir."/../../classesphp/classe_atributos.php"); //o plugin pode ser chamado sem um mapfile criado //usando apenas o mapfile existente em i3geo/temas //nesse caso e necessario cirar um mapfile temporario + +//no caso do SAIKU, o nome do mapfile pode estar na sessao +session_name("i3GeoPHP"); +session_start(); +if(!empty($_SESSION["map_file"])){ + $mapateste = ms_newMapObj($_SESSION["map_file"]); + if($mapateste->getlayerbyname($layer) != ""){ + $map_file = $_SESSION["map_file"]; + } +} if(empty($map_file) && file_exists($dir."/../../temas/{$layer}.map")){ $versao = versao(); $versao = $versao["principal"]; diff --git a/ferramentas/saiku/cartograma.php b/ferramentas/saiku/cartograma.php index dfff92c..b2967e5 100644 --- a/ferramentas/saiku/cartograma.php +++ b/ferramentas/saiku/cartograma.php @@ -9,7 +9,6 @@ include_once(dirname(__FILE__)."/../../classesphp/classe_estatistica.php"); if(!isset($dir_tmp)){ include(dirname(__FILE__)."/../../ms_configura.php"); } - //pega o filtro da sessao PHP aberta pelo i3Geo session_name("i3GeoPHP"); session_id($_POST["g_sid"]); @@ -18,7 +17,6 @@ session_start(); $map_file = $_SESSION["map_file"]; $dados = (array) json_decode($_POST["dados"],true); $opcoes = (array) json_decode($_POST["opcoes"],true); - $metadados = (array) json_decode($_POST["metadados"],true); $nmetadados = count($metadados); //pega o id da regiao (busca pelo posfixo geocod) @@ -51,7 +49,7 @@ $srid = $meta["srid"]; $colunastabela = $m->colunasTabela($meta["codigo_estat_conexao"],$meta["esquemadb"],$meta["tabela"],"geometry","!="); $tipoLayer = "POLYGON"; //define a coluna geo correta -if($opcoes["tipo"] == "mapaPizzas" || $opcoes["tipo"] == "mapaBarras" || $opcoes["tipo"] == "raiosProporcionais" || $opcoes["tipo"] == "circulosProporcionais"){ +if($opcoes["tipo"] == "calor" || $opcoes["tipo"] == "mapaPizzas" || $opcoes["tipo"] == "mapaBarras" || $opcoes["tipo"] == "raiosProporcionais" || $opcoes["tipo"] == "circulosProporcionais"){ if($meta["colunacentroide"] != ""){ $colunageo = $meta["colunacentroide"]; $sqlColunaGeo = $meta["colunacentroide"]; @@ -159,7 +157,7 @@ $l .= PHP_EOL.'END'; $layer->updateFromString($l); //inclui o layer com o contorno se for o caso -if(empty($_GET["origem"]) && ($tipoLayer == "CHART" || $tipoLayer == "POINT")){ +if($opcoes["tipo"] != "calor" && empty($_GET["origem"]) && ($tipoLayer == "CHART" || $tipoLayer == "POINT")){ $layer = ms_newLayerObj($mapa); $nomeLayer = nomeRandomico(); $l = array(); @@ -197,7 +195,11 @@ if($opcoes["tipo"] == "coresChapadas"){ $retorno = $m->alteraCoresClasses($cori,$corf); $m->salva(); } - +if($opcoes["tipo"] == "calor"){ + $parametros = '{"plugin":"heatmap","parametros":{"opacity":".8","coluna":"","radius":"'.$opcoes["raio"].'","max":"'.$opcoes["max"].'"}}'; + $layer->setmetadata("PLUGINI3GEO",$parametros); + $mapa->save($map_file); +} header("Location:".$opcoes["locaplic"]."/mashups/openlayers.php?temas=".$map_file."&DESLIGACACHE=sim&botoes=legenda,pan,zoombox,zoomtot,zoomin,zoomout,distancia,area,identifica&controles=navigation,layerswitcher,scaleline,mouseposition,overviewmap,keyboarddefaults&tiles=false&mapext=".$opcoes["mapext"]); function mapaBarras($colunas){ diff --git a/ferramentas/saiku/saiku-server/tomcat/webapps/ROOT/js/saiku/plugins/i3GeoMap/plugin.js b/ferramentas/saiku/saiku-server/tomcat/webapps/ROOT/js/saiku/plugins/i3GeoMap/plugin.js index c27c974..f66ea55 100644 --- a/ferramentas/saiku/saiku-server/tomcat/webapps/ROOT/js/saiku/plugins/i3GeoMap/plugin.js +++ b/ferramentas/saiku/saiku-server/tomcat/webapps/ROOT/js/saiku/plugins/i3GeoMap/plugin.js @@ -51,6 +51,7 @@ var i3GeoMap = Backbone.View.extend({ " "+ " "+ " "+ + " "+ " "+ " "+ //""+ @@ -323,6 +324,44 @@ var i3GeoMap = Backbone.View.extend({ title: false }); }, + calor: function(s){ + this.opcoes.size = 10; + $.fancybox("Raio de um ponto em pixels:

" + + "Valor máximo em cada ponto:

" + + "
Coluna com os valores:
"+ + "" + + "
" + + "  " + , + { + 'autoDimensions' : false, + 'autoScale' : false, + 'height' : 250, + 'width' : 350, + 'transitionIn' : 'none', + 'transitionOut' : 'none', + 'showCloseButton' : false, + 'modal' : false + } + ); + document.getElementById("calorOk").onclick = function(){ + s.opcoes.tipo = "calor"; + //s.opcoes.size = document.getElementById("raiosProporcionaisSize").value; + s.opcoes.indicecoluna = [parseInt(document.getElementById("calorColuna").value,10)]; + s.opcoes.raio = document.getElementById("calorRaio").value; + s.opcoes.max = document.getElementById("calorMax").value; + s.render(); + $.fancybox.close(); + }; + document.getElementById("calorCancela").onclick = function(){ + $.fancybox.close(); + s.fecharMapa(); + }; + jQuery('select[name="colour"]').colourPicker({ + ico: 'js/jquery/jquery.colourPicker.gif', + title: false + }); + }, opcoesColunas: function(){ var m = this.data.metadata, @@ -476,6 +515,7 @@ var i3GeoMap = Backbone.View.extend({ //preenche os dados do formulario this.opcoes.locaplic = parametroUrl("locaplic"); this.opcoes.mapext = parametroUrl("mapext"); + //alert(JSON.stringify(this.opcoes)) document.getElementById("formi3GeoMapOpcoes").value = JSON.stringify(this.opcoes); document.getElementById("formi3GeoMapdados").value = JSON.stringify(dados); document.getElementById("formi3GeoMapmetadados").value = JSON.stringify(metadata); diff --git a/guia_de_migracao.txt b/guia_de_migracao.txt index a090272..21a5d1f 100644 --- a/guia_de_migracao.txt +++ b/guia_de_migracao.txt @@ -3,6 +3,8 @@ GUIA DE UPDATES e UPGRADES ------------------------------------------------------------------------------------------------- Para a versão 6.0 +- Nova variável em ms_configura chamada $customDir que indica a pasta com as customizações dos mapas + - nas interfaces que utilizam a API do google maps agora é necessário carregar a biblioteca geometry com o seguinte código: diff --git a/init/index.php b/init/index.php index a3b9844..8ddb5c7 100755 --- a/init/index.php +++ b/init/index.php @@ -1,8 +1,25 @@  @@ -91,6 +111,7 @@ a { margin: 0px auto; text-decoration: none; } + @@ -110,19 +131,23 @@ a {
-
+
+
- -
+
+ +
-
+
+
- -
+
+ + @@ -141,15 +166,15 @@ botoesIni.push({ "titulo":$trad(3,g_traducao_init) },{ "img":"openlayers.png", - "href":"../interface/black_ol.htm", + "href":"..//black_ol.htm", "titulo":$trad(4,g_traducao_init) },{ "img":"openlayersdebug.png", - "href":"../interface/openlayersdebug.htm", + "href":"..//openlayersdebug.htm", "titulo":$trad(5,g_traducao_init) },{ "img":"osm.png", - "href":"../interface/black_osm.htm", + "href":"..//black_osm.htm", "titulo":$trad(23,g_traducao_init) },{ "img":"mashup.png", @@ -157,19 +182,19 @@ botoesIni.push({ "titulo":$trad(18,g_traducao_init) },{ "img":"googlemaps.png", - "href":"../interface/black_gm.phtml", + "href":"..//black_gm.phtml", "titulo":$trad(6,g_traducao_init) },{ "img":"googlemaps_noite.png", - "href":"../interface/googlemaps_noite.phtml", + "href":"..//googlemaps_noite.phtml", "titulo":$trad(22,g_traducao_init) },{ "img":"googleearth.png", - "href":"../interface/googleearth.phtml", + "href":"..//googleearth.phtml", "titulo":$trad(7,g_traducao_init) },{ "img":"cartogramas.png", - "href":"../interface/black_carto_ol.htm", + "href":"..//black_carto_ol.htm", "titulo":$trad(8,g_traducao_init) },{ "img":"editor.png", diff --git a/ms_configura.php b/ms_configura.php index 91696e9..1bc5920 100644 --- a/ms_configura.php +++ b/ms_configura.php @@ -220,7 +220,7 @@ $twitteroauth = array( Mensagem de inicialização mostrada pelo programa ms_criamapa.php - É obtida de um include para permitir a atualização da versão nos pacotes de correção + Por default é obtida de um include para permitir a atualização da versão nos pacotes de correção Tipo: {string} @@ -274,7 +274,7 @@ $metaestatTemplates = "/ferramentas/metaestat/templates"; /* Variable: navegadoresLocais -O i3geo possibilita que os usuários acessem dados geográficos no servidor diretamente, +O i3geo possibilita que os usuários acessem dados geográficos no servidor diretamente, navegando pelo sistema de arquivos. Isso possibilita o acesso aos dados mesmo que não constem na árvore de temas @@ -284,13 +284,13 @@ Se do lado do cliente a variavel javascript for false e $navegadoresLocais for v na árvore i3GEO.arvoreDeTemas.OPCOESADICIONAIS.navegacaoDir = false; //inserir no HTML - + Portanto, se vc não quiser que essa opção seja ativada, mesmo com o usuário logado mantenha essa variável igual a $navegadoresLocais = ""; -Para efeito de compatibilidade, manteve-se a possibilidade de um array com multiplos arrays, +Para efeito de compatibilidade, manteve-se a possibilidade de um array com multiplos arrays, mas apenas o primeiro e utilizado Exemplo: @@ -497,6 +497,19 @@ Tipo: {string} */ $interfacePadrao = "black_ol.htm"; +/* +Variable: customDir + + Nome da pasta dentro de "i3geo" utilizada para armazenar os arquivos das interfaces de mapas interativos e outras + customizações específicas de determinada instalação. O valor padrão é "interface", ou seja, os arquivos ficam + na pasta i3geo/interface. + + A página inicial do i3Geo utiliza essa variável para montar os links que abrem os mapas. + +Tipo: +{string} +*/ +$customDir = "interface"; /* Variable: base -- libgit2 0.21.2