Commit fa188761b2be2d48252a93b427aaf75a26b7e182
1 parent
13eefc2f
Exists in
master
Correção na opção de inclusão de labels no editor de mapfiles, quando utilizada …
…a opção existente na árvore do editor
Showing
4 changed files
with
114 additions
and
41 deletions
Show diff stats
admin/dicionario/editormapfile.js
... | ... | @@ -7,7 +7,7 @@ i3GEOadmin.editormapfile.dicionario = { |
7 | 7 | es : "" |
8 | 8 | } ], |
9 | 9 | 'txtAjudaMapfile' : [ { |
10 | - pt : "<p>Importante: a restrição ao tema por meio da definição de grupos de usuários não bloqueia o acesso por meio de download, WMS, KML, etc. Para bloquear esse tipo de acesso é necessário alterar as opções específicas. Por padrão, esses serviços são habilitados para qualquer usuário, não sendo possível bloquear apenas para determinados grupos. <p>Este formulário permite criar ou editar os arquivos mapfile que compõem temas no i3geo. <p>Os arquivo .map são armazenados no diretório i3geo/temas e podem também ser editados manualmente. <p>Cada arquivo contém layers definidos conforme a sintaxe utilizada pelo Mapserver. Esses arquivos são as estruturas básicas utilizadas pelo i3geo na apresentação de dados e montagem das camadas que são vistas no mapa. <p>Após criados os mapfiles, deve-se ainda definir as características de cada LAYER. <p>A lista de IPs dos usuários que podem administrar o i3geo é definida no arquivo i3geo/ms_configura.php <p>Apenas os mapfiles que forem vinculados a um tema poderão ser vistos na janela de inclusão de temas na árvore de temas. Se você criou um mapfile manualmente, utilize a opção de edição (ícone apresentado ao lado de cada mapfile) para fazer essa associação. <p>A opção 'Verifica temas sem mapfiles' possibilita resolver problemas decorrentes da eliminação manual de um arquivo mapfile do servidor. Nesses casos, o registro no banco de dados permanece. Com essa opção é possível apagar os registros ou recriar o mapfile perdido.", | |
10 | + pt : "<p>Importante: a restrição ao tema por meio da definição de grupos de usuários não bloqueia o acesso por meio de download, WMS, KML, etc. Para bloquear esse tipo de acesso é necessário alterar as opções específicas. Por padrão, esses serviços são habilitados para qualquer usuário, não sendo possível bloquear apenas para determinados grupos. <p>Este formulário permite criar ou editar os arquivos mapfile que compõem temas no i3geo. <p>Os arquivo .map são armazenados no diret�rio i3geo/temas e podem também ser editados manualmente. <p>Cada arquivo contém layers definidos conforme a sintaxe utilizada pelo Mapserver. Esses arquivos são as estruturas básicas utilizadas pelo i3geo na apresentação de dados e montagem das camadas que são vistas no mapa. <p>Ap�s criados os mapfiles, deve-se ainda definir as características de cada LAYER. <p>A lista de IPs dos usuários que podem administrar o i3geo é definida no arquivo i3geo/ms_configura.php <p>Apenas os mapfiles que forem vinculados a um tema poderão ser vistos na janela de inclusão de temas na árvore de temas. Se você criou um mapfile manualmente, utilize a opção de edição (ícone apresentado ao lado de cada mapfile) para fazer essa associação. <p>A opção 'Verifica temas sem mapfiles' possibilita resolver problemas decorrentes da eliminação manual de um arquivo mapfile do servidor. Nesses casos, o registro no banco de dados permanece. Com essa opção é possível apagar os registros ou recriar o mapfile perdido.", | |
11 | 11 | en : "", |
12 | 12 | es : "" |
13 | 13 | } ], |
... | ... | @@ -167,7 +167,7 @@ i3GEOadmin.editormapfile.dicionario = { |
167 | 167 | es : "" |
168 | 168 | } ], |
169 | 169 | 'apenasShp' : [ { |
170 | - pt : "Opcao disponivel apenas para o tipo shapefile", // esta sem acento pois alguns navegadores não aceitam acentuacao em alert | |
170 | + pt : "Opcao disponivel apenas para o tipo shapefile", // esta sem acento pois alguns navegadores n�o aceitam acentuacao em alert | |
171 | 171 | en : "", |
172 | 172 | es : "" |
173 | 173 | } ], |
... | ... | @@ -327,7 +327,7 @@ i3GEOadmin.editormapfile.dicionario = { |
327 | 327 | es : "" |
328 | 328 | } ], |
329 | 329 | 'legendaImg' : [ { |
330 | - pt : "URL de uma imagem que será utilizada em substituição à geração normal da legenda ", | |
330 | + pt : "URL de uma imagem que será utilizada em substituição � geração normal da legenda ", | |
331 | 331 | en : "", |
332 | 332 | es : "" |
333 | 333 | } ], |
... | ... | @@ -1297,12 +1297,12 @@ i3GEOadmin.editormapfile.dicionario = { |
1297 | 1297 | es : "" |
1298 | 1298 | } ], |
1299 | 1299 | 'ltempoconvencode' : [ { |
1300 | - pt : "Aplica conversão do código de caracteres? Pode ser necessário para corrigir problemas de acentuação", | |
1300 | + pt : "Aplica conversão do c�digo de caracteres? Pode ser necessário para corrigir problemas de acentuação", | |
1301 | 1301 | en : "", |
1302 | 1302 | es : "" |
1303 | 1303 | } ], |
1304 | 1304 | 'ltempoconvencodeTitulo' : [ { |
1305 | - pt : "Aplica conversão do código de caracteres? Pode ser necessário para corrigir problemas de acentuação", | |
1305 | + pt : "Aplica conversão do c�digo de caracteres? Pode ser necessário para corrigir problemas de acentuação", | |
1306 | 1306 | en : "", |
1307 | 1307 | es : "" |
1308 | 1308 | } ], |
... | ... | @@ -1387,7 +1387,7 @@ i3GEOadmin.editormapfile.dicionario = { |
1387 | 1387 | es : "" |
1388 | 1388 | } ], |
1389 | 1389 | 'itenslink' : [ { |
1390 | - pt : "Lista de links que serão incluídos em cada resultado de busca da ferramenta de identificação. A lista de links deve ser separada por ',', podendo-se incluir '' para indicar que o item não tem link. Exemplo de uso para inclusão de links para o site do IBGE quando um município é clicado no mapa:<br>ITENS 'codigo,nome2,uf'<br>ITENSDESC 'codigo do IBGE,nome do município,uf'<br>ITENSLLINK ',http://www.ibge.gov.br/munic2001/tabelas.php?codmun=[codigo]&descricao=[nome],'<br>Podem ser incluídos comandos javascript, para isso utilize sempre aspas simples para fechar o link e acrescente o código javascript, exemplo:<br>ITENSLINK \",'../ferramentas/identifica/testelink.php?sid='+i3GEO.configura.sid\"", | |
1390 | + pt : "Lista de links que serão incluídos em cada resultado de busca da ferramenta de identificação. A lista de links deve ser separada por ',', podendo-se incluir '' para indicar que o item não tem link. Exemplo de uso para inclusão de links para o site do IBGE quando um município é clicado no mapa:<br>ITENS 'codigo,nome2,uf'<br>ITENSDESC 'codigo do IBGE,nome do município,uf'<br>ITENSLLINK ',http://www.ibge.gov.br/munic2001/tabelas.php?codmun=[codigo]&descricao=[nome],'<br>Podem ser incluídos comandos javascript, para isso utilize sempre aspas simples para fechar o link e acrescente o c�digo javascript, exemplo:<br>ITENSLINK \",'../ferramentas/identifica/testelink.php?sid='+i3GEO.configura.sid\"", | |
1391 | 1391 | en : "", |
1392 | 1392 | es : "" |
1393 | 1393 | } ], |
... | ... | @@ -1427,7 +1427,7 @@ i3GEOadmin.editormapfile.dicionario = { |
1427 | 1427 | es : "" |
1428 | 1428 | } ], |
1429 | 1429 | 'name' : [ { |
1430 | - pt : "Elemento 'NAME'. Não confunda com o nome que aparece no mapa ou na árvore de temas. Normalmente o código recebe o mesmo nome do arquivo mapfile, sem a extensão '.map'", | |
1430 | + pt : "Elemento 'NAME'. Não confunda com o nome que aparece no mapa ou na árvore de temas. Normalmente o c�digo recebe o mesmo nome do arquivo mapfile, sem a extensão '.map'", | |
1431 | 1431 | en : "", |
1432 | 1432 | es : "" |
1433 | 1433 | } ], |
... | ... | @@ -1496,8 +1496,8 @@ i3GEOadmin.editormapfile.dicionario = { |
1496 | 1496 | en : "", |
1497 | 1497 | es : "" |
1498 | 1498 | } ], |
1499 | - '' : [ { | |
1500 | - pt : "", | |
1499 | + 'colunaLabel' : [ { | |
1500 | + pt : "Coluna da tabela de atributos", | |
1501 | 1501 | en : "", |
1502 | 1502 | es : "" |
1503 | 1503 | } ], | ... | ... |
admin/js/editormapfile.js
... | ... | @@ -889,7 +889,7 @@ function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo, |
889 | 889 | } |
890 | 890 | if(tipo == "classeLabel") |
891 | 891 | { |
892 | - campos = new Array("encoding","force","partials","mindistance","minfeaturesize","wrap","antialias","buffer","autoangle","angle","offsety","offsetx","position","maxsize","minsize","size","backgroundshadowsizey","backgroundshadowsizex","shadowsizey","shadowsizex","shadowcolor","outlinecolor","color","backgroundshadowcolor","backgroundcolor","type","font"); | |
892 | + campos = new Array("text","encoding","force","partials","mindistance","minfeaturesize","wrap","antialias","buffer","autoangle","angle","offsety","offsetx","position","maxsize","minsize","size","backgroundshadowsizey","backgroundshadowsizex","shadowsizey","shadowsizex","shadowcolor","outlinecolor","color","backgroundshadowcolor","backgroundcolor","type","font"); | |
893 | 893 | par = "&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse; |
894 | 894 | prog = "../php/editormapfile.php?funcao=alterarClasseLabel" ; |
895 | 895 | } | ... | ... |
admin/js/editormapfile_label.js
... | ... | @@ -22,6 +22,8 @@ function montaEditorClasseLabel(dados) |
22 | 22 | core_montaEditor(temp,"450px","500px","","Label "+dados.codigoMap,true,true,false); |
23 | 23 | var param = { |
24 | 24 | "linhas":[ |
25 | + {ajuda:$trad("colunaLabel",i3GEOadmin.editormapfile.dicionario), | |
26 | + titulo:$trad("colunaLabel",i3GEOadmin.editormapfile.dicionario),id:"text",value:dados.text,tipo:"text"}, | |
25 | 27 | {ajuda:$trad("colorLabel",i3GEOadmin.editormapfile.dicionario), |
26 | 28 | titulo:$trad("colorLabelTitulo",i3GEOadmin.editormapfile.dicionario),id:"color",value:dados.color,tipo:"cor"}, |
27 | 29 | {ajuda:$trad("sizeLabel",i3GEOadmin.editormapfile.dicionario), | ... | ... |
admin/php/editormapfile.php
... | ... | @@ -2152,43 +2152,44 @@ function pegaClasseLabel() |
2152 | 2152 | $layer = $mapa->getlayerbyname($codigoLayer); |
2153 | 2153 | $classe = $layer->getclass($indiceClasse); |
2154 | 2154 | |
2155 | - $v = versao(); | |
2155 | + $v = versao(); | |
2156 | 2156 | $vi = $v["inteiro"]; |
2157 | - if($vi >= 60200){ | |
2158 | - $nlabel = $classe->numlabels; | |
2157 | + if($vi >= 60200){ | |
2158 | + $nlabels = $classe->numlabels; | |
2159 | 2159 | if($nlabels > 0){ |
2160 | 2160 | $label = $classe->getLabel(0); |
2161 | 2161 | } |
2162 | 2162 | else{ |
2163 | 2163 | $label = ""; |
2164 | - } | |
2165 | - } | |
2166 | - else{ | |
2167 | - $label = $classe->label; | |
2164 | + } | |
2165 | + } | |
2166 | + else{ | |
2167 | + $label = $classe->label; | |
2168 | 2168 | } |
2169 | 2169 | if ($label != "") |
2170 | 2170 | { |
2171 | 2171 | $dados["font"] = $label->font; |
2172 | 2172 | $dados["type"] = $label->type; |
2173 | - $dados["backgroundcolor"] = $label->backgroundcolor->red.",".$label->backgroundcolor->green.",".$label->backgroundcolor->blue; | |
2174 | - $dados["backgroundshadowcolor"] = $label->backgroundshadowcolor->red.",".$label->backgroundshadowcolor->green.",".$label->backgroundshadowcolor->blue; | |
2173 | + //$dados["backgroundcolor"] = $label->backgroundcolor->red.",".$label->backgroundcolor->green.",".$label->backgroundcolor->blue; | |
2174 | + //$dados["backgroundshadowcolor"] = $label->backgroundshadowcolor->red.",".$label->backgroundshadowcolor->green.",".$label->backgroundshadowcolor->blue; | |
2175 | 2175 | $dados["color"] = $label->color->red.",".$label->color->green.",".$label->color->blue; |
2176 | 2176 | $dados["outlinecolor"] = $label->outlinecolor->red.",".$label->outlinecolor->green.",".$label->outlinecolor->blue; |
2177 | 2177 | $dados["shadowcolor"] = $label->shadowcolor->red.",".$label->shadowcolor->green.",".$label->shadowcolor->blue; |
2178 | 2178 | $dados["shadowsizex"] = $label->shadowsizex; |
2179 | 2179 | $dados["shadowsizey"] = $label->shadowsizey; |
2180 | - $dados["backgroundshadowsizex"] = $label->backgroundshadowsizex; | |
2181 | - $dados["backgroundshadowsizey"] = $label->backgroundshadowsizey; | |
2180 | + //$dados["backgroundshadowsizex"] = $label->backgroundshadowsizex; | |
2181 | + //$dados["backgroundshadowsizey"] = $label->backgroundshadowsizey; | |
2182 | 2182 | $dados["size"] = $label->size; |
2183 | + | |
2183 | 2184 | $dados["minsize"] = $label->minsize; |
2184 | 2185 | $dados["maxsize"] = $label->maxsize; |
2185 | 2186 | $dados["position"] = $label->position; |
2186 | 2187 | $dados["offsetx"] = $label->offsetx; |
2187 | 2188 | $dados["offsety"] = $label->offsety; |
2188 | 2189 | $dados["angle"] = $label->angle; |
2189 | - $dados["autoangle"] = $label->autoangle; | |
2190 | + //$dados["autoangle"] = $label->autoangle; | |
2190 | 2191 | $dados["buffer"] = $label->buffer; |
2191 | - $dados["antialias"] = $label->antialias; | |
2192 | + //$dados["antialias"] = $label->antialias; | |
2192 | 2193 | $dados["wrap"] = $label->wrap; |
2193 | 2194 | $dados["minfeaturesize"] = $label->minfeaturesize; |
2194 | 2195 | $dados["autominfeaturesize"] = $label->autominfeaturesize; |
... | ... | @@ -2211,54 +2212,124 @@ function pegaClasseLabel() |
2211 | 2212 | $dados["fontes"] = $nome; |
2212 | 2213 | return $dados; |
2213 | 2214 | } |
2215 | + | |
2214 | 2216 | function alterarClasseLabel() |
2215 | 2217 | { |
2216 | - global $codigoMap,$codigoLayer,$indiceClasse,$locaplic,$autoangle,$encoding,$force,$partials,$mindistance,$minfeaturesize,$wrap,$antialias,$buffer,$angle,$offsety,$offsetx,$position,$maxsize,$minsize,$size,$backgroundshadowsizey,$backgroundshadowsizex,$shadowsizey,$shadowsizex,$shadowcolor,$outlinecolor,$color,$backgroundshadowcolor,$backgroundcolor,$type,$font; | |
2218 | + global $texto,$codigoMap,$codigoLayer,$indiceClasse,$locaplic,$autoangle,$encoding,$force,$partials,$mindistance,$minfeaturesize,$wrap,$antialias,$buffer,$angle,$offsety,$offsetx,$position,$maxsize,$minsize,$size,$backgroundshadowsizey,$backgroundshadowsizex,$shadowsizey,$shadowsizex,$shadowcolor,$outlinecolor,$color,$backgroundshadowcolor,$backgroundcolor,$type,$font; | |
2219 | + if(!isset($texto)){ | |
2220 | + $texto = ""; | |
2221 | + } | |
2222 | + else{ | |
2223 | + $texto = "[".$texto."]"; | |
2224 | + } | |
2217 | 2225 | $dados = array(); |
2218 | 2226 | $mapfile = $locaplic."/temas/".$codigoMap.".map"; |
2219 | 2227 | $mapa = ms_newMapObj($mapfile); |
2220 | 2228 | $layer = $mapa->getlayerbyname($codigoLayer); |
2221 | - if(strtoupper($layer->getmetadata("metaestat")) === "SIM"){ | |
2222 | - return "erro. Layer METAESTAT"; | |
2229 | + if(strtoupper($layer->getmetadata("metaestat")) === "SIM"){ | |
2230 | + return "erro. Layer METAESTAT"; | |
2223 | 2231 | } |
2224 | 2232 | $classe = $layer->getclass($indiceClasse); |
2225 | - $label = $classe->label; | |
2226 | - if ($label != "") | |
2227 | - { | |
2228 | - $label->set("font",$font); | |
2229 | - $label->set("type",$type); | |
2233 | + $v = versao(); | |
2234 | + $vi = $v["inteiro"]; | |
2235 | + | |
2236 | + if($texto == ""){ | |
2237 | + if($vi >= 60300){ | |
2238 | + $indiceLabel = $classe->addLabel(new labelObj()); | |
2239 | + $label = $classe->getLabel($indiceLabel); | |
2240 | + } | |
2241 | + else{ | |
2242 | + $label = $classe->label; | |
2243 | + } | |
2244 | + } | |
2245 | + elseif ($vi >= 60300 && $classe->numlabels == 0){ | |
2246 | + if($wrap != ""){ | |
2247 | + $s = "CLASS LABEL WRAP '$wrap' TEXT '".$texto."' END END"; | |
2248 | + $classe->updateFromString($s); | |
2249 | + } | |
2250 | + else{ | |
2251 | + $s = "CLASS LABEL TEXT '".$texto."' END END"; | |
2252 | + $classe->updateFromString($s); | |
2253 | + } | |
2254 | + } | |
2255 | + | |
2256 | + if($vi >= 60300){ | |
2257 | + $label = $classe->getLabel(0); | |
2258 | + } | |
2259 | + else{ | |
2260 | + $label = $classe->label; | |
2261 | + } | |
2262 | + | |
2263 | + if($wrap != ""){ | |
2264 | + $label->set("maxlength",1); | |
2265 | + } | |
2266 | + if($fonte != "bitmap"){ | |
2267 | + //para funcionar na versao 7 do mapserver | |
2268 | + $label->updateFromString("LABEL type truetype END"); | |
2269 | + $label->set("font",$fonte); | |
2270 | + $label->set("size",$tamanho); | |
2271 | + } | |
2272 | + else{ | |
2273 | + //para funcionar na versao 7 do mapserver | |
2274 | + $label->updateFromString("LABEL type bitmap END"); | |
2275 | + $t = MS_TINY; | |
2276 | + if ($tamanho > 5 ){ | |
2277 | + $t = MS_TINY; | |
2278 | + } | |
2279 | + if ($tamanho >= 7 ){ | |
2280 | + $t = MS_SMALL; | |
2281 | + } | |
2282 | + if ($tamanho >= 10 ){ | |
2283 | + $t = MS_MEDIUM; | |
2284 | + } | |
2285 | + if ($tamanho >= 12 ){ | |
2286 | + $t = MS_LARGE; | |
2287 | + } | |
2288 | + if ($tamanho >= 14 ){ | |
2289 | + $t = MS_GIANT; | |
2290 | + } | |
2291 | + $label->set("size",$t); | |
2292 | + } | |
2293 | + if ($label != ""){ | |
2294 | + //$label->set("type",$type); | |
2230 | 2295 | corE($label,$backgroundcolor,"backgroundcolor"); |
2231 | 2296 | corE($label,$backgroundshadowcolor,"backgroundshadowcolor"); |
2232 | 2297 | corE($label,$color,"color"); |
2233 | 2298 | corE($label,$outlinecolor,"outlinecolor"); |
2234 | - corE($label,$shadowcolor,"shadowcolor"); | |
2299 | + if(!empty($sombra) && !empty($backgroundshadowsizex)){ | |
2300 | + corE($label,$sombra,"backgroundshadowcolor",$backgroundshadowsizex,$backgroundshadowsizey); | |
2301 | + } | |
2235 | 2302 | $label->set("shadowsizex",$shadowsizex); |
2236 | 2303 | $label->set("shadowsizey",$shadowsizey); |
2237 | - $label->set("backgroundshadowsizex",$backgroundshadowsizex); | |
2238 | - $label->set("backgroundshadowsizey",$backgroundshadowsizey); | |
2239 | - $label->set("size",$size); | |
2304 | + //$label->set("backgroundshadowsizex",$backgroundshadowsizex); | |
2305 | + //$label->set("backgroundshadowsizey",$backgroundshadowsizey); | |
2306 | + | |
2240 | 2307 | $label->set("minsize",$minsize); |
2241 | 2308 | $label->set("maxsize",$maxsize); |
2242 | - $label->set("position",$position); | |
2309 | + //$label->set("position",$position); | |
2310 | + | |
2243 | 2311 | $label->set("offsetx",$offsetx); |
2244 | 2312 | $label->set("offsety",$offsety); |
2245 | 2313 | $label->set("angle",$angle); |
2246 | - $label->set("autoangle",$autoangle); | |
2247 | - $label->set("buffer",$buffer); | |
2248 | - $label->set("antialias",$antialias); | |
2314 | + | |
2315 | + //$label->set("autoangle",$autoangle); | |
2316 | + //$label->set("buffer",$buffer); | |
2317 | + //$label->set("antialias",$antialias); | |
2249 | 2318 | $label->set("wrap",$wrap); |
2250 | 2319 | $label->set("minfeaturesize",$minfeaturesize); |
2251 | - //$label->set("autominfeaturesize",$autominfeaturesize); | |
2252 | 2320 | $label->set("mindistance",$mindistance); |
2253 | 2321 | $label->set("partials",$partials); |
2254 | 2322 | $label->set("force",$force); |
2255 | 2323 | $label->set("encoding",$encoding); |
2256 | - $label->set("autoangle",$autoangle); | |
2324 | + | |
2325 | + $p = array("MS_AUTO"=>MS_AUTO,"MS_UL"=>MS_UL,"MS_LR"=>MS_LR,"MS_UR"=>MS_UR,"MS_LL"=>MS_LL,"MS_CR"=>MS_CR,"MS_CL"=>MS_CL,"MS_UC"=>MS_UC,"MS_LC"=>MS_LC,"MS_CC"=>MS_CC); | |
2326 | + $label->set("position",$p[$position]); | |
2257 | 2327 | } |
2258 | 2328 | $mapa->save($mapfile); |
2259 | 2329 | removeCabecalho($mapfile); |
2260 | 2330 | return "ok"; |
2261 | 2331 | } |
2332 | + | |
2262 | 2333 | function pegaEstilo() |
2263 | 2334 | { |
2264 | 2335 | global $codigoMap,$codigoLayer,$indiceClasse,$indiceEstilo,$locaplic; | ... | ... |