Commit 11d0a2eff835688ac7961a20f279cd86809a5970
1 parent
d0446c17
Exists in
master
and in
7 other branches
Alteração na inicialização de um mapa com projeto gvsig, não sendo mais necessár…
…io inserir o nome de uma visat
Showing
2 changed files
with
66 additions
and
13 deletions
Show diff stats
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::*"; |