mapa_utfgrid.php
2.59 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
<?php
for ($i = 0; $i < $numlayers; ++ $i) {
$l = $mapa->getLayer($i);
$l->set("status", MS_OFF);
}
$l = $mapa->getLayerbyname($_GET["layer"]);
//a classe deve ter uma cor
if($l->type == MS_LAYER_POLYGON){
$numclasses = $l->numclasses;
if ($numclasses > 0) {
for ($i = 0; $i < $numclasses; ++ $i) {
$classe = $l->getClass($i);
$estilo = $classe->getstyle(0);
$ncor = $estilo->color;
$ncor->setrgb(255, 255, 255);
}
}
}
$l->set("status", MS_DEFAULT);
$l->setmetadata("WMS_INCLUDE_ITEMS", "all");
if ($l->getmetadata("UTFITEM") != "") {
$temp = "{\"text\":\"" . $l->getmetadata("UTFITEM") . "\"}";
$l->updateFromString("LAYER UTFITEM '" . $temp . "' END");
}
if ($l->getmetadata("UTFDATA") != "") {
//"UTFDATA" "{\"text\":\"[FIPS_CNTRY]\"}"
$temp = "{\"text\":\"[" . $l->getmetadata("UTFDATA") . "]\"}";
$l->updateFromString("LAYER UTFDATA '" . $temp . "' END");
}
$mapa->selectOutputFormat("utfgrid");
ms_ioinstallstdouttobuffer();
$req = ms_newowsrequestobj();
$_GET["BBOX"] = str_replace(" ", ",", $_GET["BBOX"]);
foreach ($_GET as $k => $v) {
$req->setParameter(strtoupper($k), $v);
}
$req->setParameter("REQUEST", "GetMap");
$req->setParameter("SERVICE", "WMS");
$req->setParameter("VERSION", "1.1.1");
$req->setParameter("LAYERS", $_GET["layer"]);
$req->setParameter("FORMAT", "application/json");
$mapa->owsdispatch($req);
//salva em disco para cache
if ($cache == true && $_GET["cache"] != "nao") {
//caso EPSG:4326
if($_GET["SRS"] == "EPSG:4326"){
if ($_SESSION["cachedir"] == "") {
$nome = dirname(dirname($_SESSION["map_file"])) . "/cache" . $_GET["tms"];
} else {
$nome = $_SESSION["cachedir"] . $_GET["tms"];
}
} else {
if ($_SESSION["cachedir"] == "") {
$nome = dirname(dirname($_SESSION["map_file"])) . "/cache" . "/googlemaps/".$_GET["layer"]."/$z/$x/$y";
} else {
$nome = $_SESSION["cachedir"] . "/googlemaps/".$_GET["layer"]."/$z/$x/$y";
}
}
$nome = str_replace([".json",".png"], "", $nome);
$nome = $nome . ".json";
if (! file_exists($nome)) {
if (! file_exists(dirname($nome))) {
@mkdir(dirname($nome), 0744, true);
chmod(dirname($nome), 0744);
}
ms_iostripstdoutbuffercontenttype();
file_put_contents($nome,ms_iogetstdoutbufferstring());
chmod($nome, 0744);
}
}
ob_clean();
ms_iostripstdoutbuffercontentheaders();
header("Content-type: application/json; subtype=json");
ms_iogetStdoutBufferBytes();
ms_ioresethandlers();
exit();
?>