From f3e27dd10d6aa8533ba885795891fab0a54201a1 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Sun, 9 Dec 2012 20:45:34 +0000 Subject: [PATCH] Atualização da documentação e das rotinas que processam projetos gvsig. Agora, todas as vistas de um projeto são adicionadas ao mapa quando se usa um arquivo gvsig --- classesphp/classe_mapa.php | 15 ++++++++------- classesphp/funcoes_gerais.php | 11 +++++++---- geraminiatura.php | 9 +++++---- ms_criamapa.php | 33 +++++++++++++++++++++------------ ogc.php | 7 ++++--- pacotes/gvsig/gvsig2mapfile/upload.htm | 12 ++++++------ pacotes/gvsig/gvsig2mapfile/upload.php | 28 +++++++++++++++++----------- testamapfile.php | 11 ++++++----- 8 files changed, 74 insertions(+), 52 deletions(-) diff --git a/classesphp/classe_mapa.php b/classesphp/classe_mapa.php index 3a8848e..f89507e 100644 --- a/classesphp/classe_mapa.php +++ b/classesphp/classe_mapa.php @@ -976,15 +976,16 @@ $random - indica se os nomes dos novos layers serão modificados ou nao include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); $gm = new gvsig2mapfile($nomemap); $gvsigview = $gm->getViewsNames(); - $gvsigview = $gvsigview[0]; - $dataView = $gm->getViewData($gvsigview); - $adicionar = array(); - foreach($dataView["layerNames"] as $t){ - if(!in_array($t,$this->nomes)){ - $adicionar[] = $t; + foreach($gvsigview as $gv){ + $dataView = $gm->getViewData($gvsigview); + $adicionar = array(); + foreach($dataView["layerNames"] as $t){ + if(!in_array($t,$this->nomes)){ + $adicionar[] = $t; + } } + $this->mapa = $gm->addLayers($this->mapa,$gv,$adicionar); } - $this->mapa = $gm->addLayers($this->mapa,$gvsigview,$adicionar); foreach($adicionar as $nome){ $l = $this->mapa->getlayerbyname($nome); //reposiciona o layer se for o caso diff --git a/classesphp/funcoes_gerais.php b/classesphp/funcoes_gerais.php index 914e2b1..341123e 100644 --- a/classesphp/funcoes_gerais.php +++ b/classesphp/funcoes_gerais.php @@ -1530,6 +1530,7 @@ Include: function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) { ini_set("max_execution_time","1800"); + $temas = array(); if(file_exists($locaplic."/ms_configura.php")){ include($locaplic."/ms_configura.php"); } @@ -1628,10 +1629,12 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa) include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); $gm = new gvsig2mapfile($locaplic."/temas/".$tema.".gvp"); $gvsigview = $gm->getViewsNames(); - $gvsigview = $gvsigview[0]; - $dataView = $gm->getViewData($gvsigview); - $map = $gm->addLayers($map,$gvsigview,$dataView["layerNames"]); - $temas = $gm->nomesLayersAdicionados; + foreach($gvsigview as $gv){ + $dataView = $gm->getViewData($gvsigview); + $map = $gm->addLayers($map,$gvsigview,$dataView["layerNames"]); + $temas = array_merge($temas,$gm->nomesLayersAdicionados); + } + //$temas = $gm->nomesLayersAdicionados; } // //salva o mapfile com um outro nome para evitar que o mapa atual, se estiver aberto, seja modificado diff --git a/geraminiatura.php b/geraminiatura.php index d71f1f2..6134fba 100644 --- a/geraminiatura.php +++ b/geraminiatura.php @@ -241,12 +241,13 @@ function verificaMiniatura($map,$tipo,$admin=false) include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); $gm = new gvsig2mapfile($tema); $gvsigview = $gm->getViewsNames(); - $gvsigview = $gvsigview[0]; - $dataView = $gm->getViewData($gvsigview); + foreach($gvsigview as $v){ + $dataView = $gm->getViewData($v); + $mapa = $gm->addLayers($mapa,$v,$dataView["layerNames"]); + } $next = $dataView["extent"]; $ext = $mapa->extent; - $ext->setextent($next[0],$next[1],$next[2],$next[3]); - $mapa = $gm->addLayers($mapa,$gvsigview,$dataView["layerNames"]); + $ext->setextent($next[0],$next[1],$next[2],$next[3]); } if ($tipo == "mini" || $tipo == "todos"){ $mapa->setsize(50,50); diff --git a/ms_criamapa.php b/ms_criamapa.php index a4c182e..28ae323 100644 --- a/ms_criamapa.php +++ b/ms_criamapa.php @@ -125,9 +125,9 @@ image_wms - tipo de imagem disponível versao_wms - Versão do WMS (necessário quando da inclusão de uma camada WMS diretamente pela URL) -gvsiggvp - (depreciado na versão 4.7) endereço no servidor do arquivo de projeto gvSig (gvp) que será utilizado para construir o mapa (experimental) +gvsiggvp - (depreciado na versão 4.7 - utilize o parametro temasa) endereço no servidor do arquivo de projeto gvSig (gvp) que será utilizado para construir o mapa (experimental) -gvsigview - (depreciado na versão 4.7) 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) +gvsigview - lista com nomes de views existentes no projeto gvSig separado por virgula. Se for vazio, serao adicionadas todas as views. Exemplo (http://localhost/i3geo/ms_criamapa.php?gvsiggvp=c:\temp\teste.gvp&gvsigview=Untitled - 0) */ //$_COOKIE = array(); @@ -680,12 +680,13 @@ function incluiTemasIniciais(){ include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); $gm = new gvsig2mapfile($arqtemp); $gvsigview = $gm->getViewsNames(); - $gvsigview = $gvsigview[0]; - $dataView = $gm->getViewData($gvsigview); + foreach($gvsigview as $v){ + $dataView = $gm->getViewData($v); + $mapn = $gm->addLayers($mapn,$v,$dataView["layerNames"]); + } $next = $dataView["extent"]; $ext = $mapn->extent; $ext->setextent($next[0],$next[1],$next[2],$next[3]); - $mapn = $gm->addLayers($mapn,$gvsigview,$dataView["layerNames"]); } } } @@ -1111,18 +1112,26 @@ function incluiMapaGvsig($gvsiggvp,$gvsigview=""){ $gm = new gvsig2mapfile($gvsiggvp); if(empty($gvsigview)){ $gvsigview = $gm->getViewsNames(); - $gvsigview = $gvsigview[0]; + //$gvsigview = $gvsigview[0]; + } + else{ + $gvsigview = str_replace(" ",",",$gvsigview); + $gvsigview = explode(",",$gvsigview); } - $dataView = $gm->getViewData($gvsigview); - $numlayers = $mapn->numlayers; - for ($i=0;$i < $numlayers;$i++){ - $layer = $mapn->getlayer($i); - $layer->set("status",MS_DELETE); + $numlayers = $mapn->numlayers; + for ($i=0;$i < $numlayers;$i++){ + $layer = $mapn->getlayer($i); + $layer->set("status",MS_DELETE); + } + foreach($gvsigview as $v){ + if($v != ""){ + $dataView = $gm->getViewData($v); + $mapn = $gm->addLayers($mapn,$gvsigview,$dataView["layerNames"]); + } } $next = $dataView["extent"]; $ext = $mapn->extent; $ext->setextent($next[0],$next[1],$next[2],$next[3]); - $mapn = $gm->addLayers($mapn,$gvsigview,$dataView["layerNames"]); } /* Captura e mostra os erros de processamento do mapserver diff --git a/ogc.php b/ogc.php index bc437ef..028455a 100644 --- a/ogc.php +++ b/ogc.php @@ -323,9 +323,10 @@ if ($tipo == "" || $tipo == "metadados"){ include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); $gm = new gvsig2mapfile($locaplic."/temas/".$tx.".gvp"); $gvsigview = $gm->getViewsNames(); - $gvsigview = $gvsigview[0]; - $dataView = $gm->getViewData($gvsigview); - $oMap = $gm->addLayers($oMap,$gvsigview,$dataView["layerNames"]); + foreach($gvsigview as $gv){ + $dataView = $gm->getViewData($gv); + $oMap = $gm->addLayers($oMap,$gv,$dataView["layerNames"]); + } $numlayers = $oMap->numlayers; $layers = array(); //$layers[] = "default"; diff --git a/pacotes/gvsig/gvsig2mapfile/upload.htm b/pacotes/gvsig/gvsig2mapfile/upload.htm index b79d681..6057b27 100644 --- a/pacotes/gvsig/gvsig2mapfile/upload.htm +++ b/pacotes/gvsig/gvsig2mapfile/upload.htm @@ -13,13 +13,13 @@

http://softwarepublico.gov.br
-Código fonte
+Código fonte

-

Arquivo de projeto gvSig (.gvp). Será utilizada a primeira "view" existente no projeto.
- A conversão ainda é experimental, caso ocorra algum erro, envie o seu projeto para o e-mail: edmar.moretti@gmail.com
- Não há garantias de sigilo em relação ao arquivo enviado ao servidor. Evite utilizar dados restritos, como endereços e senhas.
- No caso de camadas baseadas em conexões com banco de dados, a senha colocada em CONNECTION é igual ao nome do usuário, uma vez - que não é armazenada no arquivo .gvp

+

Arquivo de projeto gvSig (.gvp). Serão utilizadas todas as vistas existentes no projeto.
+ A conversão ainda é experimental, caso ocorra algum erro, envie o seu projeto para o e-mail: edmar.moretti@gmail.com<br> + Não há garantias de sigilo em relação ao arquivo enviado ao servidor. Evite utilizar dados restritos, como endereços e senhas.<br> + No caso de camadas baseadas em conexões com banco de dados, a senha colocada em CONNECTION é igual ao nome do usuário, uma vez + que não é armazenada no arquivo .gvp. No final da lista de vistas e layers deve aparecer o mapfile gerado

diff --git a/pacotes/gvsig/gvsig2mapfile/upload.php b/pacotes/gvsig/gvsig2mapfile/upload.php index 4550102..4d3f6a4 100644 --- a/pacotes/gvsig/gvsig2mapfile/upload.php +++ b/pacotes/gvsig/gvsig2mapfile/upload.php @@ -43,26 +43,32 @@ if (isset($_FILES['i3GEOuploadfile']['name'])) if($status != 1) {ob_clean();echo "Ocorreu um erro no envio do arquivo";exit;} - if($status == 1) - { + if($status == 1){ //echo $Arquivon; + $nomefim = str_replace(".gvp",".map",$Arquivon); + echo "#arquivo final: $nomefim
"; $gm = new gvsig2mapfile($Arquivon); - $views = $gm->getViewsNames(); - $dataView = $gm->getViewData($views[0]); $numlayers = $mapn->numlayers; - for ($i=0;$i < $numlayers;$i++) - { - $layer = $mapn->getlayer($i); - $layer->set("status",MS_DELETE); + for ($i=0;$i < $numlayers;$i++){ + $layer = $mapn->getlayer($i); + $layer->set("status",MS_DELETE); + } + $views = $gm->getViewsNames(); + foreach($views as $v){ + echo "#vista: ".$v; + $dataView = $gm->getViewData($v); + $layernames = $dataView["layerNames"]; + echo "
#layers: ".implode(", ",$layernames)."
"; + $mapn = $gm->addLayers($mapn,$v,$layernames); + $mapn->save($nomefim); } $next = $dataView["extent"]; $ext = $mapn->extent; $ext->setextent($next[0],$next[1],$next[2],$next[3]); - $mapn = $gm->addLayers($mapn,$views[0],$dataView["layerNames"]); - $mapn->save(str_replace(".gvp",".map",$Arquivon)); + $mapn->save($nomefim); $handle = fopen(str_replace(".gvp",".map",$Arquivon), "r"); - echo ""; + echo "#mapfile:
"; while (!feof($handle)) { $linha = fgets($handle); diff --git a/testamapfile.php b/testamapfile.php index 6ba6462..c2ffb9a 100644 --- a/testamapfile.php +++ b/testamapfile.php @@ -310,15 +310,16 @@ function verifica($map,$solegenda){ $gvsiggvp = $locaplic."/".$tema; } include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); - $gm = new gvsig2mapfile($gvsiggvp); + $gm = new gvsig2mapfile($gvsiggvp); $gvsigview = $gm->getViewsNames(); - $gvsigview = $gvsigview[0]; - $dataView = $gm->getViewData($gvsigview); - $numlayers = $mapn->numlayers; + foreach($gvsigview as $v){ + $dataView = $gm->getViewData($v); + $mapa = $gm->addLayers($mapa,$v,$dataView["layerNames"]); + } $next = $dataView["extent"]; $ext = $mapa->extent; $ext->setextent($next[0],$next[1],$next[2],$next[3]); - $mapa = $gm->addLayers($mapa,$gvsigview,$dataView["layerNames"]); + } if ($tipo == "mini"){ $mapa->setsize(50,50); -- libgit2 0.21.2