parse_cgi.php
4.07 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
/*
Title: parse_cgi.php
Faz o processamento de um mapfile segundo as necessidades do i3geo, como por exemplo, fazendo a substituição
das variáveis de conexão com banco e outras operações específicas do i3Geo.
Pode ser utilizado na tag IMG de um arquivo HTML ao invés de ser utilizado o Mapserver em modo CGI.
Licenca:
GPL2
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@gmail.com
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;
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.
Arquivo:
i3geo/classesphp/parse_cgi.php
Parâmetros:
$g_sid {string} - código da seção aberta no servidor
$map_size {string} - string com o tamanho do novo mapa (w h)
$mapext {string}- extensão geográfica do novo mapa (xmin ymin xmax ymax)
$map_imagecolor {string} - cor do fundo do mapa (default é -1 -1 -1)
$map_transparent {string} - a cor do fundo será transparente? (ON OFF, default é ON)
Exemplo:
http://localhost/i3geo/classesphp/parse_cgi.php?g_sid=dgge4877dhhhgrjjey&map_size=500 500
*/
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(dirname(__FILE__)."/../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($layer->type == MS_LAYER_POLYGON)
{
$nclasses = $layer->numclasses;
for($i=0;$i<$nclasses;++$i){
$classe = $layer->getclass($i);
$nestilos = $classe;
for($j=0;$j<$nestilos;++$j){
$estilo = $classe->getstyle($j);
$estilo->set("symbolname","pt1");
}
}
}
}
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]);
}
//$map->save($map_file);
$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);
?>