Commit 11d0a2eff835688ac7961a20f279cd86809a5970

Authored by Edmar Moretti
1 parent d0446c17

Alteração na inicialização de um mapa com projeto gvsig, não sendo mais necessár…

…io inserir o nome de uma visat
ms_criamapa.php
@@ -127,7 +127,7 @@ versao_wms - Versão do WMS (necessário quando da inclusão d @@ -127,7 +127,7 @@ versao_wms - Versão do WMS (necessário quando da inclusão d
127 127
128 gvsiggvp - endereço no servidor do arquivo de projeto gvSig (gvp) que será utilizado para construir o mapa (experimental) 128 gvsiggvp - endereço no servidor do arquivo de projeto gvSig (gvp) que será utilizado para construir o mapa (experimental)
129 129
130 -gvsigview - nome da view do projeto gvSig (http://localhost/i3geo/ms_criamapa.php?gvsiggvp=c:\temp\teste.gvp&gvsigview=Untitled - 0) 130 +gvsigview - nome da view do projeto gvSig. Se nao for especificado, sera considerada a primeira view existente no projeto. Exemplo (http://localhost/i3geo/ms_criamapa.php?gvsiggvp=c:\temp\teste.gvp&gvsigview=Untitled - 0)
131 */ 131 */
132 132
133 //$_COOKIE = array(); 133 //$_COOKIE = array();
@@ -348,13 +348,8 @@ else @@ -348,13 +348,8 @@ else
348 /* 348 /*
349 Utiliza um projeto gvSig para compor o mapa 349 Utiliza um projeto gvSig para compor o mapa
350 */ 350 */
351 -if(isset($gvsiggvp) && $gvsiggvp != ""){  
352 - if(isset($gvsigview) && $gvsigview != ""){  
353 - incluiMapaGvsig($gvsiggvp,$gvsigview);  
354 - }  
355 - else{  
356 - echo "Nenhuma vista foi definida &gvsigview";  
357 - } 351 +if(!empty($gvsiggvp)){
  352 + incluiMapaGvsig($gvsiggvp,$gvsigview);
358 } 353 }
359 /* 354 /*
360 Parâmetros adicionais. 355 Parâmetros adicionais.
@@ -505,7 +500,7 @@ function abreInterface(){ @@ -505,7 +500,7 @@ function abreInterface(){
505 { 500 {
506 if(file_exists($caminho."interface/".$interface)) 501 if(file_exists($caminho."interface/".$interface))
507 {include_once($caminho."interface/".$interface);} 502 {include_once($caminho."interface/".$interface);}
508 - else 503 + else
509 {include_once($interface);} 504 {include_once($interface);}
510 exit; 505 exit;
511 } 506 }
@@ -513,7 +508,7 @@ function abreInterface(){ @@ -513,7 +508,7 @@ function abreInterface(){
513 { 508 {
514 if(file_exists($caminho."interface/".$interface)) 509 if(file_exists($caminho."interface/".$interface))
515 {$urln = $caminho."interface/".$interface."?".session_id();} 510 {$urln = $caminho."interface/".$interface."?".session_id();}
516 - else 511 + else
517 {$urln = $interface."?".session_id();} 512 {$urln = $interface."?".session_id();}
518 if(!headers_sent()) 513 if(!headers_sent())
519 {header("Location:".$urln);} 514 {header("Location:".$urln);}
@@ -1087,10 +1082,14 @@ function incluiTemaWms() @@ -1087,10 +1082,14 @@ function incluiTemaWms()
1087 /* 1082 /*
1088 Projeto gvsig 1083 Projeto gvsig
1089 */ 1084 */
1090 -function incluiMapaGvsig($gvsiggvp,$gvsigview){ 1085 +function incluiMapaGvsig($gvsiggvp,$gvsigview=""){
1091 global $mapn,$locaplic; 1086 global $mapn,$locaplic;
1092 include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); 1087 include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php");
1093 $gm = new gvsig2mapfile($gvsiggvp); 1088 $gm = new gvsig2mapfile($gvsiggvp);
  1089 + if(empty($gvsigview)){
  1090 + $gvsigview = $gm->getViewsNames();
  1091 + $gvsigview = $gvsigview[0];
  1092 + }
1094 $dataView = $gm->getViewData($gvsigview); 1093 $dataView = $gm->getViewData($gvsigview);
1095 $numlayers = $mapn->numlayers; 1094 $numlayers = $mapn->numlayers;
1096 for ($i=0;$i < $numlayers;$i++) 1095 for ($i=0;$i < $numlayers;$i++)
pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php
1 <?php 1 <?php
  2 +/**
  3 + * Manipula um arquivo GVP (projeto gvSIG) para construção de layers Mapserver
  4 + * @author Edmar Moretti
  5 + * @license GPL2
  6 + */
2 class gvsig2mapfile{ 7 class gvsig2mapfile{
3 var $arquivoGvp; 8 var $arquivoGvp;
4 var $xml; 9 var $xml;
  10 + /**
  11 + * Construtor da classe
  12 + * @param string $gvp arquivo de projeto gvsig
  13 + * @example $gm = new gvsig2mapfile($gvsiggvp);
  14 + * @throws Exception
  15 + */
5 function __construct($gvp) 16 function __construct($gvp)
6 { 17 {
7 - if(!file_exists($gvp))  
8 - {throw new Exception("Arquivo $gvp não existe");} 18 + if(!file_exists($gvp))
  19 + {throw new Exception("Arquivo $gvp não existe");}
9 else{ 20 else{
10 $this->arquivoGvp = $gvp; 21 $this->arquivoGvp = $gvp;
11 if(function_exists("dl")){ 22 if(function_exists("dl")){
@@ -17,6 +28,10 @@ class gvsig2mapfile{ @@ -17,6 +28,10 @@ class gvsig2mapfile{
17 $this->xml = simplexml_load_file($gvp); 28 $this->xml = simplexml_load_file($gvp);
18 } 29 }
19 } 30 }
  31 + /**
  32 + * Lista de vistas existentes no projeto gvsig
  33 + * @return array
  34 + **/
20 function getViewsNames(){ 35 function getViewsNames(){
21 $names = array(); 36 $names = array();
22 $this->xml->registerXPathNamespace("tag", "http://www.gvsig.gva.es"); 37 $this->xml->registerXPathNamespace("tag", "http://www.gvsig.gva.es");
@@ -26,11 +41,27 @@ class gvsig2mapfile{ @@ -26,11 +41,27 @@ class gvsig2mapfile{
26 } 41 }
27 return $names; 42 return $names;
28 } 43 }
  44 +
  45 + /**
  46 + * Retorna uma vista
  47 + * @param string $nome
  48 + * @return $xml
  49 + */
29 function getViewByName($nome){ 50 function getViewByName($nome){
30 $this->xml->registerXPathNamespace("tag", "http://www.gvsig.gva.es"); 51 $this->xml->registerXPathNamespace("tag", "http://www.gvsig.gva.es");
31 $result = $this->xml->xpath("/tag:xml-tag/tag:xml-tag/tag:property[@value='ProjectView']/parent::*/tag:property[@value='".$nome."']/parent::*"); 52 $result = $this->xml->xpath("/tag:xml-tag/tag:xml-tag/tag:property[@value='ProjectView']/parent::*/tag:property[@value='".$nome."']/parent::*");
32 return $result; 53 return $result;
33 } 54 }
  55 +
  56 + /**
  57 + * Obtem os dados descritivos de uma visao
  58 + * @param string $nome Nome da vista
  59 + * @return array (
  60 + "extent"=>array(xmin,ymin,xmax,ymax),
  61 + "proj"=>string projecao,
  62 + "layerNames"=>string lista de layers separados por virgula
  63 + )
  64 + */
34 function getViewData($nome){ 65 function getViewData($nome){
35 $this->xml->registerXPathNamespace("tag", "http://www.gvsig.gva.es"); 66 $this->xml->registerXPathNamespace("tag", "http://www.gvsig.gva.es");
36 $path = "/tag:xml-tag/tag:xml-tag/tag:property[@value='ProjectView']/parent::*/tag:property[@value='".$nome."']/parent::*/tag:xml-tag/tag:xml-tag"; 67 $path = "/tag:xml-tag/tag:xml-tag/tag:property[@value='ProjectView']/parent::*/tag:property[@value='".$nome."']/parent::*/tag:xml-tag/tag:xml-tag";
@@ -48,6 +79,29 @@ class gvsig2mapfile{ @@ -48,6 +79,29 @@ class gvsig2mapfile{
48 "layerNames"=>explode(",",str_replace(" ,",",",$nomes)) 79 "layerNames"=>explode(",",str_replace(" ,",",",$nomes))
49 ); 80 );
50 } 81 }
  82 + /**
  83 + * Obtem os dados de um layer
  84 + * @param string $viewNome
  85 + * @param string $layerNome
  86 + * @return array(
  87 + "minScale"=> string,
  88 + "maxScale"=>string,
  89 + "visible"=>string,
  90 + "proj"=>string,
  91 + "transparency"=>string,
  92 + "type"=>string,
  93 + "data"=>string,
  94 + "connection"=>string,
  95 + "connectiontype"=>string,
  96 + "driverName"=>string,
  97 + "isLabeled"=>string,
  98 + "legenda"=>array(
  99 + "tipoLegenda"=>string,
  100 + "classes"=>string
  101 + )
  102 + )
  103 + *
  104 + */
51 function getLayerData($viewNome,$layerNome){ 105 function getLayerData($viewNome,$layerNome){
52 $this->xml->registerXPathNamespace("tag", "http://www.gvsig.gva.es"); 106 $this->xml->registerXPathNamespace("tag", "http://www.gvsig.gva.es");
53 $path = "/tag:xml-tag/tag:xml-tag/tag:property[@value='ProjectView']/parent::*/tag:property[@value='".$viewNome."']/parent::*/tag:xml-tag/tag:xml-tag/tag:xml-tag/tag:xml-tag/parent::*/tag:property[@value='".$layerNome."']/parent::*"; 107 $path = "/tag:xml-tag/tag:xml-tag/tag:property[@value='ProjectView']/parent::*/tag:property[@value='".$viewNome."']/parent::*/tag:xml-tag/tag:xml-tag/tag:xml-tag/tag:xml-tag/parent::*/tag:property[@value='".$layerNome."']/parent::*";