Commit 118d99ea8f6f093cb5b0d7e12542b8bb4ea5725c

Authored by Edmar Moretti
1 parent 702bc2cf

Inclusão de projetos gvsig no gerador de serviços OGC

admin/admin.db
No preview for this file type
classesphp/classe_mapa.php
... ... @@ -93,8 +93,7 @@ $map_file - Endereço do mapfile no servidor.
93 93 $this->mapa = @ms_newMapObj($map_file);
94 94 $this->arquivo = $map_file;
95 95 $c = $this->mapa->numlayers;
96   - for ($i=0;$i < $c;++$i)
97   - {
  96 + for ($i=0;$i < $c;++$i){
98 97 $l = $this->mapa->getlayer($i);
99 98 $this->layers[] = $l;
100 99 $this->nomes[] = $l->name;
... ... @@ -943,46 +942,101 @@ $random - indica se os nomes dos novos layers ser&amp;atilde;o modificados ou nao
943 942 //limpa selecao
944 943 $temas = explode(",",$temas);
945 944 $zoomlayer = "";
946   - foreach ($temas as $nome)
947   - {
  945 + foreach ($temas as $nome){
948 946 $this->adicionaAcesso($nome,$locaplic);
949 947 $nomemap = "";
950 948 //
951 949 //verifica se o tema &eacute; um arquivo php
952 950 //
  951 + $extensao = ".map";
953 952 if ((file_exists($locaplic."/temas/".$nome.".php")) || (file_exists($nome.".php"))){
954   - include_once($locaplic."/temas/".$nome.".php");
955   - if(function_exists($nome)){
956   - eval($nome."(\$this->mapa);");
  953 + $extensao = ".php";
  954 + }
  955 + if ((file_exists($locaplic."/temas/".$nome.".gvp")) || (file_exists($nome.".gvp"))){
  956 + $extensao = ".gvp";
  957 + }
  958 + if($extensao == ".php"){
  959 + include_once($locaplic."/temas/".$nome.".php");
  960 + if(function_exists($nome)){
  961 + eval($nome."(\$this->mapa);");
957 962 }
958 963 }
959   - else
960   - {
961   - if (file_exists($locaplic."/temas/".$nome.".map"))
962   - {$nomemap = $locaplic."/temas/".$nome.".map";}
963   - if (file_exists($nome))
964   - {$nomemap = $nome;}
965   - if (file_exists($nome.".map"))
966   - {$nomemap = $nome.".map";}
967   - if ($nomemap != "")
968   - {
  964 + if($extensao == ".gvp"){
  965 + if (file_exists($locaplic."/temas/".$nome.".gvp")){
  966 + $nomemap = $locaplic."/temas/".$nome.".gvp";
  967 + }
  968 + if (file_exists($nome)){
  969 + $nomemap = $nome;
  970 + }
  971 + if (file_exists($nome.".gvp")){
  972 + $nomemap = $nome.".gvp";
  973 + }
  974 + if ($nomemap != ""){
  975 + include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php");
  976 + $gm = new gvsig2mapfile($nomemap);
  977 + $gvsigview = $gm->getViewsNames();
  978 + $gvsigview = $gvsigview[0];
  979 + $dataView = $gm->getViewData($gvsigview);
  980 + $adicionar = array();
  981 + foreach($dataView["layerNames"] as $t){
  982 + if(!in_array($t,$this->nomes)){
  983 + $adicionar[] = $t;
  984 + }
  985 + }
  986 + $this->mapa = $gm->addLayers($this->mapa,$gvsigview,$adicionar);
  987 + foreach($adicionar as $nome){
  988 + $l = $this->mapa->getlayerbyname($nome);
  989 + //reposiciona o layer se for o caso
  990 + if ($l->group == ""){
  991 + $ltipo = $l->type;
  992 + if (($ltipo == 2) || ($ltipo == 3)){//poligono = 2
  993 + $indicel = $l->index;
  994 + $numlayers = $this->mapa->numlayers;
  995 + $nummove = 0;
  996 + for ($i = $numlayers-1;$i > 0;$i--){
  997 + $layerAbaixo = $this->mapa->getlayer($i);
  998 + $tipo = $layerAbaixo->type;
  999 + if (($tipo != 2) && ($tipo != 3)){
  1000 + $nummove++;
  1001 + }
  1002 + }
  1003 + for ($i=0;$i<($nummove);++$i){
  1004 + $indicel = $l->index;
  1005 + $this->mapa->movelayerup($indicel);
  1006 + }
  1007 + }
  1008 + }
  1009 + }
  1010 + }
  1011 + }
  1012 + if($extensao == ".map"){
  1013 + if (file_exists($locaplic."/temas/".$nome.".map")){
  1014 + $nomemap = $locaplic."/temas/".$nome.".map";
  1015 + }
  1016 + if (file_exists($nome)){
  1017 + $nomemap = $nome;
  1018 + }
  1019 + if (file_exists($nome.".map")){
  1020 + $nomemap = $nome.".map";
  1021 + }
  1022 + if ($nomemap != ""){
969 1023 $nmap = ms_newMapObj($nomemap);
970 1024 $novosnomes = $nmap->getAllLayerNames();
971 1025 //define nomes unicos para os temas
972   - foreach ($novosnomes as $n)
973   - {
974   - if(!@$this->mapa->getlayerbyname($n))
975   - {$random = "nao";}
  1026 + foreach ($novosnomes as $n){
  1027 + if(!@$this->mapa->getlayerbyname($n)){
  1028 + $random = "nao";
  1029 + }
976 1030 $random == "sim" ? $nomeunico[$n] = nomeRandomico() : $nomeunico[$n] = $n;
977 1031 }
978 1032 //altera os temas para incluir o nome unico
979 1033 //include_once($locaplic."/classesphp/funcoes_gerais.php");
980   - foreach ($novosnomes as $n)
981   - {
  1034 + foreach ($novosnomes as $n){
982 1035 $nlayer = $nmap->getlayerbyname($n);
983 1036 //para impedir erros na legenda
984   - if($nlayer->getmetadata("classe") == "")
985   - {$nlayer->setmetadata("classe","");}
  1037 + if($nlayer->getmetadata("classe") == ""){
  1038 + $nlayer->setmetadata("classe","");
  1039 + }
986 1040 autoClasses($nlayer,$this->mapa);
987 1041 $nlayer->set("status",MS_DEFAULT);
988 1042 $nNome = str_replace(".map","",basename($nomemap));
... ... @@ -990,8 +1044,7 @@ $random - indica se os nomes dos novos layers ser&amp;atilde;o modificados ou nao
990 1044 $nlayer->setmetadata("nomeoriginal",$nlayer->name);
991 1045 $nlayer->set("name",$nomeunico[$n]);
992 1046 //altera o nome do grupo se existir
993   - if ($nlayer->group != " " && $nlayer->group != "" )
994   - {
  1047 + if ($nlayer->group != " " && $nlayer->group != "" ){
995 1048 $lr = $nlayer->group;
996 1049 if($nomeunico[$lr])
997 1050 $nlayer->set("group",$nomeunico[$lr]);
... ... @@ -1005,10 +1058,12 @@ $random - indica se os nomes dos novos layers ser&amp;atilde;o modificados ou nao
1005 1058 $tipotemp = $nlayer->type;
1006 1059 $tiporep = $nlayer->getmetadata("tipooriginal");
1007 1060 $nlayer->set("type",MS_LAYER_POLYGON);
1008   - if ($tiporep == "linear")
1009   - {$nlayer->set("type",MS_LAYER_LINE);}
1010   - if ($tiporep == "pontual")
1011   - {$nlayer->set("type",MS_LAYER_POINT);}
  1061 + if ($tiporep == "linear"){
  1062 + $nlayer->set("type",MS_LAYER_LINE);
  1063 + }
  1064 + if ($tiporep == "pontual"){
  1065 + $nlayer->set("type",MS_LAYER_POINT);
  1066 + }
1012 1067 $sld = $nlayer->generateSLD();
1013 1068 if($sld != "")
1014 1069 $nlayer->setmetadata("wms_sld_body",str_replace('"',"'",$sld));
... ... @@ -1017,30 +1072,23 @@ $random - indica se os nomes dos novos layers ser&amp;atilde;o modificados ou nao
1017 1072 ms_newLayerObj($this->mapa, $nlayer);
1018 1073 $l = $this->mapa->getlayerbyname($nlayer->name);
1019 1074 //reposiciona o layer se for o caso
1020   - if ($l->group == "")
1021   - {
  1075 + if ($l->group == ""){
1022 1076 $ltipo = $l->type;
1023   - if (($ltipo == 2) || ($ltipo == 3))//poligono = 2
1024   - {
  1077 + if (($ltipo == 2) || ($ltipo == 3)){//poligono = 2
1025 1078 $indicel = $l->index;
1026 1079 $numlayers = $this->mapa->numlayers;
1027 1080 $nummove = 0;
1028   - for ($i = $numlayers-1;$i > 0;$i--)
1029   - {
  1081 + for ($i = $numlayers-1;$i > 0;$i--){
1030 1082 $layerAbaixo = $this->mapa->getlayer($i);
1031 1083 $tipo = $layerAbaixo->type;
1032   - if (($tipo != 2) && ($tipo != 3))
1033   - {$nummove++;}
1034   - }
1035   - //echo $nummove;exit;
1036   - //if ($nummove > 2)
1037   - //{
1038   - for ($i=0;$i<($nummove);++$i)
1039   - {
1040   - $indicel = $l->index;
1041   - $this->mapa->movelayerup($indicel);
  1084 + if (($tipo != 2) && ($tipo != 3)){
  1085 + $nummove++;
1042 1086 }
1043   - //}
  1087 + }
  1088 + for ($i=0;$i<($nummove);++$i){
  1089 + $indicel = $l->index;
  1090 + $this->mapa->movelayerup($indicel);
  1091 + }
1044 1092 }
1045 1093 }
1046 1094 }
... ...
classesphp/funcoes_gerais.php
... ... @@ -2530,13 +2530,14 @@ function listaGruposUsrLogin(){
2530 2530 if(empty($_COOKIE["i3geocodigologin"])){
2531 2531 return array();
2532 2532 }
2533   - session_write_close();
2534 2533 $nameatual = session_name();
2535 2534 $idatual = session_id();
  2535 + session_write_close();
2536 2536 session_name("i3GeoLogin");
2537 2537 session_id($_COOKIE["i3geocodigologin"]);
2538 2538 session_start();
2539 2539 $res = $_SESSION["gruposusr"];
  2540 + session_write_close();
2540 2541 session_name("$nameatual");
2541 2542 session_id($idatual);
2542 2543 session_start();
... ...
ogc.php
... ... @@ -298,7 +298,8 @@ if ($tipo == &quot;&quot; || $tipo == &quot;metadados&quot;){
298 298 $gvsigview = $gvsigview[0];
299 299 $dataView = $gm->getViewData($gvsigview);
300 300 $oMap = $gm->addLayers($oMap,$gvsigview,$dataView["layerNames"]);
301   - $numlayers = $oMap->numlayers;
  301 + $numlayers = $oMap->numlayers;
  302 + $layers = array();
302 303 for ($i=0;$i < $numlayers;$i++){
303 304 $l = $oMap->getlayer($i);
304 305 $l->setmetadata("gml_include_items","all");
... ... @@ -306,8 +307,11 @@ if ($tipo == &quot;&quot; || $tipo == &quot;metadados&quot;){
306 307 $l->setmetadata("WMS_INCLUDE_ITEMS","all");
307 308 $l->setmetadata("WFS_INCLUDE_ITEMS","all");
308 309 $l->setmetadata("ows_srs",$listaepsg);
309   - $oMap->setmetadata("ows_enable_request","*");
  310 + $l->set("status",MS_DEFAULT);
  311 + $layers[] = $l->name;
310 312 }
  313 + $req->setParameter("LAYERS", implode(",",$layers));
  314 + //r_dump($req);exit;
311 315 }
312 316 }
313 317 }
... ...