Commit a2dee17d458558990d2ebb7d523e5a6fd4d4281a
1 parent
fde53c66
Exists in
master
and in
7 other branches
Inclusao de $customDir no ms_configura.php
Uso de $customDir em init/index.php Conclusão do mapa de calor no Saiku
Showing
6 changed files
with
114 additions
and
22 deletions
Show diff stats
ferramentas/heatmap/openlayers_js.php
| ... | ... | @@ -27,6 +27,16 @@ include_once($dir."/../../classesphp/classe_atributos.php"); |
| 27 | 27 | //o plugin pode ser chamado sem um mapfile criado |
| 28 | 28 | //usando apenas o mapfile existente em i3geo/temas |
| 29 | 29 | //nesse caso e necessario cirar um mapfile temporario |
| 30 | + | |
| 31 | +//no caso do SAIKU, o nome do mapfile pode estar na sessao | |
| 32 | +session_name("i3GeoPHP"); | |
| 33 | +session_start(); | |
| 34 | +if(!empty($_SESSION["map_file"])){ | |
| 35 | + $mapateste = ms_newMapObj($_SESSION["map_file"]); | |
| 36 | + if($mapateste->getlayerbyname($layer) != ""){ | |
| 37 | + $map_file = $_SESSION["map_file"]; | |
| 38 | + } | |
| 39 | +} | |
| 30 | 40 | if(empty($map_file) && file_exists($dir."/../../temas/{$layer}.map")){ |
| 31 | 41 | $versao = versao(); |
| 32 | 42 | $versao = $versao["principal"]; | ... | ... |
ferramentas/saiku/cartograma.php
| ... | ... | @@ -9,7 +9,6 @@ include_once(dirname(__FILE__)."/../../classesphp/classe_estatistica.php"); |
| 9 | 9 | if(!isset($dir_tmp)){ |
| 10 | 10 | include(dirname(__FILE__)."/../../ms_configura.php"); |
| 11 | 11 | } |
| 12 | - | |
| 13 | 12 | //pega o filtro da sessao PHP aberta pelo i3Geo |
| 14 | 13 | session_name("i3GeoPHP"); |
| 15 | 14 | session_id($_POST["g_sid"]); |
| ... | ... | @@ -18,7 +17,6 @@ session_start(); |
| 18 | 17 | $map_file = $_SESSION["map_file"]; |
| 19 | 18 | $dados = (array) json_decode($_POST["dados"],true); |
| 20 | 19 | $opcoes = (array) json_decode($_POST["opcoes"],true); |
| 21 | - | |
| 22 | 20 | $metadados = (array) json_decode($_POST["metadados"],true); |
| 23 | 21 | $nmetadados = count($metadados); |
| 24 | 22 | //pega o id da regiao (busca pelo posfixo geocod) |
| ... | ... | @@ -51,7 +49,7 @@ $srid = $meta["srid"]; |
| 51 | 49 | $colunastabela = $m->colunasTabela($meta["codigo_estat_conexao"],$meta["esquemadb"],$meta["tabela"],"geometry","!="); |
| 52 | 50 | $tipoLayer = "POLYGON"; |
| 53 | 51 | //define a coluna geo correta |
| 54 | -if($opcoes["tipo"] == "mapaPizzas" || $opcoes["tipo"] == "mapaBarras" || $opcoes["tipo"] == "raiosProporcionais" || $opcoes["tipo"] == "circulosProporcionais"){ | |
| 52 | +if($opcoes["tipo"] == "calor" || $opcoes["tipo"] == "mapaPizzas" || $opcoes["tipo"] == "mapaBarras" || $opcoes["tipo"] == "raiosProporcionais" || $opcoes["tipo"] == "circulosProporcionais"){ | |
| 55 | 53 | if($meta["colunacentroide"] != ""){ |
| 56 | 54 | $colunageo = $meta["colunacentroide"]; |
| 57 | 55 | $sqlColunaGeo = $meta["colunacentroide"]; |
| ... | ... | @@ -159,7 +157,7 @@ $l .= PHP_EOL.'END'; |
| 159 | 157 | $layer->updateFromString($l); |
| 160 | 158 | |
| 161 | 159 | //inclui o layer com o contorno se for o caso |
| 162 | -if(empty($_GET["origem"]) && ($tipoLayer == "CHART" || $tipoLayer == "POINT")){ | |
| 160 | +if($opcoes["tipo"] != "calor" && empty($_GET["origem"]) && ($tipoLayer == "CHART" || $tipoLayer == "POINT")){ | |
| 163 | 161 | $layer = ms_newLayerObj($mapa); |
| 164 | 162 | $nomeLayer = nomeRandomico(); |
| 165 | 163 | $l = array(); |
| ... | ... | @@ -197,7 +195,11 @@ if($opcoes["tipo"] == "coresChapadas"){ |
| 197 | 195 | $retorno = $m->alteraCoresClasses($cori,$corf); |
| 198 | 196 | $m->salva(); |
| 199 | 197 | } |
| 200 | - | |
| 198 | +if($opcoes["tipo"] == "calor"){ | |
| 199 | + $parametros = '{"plugin":"heatmap","parametros":{"opacity":".8","coluna":"","radius":"'.$opcoes["raio"].'","max":"'.$opcoes["max"].'"}}'; | |
| 200 | + $layer->setmetadata("PLUGINI3GEO",$parametros); | |
| 201 | + $mapa->save($map_file); | |
| 202 | +} | |
| 201 | 203 | 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"]); |
| 202 | 204 | |
| 203 | 205 | function mapaBarras($colunas){ | ... | ... |
ferramentas/saiku/saiku-server/tomcat/webapps/ROOT/js/saiku/plugins/i3GeoMap/plugin.js
| ... | ... | @@ -51,6 +51,7 @@ var i3GeoMap = Backbone.View.extend({ |
| 51 | 51 | " <input type=button name=raiosProporcionais value='Raios proporcionais' />"+ |
| 52 | 52 | " <input type=button name=circulosProporcionais value='Círculos proporcionais' />"+ |
| 53 | 53 | " <input type=button name=coresChapadas value='Cores' />"+ |
| 54 | + " <input type=button name=calor value='Calor' />"+ | |
| 54 | 55 | " <input type=button name=atualizarMapa value='Atualiza' />"+ |
| 55 | 56 | " <input type=button name=fecharMapa value='Fechar' />"+ |
| 56 | 57 | //"</ul>"+ |
| ... | ... | @@ -323,6 +324,44 @@ var i3GeoMap = Backbone.View.extend({ |
| 323 | 324 | title: false |
| 324 | 325 | }); |
| 325 | 326 | }, |
| 327 | + calor: function(s){ | |
| 328 | + this.opcoes.size = 10; | |
| 329 | + $.fancybox("Raio de um ponto em pixels:<br><input type=text value='10' size=6 id='calorRaio' /><br>" + | |
| 330 | + "Valor máximo em cada ponto:<br><input type=text value='10' size=6 id='calorMax' /><br>" + | |
| 331 | + "<br>Coluna com os valores:<br>"+ | |
| 332 | + "<select id='calorColuna' style='border:1px solid #BBBBBB;'>"+this.opcoesColunas()+"</select>" + | |
| 333 | + "<br><input type=button value='OK' id='calorOk' />" + | |
| 334 | + " <input type=button value='Cancela' id='calorCancela' />" | |
| 335 | + , | |
| 336 | + { | |
| 337 | + 'autoDimensions' : false, | |
| 338 | + 'autoScale' : false, | |
| 339 | + 'height' : 250, | |
| 340 | + 'width' : 350, | |
| 341 | + 'transitionIn' : 'none', | |
| 342 | + 'transitionOut' : 'none', | |
| 343 | + 'showCloseButton' : false, | |
| 344 | + 'modal' : false | |
| 345 | + } | |
| 346 | + ); | |
| 347 | + document.getElementById("calorOk").onclick = function(){ | |
| 348 | + s.opcoes.tipo = "calor"; | |
| 349 | + //s.opcoes.size = document.getElementById("raiosProporcionaisSize").value; | |
| 350 | + s.opcoes.indicecoluna = [parseInt(document.getElementById("calorColuna").value,10)]; | |
| 351 | + s.opcoes.raio = document.getElementById("calorRaio").value; | |
| 352 | + s.opcoes.max = document.getElementById("calorMax").value; | |
| 353 | + s.render(); | |
| 354 | + $.fancybox.close(); | |
| 355 | + }; | |
| 356 | + document.getElementById("calorCancela").onclick = function(){ | |
| 357 | + $.fancybox.close(); | |
| 358 | + s.fecharMapa(); | |
| 359 | + }; | |
| 360 | + jQuery('select[name="colour"]').colourPicker({ | |
| 361 | + ico: 'js/jquery/jquery.colourPicker.gif', | |
| 362 | + title: false | |
| 363 | + }); | |
| 364 | + }, | |
| 326 | 365 | |
| 327 | 366 | opcoesColunas: function(){ |
| 328 | 367 | var m = this.data.metadata, |
| ... | ... | @@ -476,6 +515,7 @@ var i3GeoMap = Backbone.View.extend({ |
| 476 | 515 | //preenche os dados do formulario |
| 477 | 516 | this.opcoes.locaplic = parametroUrl("locaplic"); |
| 478 | 517 | this.opcoes.mapext = parametroUrl("mapext"); |
| 518 | + //alert(JSON.stringify(this.opcoes)) | |
| 479 | 519 | document.getElementById("formi3GeoMapOpcoes").value = JSON.stringify(this.opcoes); |
| 480 | 520 | document.getElementById("formi3GeoMapdados").value = JSON.stringify(dados); |
| 481 | 521 | document.getElementById("formi3GeoMapmetadados").value = JSON.stringify(metadata); | ... | ... |
guia_de_migracao.txt
| ... | ... | @@ -3,6 +3,8 @@ GUIA DE UPDATES e UPGRADES |
| 3 | 3 | ------------------------------------------------------------------------------------------------- |
| 4 | 4 | Para a versão 6.0 |
| 5 | 5 | |
| 6 | +- Nova variável em ms_configura chamada $customDir que indica a pasta com as customizações dos mapas | |
| 7 | + | |
| 6 | 8 | - nas interfaces que utilizam a API do google maps agora é necessário carregar a biblioteca geometry com o seguinte código: |
| 7 | 9 | <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=drawing,geometry"></script> |
| 8 | 10 | ... | ... |
init/index.php
| 1 | 1 | <?php |
| 2 | 2 | /** |
| 3 | + * Pagina inicial do i3Geo | |
| 4 | + * Voce pode utilizar o parametro customDir para indicar a pasta onde | |
| 5 | + * as interfaces de mapa estao. Nesse caso, os links utilizarao esse parametro | |
| 6 | + * Exemplo: localhost/i3geo/init/index.php?customDir=minhaPasta | |
| 7 | + * | |
| 8 | + * minhaPasta deve estar dentor da pasta i3geo. | |
| 9 | + * | |
| 10 | + * Se dentro da pasta $customDir existir um arquivo chamado index.php sera feito o include | |
| 11 | + * na pagina. | |
| 12 | + */ | |
| 13 | +/** | |
| 3 | 14 | * Cria as pastas temporarias que o i3Geo precisa, caso nao existam |
| 4 | 15 | */ |
| 5 | 16 | include(dirname(__FILE__)."/../ms_configura.php"); |
| 17 | +if(!empty($_GET["customDir"])){ | |
| 18 | + $customDir = $_GET["customDir"]; | |
| 19 | +} | |
| 20 | +else if(empty($customDir)){ | |
| 21 | + $customDir = "interface"; | |
| 22 | +} | |
| 6 | 23 | if(!file_exists($dir_tmp)){ |
| 7 | 24 | @mkdir ($dir_tmp,0777); |
| 8 | 25 | } |
| ... | ... | @@ -15,6 +32,9 @@ if(file_exists($dir_tmp)){ |
| 15 | 32 | @mkdir($dir_tmp."/cache/googlemaps",0777); |
| 16 | 33 | chmod($dir_tmp."/cache/googlemaps",0777); |
| 17 | 34 | } |
| 35 | +if(file_exists($locaplic."/".$customDir."/index.php")){ | |
| 36 | + include($locaplic."/".$customDir."/index.php"); | |
| 37 | +} | |
| 18 | 38 | ?> |
| 19 | 39 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
| 20 | 40 | <html> |
| ... | ... | @@ -91,6 +111,7 @@ a { |
| 91 | 111 | margin: 0px auto; |
| 92 | 112 | text-decoration: none; |
| 93 | 113 | } |
| 114 | + | |
| 94 | 115 | </style> |
| 95 | 116 | </head> |
| 96 | 117 | <body class=" yui-skin-sam "> |
| ... | ... | @@ -110,19 +131,23 @@ a { |
| 110 | 131 | <div id="botoes"></div> |
| 111 | 132 | </div> |
| 112 | 133 | <div style="float: left"> |
| 113 | - <div class="r" style="width: 230px; height: 380px"><table> | |
| 134 | + <div class="r" style="width: 230px; height: 380px"> | |
| 135 | + <table> | |
| 114 | 136 | <tr> |
| 115 | - <td><a class="twitter-timeline" href="https://twitter.com/i3geo" data-widget-id="288061915689787392" style="width:220px;height:350px">Tweets @i3Geo</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> | |
| 137 | + <td><a class="twitter-timeline" href="https://twitter.com/i3geo" data-widget-id="288061915689787392" style="width: 220px; height: 350px">Tweets @i3Geo</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> | |
| 116 | 138 | </td> |
| 117 | 139 | </tr> |
| 118 | - </table> </div> | |
| 140 | + </table> | |
| 141 | + </div> | |
| 119 | 142 | |
| 120 | - <div class="r" style="width: 230px; height: 380px"><table> | |
| 143 | + <div class="r" style="width: 230px; height: 380px"> | |
| 144 | + <table> | |
| 121 | 145 | <tr> |
| 122 | - <td><a class="twitter-timeline" href="https://twitter.com/search?q=@i3geo" data-widget-id="288053202174222336" style="width:220px;height:350px">Tweets #i3Geo</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> | |
| 146 | + <td><a class="twitter-timeline" href="https://twitter.com/search?q=@i3geo" data-widget-id="288053202174222336" style="width: 220px; height: 350px">Tweets #i3Geo</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> | |
| 123 | 147 | </td> |
| 124 | 148 | </tr> |
| 125 | - </table> </div> | |
| 149 | + </table> | |
| 150 | + </div> | |
| 126 | 151 | </div> |
| 127 | 152 | </div> |
| 128 | 153 | |
| ... | ... | @@ -141,15 +166,15 @@ botoesIni.push({ |
| 141 | 166 | "titulo":$trad(3,g_traducao_init) |
| 142 | 167 | },{ |
| 143 | 168 | "img":"openlayers.png", |
| 144 | - "href":"../interface/black_ol.htm", | |
| 169 | + "href":"../<?php echo $customDir; ?>/black_ol.htm", | |
| 145 | 170 | "titulo":$trad(4,g_traducao_init) |
| 146 | 171 | },{ |
| 147 | 172 | "img":"openlayersdebug.png", |
| 148 | - "href":"../interface/openlayersdebug.htm", | |
| 173 | + "href":"../<?php echo $customDir; ?>/openlayersdebug.htm", | |
| 149 | 174 | "titulo":$trad(5,g_traducao_init) |
| 150 | 175 | },{ |
| 151 | 176 | "img":"osm.png", |
| 152 | - "href":"../interface/black_osm.htm", | |
| 177 | + "href":"../<?php echo $customDir; ?>/black_osm.htm", | |
| 153 | 178 | "titulo":$trad(23,g_traducao_init) |
| 154 | 179 | },{ |
| 155 | 180 | "img":"mashup.png", |
| ... | ... | @@ -157,19 +182,19 @@ botoesIni.push({ |
| 157 | 182 | "titulo":$trad(18,g_traducao_init) |
| 158 | 183 | },{ |
| 159 | 184 | "img":"googlemaps.png", |
| 160 | - "href":"../interface/black_gm.phtml", | |
| 185 | + "href":"../<?php echo $customDir; ?>/black_gm.phtml", | |
| 161 | 186 | "titulo":$trad(6,g_traducao_init) |
| 162 | 187 | },{ |
| 163 | 188 | "img":"googlemaps_noite.png", |
| 164 | - "href":"../interface/googlemaps_noite.phtml", | |
| 189 | + "href":"../<?php echo $customDir; ?>/googlemaps_noite.phtml", | |
| 165 | 190 | "titulo":$trad(22,g_traducao_init) |
| 166 | 191 | },{ |
| 167 | 192 | "img":"googleearth.png", |
| 168 | - "href":"../interface/googleearth.phtml", | |
| 193 | + "href":"../<?php echo $customDir; ?>/googleearth.phtml", | |
| 169 | 194 | "titulo":$trad(7,g_traducao_init) |
| 170 | 195 | },{ |
| 171 | 196 | "img":"cartogramas.png", |
| 172 | - "href":"../interface/black_carto_ol.htm", | |
| 197 | + "href":"../<?php echo $customDir; ?>/black_carto_ol.htm", | |
| 173 | 198 | "titulo":$trad(8,g_traducao_init) |
| 174 | 199 | },{ |
| 175 | 200 | "img":"editor.png", | ... | ... |
ms_configura.php
| ... | ... | @@ -220,7 +220,7 @@ $twitteroauth = array( |
| 220 | 220 | |
| 221 | 221 | Mensagem de inicialização mostrada pelo programa ms_criamapa.php |
| 222 | 222 | |
| 223 | - É obtida de um include para permitir a atualização da versão nos pacotes de correção | |
| 223 | + Por default é obtida de um include para permitir a atualização da versão nos pacotes de correção | |
| 224 | 224 | |
| 225 | 225 | Tipo: |
| 226 | 226 | {string} |
| ... | ... | @@ -274,7 +274,7 @@ $metaestatTemplates = "/ferramentas/metaestat/templates"; |
| 274 | 274 | /* |
| 275 | 275 | Variable: navegadoresLocais |
| 276 | 276 | |
| 277 | -O i3geo possibilita que os usuários acessem dados geográficos no servidor diretamente, | |
| 277 | +O i3geo possibilita que os usuários acessem dados geográficos no servidor diretamente, | |
| 278 | 278 | navegando pelo sistema de arquivos. |
| 279 | 279 | Isso possibilita o acesso aos dados mesmo que não constem na árvore de temas |
| 280 | 280 | |
| ... | ... | @@ -284,13 +284,13 @@ Se do lado do cliente a variavel javascript for false e $navegadoresLocais for v |
| 284 | 284 | na árvore |
| 285 | 285 | |
| 286 | 286 | i3GEO.arvoreDeTemas.OPCOESADICIONAIS.navegacaoDir = false; //inserir no HTML |
| 287 | - | |
| 287 | + | |
| 288 | 288 | Portanto, se vc não quiser que essa opção seja ativada, mesmo com o usuário logado |
| 289 | 289 | mantenha essa variável igual a |
| 290 | 290 | |
| 291 | 291 | $navegadoresLocais = ""; |
| 292 | 292 | |
| 293 | -Para efeito de compatibilidade, manteve-se a possibilidade de um array com multiplos arrays, | |
| 293 | +Para efeito de compatibilidade, manteve-se a possibilidade de um array com multiplos arrays, | |
| 294 | 294 | mas apenas o primeiro e utilizado |
| 295 | 295 | |
| 296 | 296 | Exemplo: |
| ... | ... | @@ -497,6 +497,19 @@ Tipo: |
| 497 | 497 | {string} |
| 498 | 498 | */ |
| 499 | 499 | $interfacePadrao = "black_ol.htm"; |
| 500 | +/* | |
| 501 | +Variable: customDir | |
| 502 | + | |
| 503 | + Nome da pasta dentro de "i3geo" utilizada para armazenar os arquivos das interfaces de mapas interativos e outras | |
| 504 | + customizações específicas de determinada instalação. O valor padrão é "interface", ou seja, os arquivos ficam | |
| 505 | + na pasta i3geo/interface. | |
| 506 | + | |
| 507 | + A página inicial do i3Geo utiliza essa variável para montar os links que abrem os mapas. | |
| 508 | + | |
| 509 | +Tipo: | |
| 510 | +{string} | |
| 511 | +*/ | |
| 512 | +$customDir = "interface"; | |
| 500 | 513 | /* |
| 501 | 514 | Variable: base |
| 502 | 515 | ... | ... |