Commit 1e587e467b84ff98b0a32d4710dfe1e0ff65eb3e
1 parent
83171f0d
Exists in
master
Correção no uso de perfis na montagem da árvore de temas
Showing
7 changed files
with
225 additions
and
73 deletions
Show diff stats
admin/dicionario/arvore.js
| ... | ... | @@ -3,182 +3,182 @@ i3GEOadmin.arvore = {}; |
| 3 | 3 | i3GEOadmin.arvore.dicionario = { |
| 4 | 4 | 'arvoreTemas' : [ { |
| 5 | 5 | pt : "Administração do i3geo - Árvore de temas ", |
| 6 | - en : "", | |
| 7 | - es : "" | |
| 6 | + en : "i3geo management - Theme catalog ", | |
| 7 | + es : "Administración de i3geo - Árbol de temas " | |
| 8 | 8 | } ], |
| 9 | 9 | 'ajuda' : [ { |
| 10 | 10 | pt : "Ajuda", |
| 11 | - en : "", | |
| 12 | - es : "" | |
| 11 | + en : "Help", | |
| 12 | + es : "Ayuda" | |
| 13 | 13 | } ], |
| 14 | 14 | 'txtAjuda' : [ { |
| 15 | 15 | pt : "<p>Este formulário permite editar árvore de temas que seráutilizada pelo i3Geo.<p>A árvore é composta de menus, grupos, sub-grupos e temas. Vcdeve criar os menus, a lista de grupos e a lista de sub-grupos. Aocriar um menu, esse é mostrado imediatamente na árvore.<p>Menus ou nós da árvore marcados como não publicados sãomostrados em vermelho e aparecem apenas para os administradores.<p>Em cada nó da árvore podem ser associados os temas, mesmo naraiz de um dos níveis. Os temas são arquivos mapfiles armazenadosem i3geo/temas e registrados no sistema de administração.<p>A criação de mapfiles e a vinculação tema-mapfile é feitapor meio do editor de mapfiles, e consiste na determinação de umnome para cada mapfile. Esse nome é listado ao ser adicionado umtema na árvore.", |
| 16 | - en : "", | |
| 17 | - es : "" | |
| 16 | + en : "<p>This form allows you to edit the theme catalog that will be used by i3Geo.<p>A catalog is made up of menus, groups, subgroups and themes. When you create a menu it is immediately shown on the catalog.<p>Those menus that are labeled as not published on the catalog are shown in red and will be available to developers only.<p>It is possible to associate themes on each catalog node as well as on the root of a given level. Themes are mapfiles stored into i3geo/themes and recorded into the management system.<p>Mapfiles building and theme-mapfile linking are made by the mapfile editor. This involves putting a mapfile name. This name will be shown into the catalog theme list.", | |
| 17 | + es : "<p>Este formulario permite editar el árbol de temas que será utilizado por i3Geo.<p>Un árbol está compuesto de menús, grupos, subgrupos y temas. Usted debe crear los menús, una lista de grupos y una lista de subgrupos. Cuando se crea un menú es mostrado inmediatamente en el árbol.<p>Los menús que son marcados como no publicados en el árbol son mostradas en rojo y sólo están disponibles para los administradores.<p>Se pueden asociar temas en cada nodo del árbol, así como en la raíz de uno de los niveles. Los temas son archivos mapfiles almacenados en i3geo/temas y registrados en el sistema de administración.<p>La creación de mapfiles y la vinculación tema-mapfiles es hecha a través del editor mapfiles, y consiste en la colocación de un nombre a cada mapfile. Este nombre aparecerá en una lista de temas en el árbol." | |
| 18 | 18 | } ], |
| 19 | 19 | 'txtCria' : [ { |
| 20 | 20 | pt : "<p class=paragrafo>Utilize os botões para criar novos nomes de menus, grupos ou sub-grupos, formando listas de itens.<br>Os itens criados podem ser reaproveitados em vários nós da árvore.</p>", |
| 21 | - en : "", | |
| 22 | - es : "" | |
| 21 | + en : "<p class=paragrafo>Use buttons to create new menus, groups and subgroups, building item lists.<br>New items can be reused into several catalog nodes.</p>", | |
| 22 | + es : "<p class=paragrafo>Utilice los botones para para crear nombre nuevos de menús, grupos o subgrupos, formando lista de ítems.<br>Los ítems creados pueden ser reutilizados en varios nodos del árbol.</p>" | |
| 23 | 23 | } ], |
| 24 | 24 | 'editaGrupos' : [ { |
| 25 | 25 | pt : "Editar lista de grupos", |
| 26 | - en : "", | |
| 27 | - es : "" | |
| 26 | + en : "Edit group list", | |
| 27 | + es : "Editar lista de grupos" | |
| 28 | 28 | } ], |
| 29 | 29 | 'editaSubgrupos' : [ { |
| 30 | 30 | pt : "Editar lista de sub-grupos", |
| 31 | - en : "", | |
| 32 | - es : "" | |
| 31 | + en : "Edit subgroup list", | |
| 32 | + es : "Editar lista de subgrupos" | |
| 33 | 33 | } ], |
| 34 | 34 | 'editaMenus' : [ { |
| 35 | 35 | pt : "Editar lista de menus", |
| 36 | - en : "", | |
| 37 | - es : "" | |
| 36 | + en : "Edit menu list", | |
| 37 | + es : "Editar lista de menús" | |
| 38 | 38 | } ], |
| 39 | 39 | 'arvoreCatalogo' : [ { |
| 40 | 40 | pt : "Árvore do catálogo:", |
| 41 | - en : "", | |
| 42 | - es : "" | |
| 41 | + en : "Catalog tree:", | |
| 42 | + es : "Árbol de catálogo:" | |
| 43 | 43 | } ], |
| 44 | 44 | 'adicionaMenu' : [ { |
| 45 | 45 | pt : "Adicionar um novo menu", |
| 46 | - en : "", | |
| 47 | - es : "" | |
| 46 | + en : "Add a new menu", | |
| 47 | + es : "Agregar un menú nuevo" | |
| 48 | 48 | } ], |
| 49 | 49 | 'adicionaGrupo' : [ { |
| 50 | 50 | pt : "Adicionar um novo grupo", |
| 51 | - en : "", | |
| 52 | - es : "" | |
| 51 | + en : "Add a new group", | |
| 52 | + es : "Agregar un grupo nuevo" | |
| 53 | 53 | } ], |
| 54 | 54 | 'adicionaSubgrupo' : [ { |
| 55 | 55 | pt : "Adicionar um novo subgrupo", |
| 56 | - en : "", | |
| 57 | - es : "" | |
| 56 | + en : "Add a new subgroup", | |
| 57 | + es : "Agregar un subgrupo nuevo" | |
| 58 | 58 | } ], |
| 59 | 59 | 'adicionaNovo' : [ { |
| 60 | 60 | pt : "Adicionar um novo", |
| 61 | - en : "", | |
| 62 | - es : "" | |
| 61 | + en : "Add a new", | |
| 62 | + es : "Agregar un nuevo" | |
| 63 | 63 | } ], |
| 64 | 64 | 'grupos' : [ { |
| 65 | 65 | pt : "Grupos", |
| 66 | - en : "", | |
| 67 | - es : "" | |
| 66 | + en : "Groups", | |
| 67 | + es : "Grupos" | |
| 68 | 68 | } ], |
| 69 | 69 | 'raizMenu' : [ { |
| 70 | 70 | pt : "Temas na raiz do menu", |
| 71 | - en : "", | |
| 72 | - es : "" | |
| 71 | + en : "Themes of menu root", | |
| 72 | + es : "Temas de la raíz del menú" | |
| 73 | 73 | } ], |
| 74 | 74 | 'subgrupos' : [ { |
| 75 | 75 | pt : "Subgrupos", |
| 76 | - en : "", | |
| 77 | - es : "" | |
| 76 | + en : "Subgroups", | |
| 77 | + es : "Subgrupos" | |
| 78 | 78 | } ], |
| 79 | 79 | 'temas' : [ { |
| 80 | 80 | pt : "Temas", |
| 81 | - en : "", | |
| 82 | - es : "" | |
| 81 | + en : "Themes", | |
| 82 | + es : "Temas" | |
| 83 | 83 | } ], |
| 84 | 84 | 'editaNo' : [ { |
| 85 | 85 | pt : " ??? vc precisa editar esse nó", |
| 86 | - en : "", | |
| 87 | - es : "" | |
| 86 | + en : "You need edit this node", | |
| 87 | + es : "Usted necesita editar este nodo" | |
| 88 | 88 | } ], |
| 89 | 89 | 'raizGrupo' : [ { |
| 90 | 90 | pt : "Temas na raiz do grupo:", |
| 91 | - en : "", | |
| 92 | - es : "" | |
| 91 | + en : "Themes in the group root:", | |
| 92 | + es : "Temas en las raíz del grupo:" | |
| 93 | 93 | } ], |
| 94 | 94 | 'msgTema' : [ { |
| 95 | 95 | pt : " adicionando tema...", |
| 96 | - en : "", | |
| 97 | - es : "" | |
| 96 | + en : " adding theme...", | |
| 97 | + es : " agregando tema.." | |
| 98 | 98 | } ], |
| 99 | 99 | 'msgGrupo' : [ { |
| 100 | 100 | pt : " adicionando grupo...", |
| 101 | - en : "", | |
| 102 | - es : "" | |
| 101 | + en : " adding group...", | |
| 102 | + es : " agregando grupo..." | |
| 103 | 103 | } ], |
| 104 | 104 | 'msgSubgrupo' : [ { |
| 105 | 105 | pt : " adicionando subgrupo...", |
| 106 | - en : "", | |
| 107 | - es : "" | |
| 106 | + en : " adding subgroup...", | |
| 107 | + es : " agregando subgrupo..." | |
| 108 | 108 | } ], |
| 109 | 109 | 'escolheGrupo' : [ { |
| 110 | 110 | pt : "Escolha o grupo para esse nível:", |
| 111 | - en : "", | |
| 112 | - es : "" | |
| 111 | + en : "Select a group for this level", | |
| 112 | + es : "Seleccione un grupo para este nivel" | |
| 113 | 113 | } ], |
| 114 | 114 | 'msgBusca' : [ { |
| 115 | 115 | pt : "Buscando...", |
| 116 | - en : "", | |
| 117 | - es : "" | |
| 116 | + en : "Searching...", | |
| 117 | + es : "Buscando..." | |
| 118 | 118 | } ], |
| 119 | 119 | 'novoGrupo' : [ { |
| 120 | 120 | pt : "Ou digite o nome de um novo grupo:", |
| 121 | - en : "", | |
| 122 | - es : "" | |
| 121 | + en : "Or type a new group name:", | |
| 122 | + es : "O escriba un nombre de un grupo nuevo:" | |
| 123 | 123 | } ], |
| 124 | 124 | 'perfilVer' : [ { |
| 125 | 125 | pt : "Perfis que podem ver:", |
| 126 | - en : "", | |
| 127 | - es : "" | |
| 126 | + en : "Authorized users:", | |
| 127 | + es : "Pefiles que pueden ver:" | |
| 128 | 128 | } ], |
| 129 | 129 | 'publicado' : [ { |
| 130 | 130 | pt : "Publicado?", |
| 131 | - en : "", | |
| 132 | - es : "" | |
| 131 | + en : "Published?", | |
| 132 | + es : "Publicado?" | |
| 133 | 133 | } ], |
| 134 | 134 | 'escolheSubgrupo' : [ { |
| 135 | 135 | pt : "Escolha o subgrupo para esse nível:", |
| 136 | - en : "", | |
| 137 | - es : "" | |
| 136 | + en : "Select a subgroup for this level:", | |
| 137 | + es : "Seleccione un subgrupo para este nivel:" | |
| 138 | 138 | } ], |
| 139 | 139 | 'novoSubgrupo' : [ { |
| 140 | 140 | pt : "Ou digite o nome de um novo subgrupo:", |
| 141 | - en : "", | |
| 142 | - es : "" | |
| 141 | + en : "Or type a new subgroup name:", | |
| 142 | + es : "O escriba un nombre de un subgrupo nuevo:" | |
| 143 | 143 | } ], |
| 144 | 144 | 'escolheTema' : [ { |
| 145 | 145 | pt : "Escolha o tema para esse nível:", |
| 146 | - en : "", | |
| 147 | - es : "" | |
| 146 | + en : "Select a theme for this level:", | |
| 147 | + es : "Seleccione un tema para este nivel:" | |
| 148 | 148 | } ], |
| 149 | 149 | 'ordem' : [ { |
| 150 | 150 | pt : "Ordem", |
| 151 | - en : "", | |
| 152 | - es : "" | |
| 151 | + en : "Order", | |
| 152 | + es : "Orden" | |
| 153 | 153 | } ], |
| 154 | 154 | 'tema' : [ { |
| 155 | 155 | pt : "Tema:", |
| 156 | - en : "", | |
| 157 | - es : "" | |
| 156 | + en : "Theme:", | |
| 157 | + es : "Tema:" | |
| 158 | 158 | } ], |
| 159 | 159 | 'msgNaoExclui' : [ { |
| 160 | 160 | pt : "Nao foi possivel excluir. Verifique se nao existem menus vinculados a este tema", |
| 161 | - en : "", | |
| 162 | - es : "" | |
| 161 | + en : "It can not be exclude. Verify if there are menus tied to this theme", | |
| 162 | + es : "No fue posible excluir. Verifique que no existen menús vinculados a este tema" | |
| 163 | 163 | } ], |
| 164 | 164 | 'msgGravando' : [ { |
| 165 | 165 | pt : " gravando o registro do id= ", |
| 166 | - en : "", | |
| 167 | - es : "" | |
| 166 | + en : " Saving the id= record ", | |
| 167 | + es : " guardando el registro del id= " | |
| 168 | 168 | } ], |
| 169 | 169 | 'msgEscolheGrupo' : [ { |
| 170 | 170 | pt : "Escolha um grupo", |
| 171 | - en : "", | |
| 172 | - es : "" | |
| 171 | + en : "Choose a group", | |
| 172 | + es : "Escoja un grupo" | |
| 173 | 173 | } ], |
| 174 | 174 | 'msgEscolheSubgrupo' : [ { |
| 175 | 175 | pt : "Escolha um subgrupo", |
| 176 | - en : "", | |
| 177 | - es : "" | |
| 176 | + en : "Choose a subgroup", | |
| 177 | + es : "Escoja un subgrupo" | |
| 178 | 178 | } ], |
| 179 | 179 | 'msgEscolheTema' : [ { |
| 180 | 180 | pt : "Escolha um tema", |
| 181 | - en : "", | |
| 182 | - es : "" | |
| 181 | + en : "Choose a theme", | |
| 182 | + es : "Escoja un tema" | |
| 183 | 183 | } ] |
| 184 | 184 | }; | ... | ... |
classesphp/mapa_controle.php
| ... | ... | @@ -174,6 +174,13 @@ if ($funcao != "listaEpsg" && $funcao != "pegaTodosTemas" && $funcao != "downloa |
| 174 | 174 | } |
| 175 | 175 | else{ |
| 176 | 176 | $map_file = ""; |
| 177 | + if (isset($g_sid) && $g_sid != ""){ | |
| 178 | + session_name("i3GeoPHP"); | |
| 179 | + session_id($g_sid); | |
| 180 | + session_start(); | |
| 181 | + $perfil = $_SESSION["perfil"]; | |
| 182 | + $_pg["perfil"] = $perfil; | |
| 183 | + } | |
| 177 | 184 | } |
| 178 | 185 | |
| 179 | 186 | // | ... | ... |
ms_configura.php
ms_criamapa.php
| ... | ... | @@ -518,6 +518,7 @@ if(!isset($base) || $base == ""){ |
| 518 | 518 | } |
| 519 | 519 | } |
| 520 | 520 | } |
| 521 | + | |
| 521 | 522 | //if(!isset($estadosl)) |
| 522 | 523 | //{$estadosl = "estadosl";} |
| 523 | 524 | /* |
| ... | ... | @@ -525,6 +526,7 @@ Cria os objetos map que ser&atilde;o processados |
| 525 | 526 | |
| 526 | 527 | O arquivo definido em $base é lido como um objeto map. Esse objeto será processado para incluir novos layers e alterar outros parâmetros definidos pelo usuário. |
| 527 | 528 | */ |
| 529 | + | |
| 528 | 530 | if (file_exists($base)){ |
| 529 | 531 | $map = ms_newMapObj($base); |
| 530 | 532 | $mapn = ms_newMapObj($base); | ... | ... |
ogc.php
| ... | ... | @@ -1082,6 +1082,10 @@ if(isset($_GET["tms"])){ |
| 1082 | 1082 | $img = $oMap->draw(); |
| 1083 | 1083 | |
| 1084 | 1084 | if($img->imagepath == ""){ |
| 1085 | + //tenta mais uma vez | |
| 1086 | + $img = $oMap->draw(); | |
| 1087 | + } | |
| 1088 | + if($img->imagepath == ""){ | |
| 1085 | 1089 | exit; |
| 1086 | 1090 | } |
| 1087 | 1091 | if($cache == true){ |
| ... | ... | @@ -1449,7 +1453,11 @@ function salvaCacheImagem($cachedir,$map,$tms){ |
| 1449 | 1453 | @mkdir(dirname($nome),0744,true); |
| 1450 | 1454 | chmod(dirname($nome),0744); |
| 1451 | 1455 | } |
| 1452 | - $img->saveImage($nome); | |
| 1456 | + $img->saveImage($nome); | |
| 1457 | + //tenta mais uma vez | |
| 1458 | + if(!file_exists($nome)){ | |
| 1459 | + $img->saveImage($nome); | |
| 1460 | + } | |
| 1453 | 1461 | // |
| 1454 | 1462 | //corta a imagem gerada para voltar ao tamanho normal |
| 1455 | 1463 | // | ... | ... |
| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | +MAP | |
| 2 | + FONTSET "/var/www/i3geo/symbols/fontes.txt" | |
| 3 | + SYMBOLSET "/var/www/i3geo/symbols/simbolosv6.sym" | |
| 4 | + LAYER | |
| 5 | + CONNECTION "user=postgres password=postgres dbname=i3geosaude host=localhost port=5432 options='-c client_encoding=LATIN1'" | |
| 6 | + CONNECTIONTYPE POSTGIS | |
| 7 | + DATA "the_geom from (select gid, st_setsrid(the_geom,4326) as the_geom,co_bairro,no_bairro,no_distr,no_municip from i3geo_metaestat.bairros/*FW*//*FW*/) as foo using unique co_bairro using srid=4326" | |
| 8 | + METADATA | |
| 9 | + "TIP" "no_bairro" | |
| 10 | + "CLASSE" "SIM" | |
| 11 | + "iconetema" "" | |
| 12 | + "ITENSDESC" "id,Código bairro,Nome,Distrito,Município" | |
| 13 | + "EDITAVEL" "SIM" | |
| 14 | + "ESQUEMATABELAEDITAVEL" "i3geo_metaestat" | |
| 15 | + "CONEXAOORIGINAL" "i3geosaude" | |
| 16 | + "ITENS" "gid,co_bairro,no_bairro,no_distr,no_municip" | |
| 17 | + "TEMA" "_Bairros POSTGIS" | |
| 18 | + "COLUNAGEOMETRIA" "the_geom" | |
| 19 | + "COLUNAIDUNICO" "gid" | |
| 20 | + "TABELAEDITAVEL" "bairros" | |
| 21 | + END # METADATA | |
| 22 | + NAME "_lbairros" | |
| 23 | + STATUS DEFAULT | |
| 24 | + TEMPLATE "none.htm" | |
| 25 | + TILEITEM "location" | |
| 26 | + TYPE POLYGON | |
| 27 | + UNITS METERS | |
| 28 | + CLASS | |
| 29 | + NAME "" | |
| 30 | + STYLE | |
| 31 | + OUTLINECOLOR 255 100 0 | |
| 32 | + END # STYLE | |
| 33 | + END # CLASS | |
| 34 | + END # LAYER | |
| 35 | + | |
| 36 | +END # MAP | |
| 37 | + | ... | ... |
| ... | ... | @@ -0,0 +1,97 @@ |
| 1 | +MAP | |
| 2 | + FONTSET "../symbols/fontes.txt" | |
| 3 | + SYMBOLSET "../symbols/simbolosv6.sym" | |
| 4 | + LAYER | |
| 5 | + CONNECTION "" | |
| 6 | + DATA "/var/www/i3geo/aplicmap/dados/biomas.shp" | |
| 7 | + METADATA | |
| 8 | + "TIP" "CD_LEGENDA" | |
| 9 | + "cache" "SIM" | |
| 10 | + "CLASSE" "sim" | |
| 11 | + "temporizador" "" | |
| 12 | + "permitekmz" "SIM" | |
| 13 | + "ITENSDESC" "Teste de acentuação" | |
| 14 | + "TILES" "SIM" | |
| 15 | + "ESCALA" "1000000" | |
| 16 | + "extensao" "-73.990940816816 -33.74827031115 -34.822855820777 5.272224303909" | |
| 17 | + "permitedownload" "SIM" | |
| 18 | + "permitecomentario" "NAO" | |
| 19 | + "escondido" "NAO" | |
| 20 | + "download" "SIM" | |
| 21 | + "itembuscarapida" "CD_LEGENDA" | |
| 22 | + "ITENS" "CD_LEGENDA" | |
| 23 | + "permitekml" "SIM" | |
| 24 | + "permiteogc" "SIM" | |
| 25 | + "transitioneffect" "NAO" | |
| 26 | + "TEMA" "Biomas shapefile (acentuação)" | |
| 27 | + "identifica" "sim" | |
| 28 | + "aplicaextensao" "NAO" | |
| 29 | + END # METADATA | |
| 30 | + NAME "_lbiomashp" | |
| 31 | + PROCESSING "ITEMS=CD_LEGENDA" | |
| 32 | + PROCESSING "LABEL_NO_CLIP=True" | |
| 33 | + PROCESSING "POLYLINE_NO_CLIP=True" | |
| 34 | + STATUS DEFAULT | |
| 35 | + TEMPLATE "none.htm" | |
| 36 | + TILEITEM "location" | |
| 37 | + OPACITY 90 | |
| 38 | + TYPE POLYGON | |
| 39 | + UNITS METERS | |
| 40 | + CLASS | |
| 41 | + NAME "CAATINGA" | |
| 42 | + EXPRESSION ('[CD_LEGENDA]'eq'CAATINGA') | |
| 43 | + STYLE | |
| 44 | + COLOR 183 247 169 | |
| 45 | + OUTLINECOLOR 255 255 255 | |
| 46 | + END # STYLE | |
| 47 | + TITLE "" | |
| 48 | + END # CLASS | |
| 49 | + CLASS | |
| 50 | + NAME "PAMPA area > 5" | |
| 51 | + EXPRESSION ('[CD_LEGENDA]'eq'PAMPA area > 5') | |
| 52 | + STYLE | |
| 53 | + COLOR 239 22 152 | |
| 54 | + OUTLINECOLOR 255 255 255 | |
| 55 | + END # STYLE | |
| 56 | + TITLE "" | |
| 57 | + END # CLASS | |
| 58 | + CLASS | |
| 59 | + NAME "CERRADO" | |
| 60 | + EXPRESSION ('[CD_LEGENDA]'eq'CERRADO') | |
| 61 | + STYLE | |
| 62 | + COLOR 57 32 234 | |
| 63 | + OUTLINECOLOR 255 255 255 | |
| 64 | + END # STYLE | |
| 65 | + TITLE "" | |
| 66 | + END # CLASS | |
| 67 | + CLASS | |
| 68 | + NAME "PANTANAL" | |
| 69 | + EXPRESSION ('[CD_LEGENDA]'eq'PANTANAL') | |
| 70 | + STYLE | |
| 71 | + COLOR 214 107 232 | |
| 72 | + OUTLINECOLOR 255 255 255 | |
| 73 | + END # STYLE | |
| 74 | + TITLE "" | |
| 75 | + END # CLASS | |
| 76 | + CLASS | |
| 77 | + NAME "AMAZÔNIA" | |
| 78 | + EXPRESSION ('[CD_LEGENDA]'eq'AMAZÔNIA') | |
| 79 | + STYLE | |
| 80 | + COLOR 0 177 0 | |
| 81 | + OUTLINECOLOR 255 255 255 | |
| 82 | + END # STYLE | |
| 83 | + TITLE "" | |
| 84 | + END # CLASS | |
| 85 | + CLASS | |
| 86 | + NAME "MATA ATLÂNTICA" | |
| 87 | + EXPRESSION ('[CD_LEGENDA]'eq'MATA ATLÂNTICA') | |
| 88 | + STYLE | |
| 89 | + COLOR 44 215 49 | |
| 90 | + OUTLINECOLOR 255 255 255 | |
| 91 | + END # STYLE | |
| 92 | + TITLE "" | |
| 93 | + END # CLASS | |
| 94 | + END # LAYER | |
| 95 | + | |
| 96 | +END # MAP | |
| 97 | + | ... | ... |