Commit 25f529736aeb7373cb81e8a3dc86cba784768c07

Authored by Edmar Moretti
1 parent 835d1872

Correção em bug do Mapserver que não permitia o uso de layers do tipo GRID

admin/admin.db
No preview for this file type
classesphp/classe_mapa.php
... ... @@ -1357,6 +1357,7 @@ class Mapa
1357 1357 }
1358 1358 }
1359 1359 }
  1360 + corrigeLayerGrid($nlayer,$l);
1360 1361 }
1361 1362 }
1362 1363 }
... ...
classesphp/funcoes_gerais.php
... ... @@ -3107,4 +3107,22 @@ function checaLoginIp($lista){
3107 3107 exit ();
3108 3108 }
3109 3109 }
  3110 +//
  3111 +//corrige layers do tipo GRID
  3112 +//bug do mapserver nao permite renderizar grids
  3113 +//essa funcao corrige esse problema
  3114 +//
  3115 +function corrigeLayerGrid($layerOrigem,$layerDestino){
  3116 + if($layerOrigem->connectiontype == MS_GRATICULE){
  3117 + ms_newgridobj($layerDestino);
  3118 + $layerDestino->grid->set("labelformat", $layerOrigem->grid->labelformat);
  3119 + $layerDestino->grid->set("mininterval", $layerOrigem->grid->mininterval);
  3120 + $layerDestino->grid->set("maxinterval", $layerOrigem->grid->maxinterval);
  3121 + $layerDestino->grid->set("minsubdivide", $layerOrigem->grid->minsubdivide);
  3122 + $layerDestino->grid->set("maxsubdivide", $layerOrigem->grid->maxsubdivide);
  3123 + $layerDestino->grid->set("minarcs", $layerOrigem->grid->minarcs);
  3124 + $layerDestino->grid->set("maxarcs", $layerOrigem->grid->maxarcs);
  3125 + //$layerDestino->updatefromstring("LAYER GRID LABELFORMAT '" . $layerOrigem->grid->labelformat . "' END END");
  3126 + }
  3127 +}
3110 3128 ?>
... ...
ms_criamapa.php
... ... @@ -908,7 +908,8 @@ function incluiTemasIniciais(){
908 908 $layern->set("status",$statustemp);
909 909 }
910 910 cloneInlineSymbol($layern,$maptemp,$mapn);
911   - ms_newLayerObj($mapn, $layern);
  911 + $layerAdicionado = ms_newLayerObj($mapn, $layern);
  912 + corrigeLayerGrid($layern,$layerAdicionado);
912 913 }
913 914 }
914 915  
... ...
ogc.php
... ... @@ -744,7 +744,8 @@ else{
744 744 $classe->set("name",$l->getmetadata("tema"));
745 745 }
746 746 }
747   - ms_newLayerObj($oMap, $l);
  747 + $layerAdicionado = ms_newLayerObj($oMap, $l);
  748 + corrigeLayerGrid($l,$layerAdicionado);
748 749 }
749 750 else{
750 751 //a camada nao pode ser usada como servico WMS, entao e enviada uma mensagem
... ...
temas/gridg.map
1 1 MAP
2   -SYMBOLSET ../symbols/simbolosv6.sym
3   -FONTSET "../symbols/fontes.txt"
4   -LAYER
5   - NAME "gridg"
6   - METADATA
7   - "DESCRIPTION" "Grid"
8   - "TEMA" "Grade"
9   - END
10   - TYPE LINE
11   - STATUS DEFAULT
12   - CLASS
13   - NAME "Graticule"
14   - COLOR 0 0 0
15   - LABEL
16   - COLOR 255 0 0
17   - FONT "arial"
18   - TYPE truetype
19   - SIZE 8
20   - POSITION AUTO
21   - PARTIALS FALSE
22   - BUFFER 2
23   - OUTLINECOLOR 255 255 255
24   - END
25   - END
26   - PROJECTION
27   - "init=epsg:4326"
28   - END
29   - GRID
30   - LABELFORMAT "DD"
31   - END
32   -END # Layer
33   -END
34 2 \ No newline at end of file
  3 + FONTSET "../symbols/fontes.txt"
  4 + SYMBOLSET "../symbols/simbolos.sym"
  5 + LAYER
  6 + METADATA
  7 + "METAESTAT_ID_MEDIDA_VARIAVEL" ""
  8 + "CACHE" "nao"
  9 + "DESCRIPTION" "Grid"
  10 + "permitekmz" "nao"
  11 + "TILES" "nao"
  12 + "METAESTAT_CODIGO_TIPO_REGIAO" ""
  13 + "permitedownload" "sim"
  14 + "metaestat" ""
  15 + "download" "sim"
  16 + "permitekml" "sim"
  17 + "permiteogc" "sim"
  18 + "TEMA" "Grade DMS"
  19 + END # METADATA
  20 + NAME "gridg"
  21 + PROJECTION
  22 + "proj=longlat"
  23 + "ellps=WGS84"
  24 + "datum=WGS84"
  25 + "no_defs"
  26 + END # PROJECTION
  27 + STATUS DEFAULT
  28 + TILEITEM "location"
  29 + TYPE LINE
  30 + UNITS METERS
  31 + CLASS
  32 + NAME "Graticule"
  33 + LABEL
  34 + FONT "arial"
  35 + SIZE 8
  36 + BUFFER 2
  37 + OFFSET 0 0
  38 + OUTLINECOLOR 255 255 255
  39 + PARTIALS FALSE
  40 + POSITION CC
  41 + SHADOWSIZE 1 1
  42 + TYPE TRUETYPE
  43 + END # LABEL
  44 + STYLE
  45 + COLOR 200 200 200
  46 + END # STYLE
  47 + END # CLASS
  48 + GRID
  49 + LABELFORMAT "DDMMSS"
  50 + MAXINTERVAL 10
  51 + MININTERVAL 10
  52 + END # GRID
  53 + END # LAYER
  54 +
  55 +END # MAP
  56 +
... ...
testamapfile.php
... ... @@ -349,7 +349,10 @@ function verifica($map,$solegenda,$tabela,$cache="sim"){
349 349 }
350 350 //pega simbolos locais e aplica no novo mapa
351 351 cloneInlineSymbol($layern,$nmapa,$mapa);
352   - ms_newLayerObj($mapa, $layern);
  352 +
  353 + $layerAdicionado = ms_newLayerObj($mapa, $layern);
  354 +
  355 + corrigeLayerGrid($layern,$layerAdicionado);
353 356 /*
354 357 if ($layern->data == ""){
355 358 $dados = $layern->connection;
... ... @@ -447,7 +450,7 @@ function verifica($map,$solegenda,$tabela,$cache="sim"){
447 450 }
448 451 else{
449 452 $mapa = ms_newMapObj($destino);
450   - restauraCon($destino,$postgis_mapa);
  453 + restauraConObj($mapa,$postgis_mapa);
451 454 $objImagem = @$mapa->draw();
452 455 //corrige o titulo da legenda
453 456 $numlayers = $mapa->numlayers;
... ...