source: subversion/sites/other/freemap/common/landsat.php @ 8877

Last change on this file since 8877 was 5579, checked in by nick, 12 years ago

add updated freemap

File size: 3.4 KB
Line 
1<?php
2################################################################################
3# This file forms part of the Freemap source code.                             #
4# (c) 2004-06 Nick Whitelegg (Hogweed Software)                                #
5# Licenced under the Lesser GNU General Public Licence; see COPYING            #
6# for details.                                                                 #
7################################################################################
8
9require_once('gpxnew.php');
10require_once('latlong.php');
11require_once('defines.php');
12require_once('Map.php');
13require_once('functions.php');
14
15
16// 070406 changed ['name'] to ['tags']['name'] for nodes, segments and ways
17// 070406 changed ['type'] to ['tags']['class'] for nodes
18
19///////////////////// CLASS DEFINITIONS /////////////////////////
20
21
22class Image
23{
24        var $im, 
25                $map, 
26                $backcol,
27                $trackpoint_colour;
28
29        var $debug;
30
31        var $trackpoints, $landsat;
32        var $bottomleft_ll, $topright_ll;
33
34        function Image ($w, $s, $e, $n, $width, $height, $layers)
35        {
36                $this->map = new Map ($w,$s,$e,$n, $width, $height);
37                $this->im = ImageCreateTrueColor($width,$height);
38                $this->backcol = ImageColorAllocate($this->im, 220, 220, 220);
39                ImageFilledRectangle($this->im,0,0,$width,$height,$this->backcol);
40                $this->trackpoint_colour = ImageColorAllocate($this->im,192,0,0);
41
42                $this->bottomleft_ll = array("long"=>$w,"lat"=>$s);
43                $this->topright_ll = array("long"=>$e,"lat"=>$n);
44
45                if(strstr($layers,"trackpoints"))
46                {
47                        $this->trackpoints=grabGPX($this->bottomleft_ll['long'],
48                                                           $this->bottomleft_ll['lat'],
49                                                           $this->topright_ll['long'],
50                                                           $this->topright_ll['lat']);
51                }
52
53                $this->landsat = true;
54        }
55
56        function draw()
57        {
58                if($this->landsat)
59                        $this->draw_landsat();
60                ImagePNG($this->im);   
61        }
62       
63        function draw_landsat()
64        {
65                $url = 
66                                ("http://onearth.jpl.nasa.gov/wms.cgi?request=GetMap&width=".
67//              ("http://landsat.openstreetmap.org:3128/wms.cgi?request=GetMap&width=".
68                                        $this->map->width."&height=".$this->map->height.
69                                        "&layers=modis,global_mosaic&styles=".
70                                                                "&srs=EPSG:4326&".
71                                        "format=image/jpeg&bbox=".
72                                                                $this->bottomleft_ll['long'].",".
73                                                                $this->bottomleft_ll['lat'].",".
74                                                                $this->topright_ll['long'].",".
75                                                                $this->topright_ll['lat']);
76//              echo "URL: $url";
77                $img=ImageCreateFromJPEG($url);
78                ImageCopy($this->im,$img,0,0,0,0,
79                                                $this->map->width,$this->map->height);
80        }
81}
82
83////////////////// SCRIPT BEGINS HERE /////////////////////
84
85$defaults = array("width" => 500, 
86                        "height" => 500,
87                        "bbox" => "-0.75,51.02,-0.7,51.07",
88                        "layers" => "none");
89
90$inp=array();
91
92foreach ($defaults as $field=>$default)
93{
94        if(valid_input($field,$_GET[$field]))
95                $inp[$field] = $_GET[$field];
96        elseif(valid_input($field,$_GET[strtoupper($field)]))
97                $inp[$field] = $_GET[strtoupper($field)];
98        else
99                $inp[$field] = $default;
100}
101
102$bbox = explode(",",$inp['bbox']);
103
104
105if(isset($error))
106{
107        echo "<html><head><title>Error!</title></head><body>$error</body></html>";
108}
109else
110{
111        if (!isset($_GET['debug']))
112                header('Content-type: image/png'); 
113       
114        $image = new Image(($bbox[0]), ($bbox[1]), ($bbox[2]), 
115                                                ($bbox[3]),
116                                                $inp["width"],$inp["height"], $inp["layers"]);
117
118        $image->draw();
119}
120
121function valid_input($field,$value)
122{
123        if($field=="width" || $field=="height")
124        {
125                return wholly_numeric($value);
126        }
127        return $value;
128}
129?>
Note: See TracBrowser for help on using the repository browser.