Commit c6c37803a8c9cec314070751627d64d9ed207c51

Authored by Edmar Moretti
1 parent ff5363d4

Validação do menu de temas, propriedades do mapa e opções de cada tema na interf…

…ace Openlayers e Firefox
admin/php/classe_arvore.php
... ... @@ -33,12 +33,11 @@ class Arvore
33 33 {$coluna = "nome_tema";}
34 34 else
35 35 {$coluna = $idioma;}
36   - $this->sql_temasraiz = "select id_raiz,i3geoadmin_raiz.id_tema,$coluna as nome_tema,tipoa_tema FROM i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_temas.id_tema = i3geoadmin_raiz.id_tema ";
  36 + $this->sql_temasraiz = "select id_raiz,i3geoadmin_raiz.id_tema,$coluna as nome_tema,tipoa_tema,perfil FROM i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_temas.id_tema = i3geoadmin_raiz.id_tema ";
37 37 $this->sql_temasSubgrupo = "select i3geoadmin_temas.tipoa_tema, i3geoadmin_temas.codigo_tema,i3geoadmin_temas.tags_tema,i3geoadmin_n3.id_n3,i3geoadmin_temas.$coluna as nome_tema,i3geoadmin_n3.publicado,i3geoadmin_n3.n3_perfil,i3geoadmin_n3.id_tema,i3geoadmin_temas.download_tema,i3geoadmin_temas.ogc_tema from i3geoadmin_n3 LEFT JOIN i3geoadmin_temas ON i3geoadmin_n3.id_tema = i3geoadmin_temas.id_tema ";
38 38  
39 39 $this->sql_temas = "select kmz_tema,nacessos,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,$coluna as nome_tema,codigo_tema from i3geoadmin_temas ";
40 40  
41   -
42 41 $this->locaplic = $locaplic;
43 42 $dbh = "";
44 43 error_reporting(0);
... ... @@ -95,7 +94,7 @@ class Arvore
95 94 }
96 95 return $resultado;
97 96 }
98   - //procura um tema tendo como base uma palavra
  97 + //procura um tema tendo como base uma palavra.
99 98 function procuraTemas ($procurar,$perfil)
100 99 {
101 100 if($procurar != "")
... ... @@ -114,6 +113,41 @@ class Arvore
114 113 if($this->verificaOcorrencia($perfil,explode(",",$a)))
115 114 {
116 115 $sgrupos = $this->pegaSubgruposGrupo($menu["idmenu"],$grupo["id_n1"]);
  116 + $temasRaizGrupo = array();
  117 + $temasR = $this->pegaTemasRaizGrupo($menu["idmenu"],$grupo["id_n1"]);
  118 + foreach($temasR as $tema)
  119 + {
  120 + $a = $tema["perfil"];
  121 + $a = str_replace(" ",",",$a);
  122 + if($this->verificaOcorrencia($perfil,explode(",",$a)))
  123 + {
  124 + $t = $this->pegaTema($tema["id_tema"]);
  125 + $t = $t[0];
  126 + $nome = $this->removeAcentos($tema["nome_tema"]);
  127 + $tags = $this->removeAcentos($tema["tags_tema"]);
  128 + $tags1 = $this->removeAcentos(mb_convert_encoding($tema["tags_tema"],"ISO-8859-1","UTF-8"));
  129 + $nome1 = $this->removeAcentos(mb_convert_encoding($tema["nome_tema"],"ISO-8859-1","UTF-8"));
  130 + $miniatura = "nao";
  131 + if(file_exists($this->locaplic."/temas/miniaturas/".$tema["codigo_tema"].".map.mini.png"))
  132 + {$miniatura = "sim";}
  133 + $down = "sim";
  134 + if (strtolower($t["download_tema"]) == "nao")
  135 + {$down = "nao";}
  136 + $texto = array("miniatura"=>$miniatura,"tid"=>$t["codigo_tema"],"nome"=>$this->converte($tema["nome_tema"]),"link"=>$t["link_tema"],"download"=>$down);
  137 + if($procurar == "")
  138 + {$resultado[] = $texto;}
  139 + else
  140 + {
  141 + if (stristr($nome,$procurar) || stristr($nome1,$procurar))
  142 + {$temasRaizGrupo[] = $texto;}
  143 + else
  144 + {
  145 + if (stristr($tags,$procurar) || stristr($tags1,$procurar))
  146 + {$temasRaizGrupo[] = $texto;}
  147 + }
  148 + }
  149 + }
  150 + }
117 151 foreach($sgrupos["subgrupos"] as $sgrupo)
118 152 {
119 153 $a = $sgrupo["n2_perfil"];
... ... @@ -160,8 +194,8 @@ class Arvore
160 194 $resultado = array();
161 195 }
162 196 }
163   - if (count($subgrupo) > 0)
164   - {$final[] = array("grupo"=>$this->converte($grupo["nome_grupo"]),"subgrupos"=>$subgrupo);}
  197 + if (count($subgrupo) > 0 || count($temasRaizGrupo) > 0)
  198 + {$final[] = array("grupo"=>$this->converte($grupo["nome_grupo"]),"temas"=>$temasRaizGrupo,"subgrupos"=>$subgrupo);}
165 199 $subgrupo = array();
166 200 }
167 201 }
... ...
aplicmap/geral1.map
... ... @@ -297,17 +297,19 @@ MAP
297 297 END
298 298 END
299 299 END
  300 +
300 301 LAYER
301 302 NAME osm
302 303 TYPE RASTER
303 304 METADATA
304 305 "wms_title" "Open Street Map"
305   - "wms_group_title" "Roads & Highways"
  306 + #"wms_group_title" "Roads & Highways"
306 307 "wms_format" "image/png"
307 308 "wms_srs" "EPSG:4326"
308   - "wms_name" "osm"
  309 + "wms_name" ""
309 310 "wms_server_version" "1.1.1"
310 311 "wms_transparent" "true"
  312 + "cache" "sim"
311 313 "CLASSE" "SIM"
312 314 "palletestep" ""
313 315 "permitekmz" "nao"
... ... @@ -318,15 +320,15 @@ LAYER
318 320 "permiteogc" "nao"
319 321 "permitekml" "nao"
320 322 "TEMA" "Open Street Map - Rodovias"
321   - "cache" "sim"
322 323 END
323 324 STATUS OFF
324 325 CONNECTIONTYPE WMS
325   - CONNECTION "http://data1.vizure.net/server/services/request.php?jname=/wms"
  326 + CONNECTION "http://full.wms.geofabrik.de/std/demo_key?"
326 327 #PROJECTION
327 328 # "init=epsg:4326"
328 329 #END
329   - END
  330 + END
  331 +
330 332 LAYER
331 333 METADATA
332 334 #"TEMA" "NAO"
... ...
aplicmap/geral1windows.map
... ... @@ -302,10 +302,10 @@ LAYER
302 302 TYPE RASTER
303 303 METADATA
304 304 "wms_title" "Open Street Map"
305   - "wms_group_title" "Roads & Highways"
  305 + #"wms_group_title" "Roads & Highways"
306 306 "wms_format" "image/png"
307 307 "wms_srs" "EPSG:4326"
308   - "wms_name" "osm"
  308 + "wms_name" ""
309 309 "wms_server_version" "1.1.1"
310 310 "wms_transparent" "true"
311 311 "cache" "sim"
... ... @@ -322,7 +322,7 @@ LAYER
322 322 END
323 323 STATUS OFF
324 324 CONNECTIONTYPE WMS
325   - CONNECTION "http://data1.vizure.net/server/services/request.php?jname=/wms"
  325 + CONNECTION "http://full.wms.geofabrik.de/std/demo_key?"
326 326 #PROJECTION
327 327 # "init=epsg:4326"
328 328 #END
... ...
aplicmap/openlayers.htm
... ... @@ -225,8 +225,8 @@ var bra = new OpenLayers.Layer.WMS(
225 225 );
226 226 var osm = new OpenLayers.Layer.WMS(
227 227 "Open Street Map",
228   - "http://data1.vizure.net/server/services/request.php?jname=/wms",
229   - {},
  228 + "http://full.wms.geofabrik.de/std/demo_key",
  229 + {layers:""},
230 230 {isBaseLayer:true,visibility:false}
231 231 );
232 232  
... ...
classesjs/classe_arvoredetemas.js
... ... @@ -710,7 +710,7 @@ i3GEO.arvoreDeTemas = {
710 710 if(navm){insp += "style='top:0px;'";}
711 711 else
712 712 {insp += "style='top:4px;'";}
713   - insp += " title='"+$trad("a1")+"' src='"+i3GEO.util.$im("branco.gif")+"' onclick='i3GEO.arvoreDeTemas.buscaTema(document.getElementById(\"i3geo_buscatema\").value)' style='cursor:pointer;top:2px;position:relative;' /></td>";
  713 + insp += " title='"+$trad("a1")+"' src='"+i3GEO.util.$im("branco.gif")+"' onclick='i3GEO.arvoreDeTemas.buscaTema2(document.getElementById(\"i3geo_buscatema\").value)' style='cursor:pointer;top:2px;position:relative;' /></td>";
714 714 insp += "</tr></table>&nbsp;";
715 715 tempNode = new YAHOO.widget.HTMLNode(
716 716 {html:insp},
... ... @@ -1332,7 +1332,7 @@ i3GEO.arvoreDeTemas = {
1332 1332 return (lista);
1333 1333 },
1334 1334 /*
1335   - Function: buscaTema
  1335 + Depreciado na versão 4.4
1336 1336  
1337 1337 Procura temas na árvore de temas (a busca é feita no servidor e não na árvore atual).
1338 1338  
... ... @@ -1367,7 +1367,6 @@ i3GEO.arvoreDeTemas = {
1367 1367 {mostra = false;}
1368 1368 if(i3GEO.arvoreDeTemas.FILTRAOGC && ngTema[st].ogc == "nao")
1369 1369 {mostra = false;}
1370   -
1371 1370 if(mostra){
1372 1371 d = i3GEO.arvoreDeTemas.montaTextoTema("gray",ngTema[st]);
1373 1372 if ( ngTema[st].link != " ")
... ... @@ -1397,7 +1396,108 @@ i3GEO.arvoreDeTemas = {
1397 1396 //funcao que será executada para buscar os temas
1398 1397 //
1399 1398 busca = function(){
1400   - i3GEO.php.procurartemas(resultadoProcurar,i3GEO.util.removeAcentos(palavra));
  1399 + i3GEO.php.procurartemas2(resultadoProcurar,i3GEO.util.removeAcentos(palavra));
  1400 + };
  1401 + //
  1402 + //recolhe todos os nós e acrescenta um novo
  1403 + //
  1404 + i3GEO.arvoreDeTemas.ARVORE.collapseAll();
  1405 + root = i3GEO.arvoreDeTemas.ARVORE.getRoot();
  1406 + if(!i3GEO.arvoreDeTemas.ARVORE.getNodeByProperty("id","temasEncontrados")){
  1407 + tempNode = new YAHOO.widget.HTMLNode(
  1408 + {html:"Temas encontrados",id:"temasEncontrados"},
  1409 + root,
  1410 + false,
  1411 + true
  1412 + );
  1413 + tempNode.enableHighlight = false;
  1414 + }
  1415 + else
  1416 + {tempNode = i3GEO.arvoreDeTemas.ARVORE.getNodeByProperty("id","temasEncontrados");}
  1417 + nodePalavra = new YAHOO.widget.HTMLNode({html:palavra}, tempNode, false,true);
  1418 + nodePalavra.enableHighlight = false;
  1419 + i3GEO.arvoreDeTemas.ARVORE.draw();
  1420 + tempNode.expand();
  1421 + nodePalavra.setDynamicLoad(busca, 1);
  1422 + nodePalavra.expand();
  1423 + },
  1424 + /*
  1425 + Function: buscaTema2
  1426 +
  1427 + Procura temas na árvore de temas (a busca é feita no servidor e não na árvore atual).
  1428 +
  1429 + Parametro:
  1430 +
  1431 + palavra {String}
  1432 + */
  1433 + buscaTema2: function(palavra){
  1434 + if(palavra === ""){return;}
  1435 + if(typeof(console) !== 'undefined'){console.info("i3GEO.arvoreDeTemas.buscaTema()");}
  1436 + var busca,root,nodePalavra;
  1437 + resultadoProcurar = function(retorno)
  1438 + {
  1439 + var mostra,tempNode,d,ig,
  1440 + montaTexto = function(ngSgrupo){
  1441 + var tempn,ngTema,tempng,mostra,d,lk,tempNode,st,sg;
  1442 + tempn = ngSgrupo.length;
  1443 + for(sg=0;sg<tempn;sg++){
  1444 + ngTema = ngSgrupo[sg].temas;
  1445 + tempng = ngTema.length;
  1446 + for (st=0;st<tempng;st++){
  1447 + mostra = true;
  1448 + try{
  1449 + if(i3GEO.arvoreDeTemas.FILTRADOWNLOAD && ngTema[st].download == "nao")
  1450 + {mostra = false;}
  1451 + if(i3GEO.arvoreDeTemas.FILTRAOGC && ngTema[st].ogc == "nao")
  1452 + {mostra = false;}
  1453 + }
  1454 + catch(e){}
  1455 + if(mostra){
  1456 + d = i3GEO.arvoreDeTemas.montaTextoTema("gray",ngTema[st]);
  1457 + if ( ngTema[st].link != " ")
  1458 + {lk = "<a href='"+ngTema[st].link+"' target='blank'>&nbsp;fonte</a>";}
  1459 + if(ngSgrupo[sg].subgrupo)
  1460 + {d += "<td style='text-allign:left'> ("+(ngSgrupo[sg].subgrupo)+") "+lk+"</td>";}
  1461 + else
  1462 + {d += "<td style='text-allign:left'> ("+(ngSgrupo[sg].grupo)+")"+lk+"</td>";}
  1463 + tempNode = new YAHOO.widget.HTMLNode(d, nodePalavra, false,true);
  1464 + tempNode.isLeaf = true;
  1465 + tempNode.enableHighlight = false;
  1466 + }
  1467 + conta++;
  1468 + }
  1469 + }
  1470 + };
  1471 + if(!retorno.data)
  1472 + {alert("Ocorreu um erro");}
  1473 + else{
  1474 + retorno = retorno.data;
  1475 + conta = 0;
  1476 + if ((retorno != "erro") && (retorno !== undefined)){
  1477 + ig = retorno.length-1;
  1478 + if(ig >= 0){
  1479 + do{
  1480 + montaTexto([retorno[ig]]);
  1481 + montaTexto(retorno[ig].subgrupos);
  1482 + }
  1483 + while(ig--);
  1484 + }
  1485 + else{
  1486 + d = "<span style='color:red'>Nada encontrado<br><br></span>";
  1487 + tempNode = new YAHOO.widget.HTMLNode(d, nodePalavra, false,true);
  1488 + tempNode.isLeaf = true;
  1489 + tempNode.enableHighlight = false;
  1490 + }
  1491 + }
  1492 + }
  1493 + nodePalavra.loadComplete();
  1494 + };
  1495 +
  1496 + //
  1497 + //funcao que será executada para buscar os temas
  1498 + //
  1499 + busca = function(){
  1500 + i3GEO.php.procurartemas2(resultadoProcurar,i3GEO.util.removeAcentos(palavra));
1401 1501 };
1402 1502 //
1403 1503 //recolhe todos os nós e acrescenta um novo
... ...
classesjs/classe_configura.js
... ... @@ -118,7 +118,7 @@ i3GEO.configura = {
118 118 { id:"omenudataAjudamenu3",text: $trad("u3"), url: "http://pt.wikibooks.org/wiki/I3geo", target:"_blank" },
119 119 { id:"omenudataAjudamenu4",text: $trad("u4"), url: "http://www.softwarepublico.gov.br/dotlrn/clubs/i3geo/file-storage/index?folder%5fid=22667525", target:"_blank" },
120 120 { id:"omenudataAjudamenu5",text: $trad("u5a"), url: "http://www.softwarepublico.gov.br", target:"_blank" },
121   - { id:"omenudataAjudamenu7",text: $trad("u5b"), url:"http://mapas.mma.gov.br/i3geo/ajuda_usuario.php", target:"_blank" },
  121 + { id:"omenudataAjudamenu7",text: $trad("u5b"), url: "../ajuda_usuario.php", target:"_blank" },
122 122 { id:"omenudataAjudamenu8",text: $trad("u5c"), url: "javascript:i3GEO.ajuda.redesSociais()" }
123 123 ],
124 124 "analise": [
... ...
classesjs/classe_php.js
... ... @@ -571,7 +571,7 @@ i3GEO.php = {
571 571 */
572 572 selecaopt: function(funcao,tema,xy,tipo,tolerancia){
573 573 i3GEO.php.verifica();
574   - var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?funcao=selecaopt&tema="+tema+"&tipo="+tipo+"&xy="+xy+"&tolerancia="+tolerancia+"&g_sid="+i3GEO.configura.sid;
  574 + var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?funcao=selecaopt&tema="+tema+"&tipo="+tipo+"&xy="+xy+"&tolerancia="+tolerancia+"&g_sid="+i3GEO.configura.sid+"&ext="+i3GEO.parametros.mapexten;
575 575 cpJSON.call(p,"selecaoPT",funcao);
576 576 },
577 577 /*
... ... @@ -581,7 +581,7 @@ i3GEO.php = {
581 581 */
582 582 selecaobox: function(funcao,tema,tipo,box){
583 583 i3GEO.php.verifica();
584   - var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?funcao=selecaobox&ext="+box+"&g_sid="+i3GEO.configura.sid+"&tipo="+tipo+"&tema="+tema;
  584 + var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?funcao=selecaobox&ext="+box+"&g_sid="+i3GEO.configura.sid+"&tipo="+tipo+"&tema="+tema+"&ext="+i3GEO.parametros.mapexten;
585 585 cpJSON.call(p,"selecaobox",funcao);
586 586 },
587 587 /*
... ... @@ -591,7 +591,7 @@ i3GEO.php = {
591 591 */
592 592 selecaoext: function(funcao,tema,tipo){
593 593 i3GEO.php.verifica();
594   - var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=selecaoext&tema="+tema+"&tipo="+tipo;
  594 + var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=selecaoext&tema="+tema+"&tipo="+tipo+"&ext="+i3GEO.parametros.mapexten;
595 595 cpJSON.call(p,"selecaobox",funcao);
596 596 },
597 597 /*
... ... @@ -601,7 +601,7 @@ i3GEO.php = {
601 601 */
602 602 selecaoatrib2: function(funcao,tema,filtro,tipo){
603 603 i3GEO.php.verifica();
604   - var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=selecaoatrib2&tema="+tema+"&filtro="+filtro+"&tipo="+tipo;
  604 + var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=selecaoatrib2&tema="+tema+"&filtro="+filtro+"&tipo="+tipo+"&ext="+i3GEO.parametros.mapexten;
605 605 cpJSON.call(p,"selecaoatrib2",funcao);
606 606 },
607 607 /*
... ... @@ -611,7 +611,7 @@ i3GEO.php = {
611 611 */
612 612 selecaotema: function(funcao,temao,tema,tipo){
613 613 i3GEO.php.verifica();
614   - var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=selecaotema&temao="+temao+"&tema="+tema+"&tipo="+tipo;
  614 + var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=selecaotema&temao="+temao+"&tema="+tema+"&tipo="+tipo+"&ext="+i3GEO.parametros.mapexten;
615 615 cpJSON.call(p,"selecaotema",funcao);
616 616 },
617 617 /*
... ... @@ -793,7 +793,6 @@ i3GEO.php = {
793 793 {p += "&tema="+tema;}
794 794 cpJSON.call(p,"identifica",funcao);
795 795 },
796   -
797 796 /*
798 797 Function: reiniciaMapa
799 798  
... ... @@ -805,9 +804,7 @@ i3GEO.php = {
805 804 cpJSON.call(p,"reiniciaMapa",funcao);
806 805 },
807 806 /*
808   - Function: procurartemas
809   -
810   - <PROCURARTEMAS>
  807 + Depreciado na versão 4.4
811 808 */
812 809 procurartemas: function(funcao,procurar,locaplic){
813 810 if(arguments.length === 2)
... ... @@ -818,6 +815,19 @@ i3GEO.php = {
818 815 }catch(e){}
819 816 },
820 817 /*
  818 + Function: procurartemas2
  819 +
  820 + <PROCURARTEMAS2>
  821 + */
  822 + procurartemas2: function(funcao,procurar,locaplic){
  823 + if(arguments.length === 2)
  824 + {locaplic = i3GEO.configura.locaplic;}
  825 + try{
  826 + var p = locaplic+"/classesphp/mapa_controle.php?funcao=procurartemas2&map_file=&procurar="+procurar+"&idioma="+i3GEO.idioma.ATUAL;
  827 + cpJSON.call(p,"procurartemas",funcao);
  828 + }catch(e){}
  829 + },
  830 + /*
821 831 Function: adtema
822 832  
823 833 <ADTEMA>
... ...
classesphp/classe_analise.php
... ... @@ -83,8 +83,10 @@ parameters:
83 83 $map_file - Endereço do mapfile no servidor.
84 84  
85 85 $tema - Nome do tema que será processado
  86 +
  87 +$ext - Extensão geográfica do mapa
86 88 */
87   - function __construct($map_file,$tema="",$locaplic="")
  89 + function __construct($map_file,$tema="",$locaplic="",$ext="")
88 90 {
89 91 //error_reporting(E_ALL);
90 92 $this->qyfile = str_replace(".map",".qy",$map_file);
... ... @@ -99,6 +101,11 @@ $tema - Nome do tema que será processado
99 101 $this->layer = $this->mapa->getlayerbyname($tema);
100 102 $this->nome = $tema;
101 103 $this->diretorio = dirname($this->arquivo);
  104 + if($ext && $ext != ""){
  105 + $e = explode(" ",$ext);
  106 + $extatual = $this->mapa->extent;
  107 + $extatual->setextent((min($e[0],$e[2])),(min($e[1],$e[3])),(max($e[0],$e[2])),(max($e[1],$e[3])));
  108 + }
102 109 }
103 110 /*
104 111 Method: salva
... ...
classesphp/classe_menutemas.php
... ... @@ -654,15 +654,13 @@ Array
654 654 }
655 655 return $sistemas;
656 656 }
657   -
658 657 /*
659 658 function: procurartemas
660 659  
661   -Procura um tema no menu de temas.
662   -
663   -Le o arquivo de temas xml e retorna o nome do mapfile correspondente.
  660 +Procura um tema no menu de temas considerando apenas os subgrupos.
664 661  
665 662 parameters:
  663 +
666 664 $procurar - String que será procurada.
667 665 */
668 666 function procurartemas($procurar)
... ... @@ -784,6 +782,24 @@ $procurar - String que será procurada.
784 782 return ($resultado);
785 783 }
786 784 /*
  785 +function: procurartemas2
  786 +
  787 +Procura um tema no menu de temas.
  788 +
  789 +parameters:
  790 +
  791 +$procurar - String que será procurada.
  792 +*/
  793 + function procurartemas2($procurar)
  794 + {
  795 + include_once("../admin/php/classe_arvore.php");
  796 + $arvore = new Arvore($this->locaplic,$this->idioma);
  797 + $temas = $arvore->procuraTemas($procurar,$this->perfil);
  798 + unset($arvore);
  799 + return($temas);
  800 + }
  801 +
  802 +/*
787 803 function: listaTags
788 804  
789 805 Lista os tags registrados nos menus de temas.
... ...
classesphp/classe_selecao.php
... ... @@ -78,9 +78,11 @@ parameters:
78 78 $map_file - Endereço do mapfile no servidor.
79 79  
80 80 $tema - nome do tema
  81 +
  82 +$ext - extensão geográfica do mapa
81 83 */
82 84  
83   - function __construct($map_file,$tema="")
  85 + function __construct($map_file,$tema="",$ext="")
84 86 {
85 87 //error_reporting(E_ALL);
86 88 $this->qyfile = str_replace(".map",".qy",$map_file);
... ... @@ -95,6 +97,11 @@ $tema - nome do tema
95 97 $l = $this->mapa->getlayer($i);
96 98 $l->set("template","none.htm");
97 99 }
  100 + if($ext && $ext != ""){
  101 + $e = explode(" ",$ext);
  102 + $extatual = $this->mapa->extent;
  103 + $extatual->setextent((min($e[0],$e[2])),(min($e[1],$e[3])),(max($e[0],$e[2])),(max($e[1],$e[3])));
  104 + }
98 105 }
99 106 /*
100 107 function: salva
... ...
classesphp/classe_shp.php
... ... @@ -70,8 +70,10 @@ parameters:
70 70 $map_file - Endereço do mapfile no servidor.
71 71  
72 72 $tema - nome do tema
  73 +
  74 +$ext - extensao geográfica que será aplicada ao mapa
73 75 */
74   - function __construct($map_file,$tema="",$locaplic="")
  76 + function __construct($map_file,$tema="",$locaplic="",$ext="")
75 77 {
76 78 //error_reporting(E_ALL);
77 79 $this->locaplic = $locaplic;
... ... @@ -83,6 +85,11 @@ $tema - nome do tema
83 85 $this->layer = $this->mapa->getlayerbyname($tema);
84 86 }
85 87 $this->nome = $tema;
  88 + if($ext && $ext != ""){
  89 + $e = explode(" ",$ext);
  90 + $extatual = $this->mapa->extent;
  91 + $extatual->setextent((min($e[0],$e[2])),(min($e[1],$e[3])),(max($e[0],$e[2])),(max($e[1],$e[3])));
  92 + }
86 93 }
87 94 /*
88 95 function: salva
... ...
classesphp/mapa_controle.php
... ... @@ -389,7 +389,7 @@ Salva o mapa acrescentando um novo layer com o resultado.
389 389 case "PONTOEMPOLIGONO":
390 390 include_once("classe_analise.php");
391 391 copiaSeguranca($map_file);
392   - $m = new Analise($map_file,$tema);
  392 + $m = new Analise($map_file,$tema,$locaplic,$ext);
393 393 $retorno = $m->pontoEmPoligono($temaPt,$temasPo,$locaplic);
394 394 $m->salva();
395 395 break;
... ... @@ -405,7 +405,7 @@ Salva o mapa acrescentando um novo layer com o resultado.
405 405 case "NPTPOL":
406 406 include_once("classe_analise.php");
407 407 copiaSeguranca($map_file);
408   - $m = new Analise($map_file,$tema);
  408 + $m = new Analise($map_file,$tema,$locaplic,$ext);
409 409 $retorno = $m->nptPol($temaPt,$temaPo,$locaplic);
410 410 $m->salva();
411 411 break;
... ... @@ -421,7 +421,7 @@ Salva o mapa acrescentando um novo layer com o buffer.
421 421 case "CRIABUFFER":
422 422 include_once("classe_analise.php");
423 423 copiaSeguranca($map_file);
424   - $m = new Analise($map_file,$tema);
  424 + $m = new Analise($map_file,$tema,$locaplic,$ext);
425 425 $retorno = $m->criaBuffer($distancia,$locaplic,$unir);
426 426 $m->salva();
427 427 //limpa selecao
... ... @@ -441,7 +441,7 @@ São considerados apenas os pontos próximos definidos por um buffer.
441 441 case "DISTANCIAPTPT":
442 442 include_once("classe_analise.php");
443 443 copiaSeguranca($map_file);
444   - $m = new Analise($map_file,$temaorigem);
  444 + $m = new Analise($map_file,$temaorigem,$locaplic,$ext);
445 445 $temaoverlay = $m->criaBuffer($distancia,$locaplic);
446 446 $retorno = $m->distanciaptpt($temaorigem,$temadestino,$temaoverlay,$locaplic,$itemorigem,$itemdestino);
447 447 $m->salva();
... ... @@ -478,7 +478,7 @@ Executa script R para gerar a imagem.
478 478 {$tema2 = "";}
479 479 if(!isset($limitepontos))
480 480 {$limitepontos = "";}
481   - $m = new Analise($map_file,$tema);
  481 + $m = new Analise($map_file,$tema,$locaplic,$ext);
482 482 $retorno = $m->analiseDistriPt($locaplic,$dir_tmp,$R_path,$numclasses,$tipo,$cori,$corf,$tmpurl,$sigma,$limitepontos,$tema2,$extendelimite);
483 483 $m->salva();
484 484 break;
... ... @@ -1412,7 +1412,7 @@ Acrescenta um novo tema ao mapa.
1412 1412 */
1413 1413 case "SPHPT2SHP":
1414 1414 include_once("classe_shp.php");
1415   - $m = new SHP($map_file,$tema);
  1415 + $m = new SHP($map_file,$tema,$locaplic,$ext);
1416 1416 $retorno = $m->shpPT2shp($locaplic,$para);
1417 1417 $m->salva();
1418 1418 break;
... ... @@ -1758,7 +1758,7 @@ Pega a lista de temas do menu.
1758 1758 /*
1759 1759 Valor: PROCURARTEMAS
1760 1760  
1761   -Procura um tema no menu.
  1761 +Procura um tema no menu considerando apenas os existentes em subgruppos.
1762 1762  
1763 1763 <Menutemas->procurartemas>
1764 1764 */
... ... @@ -1775,6 +1775,25 @@ Procura um tema no menu.
1775 1775 $retorno = $m->procurartemas($procurar);
1776 1776 break;
1777 1777 /*
  1778 +Valor: PROCURARTEMAS2
  1779 +
  1780 +Procura um tema no menu considerando todos os níveis.
  1781 +
  1782 +<Menutemas->procurartemas2>
  1783 +*/
  1784 + case "PROCURARTEMAS2":
  1785 + if(!isset($menutemas) || !isset($editores))
  1786 + {
  1787 + if (file_exists("../ms_configura.php"))
  1788 + {include_once("../ms_configura.php");}
  1789 + else
  1790 + {include_once($locaplic."/ms_configura.php");}
  1791 + }
  1792 + include_once("classe_menutemas.php");
  1793 + $m = new Menutemas($map_file,$perfil,$locsistemas,$locaplic,$menutemas,$urli3geo,$editores,$idioma);
  1794 + $retorno = $m->procurartemas2($procurar);
  1795 + break;
  1796 +/*
1778 1797 Valor: PEGAMAPAS
1779 1798  
1780 1799 Pega a lista de links para outros mapas.
... ... @@ -2408,7 +2427,7 @@ Seleciona elementos utilizando um ponto.
2408 2427 $temas = explode(",",$tema);
2409 2428 foreach($temas as $tema)
2410 2429 {
2411   - $m = new Selecao($map_file,$tema);
  2430 + $m = new Selecao($map_file,$tema,$ext);
2412 2431 $ok[] = $m->selecaoPT($xy,$tipo,$tolerancia);
2413 2432 }
2414 2433 //$retorno = implode(",",$ok);
... ...
ferramentas/distanciaptpt/index.js.php
... ... @@ -134,9 +134,9 @@ i3GEOF.distanciaptpt = {
134 134 t2: function(){
135 135 var ins = "<p class='paragrafo' >Escolha os itens das tabelas de atributos dos temas de origem e de destino que ser&atilde;o acrescentados ao novo tema que ser&aacute; criado com o resultado do c&aacute;lculo.</p>";
136 136 ins += "<p class='paragrafo' >Para o tema de origem:</p>";
137   - ins += "<div style='text-align:left;' id='i3GEOondeItensTemaOrigem' ></div>";
  137 + ins += "<div style='text-align:left;' id='i3GEOondeItensTemaOrigem' >Aguarde...</div>";
138 138 ins += "<br><p class='paragrafo' >Para o tema de destino:</p>";
139   - ins += "<div style='text-align:left;' id='i3GEOondeItensTemaDestino' ></div>";
  139 + ins += "<div style='text-align:left;' id='i3GEOondeItensTemaDestino' >Aguarde...</div>";
140 140 i3GEO.util.proximoAnterior("i3GEOF.distanciaptpt.t1()","i3GEOF.distanciaptpt.t3()",ins,"i3GEOF.distanciaptpt.t2","i3GEOdistanciaptptresultado");
141 141 i3GEOF.distanciaptpt.comboItensOrigem();
142 142 i3GEOF.distanciaptpt.comboItensDestino();
... ... @@ -178,7 +178,7 @@ i3GEOF.distanciaptpt = {
178 178 {i3GEO.atualiza();}
179 179 i3GEOF.distanciaptpt.aguarde.visibility = "hidden";
180 180 };
181   - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=distanciaptpt&temaorigem="+temaOrigem+"&temadestino="+temaDestino+"&distancia="+distancia+"&itemorigem="+$i("i3GEOFdistanciaptptItemOrigem").value+"&itemdestino="+$i("i3GEOFdistanciaptptItemDestino").value;
  181 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=distanciaptpt&temaorigem="+temaOrigem+"&temadestino="+temaDestino+"&distancia="+distancia+"&itemorigem="+$i("i3GEOFdistanciaptptItemOrigem").value+"&itemdestino="+$i("i3GEOFdistanciaptptItemDestino").value+"&ext="+i3GEO.parametros.mapexten;
182 182 cp = new cpaint();
183 183 cp.set_response_type("JSON");
184 184 cp.call(p,"distanciaptpt",fim);
... ...
ferramentas/inserexy2/index.js.php
... ... @@ -598,7 +598,7 @@ i3GEOF.inserexy = {
598 598 {return;}
599 599 i3GEOF.inserexy.aguarde.visibility = "visible";
600 600 var cp = new cpaint(),
601   - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=sphPT2shp&para=linha&tema="+$i("i3GEOinserexytemasLocais").value,
  601 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=sphPT2shp&para=linha&tema="+$i("i3GEOinserexytemasLocais").value+"&ext="+i3GEO.parametros.mapexten,
602 602 temp = function(){
603 603 i3GEOF.inserexy.aguarde.visibility = "hidden";
604 604 i3GEO.atualiza();
... ... @@ -620,7 +620,7 @@ i3GEOF.inserexy = {
620 620 {return;}
621 621 i3GEOF.inserexy.aguarde.visibility = "visible";
622 622 var cp = new cpaint(),
623   - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=sphPT2shp&para=poligono&tema="+$i("i3GEOinserexytemasLocais").value,
  623 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=sphPT2shp&para=poligono&tema="+$i("i3GEOinserexytemasLocais").value+"&ext="+i3GEO.parametros.mapexten,
624 624 temp = function(){
625 625 i3GEOF.inserexy.aguarde.visibility = "hidden";
626 626 i3GEO.atualiza();
... ...
ferramentas/linhadotempo/index.php
... ... @@ -198,7 +198,7 @@ function tituloover(wkt){
198 198 wkt = wkt.split("(")[1].split(")")[0];
199 199 wkt = wkt.split(" ");
200 200  
201   - var xy = window.parent.i3GEO.calculo.dd2tela(wkt[0],wkt[1],window.parent.document.getElementById("img"),window.parent.i3GEO.parametros.mapexten,window.parent.i3GEO.parametros.pixelsize)
  201 + var xy = window.parent.i3GEO.calculo.dd2tela(wkt[0],wkt[1],window.parent.document.getElementById(window.parent.i3GEO.Interface.IDMAPA),window.parent.i3GEO.parametros.mapexten,window.parent.i3GEO.parametros.pixelsize)
202 202  
203 203 window.parent.i3GEO.util.criaPin('marcaIdentifica',window.parent.i3GEO.configura.locaplic+"/imagens/marker.png","21px","25px");
204 204 var i = window.parent.document.getElementById('marcaIdentifica')
... ... @@ -227,11 +227,13 @@ function tituloclique(wkt){
227 227 wkt = wkt.split("(")[1].split(")")[0];
228 228 wkt = wkt.split(" ");
229 229 var retorna = function(retorno)
230   - {window.parent.i3GEO.atualiza(retorno);};
  230 + {
  231 + window.parent.i3GEO.atualiza(retorno);
  232 + window.parent.i3GEO.Interface.atualizaTema(retorno,$i("tema").value);
  233 + };
231 234  
232 235 window.parent.i3GEO.janela.abreAguarde("i3GEO.atualiza",$trad("o1"));
233 236 window.parent.i3GEO.php.selecaopt(retorna,$i("tema").value,wkt[0]+" "+wkt[1],"adiciona",0);
234   -
235 237 }
236 238 /*
237 239 Function: tituloout
... ...
ferramentas/nptpol/index.js.php
... ... @@ -96,7 +96,7 @@ i3GEOF.nptpol = {
96 96 };
97 97 janela = i3GEO.janela.cria(
98 98 "400px",
99   - "200px",
  99 + "220px",
100 100 "",
101 101 "",
102 102 "",
... ... @@ -113,7 +113,7 @@ i3GEOF.nptpol = {
113 113 },
114 114 t0: function()
115 115 {
116   - var ins = "<p class='paragrafo'>Ponto em pol&iacute;gono &eacute; uma opera&ccedil;&atilde;o que resulta em um novo tema contendo o cruzamento entre um tema com pontos e outro com pol&iacute;gonos.</p>";
  116 + var ins = "<p class='paragrafo'>Ponto em pol&iacute;gono &eacute; uma opera&ccedil;&atilde;o que resulta em um novo tema contendo o cruzamento entre um tema com pontos e outro com pol&iacute;gonos considerando-se a extensão geográfica do mapa atual.</p>";
117 117 ins += "<p class='paragrafo'>O resultado será um novo tema do tipo poligonal, sendo que a tabela de atributos conterá o total de pontos que se sobrepõem ao polígono.</p>";
118 118 ins += "<p class='paragrafo'>Para gerar o cruzamento &eacute; necess&aacute;rio que no mapa exista pelo menos um tema poligonal e um com os pontos.</p>";
119 119 i3GEO.util.proximoAnterior("","i3GEOF.nptpol.t1()",ins,"i3GEOFgradeDePontost0","i3GEOnptpolresultado");
... ... @@ -159,7 +159,7 @@ i3GEOF.nptpol = {
159 159 {i3GEO.atualiza();}
160 160 i3GEOF.nptpol.aguarde.visibility = "hidden";
161 161 };
162   - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=nptPol&temaPt="+$i("i3GEOnptpolPontos").value+"&temaPo="+$i("i3GEOnptpolPoligonos").value;
  162 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=nptPol&temaPt="+$i("i3GEOnptpolPontos").value+"&temaPo="+$i("i3GEOnptpolPoligonos").value+"&ext="+i3GEO.parametros.mapexten;
163 163 cp = new cpaint();
164 164 cp.set_response_type("JSON");
165 165 cp.call(p,"nptpol",fim);
... ...
ferramentas/opcoes_fundo/index.js.php
... ... @@ -75,7 +75,7 @@ i3GEOF.opcoesFundo = {
75 75 cp.call(p,"corQM",retorno);
76 76 }
77 77 catch(erro){alert(erro);}
78   - if(i3GEO.Interface.atual !== "googlemaps")
  78 + if(i3GEO.Interface.atual === "googlemaps")
79 79 {alert("Essa operacao afeta apenas a ferramenta de impressao do mapa");}
80 80 },
81 81 /*
... ...
ferramentas/pontoempoligono/index.js.php
... ... @@ -191,7 +191,7 @@ i3GEOF.pontoEmPoligono = {
191 191 {alert("Erro. A operação demorou muito.");}
192 192 else{i3GEO.atualiza();}
193 193 }
194   - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=pontoEmPoligono&temaPt="+temapt+"&temasPo="+tsl.join(",");
  194 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=pontoEmPoligono&temaPt="+temapt+"&temasPo="+tsl.join(",")+"&ext="+i3GEO.parametros.mapexten;
195 195 cp = new cpaint();
196 196 cp.set_response_type("JSON");
197 197 cp.call(p,"pontoEmPoligono",fim);
... ...
ferramentas/pontosdistri/index.js.php
... ... @@ -285,7 +285,7 @@ i3GEOF.pontosDistri = {
285 285 },
286 286 tema = $i("i3GEOpontosDistritemasComSel").value,
287 287 cp = new cpaint(),
288   - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=analiseDistriPt&tema2=&tema="+tema+"&numclasses="+n+"&cori="+ci+"&corf="+cf+"&tipo=distancia&limitepontos="+$i("i3GEOpontosDistrilimitePontos").value+"&extendelimite="+$i("i3GEOpontosDistriextendelimite").value;
  288 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=analiseDistriPt&tema2=&tema="+tema+"&numclasses="+n+"&cori="+ci+"&corf="+cf+"&tipo=distancia&limitepontos="+$i("i3GEOpontosDistrilimitePontos").value+"&extendelimite="+$i("i3GEOpontosDistriextendelimite").value+"&ext="+i3GEO.parametros.mapexten;
289 289 if(tema === ""){
290 290 alert("Escolha um tema");
291 291 i3GEOF.pontosDistri.aguarde.visibility = "hidden";
... ... @@ -321,7 +321,7 @@ i3GEOF.pontosDistri = {
321 321 },
322 322 tema = $i("i3GEOpontosDistritemasComSel").value,
323 323 cp = new cpaint(),
324   - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=analiseDistriPt&tema2=&tema="+tema+"&numclasses="+n+"&cori="+ci+"&corf="+cf+"&tipo=densidade&limitepontos="+$i("i3GEOpontosDistrilimitePontos").value+"&extendelimite="+$i("i3GEOpontosDistriextendelimite").value;
  324 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=analiseDistriPt&tema2=&tema="+tema+"&numclasses="+n+"&cori="+ci+"&corf="+cf+"&tipo=densidade&limitepontos="+$i("i3GEOpontosDistrilimitePontos").value+"&extendelimite="+$i("i3GEOpontosDistriextendelimite").value+"&ext="+i3GEO.parametros.mapexten;
325 325 if(tema === ""){
326 326 alert("Escolha um tema");
327 327 i3GEOF.pontosDistri.aguarde.visibility = "hidden";
... ... @@ -357,7 +357,7 @@ i3GEOF.pontosDistri = {
357 357 },
358 358 tema = $i("i3GEOpontosDistritemasComSel").value,
359 359 cp = new cpaint(),
360   - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=analiseDistriPt&tema2=&tema="+tema+"&numclasses="+n+"&cori="+ci+"&corf="+cf+"&tipo=kernel&limitepontos="+$i("i3GEOpontosDistrilimitePontos").value+"&extendelimite="+$i("i3GEOpontosDistriextendelimite").value+"&sigma="+$i("i3GEOpontosDistrisigma").value;
  360 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=analiseDistriPt&tema2=&tema="+tema+"&numclasses="+n+"&cori="+ci+"&corf="+cf+"&tipo=kernel&limitepontos="+$i("i3GEOpontosDistrilimitePontos").value+"&extendelimite="+$i("i3GEOpontosDistriextendelimite").value+"&sigma="+$i("i3GEOpontosDistrisigma").value+"&ext="+i3GEO.parametros.mapexten;
361 361 if(tema === ""){
362 362 alert("Escolha um tema");
363 363 i3GEOF.pontosDistri.aguarde.visibility = "hidden";
... ... @@ -391,7 +391,7 @@ i3GEOF.pontosDistri = {
391 391 i3GEO.atualiza();
392 392 },
393 393 cp = new cpaint(),
394   - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=analiseDistriPt&tema2=&tema="+tema+"&numclasses=&cori=&corf=&tipo=deldir&limitepontos=&extendelimite=&sigma=";
  394 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=analiseDistriPt&tema2=&tema="+tema+"&numclasses=&cori=&corf=&tipo=deldir&limitepontos=&extendelimite=&sigma=&ext="+i3GEO.parametros.mapexten;
395 395 if(tema === ""){
396 396 alert("Escolha um tema");
397 397 i3GEOF.pontosDistri.aguarde.visibility = "hidden";
... ... @@ -428,7 +428,7 @@ i3GEOF.pontosDistri = {
428 428 },
429 429 tema = $i("i3GEOpontosDistritemasComSel").value,
430 430 cp = new cpaint(),
431   - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=analiseDistriPt&tema2=&tema="+tema+"&numclasses="+n+"&cori="+ci+"&corf="+cf+"&tipo=relatorio&limitepontos="+$i("i3GEOpontosDistrilimitePontos").value+"&extendelimite="+$i("i3GEOpontosDistriextendelimite").value+"&sigma="+$i("i3GEOpontosDistrisigma").value;
  431 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=analiseDistriPt&tema2=&tema="+tema+"&numclasses="+n+"&cori="+ci+"&corf="+cf+"&tipo=relatorio&limitepontos="+$i("i3GEOpontosDistrilimitePontos").value+"&extendelimite="+$i("i3GEOpontosDistriextendelimite").value+"&sigma="+$i("i3GEOpontosDistrisigma").value+"&ext="+i3GEO.parametros.mapexten;
432 432 if(tema === ""){
433 433 alert("Escolha um tema");
434 434 i3GEOF.pontosDistri.aguarde.visibility = "hidden";
... ...
ferramentas/tipoimagem/index.js.php
... ... @@ -194,7 +194,7 @@ i3GEOF.tipoimagem = {
194 194 i3GEO.configura.tipoimagem = filtro;
195 195 g_operacao = "outras";
196 196 //i3GEO.atualiza();
197   - i3GEO.Interface.alteraParametroLayers("tipoimagem",filtro);
  197 + i3GEO.Interface.alteraParametroLayers("TIPOIMAGEM",filtro);
198 198 },
199 199 /*
200 200 Function: adicionar
... ...
menutemas/admin.db
No preview for this file type
temas/osm.map
... ... @@ -26,7 +26,8 @@ SYMBOLSET &quot;../symbols/simbolos.sym&quot;
26 26 END
27 27 STATUS OFF
28 28 CONNECTIONTYPE WMS
29   - CONNECTION "http://data1.vizure.net/server/services/request.php?jname=/wms"
  29 + CONNECTION "http://full.wms.geofabrik.de/std/demo_key?"
  30 + #"http://data1.vizure.net/server/services/request.php?jname=/wms"
30 31 PROJECTION
31 32 "init=epsg:4326"
32 33 END
... ...