parse_cgi.php
3.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
/*
Title: parse_cgi.php
Este programa alguns dos parâmetros do mapserver CGI e retorna uma imagem do mapa.
É utilizado para processar o mapfile segundo as necessidades do i3geo, como por exemplo, fazendo a substituição
das variáveis de conexão com banco.
Deve ser utilizado na tag IMG de umarquivo HTML.
Parameters:
$g_sid - código da seção aberta
$map_size - string com o tamanho do novo mapa (w h)
$mapext - extensão geográfica do novo mapa (xmin ymin xmax ymax)
$map_imagecolor - cor do fundo do mapa (default é -1 -1 -1)
$map_transparent - a cor do fundo será transparente? (ON OFF, default é ON)
About: Licença
I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil
Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br
Este programa é software livre; você pode redistribuí-lo
e/ou modificá-lo sob os termos da Licença Pública Geral
GNU conforme publicada pela Free Software Foundation;
tanto a versão 2 da Licença.
Este programa é distribuído na expectativa de que seja útil,
porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita
de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
Consulte a Licença Pública Geral do GNU para mais detalhes.
Você deve ter recebido uma cópia da Licença Pública Geral do
GNU junto com este programa; se não, escreva para a
Free Software Foundation, Inc., no endereço
59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
*/
error_reporting(0);
include_once("pega_variaveis.php");
include_once ("carrega_ext.php");
include_once("funcoes_gerais.php");
$temp = $mapext;
session_name("i3GeoPHP");
session_id($g_sid);
session_start();
$mapext = $temp;
$map_file = $_SESSION["map_file"];
include_once("../ms_configura.php");
if(isset($fingerprint))
{
if (md5('I3GEOSEC' . $_SERVER['HTTP_USER_AGENT'] . session_id()) != $fingerprint)
{exit;}
}
if (!isset($map_imagecolor)) $map_imagecolor = "-1 -1 -1";
if (!isset($map_transparent)) $map_transparent = "ON";
//
//faz uma cópia do mapfile para poder manipular sem afetar omapfile atual usado pelo i3geo
//
$nomerando = nomerandomico();
//echo $map_file."<br>";
$map_filen = str_replace(basename($map_file),$nomerando.".map",$map_file);
//echo $map_filen."<br>";
copy($map_file,$map_filen);
substituiCon($map_filen,$postgis_mapa);
$map = ms_newMapObj($map_filen);
$layersNames = $map->getalllayernames();
foreach ($layersNames as $layerName)
{
$layer = $map->getLayerByname($layerName);
if ($layer->getmetadata("classesnome") != "")
{autoClasses(&$layer,$map);}
}
if(isset($map_size))
{
$map_size = explode(",",$map_size);
$map->setsize($map_size[0],$map_size[1]);
}
if(isset($mapext))
{
$mapext = explode(" ",$mapext);
$map->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]);
}
$s = $map->scalebar;
$s->set("status",MS_OFF);
$map_imagecolor = explode(" ",$map_imagecolor);
$imgcolor = $map->imagecolor;
$imgcolor->setrgb($map_imagecolor[0],$map_imagecolor[1],$map_imagecolor[2]);
$o = $map->outputformat;
if(strtolower($map_transparent) == "on")
$o->set("transparent",MS_ON);
else
$o->set("transparent",MS_OFF);
$img = $map->draw();
echo header("Content-type: " . $map->outputformat->mimetype . "\n\n");
$img->saveImage("");
unlink($map_filen);
?>