Completed
Push — master ( 5b4de3...6ad718 )
by Yannick
08:33
created
require/class.METAR.php 1 patch
Indentation   +257 added lines, -257 removed lines patch added patch discarded remove patch
@@ -7,107 +7,107 @@  discard block
 block discarded – undo
7 7
 	public $db;
8 8
 	
9 9
 	protected $texts = Array(
10
-	    'MI' => 'Shallow',
11
-	    'PR' => 'Partial',
12
-	    'BC' => 'Low drifting',
13
-	    'BL' => 'Blowing',
14
-	    'SH' => 'Showers',
15
-	    'TS' => 'Thunderstorm',
16
-	    'FZ' => 'Freezing',
17
-	    'DZ' => 'Drizzle',
18
-	    'RA' => 'Rain',
19
-	    'SN' => 'Snow',
20
-	    'SG' => 'Snow Grains',
21
-	    'IC' => 'Ice crystals',
22
-	    'PL' => 'Ice pellets',
23
-	    'GR' => 'Hail',
24
-	    'GS' => 'Small hail',
25
-	    'UP' => 'Unknown',
26
-	    'BR' => 'Mist',
27
-	    'FG' => 'Fog',
28
-	    'FU' => 'Smoke',
29
-	    'VA' => 'Volcanic ash',
30
-	    'DU' => 'Widespread dust',
31
-	    'SA' => 'Sand',
32
-	    'HZ' => 'Haze',
33
-	    'PY' => 'Spray',
34
-	    'PO' => 'Well developed dust / sand whirls',
35
-	    'SQ' => 'Squalls',
36
-	    'FC' => 'Funnel clouds inc tornadoes or waterspouts',
37
-	    'SS' => 'Sandstorm',
38
-	    'DS' => 'Duststorm'
10
+		'MI' => 'Shallow',
11
+		'PR' => 'Partial',
12
+		'BC' => 'Low drifting',
13
+		'BL' => 'Blowing',
14
+		'SH' => 'Showers',
15
+		'TS' => 'Thunderstorm',
16
+		'FZ' => 'Freezing',
17
+		'DZ' => 'Drizzle',
18
+		'RA' => 'Rain',
19
+		'SN' => 'Snow',
20
+		'SG' => 'Snow Grains',
21
+		'IC' => 'Ice crystals',
22
+		'PL' => 'Ice pellets',
23
+		'GR' => 'Hail',
24
+		'GS' => 'Small hail',
25
+		'UP' => 'Unknown',
26
+		'BR' => 'Mist',
27
+		'FG' => 'Fog',
28
+		'FU' => 'Smoke',
29
+		'VA' => 'Volcanic ash',
30
+		'DU' => 'Widespread dust',
31
+		'SA' => 'Sand',
32
+		'HZ' => 'Haze',
33
+		'PY' => 'Spray',
34
+		'PO' => 'Well developed dust / sand whirls',
35
+		'SQ' => 'Squalls',
36
+		'FC' => 'Funnel clouds inc tornadoes or waterspouts',
37
+		'SS' => 'Sandstorm',
38
+		'DS' => 'Duststorm'
39 39
 	);
40 40
 	
41 41
 	function __construct($dbc = null) {
42
-                $Connection = new Connection($dbc);
43
-                $this->db = $Connection->db;
44
-        }
42
+				$Connection = new Connection($dbc);
43
+				$this->db = $Connection->db;
44
+		}
45 45
 
46
-       public static function check_last_update() {
47
-    		global $globalDBdriver;
48
-    		if ($globalDBdriver == 'mysql') {
46
+	   public static function check_last_update() {
47
+			global $globalDBdriver;
48
+			if ($globalDBdriver == 'mysql') {
49 49
 			$query = "SELECT COUNT(*) as nb FROM config WHERE name = 'last_update_metar' AND value > DATE_SUB(DATE(NOW()), INTERVAL 1 HOUR)";
50 50
 		} else {
51 51
 			$query = "SELECT COUNT(*) as nb FROM config WHERE name = 'last_update_metar' AND value::timestamp > CURRENT_TIMESTAMP - INTERVAL '1 HOURS'";
52 52
 		}
53
-                try {
54
-                        $Connection = new Connection();
55
-                        $sth = $Connection->db->prepare($query);
56
-                        $sth->execute();
57
-                } catch(PDOException $e) {
58
-                        return "error : ".$e->getMessage();
59
-                }
60
-                $row = $sth->fetch(PDO::FETCH_ASSOC);
61
-                if ($row['nb'] > 0) return false;
62
-                else return true;
63
-        }
53
+				try {
54
+						$Connection = new Connection();
55
+						$sth = $Connection->db->prepare($query);
56
+						$sth->execute();
57
+				} catch(PDOException $e) {
58
+						return "error : ".$e->getMessage();
59
+				}
60
+				$row = $sth->fetch(PDO::FETCH_ASSOC);
61
+				if ($row['nb'] > 0) return false;
62
+				else return true;
63
+		}
64 64
 
65
-        public static function insert_last_update() {
66
-                $query = "DELETE FROM config WHERE name = 'last_update_metar';
65
+		public static function insert_last_update() {
66
+				$query = "DELETE FROM config WHERE name = 'last_update_metar';
67 67
                         INSERT INTO config (name,value) VALUES ('last_update_metar',NOW());";
68
-                try {
69
-                        $Connection = new Connection();
70
-                        $sth = $Connection->db->prepare($query);
71
-                        $sth->execute();
72
-                } catch(PDOException $e) {
73
-                        return "error : ".$e->getMessage();
74
-                }
75
-        }
68
+				try {
69
+						$Connection = new Connection();
70
+						$sth = $Connection->db->prepare($query);
71
+						$sth->execute();
72
+				} catch(PDOException $e) {
73
+						return "error : ".$e->getMessage();
74
+				}
75
+		}
76 76
 
77 77
 
78 78
         
79
-        public function parse($data) {
80
-    		//$data = str_replace(array('\n','\r','\r','\n'),'',$data);
81
-    		$codes = implode('|', array_keys($this->texts));
82
-    		$regWeather = '#^(\+|\-|VC)?(' . $codes . ')(' . $codes . ')?$#';
83
-    		//$pieces = explode(' ',$data);
84
-    		$pieces = preg_split('/\s/',$data);
85
-    		$pos = 0;
86
-    		if ($pieces[0] == 'METAR') $pos++;
87
-    		elseif ($pieces[0] == 'SPECI') $pos++;
88
-    		if (strlen($pieces[$pos]) != 4) $pos++;
89
-    		$result['location'] = $pieces[$pos];
90
-    		$pos++;
91
-    		$result['dayofmonth'] = substr($pieces[$pos],0,2);
92
-    		$result['time'] = substr($pieces[$pos],2,4);
93
-    		$c = count($pieces);
94
-    		for($pos++; $pos < $c; $pos++) {
95
-    			$piece = $pieces[$pos];
96
-    			if ($piece == 'RMK') break;
97
-    			if ($piece == 'AUTO') $result['auto'] = true;
98
-    			if ($piece == 'COR') $result['correction'] = true;
99
-    			// Wind Speed
100
-    			if (preg_match('#(VRB|\d\d\d)(\d\d)(?:G(\d\d))?(KT|MPS|KPH)(?: (\d{1,3})V(\d{1,3}))?$#', $piece, $matches)) {
101
-    				$result['wind']['direction'] = (float)$matches[1];
79
+		public function parse($data) {
80
+			//$data = str_replace(array('\n','\r','\r','\n'),'',$data);
81
+			$codes = implode('|', array_keys($this->texts));
82
+			$regWeather = '#^(\+|\-|VC)?(' . $codes . ')(' . $codes . ')?$#';
83
+			//$pieces = explode(' ',$data);
84
+			$pieces = preg_split('/\s/',$data);
85
+			$pos = 0;
86
+			if ($pieces[0] == 'METAR') $pos++;
87
+			elseif ($pieces[0] == 'SPECI') $pos++;
88
+			if (strlen($pieces[$pos]) != 4) $pos++;
89
+			$result['location'] = $pieces[$pos];
90
+			$pos++;
91
+			$result['dayofmonth'] = substr($pieces[$pos],0,2);
92
+			$result['time'] = substr($pieces[$pos],2,4);
93
+			$c = count($pieces);
94
+			for($pos++; $pos < $c; $pos++) {
95
+				$piece = $pieces[$pos];
96
+				if ($piece == 'RMK') break;
97
+				if ($piece == 'AUTO') $result['auto'] = true;
98
+				if ($piece == 'COR') $result['correction'] = true;
99
+				// Wind Speed
100
+				if (preg_match('#(VRB|\d\d\d)(\d\d)(?:G(\d\d))?(KT|MPS|KPH)(?: (\d{1,3})V(\d{1,3}))?$#', $piece, $matches)) {
101
+					$result['wind']['direction'] = (float)$matches[1];
102 102
 				$result['wind']['unit'] = $matches[4];
103
-    				if ($result['wind']['unit'] == 'KT') $result['wind']['speed'] = round(((float)$matches[2])*0.51444444444,2);
104
-    				elseif ($result['wind']['unit'] == 'KPH') $result['wind']['speed'] = round(((float)$matches[2])*1000,2);
105
-    				elseif ($result['wind']['unit'] == 'MPS') $result['wind']['speed'] = round(((float)$matches[2]),2);
103
+					if ($result['wind']['unit'] == 'KT') $result['wind']['speed'] = round(((float)$matches[2])*0.51444444444,2);
104
+					elseif ($result['wind']['unit'] == 'KPH') $result['wind']['speed'] = round(((float)$matches[2])*1000,2);
105
+					elseif ($result['wind']['unit'] == 'MPS') $result['wind']['speed'] = round(((float)$matches[2]),2);
106 106
 				$result['wind']['gust'] = (float)$matches[3];
107 107
 				$result['wind']['unit'] = $matches[4];
108 108
 				$result['wind']['min_variation'] = array_key_exists(5,$matches) ? $matches[5] : 0;
109 109
 				$result['wind']['max_variation'] = array_key_exists(6,$matches) ? $matches[6] : 0;
110
-    			}
110
+				}
111 111
 
112 112
 /*    			if (preg_match('#^([0-9]{3})([0-9]{2})(G([0-9]{2}))?(KT|MPS)$#', $piece, $matches)) {
113 113
     				$result['wind_direction'] = (float)$matches[1];
@@ -124,35 +124,35 @@  discard block
 block discarded – undo
124 124
     				}
125 125
     			}
126 126
     			*/
127
-    			// Temperature
128
-    			if (preg_match('#^(M?[0-9]{2,})/(M?[0-9]{2,})$#', $piece, $matches)) {
129
-    				$temp = (float)$matches[1];
127
+				// Temperature
128
+				if (preg_match('#^(M?[0-9]{2,})/(M?[0-9]{2,})$#', $piece, $matches)) {
129
+					$temp = (float)$matches[1];
130 130
 				if ($matches[1]{0} == 'M') {
131 131
 					$temp = ((float)substr($matches[1], 1)) * -1;
132 132
 				}
133
-    				$result['temperature'] = $temp;
134
-    				$dew = (float)$matches[2];
133
+					$result['temperature'] = $temp;
134
+					$dew = (float)$matches[2];
135 135
 				if ($matches[2]{0} == 'M') {
136 136
 					$dew = ((float)substr($matches[2], 1)) * -1;
137 137
 				}
138 138
 				$result['dew'] = $dew;
139
-    			}
140
-    			// QNH
141
-    			if (preg_match('#^(A|Q)([0-9]{4})$#', $piece, $matches)) {
142
-    			// #^(Q|A)(////|[0-9]{4})( )#
143
-    				if ($matches[1] == 'Q') {
144
-    					// hPa
145
-    					$result['QNH'] = $matches[2];
146
-    				} else {
147
-    					// inHg
148
-    					$result['QNH'] = round(($matches[2] / 100)*33.86389,2);
149 139
 				}
150
-    				/*
140
+				// QNH
141
+				if (preg_match('#^(A|Q)([0-9]{4})$#', $piece, $matches)) {
142
+				// #^(Q|A)(////|[0-9]{4})( )#
143
+					if ($matches[1] == 'Q') {
144
+						// hPa
145
+						$result['QNH'] = $matches[2];
146
+					} else {
147
+						// inHg
148
+						$result['QNH'] = round(($matches[2] / 100)*33.86389,2);
149
+				}
150
+					/*
151 151
     				$result['QNH'] = $matches[1] == 'Q' ? $matches[2] : ($matches[2] / 100);
152 152
     				$result['QNH_format'] = $matches[1] == 'Q' ? 'hPa' : 'inHg';
153 153
     				*/
154
-    			}
155
-                     /*
154
+				}
155
+					 /*
156 156
     			// Wind Direction
157 157
     			if (preg_match('#^([0-9]{3})V([0-9]{3})$#', $piece, $matches)) {
158 158
     				$result['wind_direction'] = $matches[1];
@@ -163,9 +163,9 @@  discard block
 block discarded – undo
163 163
     				$result['speed_variable'] = $matches[1];
164 164
     			}
165 165
     			*/
166
-    			// Visibility
167
-    			if (preg_match('#^([0-9]{4})|(([0-9]{1,4})SM)$#', $piece, $matches)) {
168
-    				if (isset($matches[3]) && strlen($matches[3]) > 0) {
166
+				// Visibility
167
+				if (preg_match('#^([0-9]{4})|(([0-9]{1,4})SM)$#', $piece, $matches)) {
168
+					if (isset($matches[3]) && strlen($matches[3]) > 0) {
169 169
 					$result['visibility'] = (float)$matches[3] * 1609.34;
170 170
 				} else {
171 171
 					if ($matches[1] == '9999') {
@@ -178,26 +178,26 @@  discard block
 block discarded – undo
178 178
 					$result['visibility'] = '> 10000';
179 179
 					$result['weather'] = "CAVOK";
180 180
 				}
181
-    			}
182
-    			// Cloud Coverage
183
-    			if (preg_match('#^(SKC|CLR|FEW|SCT|BKN|OVC|VV)([0-9]{3})(CB|TCU|CU|CI)?$#', $piece, $matches)) {
184
-    				//$this->addCloudCover($matches[1], ((float)$matches[2]) * 100, isset($matches[3]) ? $matches[3] : '');
185
-    				$type = $matches[1];
186
-    				if ($type == 'SKC') $cloud['type'] = 'No cloud/Sky clear';
187
-    				elseif ($type == 'CLR') $cloud['type'] = 'No cloud below 12,000ft (3700m)';
188
-    				elseif ($type == 'NSC') $cloud['type'] = 'No significant cloud';
189
-    				elseif ($type == 'FEW') $cloud['type'] = 'Few';
190
-    				elseif ($type == 'SCT') $cloud['type'] = 'Scattered';
191
-    				elseif ($type == 'BKN') $cloud['type'] = 'Broken';
192
-    				elseif ($type == 'OVC') $cloud['type'] = 'Overcast/Full cloud coverage';
193
-    				elseif ($type == 'VV') $cloud['type'] = 'Vertical visibility';
194
-    				$cloud['type_code'] = $type;
195
-    				$cloud['level'] = round(((float)$matches[2]) * 100 * 0.3048);
196
-    				$cloud['significant'] = isset($matches[3]) ? $matches[3] : '';
197
-    				$result['cloud'][] = $cloud;
198
-    			}
199
-    			// RVR
200
-    			 if (preg_match('#^(R.+)/([M|P])?(\d{4})(?:V(\d+)|[UDN])?(FT)?$#', $piece, $matches)) {
181
+				}
182
+				// Cloud Coverage
183
+				if (preg_match('#^(SKC|CLR|FEW|SCT|BKN|OVC|VV)([0-9]{3})(CB|TCU|CU|CI)?$#', $piece, $matches)) {
184
+					//$this->addCloudCover($matches[1], ((float)$matches[2]) * 100, isset($matches[3]) ? $matches[3] : '');
185
+					$type = $matches[1];
186
+					if ($type == 'SKC') $cloud['type'] = 'No cloud/Sky clear';
187
+					elseif ($type == 'CLR') $cloud['type'] = 'No cloud below 12,000ft (3700m)';
188
+					elseif ($type == 'NSC') $cloud['type'] = 'No significant cloud';
189
+					elseif ($type == 'FEW') $cloud['type'] = 'Few';
190
+					elseif ($type == 'SCT') $cloud['type'] = 'Scattered';
191
+					elseif ($type == 'BKN') $cloud['type'] = 'Broken';
192
+					elseif ($type == 'OVC') $cloud['type'] = 'Overcast/Full cloud coverage';
193
+					elseif ($type == 'VV') $cloud['type'] = 'Vertical visibility';
194
+					$cloud['type_code'] = $type;
195
+					$cloud['level'] = round(((float)$matches[2]) * 100 * 0.3048);
196
+					$cloud['significant'] = isset($matches[3]) ? $matches[3] : '';
197
+					$result['cloud'][] = $cloud;
198
+				}
199
+				// RVR
200
+				 if (preg_match('#^(R.+)/([M|P])?(\d{4})(?:V(\d+)|[UDN])?(FT)?$#', $piece, $matches)) {
201 201
 				$rvr['runway'] = $matches[1];
202 202
 				$rvr['assessment'] = $matches[2];
203 203
 				$rvr['rvr'] = $matches[3];
@@ -206,33 +206,33 @@  discard block
 block discarded – undo
206 206
 				$result['RVR'] = $rvr;
207 207
 			}
208 208
     			
209
-    			//if (preg_match('#^(R[A-Z0-9]{2,3})/([0-9]{4})(V([0-9]{4}))?(FT)?$#', $piece, $matches)) {
210
-    			if (preg_match('#^R(\d{2}[LRC]?)/([\d/])([\d/])([\d/]{2})([\d/]{2})$#', $piece, $matches)) {
211
-    				//print_r($matches);
212
-    				// https://github.com/davidmegginson/metar-taf/blob/master/Metar.php
213
-    				$result['RVR']['runway'] = $matches[1];
214
-        			$result['RVR']['deposits'] = $matches[2];
215
-        			$result['RVR']['extent'] = $matches[3];
216
-        			$result['RVR']['depth'] = $matches[4];
217
-        			$result['RVR']['friction'] = $matches[5];
218
-    			}
219
-    			if (preg_match('#^(R[A-Z0-9]{2,3})/([0-9]{4})(V([0-9]{4}))?(FT)?$#', $piece, $matches)) {
220
-    				//echo $piece;
221
-    				//print_r($matches);
222
-    				if (isset($matches[5])) $range = array('exact' => (float)$matches[2], 'unit' => $matches[5] ? 'FT' : 'M');
223
-    				else $range = array('exact' => (float)$matches[2], 'unit' => 'M');
209
+				//if (preg_match('#^(R[A-Z0-9]{2,3})/([0-9]{4})(V([0-9]{4}))?(FT)?$#', $piece, $matches)) {
210
+				if (preg_match('#^R(\d{2}[LRC]?)/([\d/])([\d/])([\d/]{2})([\d/]{2})$#', $piece, $matches)) {
211
+					//print_r($matches);
212
+					// https://github.com/davidmegginson/metar-taf/blob/master/Metar.php
213
+					$result['RVR']['runway'] = $matches[1];
214
+					$result['RVR']['deposits'] = $matches[2];
215
+					$result['RVR']['extent'] = $matches[3];
216
+					$result['RVR']['depth'] = $matches[4];
217
+					$result['RVR']['friction'] = $matches[5];
218
+				}
219
+				if (preg_match('#^(R[A-Z0-9]{2,3})/([0-9]{4})(V([0-9]{4}))?(FT)?$#', $piece, $matches)) {
220
+					//echo $piece;
221
+					//print_r($matches);
222
+					if (isset($matches[5])) $range = array('exact' => (float)$matches[2], 'unit' => $matches[5] ? 'FT' : 'M');
223
+					else $range = array('exact' => (float)$matches[2], 'unit' => 'M');
224 224
 				if (isset($matches[3])) {
225 225
 					$range = Array(
226
-					    'from' => (float)$matches[2],
227
-					    'to'   => (float)$matches[4],
228
-					    'unit' => $matches[5] ? 'FT' : 'M'
226
+						'from' => (float)$matches[2],
227
+						'to'   => (float)$matches[4],
228
+						'unit' => $matches[5] ? 'FT' : 'M'
229 229
 					);
230 230
 				}
231 231
 				$result['RVR'] = $matches[1];
232 232
 				$result['RVR_range'] = $range;
233
-    			}
234
-    			// Weather
235
-    			if (preg_match($regWeather, $piece, $matches)) {
233
+				}
234
+				// Weather
235
+				if (preg_match($regWeather, $piece, $matches)) {
236 236
 				$text = Array();
237 237
 				switch ($matches[1]) {
238 238
 					case '+':
@@ -255,35 +255,35 @@  discard block
 block discarded – undo
255 255
 				}
256 256
 				if (!isset($result['weather'])) $result['weather'] = implode(' ', $text);
257 257
 				else $result['weather'] = $result['weather'].' / '.implode(' ', $text);
258
-    			}
259
-    		}
260
-    		return $result;
258
+				}
259
+			}
260
+			return $result;
261 261
         
262
-        }
262
+		}
263 263
         
264 264
 	public function getMETAR($icao) {
265
-    		global $globalMETARcycle, $globalDBdriver;
266
-    		if (isset($globalMETARcycle) && $globalMETARcycle) {
267
-            		$query = "SELECT * FROM metar WHERE metar_location = :icao";
268
-                } else {
269
-            		if ($globalDBdriver == 'mysql') $query = "SELECT * FROM metar WHERE metar_location = :icao AND metar_date >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 10 HOUR) LIMIT 1";
270
-            		elseif ($globalDBdriver == 'pgsql') $query = "SELECT * FROM metar WHERE metar_location = :icao AND metar_date >= now() AT TIMEZONE 'UTC' - '10 HOUR'->INTERVAL LIMIT 0,1";
271
-                }
272
-                $query_values = array(':icao' => $icao);
273
-                 try {
274
-                        $sth = $this->db->prepare($query);
275
-                        $sth->execute($query_values);
276
-                } catch(PDOException $e) {
277
-                        return "error : ".$e->getMessage();
278
-                }
279
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
280
-                if ((!isset($globalMETARcyle) || $globalMETARcycle === false) && count($all) == 0) {
281
-            		$all = $this->downloadMETAR($icao);
282
-                }
283
-                return $all;
284
-        }
265
+			global $globalMETARcycle, $globalDBdriver;
266
+			if (isset($globalMETARcycle) && $globalMETARcycle) {
267
+					$query = "SELECT * FROM metar WHERE metar_location = :icao";
268
+				} else {
269
+					if ($globalDBdriver == 'mysql') $query = "SELECT * FROM metar WHERE metar_location = :icao AND metar_date >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 10 HOUR) LIMIT 1";
270
+					elseif ($globalDBdriver == 'pgsql') $query = "SELECT * FROM metar WHERE metar_location = :icao AND metar_date >= now() AT TIMEZONE 'UTC' - '10 HOUR'->INTERVAL LIMIT 0,1";
271
+				}
272
+				$query_values = array(':icao' => $icao);
273
+				 try {
274
+						$sth = $this->db->prepare($query);
275
+						$sth->execute($query_values);
276
+				} catch(PDOException $e) {
277
+						return "error : ".$e->getMessage();
278
+				}
279
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
280
+				if ((!isset($globalMETARcyle) || $globalMETARcycle === false) && count($all) == 0) {
281
+					$all = $this->downloadMETAR($icao);
282
+				}
283
+				return $all;
284
+		}
285 285
 
286
-       public function addMETAR($location,$metar,$date) {
286
+	   public function addMETAR($location,$metar,$date) {
287 287
 		global $globalDBdriver;
288 288
 		$date = date('Y-m-d H:i:s',strtotime($date));
289 289
 		if ($globalDBdriver == 'mysql') {
@@ -291,98 +291,98 @@  discard block
 block discarded – undo
291 291
 		} else {
292 292
 			$query = "UPDATE metar SET metar_date = :date, metar = metar WHERE metar_location = :location;INSERT INTO metar (metar_location,metar_date,metar) SELECT :location,:date,:metar WHERE NOT EXISTS (SELECT 1 FROM metar WHERE metar_location = :location);";
293 293
 		}
294
-                $query_values = array(':location' => $location,':date' => $date,':metar' => $metar);
295
-                 try {
296
-                        $sth = $this->db->prepare($query);
297
-                        $sth->execute($query_values);
298
-                } catch(PDOException $e) {
299
-                        return "error : ".$e->getMessage();
300
-                }
301
-        }
294
+				$query_values = array(':location' => $location,':date' => $date,':metar' => $metar);
295
+				 try {
296
+						$sth = $this->db->prepare($query);
297
+						$sth->execute($query_values);
298
+				} catch(PDOException $e) {
299
+						return "error : ".$e->getMessage();
300
+				}
301
+		}
302 302
 
303
-       public function deleteMETAR($id) {
304
-                $query = "DELETE FROM metar WHERE id = :id";
305
-                $query_values = array(':id' => $id);
306
-                 try {
307
-                        $sth = $this->db->prepare($query);
308
-                        $sth->execute($query_values);
309
-                } catch(PDOException $e) {
310
-                        return "error : ".$e->getMessage();
311
-                }
312
-        }
313
-       public function deleteAllMETARLocation() {
314
-                $query = "DELETE FROM metar";
315
-                 try {
316
-                        $sth = $this->db->prepare($query);
317
-                        $sth->execute();
318
-                } catch(PDOException $e) {
319
-                        return "error : ".$e->getMessage();
320
-                }
321
-        }
303
+	   public function deleteMETAR($id) {
304
+				$query = "DELETE FROM metar WHERE id = :id";
305
+				$query_values = array(':id' => $id);
306
+				 try {
307
+						$sth = $this->db->prepare($query);
308
+						$sth->execute($query_values);
309
+				} catch(PDOException $e) {
310
+						return "error : ".$e->getMessage();
311
+				}
312
+		}
313
+	   public function deleteAllMETARLocation() {
314
+				$query = "DELETE FROM metar";
315
+				 try {
316
+						$sth = $this->db->prepare($query);
317
+						$sth->execute();
318
+				} catch(PDOException $e) {
319
+						return "error : ".$e->getMessage();
320
+				}
321
+		}
322 322
         
323
-        public function addMETARCycle() {
324
-    		global $globalDebug, $globalIVAO;
325
-    		if (isset($globalDebug) && $globalDebug) echo "Downloading METAR cycle...";
326
-    		date_default_timezone_set("UTC");
327
-    		$Common = new Common();
328
-    		if (isset($globalIVAO) && $globalIVAO) {
329
-        		$cycle = $Common->getData('http://wx.ivao.aero/metar.php');
330
-    		} else {
323
+		public function addMETARCycle() {
324
+			global $globalDebug, $globalIVAO;
325
+			if (isset($globalDebug) && $globalDebug) echo "Downloading METAR cycle...";
326
+			date_default_timezone_set("UTC");
327
+			$Common = new Common();
328
+			if (isset($globalIVAO) && $globalIVAO) {
329
+				$cycle = $Common->getData('http://wx.ivao.aero/metar.php');
330
+			} else {
331 331
 			$cycle = $Common->getData('http://weather.noaa.gov/pub/data/observations/metar/cycles/'.date('H').'Z.TXT');
332
-    		}
333
-    		if (isset($globalDebug) && $globalDebug) echo "Done - Updating DB...";
334
-    		$date = '';
335
-    		foreach(explode("\n",$cycle) as $line) {
336
-    			if (preg_match('#^([0-9]{4})/([0-9]{2})/([0-9]{2}) ([0-9]{2}):([0-9]{2})$#',$line)) {
337
-    				//echo "date : ".$line."\n";
338
-    				$date = $line;
339
-    			} elseif ($line != '') {
340
-    			    //$this->parse($line);
341
-    			    //echo $line;
342
-    			    if ($date == '') $date = date('Y/m/d H:m');
343
-    			    $pos = 0;
344
-    			    $pieces = preg_split('/\s/',$line);
345
-    			    if ($pieces[0] == 'METAR') $pos++;
346
-    			    if (strlen($pieces[$pos]) != 4) $pos++;
347
-	        	    $location = $pieces[$pos];
348
-	        	    echo $this->addMETAR($location,$line,$date);
349
-    			}
350
-    			//echo $line."\n";
351
-    		}
352
-    		if (isset($globalDebug) && $globalDebug) echo "Done\n";
332
+			}
333
+			if (isset($globalDebug) && $globalDebug) echo "Done - Updating DB...";
334
+			$date = '';
335
+			foreach(explode("\n",$cycle) as $line) {
336
+				if (preg_match('#^([0-9]{4})/([0-9]{2})/([0-9]{2}) ([0-9]{2}):([0-9]{2})$#',$line)) {
337
+					//echo "date : ".$line."\n";
338
+					$date = $line;
339
+				} elseif ($line != '') {
340
+					//$this->parse($line);
341
+					//echo $line;
342
+					if ($date == '') $date = date('Y/m/d H:m');
343
+					$pos = 0;
344
+					$pieces = preg_split('/\s/',$line);
345
+					if ($pieces[0] == 'METAR') $pos++;
346
+					if (strlen($pieces[$pos]) != 4) $pos++;
347
+					$location = $pieces[$pos];
348
+					echo $this->addMETAR($location,$line,$date);
349
+				}
350
+				//echo $line."\n";
351
+			}
352
+			if (isset($globalDebug) && $globalDebug) echo "Done\n";
353 353
         
354
-        }
355
-        public function downloadMETAR($icao) {
356
-    		global $globalMETARurl;
357
-    		if ($globalMETARurl == '') return array();
358
-    		date_default_timezone_set("UTC");
359
-    		$Common = new Common();
360
-    		$url = str_replace('{icao}',$icao,$globalMETARurl);
361
-    		$cycle = $Common->getData($url);
362
-    		$date = '';
363
-    		foreach(explode("\n",$cycle) as $line) {
364
-    			if (preg_match('#^([0-9]{4})/([0-9]{2})/([0-9]{2}) ([0-9]{2}):([0-9]{2})$#',$line)) {
365
-    				echo "date : ".$line."\n";
366
-    				$date = $line;
367
-    			} elseif ($line != '') {
368
-    			    //$this->parse($line);
369
-    			    //echo $line;
370
-    			    if ($date == '') $date = date('Y/m/d H:m');
371
-    			    $pos = 0;
372
-    			    $pieces = preg_split('/\s/',$line);
373
-    			    if ($pieces[0] == 'METAR') $pos++;
374
-    			    if (strlen($pieces[$pos]) != 4) $pos++;
375
-	        	    $location = $pieces[$pos];
376
-	        	    if (strlen($location == 4)) {
377
-	        		$this->addMETAR($location,$line,$date);
378
-	        		return array('0' => array('metar_date' => $date, 'metar_location' => $location, 'metar' => $line));
379
-	        	    } else return array();
380
-    			}
381
-    			//echo $line."\n";
382
-    		}
383
-    		return array();
354
+		}
355
+		public function downloadMETAR($icao) {
356
+			global $globalMETARurl;
357
+			if ($globalMETARurl == '') return array();
358
+			date_default_timezone_set("UTC");
359
+			$Common = new Common();
360
+			$url = str_replace('{icao}',$icao,$globalMETARurl);
361
+			$cycle = $Common->getData($url);
362
+			$date = '';
363
+			foreach(explode("\n",$cycle) as $line) {
364
+				if (preg_match('#^([0-9]{4})/([0-9]{2})/([0-9]{2}) ([0-9]{2}):([0-9]{2})$#',$line)) {
365
+					echo "date : ".$line."\n";
366
+					$date = $line;
367
+				} elseif ($line != '') {
368
+					//$this->parse($line);
369
+					//echo $line;
370
+					if ($date == '') $date = date('Y/m/d H:m');
371
+					$pos = 0;
372
+					$pieces = preg_split('/\s/',$line);
373
+					if ($pieces[0] == 'METAR') $pos++;
374
+					if (strlen($pieces[$pos]) != 4) $pos++;
375
+					$location = $pieces[$pos];
376
+					if (strlen($location == 4)) {
377
+					$this->addMETAR($location,$line,$date);
378
+					return array('0' => array('metar_date' => $date, 'metar_location' => $location, 'metar' => $line));
379
+					} else return array();
380
+				}
381
+				//echo $line."\n";
382
+			}
383
+			return array();
384 384
         
385
-        }
385
+		}
386 386
 }
387 387
 /*
388 388
 $METAR = new METAR();
Please login to merge, or discard this patch.
require/class.APRS.php 1 patch
Indentation   +88 added lines, -88 removed lines patch added patch discarded remove patch
@@ -1,12 +1,12 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 class aprs {
3
-    private function urshift($n, $s) {
3
+	private function urshift($n, $s) {
4 4
 	return ($n >= 0) ? ($n >> $s) :
5
-    	    (($n & 0x7fffffff) >> $s) | 
6
-        	(0x40000000 >> ($s - 1));
7
-    }
5
+			(($n & 0x7fffffff) >> $s) | 
6
+			(0x40000000 >> ($s - 1));
7
+	}
8 8
 
9
-    public function parse($input) {
9
+	public function parse($input) {
10 10
 	$debug = false;
11 11
 	$result = array();
12 12
 	$input_len = strlen($input);
@@ -17,8 +17,8 @@  discard block
 block discarded – undo
17 17
 	
18 18
 	/* Check that end was found and body has at least one byte. */
19 19
 	if ($splitpos == 0 || $splitpos + 1 == $input_len || $splitpos === FALSE) {
20
-	    echo 'invalid';
21
-	    return false;
20
+		echo 'invalid';
21
+		return false;
22 22
 	}
23 23
 	
24 24
 	/* Save header and body. */
@@ -31,44 +31,44 @@  discard block
 block discarded – undo
31 31
 	/* Parse source, target and path. */
32 32
 	//FLRDF0A52>APRS,qAS,LSTB
33 33
 	if (preg_match('/^([A-Z0-9\\-]{1,9})>(.*)$/',$header,$matches)) {
34
-	    $ident = $matches[1];
35
-	    $all_elements = $matches[2];
36
-	    if ($debug) echo 'ident : '.$ident."\n";
37
-	    $result['ident'] = $ident;
34
+		$ident = $matches[1];
35
+		$all_elements = $matches[2];
36
+		if ($debug) echo 'ident : '.$ident."\n";
37
+		$result['ident'] = $ident;
38 38
 	} else return false;
39 39
 	$elements = explode(',',$all_elements);
40 40
 	$source = end($elements);
41 41
 	$result['source'] = $source;
42 42
 	foreach ($elements as $element) {
43
-	    if (preg_match('/^([a-zA-Z0-9-]{1,9})([*]?)$/',$element)) {
44
-	        //echo "ok";
45
-	        if ($element == 'TCPIP*') return false;
46
-	    } elseif (preg_match('/^([0-9A-F]{32})$/',$element)) {
43
+		if (preg_match('/^([a-zA-Z0-9-]{1,9})([*]?)$/',$element)) {
44
+			//echo "ok";
45
+			if ($element == 'TCPIP*') return false;
46
+		} elseif (preg_match('/^([0-9A-F]{32})$/',$element)) {
47 47
 		//echo "ok";
48
-	    } else {
49
-	        return false;
50
-	    }
48
+		} else {
49
+			return false;
50
+		}
51 51
 	}
52 52
 	// Check for Timestamp
53 53
 	$body_parse = substr($body,1);
54 54
 	if (preg_match('/^([0-9]{2})([0-9]{2})([0-9]{2})([zh\\/])/',$body_parse,$matches)) {
55
-	    $timestamp = $matches[0];
56
-	    if ($matches[4] == 'h') {
55
+		$timestamp = $matches[0];
56
+		if ($matches[4] == 'h') {
57 57
 		$timestamp = strtotime($matches[1].':'.$matches[2].':'.$matches[3]);
58 58
 		//echo 'timestamp : '.$timestamp.' - now : '.time()."\n";
59 59
 		/*
60 60
 		if (time() + 3900 < $timestamp) $timestamp -= 86400;
61 61
 		elseif (time() - 82500 > $timestamp) $timestamp += 86400;
62 62
 		*/
63
-	    } elseif ($matches[4] == 'z' || $matches[4] == '/') {
63
+		} elseif ($matches[4] == 'z' || $matches[4] == '/') {
64 64
 		// FIXME : fix this...
65 65
 		$timestamp = strtotime($matches[1].' '.$matches[2].':'.$matches[3]);
66
-	    }
67
-	    $body_parse = substr($body_parse,7);
68
-	    $result['timestamp'] = $timestamp;
66
+		}
67
+		$body_parse = substr($body_parse,7);
68
+		$result['timestamp'] = $timestamp;
69 69
 	}
70 70
 	if (strlen($body_parse) > 19) {
71
-	    if (preg_match('/^([0-9]{2})([0-7 ][0-9 ]\\.[0-9 ]{2})([NnSs])(.)([0-9]{3})([0-7 ][0-9 ]\\.[0-9 ]{2})([EeWw])(.)/',$body_parse,$matches)) {
71
+		if (preg_match('/^([0-9]{2})([0-7 ][0-9 ]\\.[0-9 ]{2})([NnSs])(.)([0-9]{3})([0-7 ][0-9 ]\\.[0-9 ]{2})([EeWw])(.)/',$body_parse,$matches)) {
72 72
 		// 4658.70N/00707.78Ez
73 73
 		//print_r(str_split($body_parse));
74 74
 		$latlon = $matches[0];
@@ -84,7 +84,7 @@  discard block
 block discarded – undo
84 84
 		$lon = intval($lon_deg);
85 85
 		if ($lat > 89 || $lon > 179) return false;
86 86
 	    
87
-	    /*
87
+		/*
88 88
 	    $tmp_5b = str_replace('.','',$lat_min);
89 89
 	    if (preg_match('/^([0-9]{0,4})( {0,4})$/',$tmp_5b,$matches)) {
90 90
 	        print_r($matches);
@@ -96,58 +96,58 @@  discard block
 block discarded – undo
96 96
 		if ($wind == 'W') $longitude = 0-$longitude;
97 97
 		$result['latitude'] = $latitude;
98 98
 		$result['longitude'] = $longitude;
99
-	    }
100
-	    if ($body_len > 19) {
99
+		}
100
+		if ($body_len > 19) {
101 101
 		$body_split = str_split($body_parse);
102 102
 		$symbol_code = $body_split[18];
103 103
 		if ($symbol_code != '_') {
104
-		    $body_parse = substr($body_parse,19);
105
-		    $body_parse_len = strlen($body_parse);
106
-		    if ($body_parse_len >= 7) {
104
+			$body_parse = substr($body_parse,19);
105
+			$body_parse_len = strlen($body_parse);
106
+			if ($body_parse_len >= 7) {
107 107
 			
108
-		        if (preg_match('/^([0-9\\. ]{3})\\/([0-9\\. ]{3})/',$body_parse)) {
109
-		    	    $course = substr($body_parse,0,3);
110
-		    	    $tmp_s = intval($course);
111
-		    	    if ($tmp_s >= 1 && $tmp_s <= 360) $result['course'] = intval($course);
112
-		    	    $speed = substr($body_parse,4,3);
113
-		    	    $result['speed'] = round($speed*1.852);
114
-		    	    $body_parse = substr($body_parse,7);
115
-		        }
116
-		        // Check PHGR, PHG, RNG
117
-		    } else if ($body_parse_len > 0) {
108
+				if (preg_match('/^([0-9\\. ]{3})\\/([0-9\\. ]{3})/',$body_parse)) {
109
+					$course = substr($body_parse,0,3);
110
+					$tmp_s = intval($course);
111
+					if ($tmp_s >= 1 && $tmp_s <= 360) $result['course'] = intval($course);
112
+					$speed = substr($body_parse,4,3);
113
+					$result['speed'] = round($speed*1.852);
114
+					$body_parse = substr($body_parse,7);
115
+				}
116
+				// Check PHGR, PHG, RNG
117
+			} else if ($body_parse_len > 0) {
118 118
 			$rest = $body_parse;
119
-		    }
120
-		    if (strlen($body_parse) > 0) {
121
-		        if (preg_match('/\\/A=(-[0-9]{5}|[0-9]{6})/',$body_parse,$matches)) {
122
-		            $altitude = intval($matches[1]);
123
-		            $result['altitude'] = round($altitude*0.3048);
124
-		            $body_parse = substr($body_parse,strlen($matches[0])+1);
125
-		        }
126
-		    }
119
+			}
120
+			if (strlen($body_parse) > 0) {
121
+				if (preg_match('/\\/A=(-[0-9]{5}|[0-9]{6})/',$body_parse,$matches)) {
122
+					$altitude = intval($matches[1]);
123
+					$result['altitude'] = round($altitude*0.3048);
124
+					$body_parse = substr($body_parse,strlen($matches[0])+1);
125
+				}
126
+			}
127 127
 		    
128
-		    // Telemetry
129
-		    if (preg_match('/^([0-9]+),(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,([01]{0,8})/',$body_parse,$matches)) {
130
-		        // Nothing yet...
131
-		    }
132
-		    // DAO
133
-		    if (preg_match('/^!([0-9A-Z]{3})/',$body_parse,$matches)) {
134
-			    $dao = $matches[1];
135
-			    $dao_split = str_split($dao);
136
-			    if (preg_match('/^([A-Z])([0-9]{2})/',$dao)) {
137
-			        $lat_off = (($dao[1])-48.0)*0.001/60.0;
138
-			        $lon_off = (($dao[2])-48.0)*0.001/60.0;
128
+			// Telemetry
129
+			if (preg_match('/^([0-9]+),(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,([01]{0,8})/',$body_parse,$matches)) {
130
+				// Nothing yet...
131
+			}
132
+			// DAO
133
+			if (preg_match('/^!([0-9A-Z]{3})/',$body_parse,$matches)) {
134
+				$dao = $matches[1];
135
+				$dao_split = str_split($dao);
136
+				if (preg_match('/^([A-Z])([0-9]{2})/',$dao)) {
137
+					$lat_off = (($dao[1])-48.0)*0.001/60.0;
138
+					$lon_off = (($dao[2])-48.0)*0.001/60.0;
139 139
 			    
140
-			    }
141
-			    if ($result['latitude'] < 0) $result['latitude'] -= $lat_off;
142
-			    else $result['latitude'] += $lat_off;
143
-			    if ($result['longitude'] < 0) $result['longitude'] -= $lon_off;
144
-			    else $result['longitude'] += $lon_off;
145
-		            $body_parse = substr($body_parse,6);
146
-		    }
140
+				}
141
+				if ($result['latitude'] < 0) $result['latitude'] -= $lat_off;
142
+				else $result['latitude'] += $lat_off;
143
+				if ($result['longitude'] < 0) $result['longitude'] -= $lon_off;
144
+				else $result['longitude'] += $lon_off;
145
+					$body_parse = substr($body_parse,6);
146
+			}
147 147
 		    
148
-		    // OGN comment
148
+			// OGN comment
149 149
 		   // echo "Before OGN : ".$body_parse."\n";
150
-		    if (preg_match('/^id([0-9A-F]{8}) ([+-])([0-9]{3,4})fpm ([+-])([0-9.]{3,4})rot (.*)$/',$body_parse,$matches)) {
150
+			if (preg_match('/^id([0-9A-F]{8}) ([+-])([0-9]{3,4})fpm ([+-])([0-9.]{3,4})rot (.*)$/',$body_parse,$matches)) {
151 151
 			$id = $matches[1];
152 152
 			$mode = substr($id,0,2);
153 153
 			$address = substr($id,2);
@@ -177,49 +177,49 @@  discard block
 block discarded – undo
177 177
 			$stealth = (intval(substr($id,0,2), 16) & 0b10000000) != 0;
178 178
 			$result['stealth'] = $stealth;
179 179
 			$result['address'] = $address;
180
-		    }
180
+			}
181 181
 		    
182
-		    //Comment
183
-		    $result['comment'] = $body_parse;
182
+			//Comment
183
+			$result['comment'] = $body_parse;
184 184
 		} else {
185
-		    // parse weather
186
-		    $body_parse = substr($body_parse,19);
187
-		    $body_parse_len = strlen($body_parse);
185
+			// parse weather
186
+			$body_parse = substr($body_parse,19);
187
+			$body_parse_len = strlen($body_parse);
188 188
 
189
-		    if (preg_match('/^_{0,1}([0-9 \\.\\-]{3})\\/([0-9 \\.]{3})g([0-9 \\.]+)t(-{0,1}[0-9 \\.]+)/',$body_parse,$matches)) {
189
+			if (preg_match('/^_{0,1}([0-9 \\.\\-]{3})\\/([0-9 \\.]{3})g([0-9 \\.]+)t(-{0,1}[0-9 \\.]+)/',$body_parse,$matches)) {
190 190
 			$result['wind_dir'] = $matches[1];
191 191
 			$result['wind_speed'] = round($matches[2]*1.60934,1);
192 192
 			$result['wind_gust'] = round($matches[3]*1.60934,1);
193 193
 			$result['temp'] = round(5/9*(($matches[4])-32),1);
194
-		        $body_parse = substr($body_parse,strlen($matches[0])+1);
195
-		    } elseif (preg_match('/^_{0,1}c([0-9 \\.\\-]{3})s([0-9 \\.]{3})g([0-9 \\.]+)t(-{0,1}[0-9 \\.]+)/',$body_parse,$matches)) {
194
+				$body_parse = substr($body_parse,strlen($matches[0])+1);
195
+			} elseif (preg_match('/^_{0,1}c([0-9 \\.\\-]{3})s([0-9 \\.]{3})g([0-9 \\.]+)t(-{0,1}[0-9 \\.]+)/',$body_parse,$matches)) {
196 196
 			$result['wind_dir'] = $matches[1];
197 197
 			$result['wind_speed'] = round($matches[2]*1.60934,1);
198 198
 			$result['wind_gust'] = round($matches[3]*1.60934,1);
199 199
 			$result['temp'] = round(5/9*(($matches[4])-32),1);
200
-		        $body_parse = substr($body_parse,strlen($matches[0])+1);
201
-		    } elseif (preg_match('/^_{0,1}([0-9 \\.\\-]{3})\\/([0-9 \\.]{3})t(-{0,1}[0-9 \\.]+)/',$body_parse,$matches)) {
200
+				$body_parse = substr($body_parse,strlen($matches[0])+1);
201
+			} elseif (preg_match('/^_{0,1}([0-9 \\.\\-]{3})\\/([0-9 \\.]{3})t(-{0,1}[0-9 \\.]+)/',$body_parse,$matches)) {
202 202
 			$result['wind_dir'] = $matches[1];
203 203
 			$result['wind_speed'] = round($matches[2]*1.60934,1);
204 204
 			$result['wind_gust'] = round($matches[3]*1.60934,1);
205
-		        $body_parse = substr($body_parse,strlen($matches[0])+1);
206
-		    } elseif (preg_match('/^_{0,1}([0-9 \\.\\-]{3})\\/([0-9 \\.]{3})g([0-9 \\.]+)/',$body_parse,$matches)) {
205
+				$body_parse = substr($body_parse,strlen($matches[0])+1);
206
+			} elseif (preg_match('/^_{0,1}([0-9 \\.\\-]{3})\\/([0-9 \\.]{3})g([0-9 \\.]+)/',$body_parse,$matches)) {
207 207
 			$result['wind_dir'] = $matches[1];
208 208
 			$result['wind_speed'] = round($matches[2]*1.60934,1);
209 209
 			$result['wind_gust'] = round($matches[3]*1.60934,1);
210
-		        $body_parse = substr($body_parse,strlen($matches[0])+1);
211
-		    }
212
-		    if (!isset($result['temp']) && strlen($body_parse) > 0 && preg_match('/^g([0-9]+)t(-?[0-9 \\.]{1,3})/',$body_parse,$matches)) {
210
+				$body_parse = substr($body_parse,strlen($matches[0])+1);
211
+			}
212
+			if (!isset($result['temp']) && strlen($body_parse) > 0 && preg_match('/^g([0-9]+)t(-?[0-9 \\.]{1,3})/',$body_parse,$matches)) {
213 213
 			$result['temp'] = round(5/9*(($matches[1])-32),1);
214
-		    }
214
+			}
215
+		}
215 216
 		}
216
-	    }
217 217
 	}
218 218
 	if (isset($result['latitude'])) $result['latitude'] = round($result['latitude'],4);
219 219
 	if (isset($result['longitude'])) $result['longitude'] = round($result['longitude'],4);
220 220
 	//print_r($result);
221 221
 	return $result;
222
-    }
222
+	}
223 223
 }
224 224
 /*
225 225
 $aprs = new aprs();
Please login to merge, or discard this patch.
require/class.Language.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -1,9 +1,9 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 if (!function_exists("gettext")) {
4
-        function _($text) {
5
-                return $text;
6
-        }
4
+		function _($text) {
5
+				return $text;
6
+		}
7 7
 } else {
8 8
 	if (isset($_COOKIE['language']) && $_COOKIE['language'] != 'en_GB' && (isset($globalTranslate) && $globalTranslate)) {
9 9
 		$Language = new Language();
@@ -75,9 +75,9 @@  discard block
 block discarded – undo
75 75
 			);
76 76
 
77 77
 	/**
78
-	* Returns list of available locales
79
-	*
80
-	* @return array
78
+	 * Returns list of available locales
79
+	 *
80
+	 * @return array
81 81
 	 */
82 82
 	public function listLocaleDir()
83 83
 	{
@@ -103,9 +103,9 @@  discard block
 block discarded – undo
103 103
 	}
104 104
 
105 105
 	/**
106
-	* Returns list of available languages
107
-	*
108
-	* @return array
106
+	 * Returns list of available languages
107
+	 *
108
+	 * @return array
109 109
 	 */
110 110
 	public function getLanguages()
111 111
 	{
Please login to merge, or discard this patch.
require/class.Source.php 1 patch
Indentation   +66 added lines, -66 removed lines patch added patch discarded remove patch
@@ -7,73 +7,73 @@
 block discarded – undo
7 7
 	function __construct($dbc = null) {
8 8
 		$Connection = new Connection($dbc);
9 9
 		$this->db = $Connection->db;
10
-        }
11
-       public function getAllLocationInfo() {
12
-                $query = "SELECT * FROM source_location";
13
-                $query_values = array();
14
-                 try {
15
-                        $sth = $this->db->prepare($query);
16
-                        $sth->execute($query_values);
17
-                } catch(PDOException $e) {
18
-                        return "error : ".$e->getMessage();
19
-                }
20
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
21
-                return $all;
22
-        }
23
-       public function getLocationInfobyName($name) {
24
-                $query = "SELECT * FROM source_location WHERE name = :name";
25
-                $query_values = array(':name' => $name);
26
-                 try {
27
-                        $sth = $this->db->prepare($query);
28
-                        $sth->execute($query_values);
29
-                } catch(PDOException $e) {
30
-                        return "error : ".$e->getMessage();
31
-                }
32
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
33
-                return $all;
34
-        }
35
-       public function getLocationInfobySourceName($name) {
36
-                $query = "SELECT * FROM source_location WHERE source = :name";
37
-                $query_values = array(':name' => $name);
38
-                 try {
39
-                        $sth = $this->db->prepare($query);
40
-                        $sth->execute($query_values);
41
-                } catch(PDOException $e) {
42
-                        return "error : ".$e->getMessage();
43
-                }
44
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
45
-                return $all;
46
-        }
10
+		}
11
+	   public function getAllLocationInfo() {
12
+				$query = "SELECT * FROM source_location";
13
+				$query_values = array();
14
+				 try {
15
+						$sth = $this->db->prepare($query);
16
+						$sth->execute($query_values);
17
+				} catch(PDOException $e) {
18
+						return "error : ".$e->getMessage();
19
+				}
20
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
21
+				return $all;
22
+		}
23
+	   public function getLocationInfobyName($name) {
24
+				$query = "SELECT * FROM source_location WHERE name = :name";
25
+				$query_values = array(':name' => $name);
26
+				 try {
27
+						$sth = $this->db->prepare($query);
28
+						$sth->execute($query_values);
29
+				} catch(PDOException $e) {
30
+						return "error : ".$e->getMessage();
31
+				}
32
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
33
+				return $all;
34
+		}
35
+	   public function getLocationInfobySourceName($name) {
36
+				$query = "SELECT * FROM source_location WHERE source = :name";
37
+				$query_values = array(':name' => $name);
38
+				 try {
39
+						$sth = $this->db->prepare($query);
40
+						$sth->execute($query_values);
41
+				} catch(PDOException $e) {
42
+						return "error : ".$e->getMessage();
43
+				}
44
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
45
+				return $all;
46
+		}
47 47
   
48
-       public function addLocation($name,$latitude,$longitude,$altitude,$city,$country,$source,$logo = 'antenna.png') {
49
-                $query = "INSERT INTO source_location (name,latitude,longitude,altitude,country,city,logo,source) VALUES (:name,:latitude,:longitude,:altitude,:country,:city,:logo,:source)";
50
-                $query_values = array(':name' => $name,':latitude' => $latitude, ':longitude' => $longitude,':altitude' => $altitude,':city' => $city,':country' => $country,':logo' => $logo,':source' => $source);
51
-                 try {
52
-                        $sth = $this->db->prepare($query);
53
-                        $sth->execute($query_values);
54
-                } catch(PDOException $e) {
55
-                        return "error : ".$e->getMessage();
56
-                }
57
-        }
48
+	   public function addLocation($name,$latitude,$longitude,$altitude,$city,$country,$source,$logo = 'antenna.png') {
49
+				$query = "INSERT INTO source_location (name,latitude,longitude,altitude,country,city,logo,source) VALUES (:name,:latitude,:longitude,:altitude,:country,:city,:logo,:source)";
50
+				$query_values = array(':name' => $name,':latitude' => $latitude, ':longitude' => $longitude,':altitude' => $altitude,':city' => $city,':country' => $country,':logo' => $logo,':source' => $source);
51
+				 try {
52
+						$sth = $this->db->prepare($query);
53
+						$sth->execute($query_values);
54
+				} catch(PDOException $e) {
55
+						return "error : ".$e->getMessage();
56
+				}
57
+		}
58 58
 
59
-       public function deleteLocation($id) {
60
-                $query = "DELETE FROM source_location WHERE id = :id";
61
-                $query_values = array(':id' => $id);
62
-                 try {
63
-                        $sth = $this->db->prepare($query);
64
-                        $sth->execute($query_values);
65
-                } catch(PDOException $e) {
66
-                        return "error : ".$e->getMessage();
67
-                }
68
-        }
69
-       public function deleteAllLocation() {
70
-                $query = "DELETE FROM source_location";
71
-                 try {
72
-                        $sth = $this->db->prepare($query);
73
-                        $sth->execute();
74
-                } catch(PDOException $e) {
75
-                        return "error : ".$e->getMessage();
76
-                }
77
-        }
59
+	   public function deleteLocation($id) {
60
+				$query = "DELETE FROM source_location WHERE id = :id";
61
+				$query_values = array(':id' => $id);
62
+				 try {
63
+						$sth = $this->db->prepare($query);
64
+						$sth->execute($query_values);
65
+				} catch(PDOException $e) {
66
+						return "error : ".$e->getMessage();
67
+				}
68
+		}
69
+	   public function deleteAllLocation() {
70
+				$query = "DELETE FROM source_location";
71
+				 try {
72
+						$sth = $this->db->prepare($query);
73
+						$sth->execute();
74
+				} catch(PDOException $e) {
75
+						return "error : ".$e->getMessage();
76
+				}
77
+		}
78 78
 }
79 79
 ?>
80 80
\ No newline at end of file
Please login to merge, or discard this patch.
require/libs/simple_html_dom.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -824,11 +824,11 @@
 block discarded – undo
824 824
 	}
825 825
 
826 826
 	/**
827
-	* Returns true if $string is valid UTF-8 and false otherwise.
828
-	*
829
-	* @param mixed $str String to be tested
830
-	* @return boolean
831
-	*/
827
+	 * Returns true if $string is valid UTF-8 and false otherwise.
828
+	 *
829
+	 * @param mixed $str String to be tested
830
+	 * @return boolean
831
+	 */
832 832
 	static function is_utf8($str)
833 833
 	{
834 834
 		$c=0; $b=0;
Please login to merge, or discard this patch.
require/libs/uagent/uagent.php 1 patch
Indentation   +342 added lines, -342 removed lines patch added patch discarded remove patch
@@ -8,347 +8,347 @@
 block discarded – undo
8 8
 
9 9
 class UAgent
10 10
 {
11
-    // General token that says the browser is Mozilla compatible, 
12
-    // and is common to almost every browser today.
13
-    const MOZILLA = 'Mozilla/5.0 ';
14
-
15
-    /**
16
-     * Processors by Arch.
17
-     */
18
-    public static $processors = array(
19
-        'lin' => array( 'i686', 'x86_64' ),
20
-        'mac' => array( 'Intel', 'PPC', 'U; Intel', 'U; PPC' ),
21
-        'win' => array( 'foo' )
22
-    );
23
-
24
-    /**
25
-     * Browsers
26
-     * 
27
-     * Weighting is based on market share to determine frequency.
28
-     */
29
-    public static $browsers = array(
30
-        34 => array(
31
-            89 => array( 'chrome', 'win' ),
32
-            9  => array( 'chrome', 'mac' ),
33
-            2  => array( 'chrome', 'lin' )
34
-        ),
35
-        32 => array(
36
-            100 => array( 'iexplorer', 'win' )
37
-        ),
38
-        25 => array(
39
-            83 => array( 'firefox', 'win' ),
40
-            16 => array( 'firefox', 'mac' ),
41
-            1  => array( 'firefox', 'lin' )
42
-        ),
43
-        7 => array(
44
-            95 => array( 'safari', 'mac' ),
45
-            4  => array( 'safari', 'win' ),
46
-            1  => array( 'safari', 'lin' )
47
-        ),
48
-        2 => array(
49
-            91 => array( 'opera', 'win' ),
50
-            6  => array( 'opera', 'lin' ),
51
-            3  => array( 'opera', 'mac' )
52
-        )
53
-    );
54
-
55
-    /**
56
-     * List of Lanuge Culture Codes (ISO 639-1)
57
-     *
58
-     * @see: http://msdn.microsoft.com/en-gb/library/ee825488(v=cs.20).aspx
59
-     */
60
-    public static $languages = array(
61
-        'af-ZA', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-LB',
62
-        'ar-LY', 'ar-MA', 'ar-OM', 'ar-QA', 'ar-SA', 'ar-SY', 'ar-TN', 'ar-YE', 'be-BY',
63
-        'bg-BG', 'ca-ES', 'cs-CZ', 'Cy-az-AZ', 'Cy-sr-SP', 'Cy-uz-UZ', 'da-DK', 'de-AT',
64
-        'de-CH', 'de-DE', 'de-LI', 'de-LU', 'div-MV', 'el-GR', 'en-AU', 'en-BZ', 'en-CA', 
65
-        'en-CB', 'en-GB', 'en-IE', 'en-JM', 'en-NZ', 'en-PH', 'en-TT', 'en-US', 'en-ZA', 
66
-        'en-ZW', 'es-AR', 'es-BO', 'es-CL', 'es-CO',  'es-CR', 'es-DO', 'es-EC', 'es-ES',
67
-        'es-GT', 'es-HN', 'es-MX', 'es-NI', 'es-PA', 'es-PE', 'es-PR', 'es-PY', 'es-SV',
68
-        'es-UY', 'es-VE', 'et-EE', 'eu-ES', 'fa-IR', 'fi-FI', 'fo-FO', 'fr-BE', 'fr-CA',
69
-        'fr-CH', 'fr-FR', 'fr-LU', 'fr-MC', 'gl-ES', 'gu-IN', 'he-IL', 'hi-IN', 'hr-HR', 
70
-        'hu-HU', 'hy-AM', 'id-ID', 'is-IS', 'it-CH', 'it-IT', 'ja-JP', 'ka-GE', 'kk-KZ',
71
-        'kn-IN', 'kok-IN', 'ko-KR', 'ky-KZ', 'Lt-az-AZ', 'lt-LT', 'Lt-sr-SP', 'Lt-uz-UZ', 
72
-        'lv-LV', 'mk-MK', 'mn-MN', 'mr-IN', 'ms-BN', 'ms-MY', 'nb-NO', 'nl-BE', 'nl-NL', 
73
-        'nn-NO', 'pa-IN', 'pl-PL', 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sa-IN', 'sk-SK', 
74
-        'sl-SI', 'sq-AL', 'sv-FI', 'sv-SE', 'sw-KE', 'syr-SY', 'ta-IN', 'te-IN', 'th-TH', 
75
-        'tr-TR', 'tt-RU', 'uk-UA', 'ur-PK', 'vi-VN', 'zh-CHS', 'zh-CHT', 'zh-CN', 'zh-HK', 
76
-        'zh-MO', 'zh-SG', 'zh-TW',   
77
-    );    
78
-
79
-    /**
80
-     * Generate Device Platform
81
-     *
82
-     * Uses a random result with a weighting related to frequencies.
83
-     */
84
-    public static function generate_platform()
85
-    {
86
-        $rand = mt_rand( 1, 100 );
87
-        $sum = 0;
88
-
89
-        foreach ( self::$browsers as $share => $freq_os )
90
-        {
91
-            $sum += $share;
92
-
93
-            if ( $rand <= $sum )
94
-            {
95
-                $rand = mt_rand( 1, 100 );
96
-                $sum = 0;
97
-
98
-                foreach ( $freq_os as $share => $choice )
99
-                {
100
-                    $sum += $share;
101
-
102
-                    if ( $rand <= $sum )
103
-                    {
104
-                        return $choice;
105
-                    }
106
-                }
107
-            }
108
-        }
109
-
110
-        throw new Exception( 'Sum of $browsers frequency is not 100.' );
111
-    }
112
-
113
-    private static function array_random( $array )
114
-    {
115
-        $i = array_rand( $array, 1 );
116
-
117
-        return $array[$i];
118
-    }
119
-
120
-    private static function get_language( $lang = array() )
121
-    {
122
-        return self::array_random( empty( $lang ) ? self::$languages : $lang );
123
-    }
124
-
125
-    private static function get_processor( $os )
126
-    {
127
-        return self::array_random( self::$processors[$os] );
128
-    }
129
-
130
-    private static function get_version_nt()
131
-    {   
132
-        // Win2k (5.0) to Win 7 (6.1).
133
-        return mt_rand( 5, 6 ) . '.' . mt_rand( 0, 1 );
134
-    }
135
-
136
-    private static function get_version_osx()
137
-    {
138
-        return '10_' . mt_rand( 5, 7 ) . '_' . mt_rand( 0, 9 );
139
-    }
140
-
141
-    private static function get_version_webkit()
142
-    {
143
-        return mt_rand( 531, 536 ) . mt_rand( 0, 2 );
144
-    }
145
-
146
-    private static function get_verison_chrome()
147
-    {
148
-        return mt_rand( 13, 15 ) . '.0.' . mt_rand( 800, 899 ) . '.0';
149
-    }
150
-
151
-    private static function get_version_gecko()
152
-    {
153
-        return mt_rand( 17, 31 ) . '.0';
154
-    }
155
-
156
-    private static function get_version_ie()
157
-    {
158
-        return mt_rand( 7, 9 ) . '.0';
159
-    }
160
-
161
-    private static function get_version_trident()
162
-    {
163
-        // IE8 (4.0) to IE11 (7.0).
164
-        return mt_rand( 4, 7 ) . '.0';
165
-    }
166
-
167
-    private static function get_version_net()
168
-    {
169
-        // generic .NET Framework common language run time (CLR) version numbers.
170
-        $frameworks = array(
171
-            '2.0.50727',
172
-            '3.0.4506',
173
-            '3.5.30729',
174
-        );
175
-
176
-        $rev = '.' . mt_rand( 26, 648 );
177
-
178
-        return self::array_random( $frameworks ) . $rev;
179
-    }
180
-
181
-    private static function get_version_safari()
182
-    {
183
-        if ( mt_rand( 0, 1 ) == 0 )
184
-        {
185
-            $ver = mt_rand( 4, 5 ) . '.' . mt_rand( 0, 1 );
186
-        }
187
-        else
188
-        {
189
-            $ver = mt_rand( 4, 5 ) . '.0.' . mt_rand( 1, 5 );
190
-        }
191
-
192
-        return $ver;
193
-    }
194
-
195
-    private static function get_version_opera()
196
-    {
197
-        return mt_rand( 15, 19 ) . '.0.' . mt_rand( 1147, 1284 ) . mt_rand( 49, 100 );
198
-    }
199
-
200
-    /**
201
-     * Opera
202
-     * 
203
-     * @see: http://dev.opera.com/blog/opera-user-agent-strings-opera-15-and-beyond/
204
-     */
205
-    public static function opera( $arch )
206
-    {
207
-        $opera = ' OPR/' . self::get_version_opera();
208
-
209
-        // WebKit Rendering Engine (WebKit = Backend, Safari = Frontend).
210
-        $engine = self::get_version_webkit();
211
-        $webkit = ' AppleWebKit/' . $engine . ' (KHTML, like Gecko)';
212
-        $chrome = ' Chrome/' . self::get_verison_chrome();
213
-        $safari = ' Safari/' . $engine;
214
-
215
-        switch ( $arch )
216
-        {
217
-            case 'lin':
218
-                return '(X11; Linux {proc}) ' . $webkit . $chrome . $safari . $opera;
219
-            case 'mac':
220
-                $osx = self::get_version_osx();
221
-                return '(Macintosh; U; {proc} Mac OS X ' . $osx . ')' . $webkit . $chrome . $safari . $opera;
222
-            case 'win':
223
-                // fall through.
224
-            default:
225
-                $nt = self::get_version_nt();
226
-                return '(Windows NT ' . $nt . '; WOW64) ' . $webkit . $chrome . $safari . $opera;
227
-        }
228
-    }    
229
-
230
-    /**
231
-     * Safari
232
-     *
233
-     */
234
-    public static function safari( $arch )
235
-    {
236
-        $version = ' Version/' . self::get_version_safari();
237
-
238
-        // WebKit Rendering Engine (WebKit = Backend, Safari = Frontend).
239
-        $engine = self::get_version_webkit();
240
-        $webkit = ' AppleWebKit/' . $engine . ' (KHTML, like Gecko)';
241
-        $safari = ' Safari/' . $engine;
242
-
243
-        switch ( $arch )
244
-        {
245
-            case 'mac':
246
-                $osx = self::get_version_osx();
247
-                return '(Macintosh; U; {proc} Mac OS X ' . $osx . '; {lang})' . $webkit . $version . $safari;
248
-            case 'win':
249
-                // fall through.
250
-            default:
251
-                $nt = self::get_version_nt();
252
-                return '(Windows; U; Windows NT ' . $nt . ')' . $webkit . $version . $safari;
253
-        }
254
-
255
-    }
256
-
257
-    /**
258
-     * Internet Explorer
259
-     * 
260
-     * @see: http://msdn.microsoft.com/en-gb/library/ms537503(v=vs.85).aspx
261
-     */
262
-    public static function iexplorer( $arch )
263
-    {
264
-        $nt = self::get_version_nt();
265
-        $ie = self::get_version_ie();
266
-        $trident = self::get_version_trident();
267
-        $net = self::get_version_net();
268
-
269
-        return '(compatible' 
270
-            . '; MSIE ' . $ie 
271
-            . '; Windows NT ' . $nt 
272
-            . '; WOW64' // A 32-bit version of Internet Explorer is running on a 64-bit processor.
273
-            . '; Trident/' . $trident 
274
-            . '; .NET CLR ' . $net
275
-            . ')';
276
-    }
277
-
278
-    /**
279
-     * Firefox User-Agent
280
-     *
281
-     * @see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Gecko_user_agent_string_reference
282
-     */
283
-    public static function firefox( $arch )
284
-    {
285
-        // The release version of Gecko. 
286
-        $gecko = self::get_version_gecko();
287
-
288
-        // On desktop, the gecko trail is fixed.
289
-        $trail = '20100101';
290
-
291
-        $release = 'rv:' . $gecko;
292
-        $version = 'Gecko/' . $trail . ' Firefox/' . $gecko;
293
-
294
-        switch ( $arch )
295
-        {
296
-            case 'lin':
297
-                return '(X11; Linux {proc}; ' . $release . ') ' . $version;
298
-            case 'mac':
299
-                $osx = self::get_version_osx();
300
-                return '(Macintosh; {proc} Mac OS X ' . $osx . '; ' . $release . ') ' . $version;
301
-            case 'win':
302
-                // fall through.
303
-            default:
304
-                $nt = self::get_version_nt();
305
-                return '(Windows NT ' . $nt . '; {lang}; ' . $release . ') ' . $version;
306
-        }
307
-    }
308
-
309
-    public static function chrome( $arch )
310
-    {
311
-        $chrome = ' Chrome/' . self::get_verison_chrome();
312
-
313
-        // WebKit Rendering Engine (WebKit = Backend, Safari = Frontend).
314
-        $engine = self::get_version_webkit();
315
-        $webkit = ' AppleWebKit/' . $engine . ' (KHTML, like Gecko)';
316
-        $safari = ' Safari/' . $engine;
317
-
318
-        switch ( $arch )
319
-        {
320
-            case 'lin':
321
-                return '(X11; Linux {proc}) ' . $webkit . $chrome . $safari;
322
-            case 'mac':
323
-                $osx = self::get_version_osx();
324
-                return '(Macintosh; U; {proc} Mac OS X ' . $osx . ')' . $webkit . $chrome . $safari;
325
-            case 'win':
326
-                // fall through.
327
-            default:
328
-                $nt = self::get_version_nt();
329
-                return '(Windows NT ' . $nt . ') ' . $webkit . $chrome . $safari;
330
-        }
331
-    }
332
-
333
-    public static function random( $lang = array( 'en-US' ) )
334
-    {
335
-        list( $browser, $os ) = self::generate_platform();
336
-
337
-        return self::generate( $browser, $os, $lang );
338
-    }
339
-
340
-    public static function generate( $browser = 'chrome', $os = 'win', $lang = array( 'en-US' ) )
341
-    {
342
-        $ua = self::MOZILLA . call_user_func( 'UAgent::' . $browser, $os );
343
-
344
-        $tags = array(
345
-            '{proc}' => self::get_processor( $os ),
346
-            '{lang}' => self::get_language( $lang ),
347
-        );
348
-
349
-        $ua = str_replace( array_keys( $tags ), array_values( $tags ), $ua );
350
-
351
-        return $ua;
352
-    }
11
+	// General token that says the browser is Mozilla compatible, 
12
+	// and is common to almost every browser today.
13
+	const MOZILLA = 'Mozilla/5.0 ';
14
+
15
+	/**
16
+	 * Processors by Arch.
17
+	 */
18
+	public static $processors = array(
19
+		'lin' => array( 'i686', 'x86_64' ),
20
+		'mac' => array( 'Intel', 'PPC', 'U; Intel', 'U; PPC' ),
21
+		'win' => array( 'foo' )
22
+	);
23
+
24
+	/**
25
+	 * Browsers
26
+	 * 
27
+	 * Weighting is based on market share to determine frequency.
28
+	 */
29
+	public static $browsers = array(
30
+		34 => array(
31
+			89 => array( 'chrome', 'win' ),
32
+			9  => array( 'chrome', 'mac' ),
33
+			2  => array( 'chrome', 'lin' )
34
+		),
35
+		32 => array(
36
+			100 => array( 'iexplorer', 'win' )
37
+		),
38
+		25 => array(
39
+			83 => array( 'firefox', 'win' ),
40
+			16 => array( 'firefox', 'mac' ),
41
+			1  => array( 'firefox', 'lin' )
42
+		),
43
+		7 => array(
44
+			95 => array( 'safari', 'mac' ),
45
+			4  => array( 'safari', 'win' ),
46
+			1  => array( 'safari', 'lin' )
47
+		),
48
+		2 => array(
49
+			91 => array( 'opera', 'win' ),
50
+			6  => array( 'opera', 'lin' ),
51
+			3  => array( 'opera', 'mac' )
52
+		)
53
+	);
54
+
55
+	/**
56
+	 * List of Lanuge Culture Codes (ISO 639-1)
57
+	 *
58
+	 * @see: http://msdn.microsoft.com/en-gb/library/ee825488(v=cs.20).aspx
59
+	 */
60
+	public static $languages = array(
61
+		'af-ZA', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-LB',
62
+		'ar-LY', 'ar-MA', 'ar-OM', 'ar-QA', 'ar-SA', 'ar-SY', 'ar-TN', 'ar-YE', 'be-BY',
63
+		'bg-BG', 'ca-ES', 'cs-CZ', 'Cy-az-AZ', 'Cy-sr-SP', 'Cy-uz-UZ', 'da-DK', 'de-AT',
64
+		'de-CH', 'de-DE', 'de-LI', 'de-LU', 'div-MV', 'el-GR', 'en-AU', 'en-BZ', 'en-CA', 
65
+		'en-CB', 'en-GB', 'en-IE', 'en-JM', 'en-NZ', 'en-PH', 'en-TT', 'en-US', 'en-ZA', 
66
+		'en-ZW', 'es-AR', 'es-BO', 'es-CL', 'es-CO',  'es-CR', 'es-DO', 'es-EC', 'es-ES',
67
+		'es-GT', 'es-HN', 'es-MX', 'es-NI', 'es-PA', 'es-PE', 'es-PR', 'es-PY', 'es-SV',
68
+		'es-UY', 'es-VE', 'et-EE', 'eu-ES', 'fa-IR', 'fi-FI', 'fo-FO', 'fr-BE', 'fr-CA',
69
+		'fr-CH', 'fr-FR', 'fr-LU', 'fr-MC', 'gl-ES', 'gu-IN', 'he-IL', 'hi-IN', 'hr-HR', 
70
+		'hu-HU', 'hy-AM', 'id-ID', 'is-IS', 'it-CH', 'it-IT', 'ja-JP', 'ka-GE', 'kk-KZ',
71
+		'kn-IN', 'kok-IN', 'ko-KR', 'ky-KZ', 'Lt-az-AZ', 'lt-LT', 'Lt-sr-SP', 'Lt-uz-UZ', 
72
+		'lv-LV', 'mk-MK', 'mn-MN', 'mr-IN', 'ms-BN', 'ms-MY', 'nb-NO', 'nl-BE', 'nl-NL', 
73
+		'nn-NO', 'pa-IN', 'pl-PL', 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sa-IN', 'sk-SK', 
74
+		'sl-SI', 'sq-AL', 'sv-FI', 'sv-SE', 'sw-KE', 'syr-SY', 'ta-IN', 'te-IN', 'th-TH', 
75
+		'tr-TR', 'tt-RU', 'uk-UA', 'ur-PK', 'vi-VN', 'zh-CHS', 'zh-CHT', 'zh-CN', 'zh-HK', 
76
+		'zh-MO', 'zh-SG', 'zh-TW',   
77
+	);    
78
+
79
+	/**
80
+	 * Generate Device Platform
81
+	 *
82
+	 * Uses a random result with a weighting related to frequencies.
83
+	 */
84
+	public static function generate_platform()
85
+	{
86
+		$rand = mt_rand( 1, 100 );
87
+		$sum = 0;
88
+
89
+		foreach ( self::$browsers as $share => $freq_os )
90
+		{
91
+			$sum += $share;
92
+
93
+			if ( $rand <= $sum )
94
+			{
95
+				$rand = mt_rand( 1, 100 );
96
+				$sum = 0;
97
+
98
+				foreach ( $freq_os as $share => $choice )
99
+				{
100
+					$sum += $share;
101
+
102
+					if ( $rand <= $sum )
103
+					{
104
+						return $choice;
105
+					}
106
+				}
107
+			}
108
+		}
109
+
110
+		throw new Exception( 'Sum of $browsers frequency is not 100.' );
111
+	}
112
+
113
+	private static function array_random( $array )
114
+	{
115
+		$i = array_rand( $array, 1 );
116
+
117
+		return $array[$i];
118
+	}
119
+
120
+	private static function get_language( $lang = array() )
121
+	{
122
+		return self::array_random( empty( $lang ) ? self::$languages : $lang );
123
+	}
124
+
125
+	private static function get_processor( $os )
126
+	{
127
+		return self::array_random( self::$processors[$os] );
128
+	}
129
+
130
+	private static function get_version_nt()
131
+	{   
132
+		// Win2k (5.0) to Win 7 (6.1).
133
+		return mt_rand( 5, 6 ) . '.' . mt_rand( 0, 1 );
134
+	}
135
+
136
+	private static function get_version_osx()
137
+	{
138
+		return '10_' . mt_rand( 5, 7 ) . '_' . mt_rand( 0, 9 );
139
+	}
140
+
141
+	private static function get_version_webkit()
142
+	{
143
+		return mt_rand( 531, 536 ) . mt_rand( 0, 2 );
144
+	}
145
+
146
+	private static function get_verison_chrome()
147
+	{
148
+		return mt_rand( 13, 15 ) . '.0.' . mt_rand( 800, 899 ) . '.0';
149
+	}
150
+
151
+	private static function get_version_gecko()
152
+	{
153
+		return mt_rand( 17, 31 ) . '.0';
154
+	}
155
+
156
+	private static function get_version_ie()
157
+	{
158
+		return mt_rand( 7, 9 ) . '.0';
159
+	}
160
+
161
+	private static function get_version_trident()
162
+	{
163
+		// IE8 (4.0) to IE11 (7.0).
164
+		return mt_rand( 4, 7 ) . '.0';
165
+	}
166
+
167
+	private static function get_version_net()
168
+	{
169
+		// generic .NET Framework common language run time (CLR) version numbers.
170
+		$frameworks = array(
171
+			'2.0.50727',
172
+			'3.0.4506',
173
+			'3.5.30729',
174
+		);
175
+
176
+		$rev = '.' . mt_rand( 26, 648 );
177
+
178
+		return self::array_random( $frameworks ) . $rev;
179
+	}
180
+
181
+	private static function get_version_safari()
182
+	{
183
+		if ( mt_rand( 0, 1 ) == 0 )
184
+		{
185
+			$ver = mt_rand( 4, 5 ) . '.' . mt_rand( 0, 1 );
186
+		}
187
+		else
188
+		{
189
+			$ver = mt_rand( 4, 5 ) . '.0.' . mt_rand( 1, 5 );
190
+		}
191
+
192
+		return $ver;
193
+	}
194
+
195
+	private static function get_version_opera()
196
+	{
197
+		return mt_rand( 15, 19 ) . '.0.' . mt_rand( 1147, 1284 ) . mt_rand( 49, 100 );
198
+	}
199
+
200
+	/**
201
+	 * Opera
202
+	 * 
203
+	 * @see: http://dev.opera.com/blog/opera-user-agent-strings-opera-15-and-beyond/
204
+	 */
205
+	public static function opera( $arch )
206
+	{
207
+		$opera = ' OPR/' . self::get_version_opera();
208
+
209
+		// WebKit Rendering Engine (WebKit = Backend, Safari = Frontend).
210
+		$engine = self::get_version_webkit();
211
+		$webkit = ' AppleWebKit/' . $engine . ' (KHTML, like Gecko)';
212
+		$chrome = ' Chrome/' . self::get_verison_chrome();
213
+		$safari = ' Safari/' . $engine;
214
+
215
+		switch ( $arch )
216
+		{
217
+			case 'lin':
218
+				return '(X11; Linux {proc}) ' . $webkit . $chrome . $safari . $opera;
219
+			case 'mac':
220
+				$osx = self::get_version_osx();
221
+				return '(Macintosh; U; {proc} Mac OS X ' . $osx . ')' . $webkit . $chrome . $safari . $opera;
222
+			case 'win':
223
+				// fall through.
224
+			default:
225
+				$nt = self::get_version_nt();
226
+				return '(Windows NT ' . $nt . '; WOW64) ' . $webkit . $chrome . $safari . $opera;
227
+		}
228
+	}    
229
+
230
+	/**
231
+	 * Safari
232
+	 *
233
+	 */
234
+	public static function safari( $arch )
235
+	{
236
+		$version = ' Version/' . self::get_version_safari();
237
+
238
+		// WebKit Rendering Engine (WebKit = Backend, Safari = Frontend).
239
+		$engine = self::get_version_webkit();
240
+		$webkit = ' AppleWebKit/' . $engine . ' (KHTML, like Gecko)';
241
+		$safari = ' Safari/' . $engine;
242
+
243
+		switch ( $arch )
244
+		{
245
+			case 'mac':
246
+				$osx = self::get_version_osx();
247
+				return '(Macintosh; U; {proc} Mac OS X ' . $osx . '; {lang})' . $webkit . $version . $safari;
248
+			case 'win':
249
+				// fall through.
250
+			default:
251
+				$nt = self::get_version_nt();
252
+				return '(Windows; U; Windows NT ' . $nt . ')' . $webkit . $version . $safari;
253
+		}
254
+
255
+	}
256
+
257
+	/**
258
+	 * Internet Explorer
259
+	 * 
260
+	 * @see: http://msdn.microsoft.com/en-gb/library/ms537503(v=vs.85).aspx
261
+	 */
262
+	public static function iexplorer( $arch )
263
+	{
264
+		$nt = self::get_version_nt();
265
+		$ie = self::get_version_ie();
266
+		$trident = self::get_version_trident();
267
+		$net = self::get_version_net();
268
+
269
+		return '(compatible' 
270
+			. '; MSIE ' . $ie 
271
+			. '; Windows NT ' . $nt 
272
+			. '; WOW64' // A 32-bit version of Internet Explorer is running on a 64-bit processor.
273
+			. '; Trident/' . $trident 
274
+			. '; .NET CLR ' . $net
275
+			. ')';
276
+	}
277
+
278
+	/**
279
+	 * Firefox User-Agent
280
+	 *
281
+	 * @see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Gecko_user_agent_string_reference
282
+	 */
283
+	public static function firefox( $arch )
284
+	{
285
+		// The release version of Gecko. 
286
+		$gecko = self::get_version_gecko();
287
+
288
+		// On desktop, the gecko trail is fixed.
289
+		$trail = '20100101';
290
+
291
+		$release = 'rv:' . $gecko;
292
+		$version = 'Gecko/' . $trail . ' Firefox/' . $gecko;
293
+
294
+		switch ( $arch )
295
+		{
296
+			case 'lin':
297
+				return '(X11; Linux {proc}; ' . $release . ') ' . $version;
298
+			case 'mac':
299
+				$osx = self::get_version_osx();
300
+				return '(Macintosh; {proc} Mac OS X ' . $osx . '; ' . $release . ') ' . $version;
301
+			case 'win':
302
+				// fall through.
303
+			default:
304
+				$nt = self::get_version_nt();
305
+				return '(Windows NT ' . $nt . '; {lang}; ' . $release . ') ' . $version;
306
+		}
307
+	}
308
+
309
+	public static function chrome( $arch )
310
+	{
311
+		$chrome = ' Chrome/' . self::get_verison_chrome();
312
+
313
+		// WebKit Rendering Engine (WebKit = Backend, Safari = Frontend).
314
+		$engine = self::get_version_webkit();
315
+		$webkit = ' AppleWebKit/' . $engine . ' (KHTML, like Gecko)';
316
+		$safari = ' Safari/' . $engine;
317
+
318
+		switch ( $arch )
319
+		{
320
+			case 'lin':
321
+				return '(X11; Linux {proc}) ' . $webkit . $chrome . $safari;
322
+			case 'mac':
323
+				$osx = self::get_version_osx();
324
+				return '(Macintosh; U; {proc} Mac OS X ' . $osx . ')' . $webkit . $chrome . $safari;
325
+			case 'win':
326
+				// fall through.
327
+			default:
328
+				$nt = self::get_version_nt();
329
+				return '(Windows NT ' . $nt . ') ' . $webkit . $chrome . $safari;
330
+		}
331
+	}
332
+
333
+	public static function random( $lang = array( 'en-US' ) )
334
+	{
335
+		list( $browser, $os ) = self::generate_platform();
336
+
337
+		return self::generate( $browser, $os, $lang );
338
+	}
339
+
340
+	public static function generate( $browser = 'chrome', $os = 'win', $lang = array( 'en-US' ) )
341
+	{
342
+		$ua = self::MOZILLA . call_user_func( 'UAgent::' . $browser, $os );
343
+
344
+		$tags = array(
345
+			'{proc}' => self::get_processor( $os ),
346
+			'{lang}' => self::get_language( $lang ),
347
+		);
348
+
349
+		$ua = str_replace( array_keys( $tags ), array_values( $tags ), $ua );
350
+
351
+		return $ua;
352
+	}
353 353
 }
354 354
 ?>
Please login to merge, or discard this patch.
require/libs/geoPHP/tests/tests/methodsTest.php 1 patch
Indentation   +328 added lines, -328 removed lines patch added patch discarded remove patch
@@ -9,357 +9,357 @@
 block discarded – undo
9 9
   }
10 10
 
11 11
   function testMethods() {
12
-    foreach (scandir('./input') as $file) {
13
-      $parts = explode('.',$file);
14
-      if ($parts[0]) {
15
-        $format = $parts[1];
16
-        $value = file_get_contents('./input/'.$file);
17
-        $geometry = geoPHP::load($value, $format);
12
+	foreach (scandir('./input') as $file) {
13
+	  $parts = explode('.',$file);
14
+	  if ($parts[0]) {
15
+		$format = $parts[1];
16
+		$value = file_get_contents('./input/'.$file);
17
+		$geometry = geoPHP::load($value, $format);
18 18
 
19
-        $methods = array(
20
-          array('name' => 'area'),
21
-          array('name' => 'boundary'),
22
-          array('name' => 'getBBox'),
23
-          array('name' => 'centroid'),
24
-          array('name' => 'length'),
25
-          array('name' => 'greatCircleLength'),
26
-          array('name' => 'haversineLength'),
27
-          array('name' => 'y'),
28
-          array('name' => 'x'),
29
-          array('name' => 'numGeometries'),
30
-          array('name' => 'geometryN', 'argument' => '1'),
31
-          array('name' => 'startPoint'),
32
-          array('name' => 'endPoint'),
33
-          array('name' => 'isRing'),
34
-          array('name' => 'isClosed'),
35
-          array('name' => 'numPoints'),
36
-          array('name' => 'pointN', 'argument' => '1'),
37
-          array('name' => 'exteriorRing'),
38
-          array('name' => 'numInteriorRings'),
39
-          array('name' => 'interiorRingN', 'argument' => '1'),
40
-          array('name' => 'dimension'),
41
-          array('name' => 'geometryType'),
42
-          array('name' => 'SRID'),
43
-          array('name' => 'setSRID', 'argument' => '4326'),
44
-        );
19
+		$methods = array(
20
+		  array('name' => 'area'),
21
+		  array('name' => 'boundary'),
22
+		  array('name' => 'getBBox'),
23
+		  array('name' => 'centroid'),
24
+		  array('name' => 'length'),
25
+		  array('name' => 'greatCircleLength'),
26
+		  array('name' => 'haversineLength'),
27
+		  array('name' => 'y'),
28
+		  array('name' => 'x'),
29
+		  array('name' => 'numGeometries'),
30
+		  array('name' => 'geometryN', 'argument' => '1'),
31
+		  array('name' => 'startPoint'),
32
+		  array('name' => 'endPoint'),
33
+		  array('name' => 'isRing'),
34
+		  array('name' => 'isClosed'),
35
+		  array('name' => 'numPoints'),
36
+		  array('name' => 'pointN', 'argument' => '1'),
37
+		  array('name' => 'exteriorRing'),
38
+		  array('name' => 'numInteriorRings'),
39
+		  array('name' => 'interiorRingN', 'argument' => '1'),
40
+		  array('name' => 'dimension'),
41
+		  array('name' => 'geometryType'),
42
+		  array('name' => 'SRID'),
43
+		  array('name' => 'setSRID', 'argument' => '4326'),
44
+		);
45 45
 
46
-        foreach($methods as $method) {
47
-          $argument = NULL;
48
-          $method_name = $method['name'];
49
-          if (isset($method['argument'])) {
50
-            $argument = $method['argument'];
51
-          }
46
+		foreach($methods as $method) {
47
+		  $argument = NULL;
48
+		  $method_name = $method['name'];
49
+		  if (isset($method['argument'])) {
50
+			$argument = $method['argument'];
51
+		  }
52 52
 
53
-          $this->_methods_tester($geometry, $method_name, $argument);
54
-        }
53
+		  $this->_methods_tester($geometry, $method_name, $argument);
54
+		}
55 55
 
56
-        $this->_methods_tester_with_geos($geometry);
57
-      }
58
-    }
56
+		$this->_methods_tester_with_geos($geometry);
57
+	  }
58
+	}
59 59
   }
60 60
 
61 61
   function _methods_tester($geometry, $method_name, $argument) {
62 62
 
63
-    if (!method_exists($geometry, $method_name)) {
64
-      $this->fail("Method ".$method_name.'() doesn\'t exists.');
65
-      return;
66
-    }
63
+	if (!method_exists($geometry, $method_name)) {
64
+	  $this->fail("Method ".$method_name.'() doesn\'t exists.');
65
+	  return;
66
+	}
67 67
 
68
-    switch ($method_name) {
69
-      case 'y':
70
-      case 'x':
71
-        if ($geometry->geometryType() == 'Point') {
72
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
73
-        }
74
-        if ($geometry->geometryType() == 'LineString') {
75
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
76
-        }
77
-        if ($geometry->geometryType() == 'MultiLineString') {
78
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
79
-        }
80
-        break;
81
-      case 'geometryN':
82
-        if ($geometry->geometryType() == 'Point') {
83
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
84
-        }
85
-        if ($geometry->geometryType() == 'LineString') {
86
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
87
-        }
88
-        if ($geometry->geometryType() == 'MultiLineString') {
89
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
90
-        }
91
-        break;
92
-      case 'startPoint':
93
-        if ($geometry->geometryType() == 'Point') {
94
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
95
-        }
96
-        if ($geometry->geometryType() == 'LineString') {
97
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
98
-        }
99
-        if ($geometry->geometryType() == 'MultiLineString') {
100
-          //TODO: Add a method startPoint() to MultiLineString.
101
-          //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
102
-        }
103
-        break;
104
-      case 'endPoint':
105
-        if ($geometry->geometryType() == 'Point') {
106
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
107
-        }
108
-        if ($geometry->geometryType() == 'LineString') {
109
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
110
-        }
111
-        if ($geometry->geometryType() == 'MultiLineString') {
112
-          //TODO: Add a method endPoint() to MultiLineString.
113
-          //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
114
-        }
115
-        break;
116
-      case 'isRing':
117
-        if ($geometry->geometryType() == 'Point') {
118
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
119
-        }
120
-        if ($geometry->geometryType() == 'LineString') {
121
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
122
-        }
123
-        if ($geometry->geometryType() == 'MultiLineString') {
124
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
125
-        }
126
-        break;
127
-      case 'isClosed':
128
-        if ($geometry->geometryType() == 'Point') {
129
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
130
-        }
131
-        if ($geometry->geometryType() == 'LineString') {
132
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
133
-        }
134
-        if ($geometry->geometryType() == 'MultiLineString') {
135
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
136
-        }
137
-        break;
138
-      case 'pointN':
139
-        if ($geometry->geometryType() == 'Point') {
140
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
141
-        }
142
-        if ($geometry->geometryType() == 'LineString') {
143
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
144
-        }
145
-        if ($geometry->geometryType() == 'MultiLineString') {
146
-          //TODO: Add a method pointN() to MultiLineString.
147
-          //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
148
-        }
149
-        break;
150
-      case 'exteriorRing':
151
-        if ($geometry->geometryType() == 'Point') {
152
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
153
-        }
154
-        if ($geometry->geometryType() == 'LineString') {
155
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
156
-        }
157
-        if ($geometry->geometryType() == 'MultiLineString') {
158
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
159
-        }
160
-        break;
161
-      case 'numInteriorRings':
162
-        if ($geometry->geometryType() == 'Point') {
163
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
164
-        }
165
-        if ($geometry->geometryType() == 'LineString') {
166
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
167
-        }
168
-        if ($geometry->geometryType() == 'MultiLineString') {
169
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
170
-        }
171
-        break;
172
-      case 'interiorRingN':
173
-        if ($geometry->geometryType() == 'Point') {
174
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
175
-        }
176
-        if ($geometry->geometryType() == 'LineString') {
177
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
178
-        }
179
-        if ($geometry->geometryType() == 'MultiLineString') {
180
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
181
-        }
182
-        break;
183
-      case 'SRID':
184
-        if ($geometry->geometryType() == 'Point') {
185
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
186
-        }
187
-        if ($geometry->geometryType() == 'LineString') {
188
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
189
-        }
190
-        if ($geometry->geometryType() == 'MultiLineString') {
191
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
192
-        }
193
-        break;
194
-      case 'getBBox':
195
-        if ($geometry->geometryType() == 'Point') {
196
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
197
-        }
198
-        if ($geometry->geometryType() == 'LineString') {
199
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
200
-        }
201
-        if ($geometry->geometryType() == 'MultiLineString') {
202
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
203
-        }
204
-        break;
205
-      case 'centroid':
206
-        if ($geometry->geometryType() == 'Point') {
207
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
208
-        }
209
-        if ($geometry->geometryType() == 'LineString') {
210
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
211
-        }
212
-        if ($geometry->geometryType() == 'MultiLineString') {
213
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
214
-        }
215
-        break;
216
-      case 'length':
217
-        if ($geometry->geometryType() == 'Point') {
218
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
219
-        }
220
-        if ($geometry->geometryType() == 'LineString') {
221
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
222
-        }
223
-        if ($geometry->geometryType() == 'MultiLineString') {
224
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
225
-        }
226
-        break;
227
-      case 'numGeometries':
228
-        if ($geometry->geometryType() == 'Point') {
229
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
230
-        }
231
-        if ($geometry->geometryType() == 'LineString') {
232
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
233
-        }
234
-        if ($geometry->geometryType() == 'MultiLineString') {
235
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
236
-        }
237
-        break;
238
-      case 'numPoints':
239
-        if ($geometry->geometryType() == 'Point') {
240
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
241
-        }
242
-        if ($geometry->geometryType() == 'LineString') {
243
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
244
-        }
245
-        if ($geometry->geometryType() == 'MultiLineString') {
246
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
247
-        }
248
-        break;
249
-      case 'dimension':
250
-        if ($geometry->geometryType() == 'Point') {
251
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
252
-        }
253
-        if ($geometry->geometryType() == 'LineString') {
254
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
255
-        }
256
-        if ($geometry->geometryType() == 'MultiLineString') {
257
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
258
-        }
259
-        break;
260
-      case 'boundary':
261
-        if ($geometry->geometryType() == 'Point') {
262
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
263
-        }
264
-        if ($geometry->geometryType() == 'LineString') {
265
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
266
-        }
267
-        if ($geometry->geometryType() == 'MultiLineString') {
268
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
269
-        }
270
-        break;
271
-      case 'haversineLength':
272
-        //TODO: Check if output is a float >= 0.
273
-        //TODO: Sometimes haversineLength() returns NAN, needs to check why.
274
-        break;
275
-      case 'greatCircleLength':
276
-      case 'area':
277
-        $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
278
-        break;
279
-      case 'geometryType':
280
-        $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
281
-        break;
282
-      case 'setSRID':
283
-        //TODO: The method setSRID() should return TRUE.
284
-        break;
285
-      default:
286
-        $this->assertTrue($geometry->$method_name($argument), 'Failed on ' . $method_name);
287
-    }
68
+	switch ($method_name) {
69
+	  case 'y':
70
+	  case 'x':
71
+		if ($geometry->geometryType() == 'Point') {
72
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
73
+		}
74
+		if ($geometry->geometryType() == 'LineString') {
75
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
76
+		}
77
+		if ($geometry->geometryType() == 'MultiLineString') {
78
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
79
+		}
80
+		break;
81
+	  case 'geometryN':
82
+		if ($geometry->geometryType() == 'Point') {
83
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
84
+		}
85
+		if ($geometry->geometryType() == 'LineString') {
86
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
87
+		}
88
+		if ($geometry->geometryType() == 'MultiLineString') {
89
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
90
+		}
91
+		break;
92
+	  case 'startPoint':
93
+		if ($geometry->geometryType() == 'Point') {
94
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
95
+		}
96
+		if ($geometry->geometryType() == 'LineString') {
97
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
98
+		}
99
+		if ($geometry->geometryType() == 'MultiLineString') {
100
+		  //TODO: Add a method startPoint() to MultiLineString.
101
+		  //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
102
+		}
103
+		break;
104
+	  case 'endPoint':
105
+		if ($geometry->geometryType() == 'Point') {
106
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
107
+		}
108
+		if ($geometry->geometryType() == 'LineString') {
109
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
110
+		}
111
+		if ($geometry->geometryType() == 'MultiLineString') {
112
+		  //TODO: Add a method endPoint() to MultiLineString.
113
+		  //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
114
+		}
115
+		break;
116
+	  case 'isRing':
117
+		if ($geometry->geometryType() == 'Point') {
118
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
119
+		}
120
+		if ($geometry->geometryType() == 'LineString') {
121
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
122
+		}
123
+		if ($geometry->geometryType() == 'MultiLineString') {
124
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
125
+		}
126
+		break;
127
+	  case 'isClosed':
128
+		if ($geometry->geometryType() == 'Point') {
129
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
130
+		}
131
+		if ($geometry->geometryType() == 'LineString') {
132
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
133
+		}
134
+		if ($geometry->geometryType() == 'MultiLineString') {
135
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
136
+		}
137
+		break;
138
+	  case 'pointN':
139
+		if ($geometry->geometryType() == 'Point') {
140
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
141
+		}
142
+		if ($geometry->geometryType() == 'LineString') {
143
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
144
+		}
145
+		if ($geometry->geometryType() == 'MultiLineString') {
146
+		  //TODO: Add a method pointN() to MultiLineString.
147
+		  //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
148
+		}
149
+		break;
150
+	  case 'exteriorRing':
151
+		if ($geometry->geometryType() == 'Point') {
152
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
153
+		}
154
+		if ($geometry->geometryType() == 'LineString') {
155
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
156
+		}
157
+		if ($geometry->geometryType() == 'MultiLineString') {
158
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
159
+		}
160
+		break;
161
+	  case 'numInteriorRings':
162
+		if ($geometry->geometryType() == 'Point') {
163
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
164
+		}
165
+		if ($geometry->geometryType() == 'LineString') {
166
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
167
+		}
168
+		if ($geometry->geometryType() == 'MultiLineString') {
169
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
170
+		}
171
+		break;
172
+	  case 'interiorRingN':
173
+		if ($geometry->geometryType() == 'Point') {
174
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
175
+		}
176
+		if ($geometry->geometryType() == 'LineString') {
177
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
178
+		}
179
+		if ($geometry->geometryType() == 'MultiLineString') {
180
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
181
+		}
182
+		break;
183
+	  case 'SRID':
184
+		if ($geometry->geometryType() == 'Point') {
185
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
186
+		}
187
+		if ($geometry->geometryType() == 'LineString') {
188
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
189
+		}
190
+		if ($geometry->geometryType() == 'MultiLineString') {
191
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
192
+		}
193
+		break;
194
+	  case 'getBBox':
195
+		if ($geometry->geometryType() == 'Point') {
196
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
197
+		}
198
+		if ($geometry->geometryType() == 'LineString') {
199
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
200
+		}
201
+		if ($geometry->geometryType() == 'MultiLineString') {
202
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
203
+		}
204
+		break;
205
+	  case 'centroid':
206
+		if ($geometry->geometryType() == 'Point') {
207
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
208
+		}
209
+		if ($geometry->geometryType() == 'LineString') {
210
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
211
+		}
212
+		if ($geometry->geometryType() == 'MultiLineString') {
213
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
214
+		}
215
+		break;
216
+	  case 'length':
217
+		if ($geometry->geometryType() == 'Point') {
218
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
219
+		}
220
+		if ($geometry->geometryType() == 'LineString') {
221
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
222
+		}
223
+		if ($geometry->geometryType() == 'MultiLineString') {
224
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
225
+		}
226
+		break;
227
+	  case 'numGeometries':
228
+		if ($geometry->geometryType() == 'Point') {
229
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
230
+		}
231
+		if ($geometry->geometryType() == 'LineString') {
232
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
233
+		}
234
+		if ($geometry->geometryType() == 'MultiLineString') {
235
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
236
+		}
237
+		break;
238
+	  case 'numPoints':
239
+		if ($geometry->geometryType() == 'Point') {
240
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
241
+		}
242
+		if ($geometry->geometryType() == 'LineString') {
243
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
244
+		}
245
+		if ($geometry->geometryType() == 'MultiLineString') {
246
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
247
+		}
248
+		break;
249
+	  case 'dimension':
250
+		if ($geometry->geometryType() == 'Point') {
251
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
252
+		}
253
+		if ($geometry->geometryType() == 'LineString') {
254
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
255
+		}
256
+		if ($geometry->geometryType() == 'MultiLineString') {
257
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
258
+		}
259
+		break;
260
+	  case 'boundary':
261
+		if ($geometry->geometryType() == 'Point') {
262
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
263
+		}
264
+		if ($geometry->geometryType() == 'LineString') {
265
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
266
+		}
267
+		if ($geometry->geometryType() == 'MultiLineString') {
268
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
269
+		}
270
+		break;
271
+	  case 'haversineLength':
272
+		//TODO: Check if output is a float >= 0.
273
+		//TODO: Sometimes haversineLength() returns NAN, needs to check why.
274
+		break;
275
+	  case 'greatCircleLength':
276
+	  case 'area':
277
+		$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
278
+		break;
279
+	  case 'geometryType':
280
+		$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
281
+		break;
282
+	  case 'setSRID':
283
+		//TODO: The method setSRID() should return TRUE.
284
+		break;
285
+	  default:
286
+		$this->assertTrue($geometry->$method_name($argument), 'Failed on ' . $method_name);
287
+	}
288 288
 
289 289
   }
290 290
 
291 291
   function _methods_tester_with_geos($geometry) {
292
-    // Cannot test methods if GEOS is not intstalled
293
-    if (!geoPHP::geosInstalled()) return;
292
+	// Cannot test methods if GEOS is not intstalled
293
+	if (!geoPHP::geosInstalled()) return;
294 294
 
295
-    $methods = array(
296
-      //'boundary', //@@TODO: Uncomment this and fix errors
297
-      'envelope',   //@@TODO: Testing reveales errors in this method -- POINT vs. POLYGON
298
-      'getBBox',
299
-      'x',
300
-      'y',
301
-      'startPoint',
302
-      'endPoint',
303
-      'isRing',
304
-      'isClosed',
305
-      'numPoints',
306
-    );
295
+	$methods = array(
296
+	  //'boundary', //@@TODO: Uncomment this and fix errors
297
+	  'envelope',   //@@TODO: Testing reveales errors in this method -- POINT vs. POLYGON
298
+	  'getBBox',
299
+	  'x',
300
+	  'y',
301
+	  'startPoint',
302
+	  'endPoint',
303
+	  'isRing',
304
+	  'isClosed',
305
+	  'numPoints',
306
+	);
307 307
 
308
-    foreach ($methods as $method) {
309
-      // Turn GEOS on
310
-      geoPHP::geosInstalled(TRUE);
311
-      $geos_result = $geometry->$method();
308
+	foreach ($methods as $method) {
309
+	  // Turn GEOS on
310
+	  geoPHP::geosInstalled(TRUE);
311
+	  $geos_result = $geometry->$method();
312 312
 
313
-      // Turn GEOS off
314
-      geoPHP::geosInstalled(FALSE);
315
-      $norm_result = $geometry->$method();
313
+	  // Turn GEOS off
314
+	  geoPHP::geosInstalled(FALSE);
315
+	  $norm_result = $geometry->$method();
316 316
 
317
-      // Turn GEOS back On
318
-      geoPHP::geosInstalled(TRUE);
317
+	  // Turn GEOS back On
318
+	  geoPHP::geosInstalled(TRUE);
319 319
 
320
-      $geos_type = gettype($geos_result);
321
-      $norm_type = gettype($norm_result);
320
+	  $geos_type = gettype($geos_result);
321
+	  $norm_type = gettype($norm_result);
322 322
 
323
-      if ($geos_type != $norm_type) {
324
-        $this->fail('Type mismatch on '.$method);
325
-        $this->dump($geos_type);
326
-        $this->dump($norm_type);
327
-        continue;
328
-      }
323
+	  if ($geos_type != $norm_type) {
324
+		$this->fail('Type mismatch on '.$method);
325
+		$this->dump($geos_type);
326
+		$this->dump($norm_type);
327
+		continue;
328
+	  }
329 329
 
330
-      // Now check base on type
331
-      if ($geos_type == 'object') {
332
-        $haus_dist = $geos_result->hausdorffDistance(geoPHP::load($norm_result->out('wkt'),'wkt'));
330
+	  // Now check base on type
331
+	  if ($geos_type == 'object') {
332
+		$haus_dist = $geos_result->hausdorffDistance(geoPHP::load($norm_result->out('wkt'),'wkt'));
333 333
 
334
-        // Get the length of the diagonal of the bbox - this is used to scale the haustorff distance
335
-        // Using Pythagorean theorem
336
-        $bb = $geos_result->getBBox();
337
-        $scale = sqrt((($bb['maxy'] - $bb['miny'])^2) + (($bb['maxx'] - $bb['minx'])^2));
334
+		// Get the length of the diagonal of the bbox - this is used to scale the haustorff distance
335
+		// Using Pythagorean theorem
336
+		$bb = $geos_result->getBBox();
337
+		$scale = sqrt((($bb['maxy'] - $bb['miny'])^2) + (($bb['maxx'] - $bb['minx'])^2));
338 338
 
339
-        // The difference in the output of GEOS and native-PHP methods should be less than 0.5 scaled haustorff units
340
-        if ($haus_dist / $scale > 0.5) {
341
-          $this->fail('Output mismatch on '.$method);
342
-          $this->dump('GEOS : ');
343
-          $this->dump($geos_result->out('wkt'));
344
-          $this->dump('NORM : ');
345
-          $this->dump($norm_result->out('wkt'));
346
-          continue;
347
-        }
348
-      }
339
+		// The difference in the output of GEOS and native-PHP methods should be less than 0.5 scaled haustorff units
340
+		if ($haus_dist / $scale > 0.5) {
341
+		  $this->fail('Output mismatch on '.$method);
342
+		  $this->dump('GEOS : ');
343
+		  $this->dump($geos_result->out('wkt'));
344
+		  $this->dump('NORM : ');
345
+		  $this->dump($norm_result->out('wkt'));
346
+		  continue;
347
+		}
348
+	  }
349 349
 
350
-      if ($geos_type == 'boolean' || $geos_type == 'string') {
351
-        if ($geos_result !== $norm_result) {
352
-          $this->fail('Output mismatch on '.$method);
353
-          $this->dump('GEOS : ');
354
-          $this->dump((string) $geos_result);
355
-          $this->dump('NORM : ');
356
-          $this->dump((string) $norm_result);
357
-          continue;
358
-        }
359
-      }
350
+	  if ($geos_type == 'boolean' || $geos_type == 'string') {
351
+		if ($geos_result !== $norm_result) {
352
+		  $this->fail('Output mismatch on '.$method);
353
+		  $this->dump('GEOS : ');
354
+		  $this->dump((string) $geos_result);
355
+		  $this->dump('NORM : ');
356
+		  $this->dump((string) $norm_result);
357
+		  continue;
358
+		}
359
+	  }
360 360
 
361
-      //@@TODO: Run tests for output of types arrays and float
362
-      //@@TODO: centroid function is non-compliant for collections and strings
363
-    }
361
+	  //@@TODO: Run tests for output of types arrays and float
362
+	  //@@TODO: centroid function is non-compliant for collections and strings
363
+	}
364 364
   }
365 365
 }
Please login to merge, or discard this patch.
require/libs/geoPHP/tests/tests/20120702Test.php 1 patch
Indentation   +268 added lines, -268 removed lines patch added patch discarded remove patch
@@ -9,281 +9,281 @@
 block discarded – undo
9 9
   }
10 10
 
11 11
   function testMethods() {
12
-    $format = 'gpx';
13
-    $value = file_get_contents('./input/20120702.gpx');
14
-    $geometry = geoPHP::load($value, $format);
12
+	$format = 'gpx';
13
+	$value = file_get_contents('./input/20120702.gpx');
14
+	$geometry = geoPHP::load($value, $format);
15 15
 
16
-    $methods = array(
17
-      array('name' => 'area'),
18
-      array('name' => 'boundary'),
19
-      array('name' => 'getBBox'),
20
-      array('name' => 'centroid'),
21
-      array('name' => 'length'),
22
-      array('name' => 'greatCircleLength', 'argument' => 6378137),
23
-      array('name' => 'haversineLength'),
24
-      array('name' => 'y'),
25
-      array('name' => 'x'),
26
-      array('name' => 'numGeometries'),
27
-      array('name' => 'geometryN', 'argument' => '1'),
28
-      array('name' => 'startPoint'),
29
-      array('name' => 'endPoint'),
30
-      array('name' => 'isRing'),
31
-      array('name' => 'isClosed'),
32
-      array('name' => 'numPoints'),
33
-      array('name' => 'pointN', 'argument' => '1'),
34
-      array('name' => 'exteriorRing'),
35
-      array('name' => 'numInteriorRings'),
36
-      array('name' => 'interiorRingN', 'argument' => '1'),
37
-      array('name' => 'dimension'),
38
-      array('name' => 'geometryType'),
39
-      array('name' => 'SRID'),
40
-      array('name' => 'setSRID', 'argument' => '4326'),
41
-    );
16
+	$methods = array(
17
+	  array('name' => 'area'),
18
+	  array('name' => 'boundary'),
19
+	  array('name' => 'getBBox'),
20
+	  array('name' => 'centroid'),
21
+	  array('name' => 'length'),
22
+	  array('name' => 'greatCircleLength', 'argument' => 6378137),
23
+	  array('name' => 'haversineLength'),
24
+	  array('name' => 'y'),
25
+	  array('name' => 'x'),
26
+	  array('name' => 'numGeometries'),
27
+	  array('name' => 'geometryN', 'argument' => '1'),
28
+	  array('name' => 'startPoint'),
29
+	  array('name' => 'endPoint'),
30
+	  array('name' => 'isRing'),
31
+	  array('name' => 'isClosed'),
32
+	  array('name' => 'numPoints'),
33
+	  array('name' => 'pointN', 'argument' => '1'),
34
+	  array('name' => 'exteriorRing'),
35
+	  array('name' => 'numInteriorRings'),
36
+	  array('name' => 'interiorRingN', 'argument' => '1'),
37
+	  array('name' => 'dimension'),
38
+	  array('name' => 'geometryType'),
39
+	  array('name' => 'SRID'),
40
+	  array('name' => 'setSRID', 'argument' => '4326'),
41
+	);
42 42
 
43
-    foreach($methods as $method) {
44
-      $argument = NULL;
45
-      $method_name = $method['name'];
46
-      if (isset($method['argument'])) {
47
-        $argument = $method['argument'];
48
-      }
49
-      $this->_methods_tester($geometry, $method_name, $argument);
50
-    }
43
+	foreach($methods as $method) {
44
+	  $argument = NULL;
45
+	  $method_name = $method['name'];
46
+	  if (isset($method['argument'])) {
47
+		$argument = $method['argument'];
48
+	  }
49
+	  $this->_methods_tester($geometry, $method_name, $argument);
50
+	}
51 51
   }
52 52
 
53 53
   function _methods_tester($geometry, $method_name, $argument) {
54 54
 
55
-    if (!method_exists($geometry, $method_name)) {
56
-      $this->fail("Method ".$method_name.'() doesn\'t exists.');
57
-      return;
58
-    }
55
+	if (!method_exists($geometry, $method_name)) {
56
+	  $this->fail("Method ".$method_name.'() doesn\'t exists.');
57
+	  return;
58
+	}
59 59
 
60
-    switch ($method_name) {
61
-      case 'y':
62
-      case 'x':
63
-        if ($geometry->geometryType() == 'Point') {
64
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
65
-        }
66
-        if ($geometry->geometryType() == 'LineString') {
67
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
68
-        }
69
-        if ($geometry->geometryType() == 'MultiLineString') {
70
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
71
-        }
72
-        break;
73
-      case 'geometryN':
74
-        if ($geometry->geometryType() == 'Point') {
75
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
76
-        }
77
-        if ($geometry->geometryType() == 'LineString') {
78
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
79
-        }
80
-        if ($geometry->geometryType() == 'MultiLineString') {
81
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
82
-        }
83
-        break;
84
-      case 'startPoint':
85
-        if ($geometry->geometryType() == 'Point') {
86
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
87
-        }
88
-        if ($geometry->geometryType() == 'LineString') {
89
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
90
-        }
91
-        if ($geometry->geometryType() == 'MultiLineString') {
92
-          //TODO: Add a method startPoint() to MultiLineString.
93
-          //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
94
-        }
95
-        break;
96
-      case 'endPoint':
97
-        if ($geometry->geometryType() == 'Point') {
98
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
99
-        }
100
-        if ($geometry->geometryType() == 'LineString') {
101
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
102
-        }
103
-        if ($geometry->geometryType() == 'MultiLineString') {
104
-          //TODO: Add a method endPoint() to MultiLineString.
105
-          //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
106
-        }
107
-        break;
108
-      case 'isRing':
109
-        if ($geometry->geometryType() == 'Point') {
110
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
111
-        }
112
-        if ($geometry->geometryType() == 'LineString') {
113
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
114
-        }
115
-        if ($geometry->geometryType() == 'MultiLineString') {
116
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
117
-        }
118
-        break;
119
-      case 'isClosed':
120
-        if ($geometry->geometryType() == 'Point') {
121
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
122
-        }
123
-        if ($geometry->geometryType() == 'LineString') {
124
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
125
-        }
126
-        if ($geometry->geometryType() == 'MultiLineString') {
127
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
128
-        }
129
-        break;
130
-      case 'pointN':
131
-        if ($geometry->geometryType() == 'Point') {
132
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
133
-        }
134
-        if ($geometry->geometryType() == 'LineString') {
135
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
136
-        }
137
-        if ($geometry->geometryType() == 'MultiLineString') {
138
-          //TODO: Add a method pointN() to MultiLineString.
139
-          //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
140
-        }
141
-        break;
142
-      case 'exteriorRing':
143
-        if ($geometry->geometryType() == 'Point') {
144
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
145
-        }
146
-        if ($geometry->geometryType() == 'LineString') {
147
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
148
-        }
149
-        if ($geometry->geometryType() == 'MultiLineString') {
150
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
151
-        }
152
-        break;
153
-      case 'numInteriorRings':
154
-        if ($geometry->geometryType() == 'Point') {
155
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
156
-        }
157
-        if ($geometry->geometryType() == 'LineString') {
158
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
159
-        }
160
-        if ($geometry->geometryType() == 'MultiLineString') {
161
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
162
-        }
163
-        break;
164
-      case 'interiorRingN':
165
-        if ($geometry->geometryType() == 'Point') {
166
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
167
-        }
168
-        if ($geometry->geometryType() == 'LineString') {
169
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
170
-        }
171
-        if ($geometry->geometryType() == 'MultiLineString') {
172
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
173
-        }
174
-        break;
175
-      case 'setSRID':
176
-        //TODO: The method setSRID() should return TRUE.
177
-        break;
178
-      case 'SRID':
179
-        if ($geometry->geometryType() == 'Point') {
180
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
181
-        }
182
-        if ($geometry->geometryType() == 'LineString') {
183
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
184
-        }
185
-        if ($geometry->geometryType() == 'MultiLineString') {
186
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
187
-        }
188
-        break;
189
-      case 'getBBox':
190
-        if ($geometry->geometryType() == 'Point') {
191
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
192
-        }
193
-        if ($geometry->geometryType() == 'LineString') {
194
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
195
-        }
196
-        if ($geometry->geometryType() == 'MultiLineString') {
197
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
198
-        }
199
-        break;
200
-      case 'centroid':
201
-        if ($geometry->geometryType() == 'Point') {
202
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
203
-        }
204
-        if ($geometry->geometryType() == 'LineString') {
205
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
206
-        }
207
-        if ($geometry->geometryType() == 'MultiLineString') {
208
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
209
-        }
210
-        break;
211
-      case 'length':
212
-        if ($geometry->geometryType() == 'Point') {
213
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
214
-        }
215
-        if ($geometry->geometryType() == 'LineString') {
216
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
217
-        }
218
-        if ($geometry->geometryType() == 'MultiLineString') {
219
-          $this->assertEquals($geometry->$method_name($argument), (float) '0.11624637315233', 'Failed on ' . $method_name);
220
-        }
221
-        break;
222
-      case 'numGeometries':
223
-        if ($geometry->geometryType() == 'Point') {
224
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
225
-        }
226
-        if ($geometry->geometryType() == 'LineString') {
227
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
228
-        }
229
-        if ($geometry->geometryType() == 'MultiLineString') {
230
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
231
-        }
232
-        break;
233
-      case 'numPoints':
234
-        if ($geometry->geometryType() == 'Point') {
235
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
236
-        }
237
-        if ($geometry->geometryType() == 'LineString') {
238
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
239
-        }
240
-        if ($geometry->geometryType() == 'MultiLineString') {
241
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
242
-        }
243
-        break;
244
-      case 'dimension':
245
-        if ($geometry->geometryType() == 'Point') {
246
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
247
-        }
248
-        if ($geometry->geometryType() == 'LineString') {
249
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
250
-        }
251
-        if ($geometry->geometryType() == 'MultiLineString') {
252
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
253
-        }
254
-        break;
255
-      case 'boundary':
256
-        if ($geometry->geometryType() == 'Point') {
257
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
258
-        }
259
-        if ($geometry->geometryType() == 'LineString') {
260
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
261
-        }
262
-        if ($geometry->geometryType() == 'MultiLineString') {
263
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
264
-        }
265
-        break;
266
-      case 'greatCircleLength':
267
-        if ($geometry->geometryType() == 'Point') {
268
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
269
-        }
270
-        if ($geometry->geometryType() == 'LineString') {
271
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
272
-        }
273
-        if ($geometry->geometryType() == 'MultiLineString') {
274
-          $this->assertNotEquals($geometry->$method_name($argument), '9500.9359867418', 'Failed on ' . $method_name);
275
-        }
276
-        break;
277
-      case 'haversineLength':
278
-      case 'area':
279
-        $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
280
-        break;
281
-      case 'geometryType':
282
-        $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
283
-        break;
284
-      default:
285
-        $this->assertTrue($geometry->$method_name($argument), 'Failed on ' . $method_name);
286
-    }
60
+	switch ($method_name) {
61
+	  case 'y':
62
+	  case 'x':
63
+		if ($geometry->geometryType() == 'Point') {
64
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
65
+		}
66
+		if ($geometry->geometryType() == 'LineString') {
67
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
68
+		}
69
+		if ($geometry->geometryType() == 'MultiLineString') {
70
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
71
+		}
72
+		break;
73
+	  case 'geometryN':
74
+		if ($geometry->geometryType() == 'Point') {
75
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
76
+		}
77
+		if ($geometry->geometryType() == 'LineString') {
78
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
79
+		}
80
+		if ($geometry->geometryType() == 'MultiLineString') {
81
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
82
+		}
83
+		break;
84
+	  case 'startPoint':
85
+		if ($geometry->geometryType() == 'Point') {
86
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
87
+		}
88
+		if ($geometry->geometryType() == 'LineString') {
89
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
90
+		}
91
+		if ($geometry->geometryType() == 'MultiLineString') {
92
+		  //TODO: Add a method startPoint() to MultiLineString.
93
+		  //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
94
+		}
95
+		break;
96
+	  case 'endPoint':
97
+		if ($geometry->geometryType() == 'Point') {
98
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
99
+		}
100
+		if ($geometry->geometryType() == 'LineString') {
101
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
102
+		}
103
+		if ($geometry->geometryType() == 'MultiLineString') {
104
+		  //TODO: Add a method endPoint() to MultiLineString.
105
+		  //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
106
+		}
107
+		break;
108
+	  case 'isRing':
109
+		if ($geometry->geometryType() == 'Point') {
110
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
111
+		}
112
+		if ($geometry->geometryType() == 'LineString') {
113
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
114
+		}
115
+		if ($geometry->geometryType() == 'MultiLineString') {
116
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
117
+		}
118
+		break;
119
+	  case 'isClosed':
120
+		if ($geometry->geometryType() == 'Point') {
121
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
122
+		}
123
+		if ($geometry->geometryType() == 'LineString') {
124
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
125
+		}
126
+		if ($geometry->geometryType() == 'MultiLineString') {
127
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
128
+		}
129
+		break;
130
+	  case 'pointN':
131
+		if ($geometry->geometryType() == 'Point') {
132
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
133
+		}
134
+		if ($geometry->geometryType() == 'LineString') {
135
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
136
+		}
137
+		if ($geometry->geometryType() == 'MultiLineString') {
138
+		  //TODO: Add a method pointN() to MultiLineString.
139
+		  //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
140
+		}
141
+		break;
142
+	  case 'exteriorRing':
143
+		if ($geometry->geometryType() == 'Point') {
144
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
145
+		}
146
+		if ($geometry->geometryType() == 'LineString') {
147
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
148
+		}
149
+		if ($geometry->geometryType() == 'MultiLineString') {
150
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
151
+		}
152
+		break;
153
+	  case 'numInteriorRings':
154
+		if ($geometry->geometryType() == 'Point') {
155
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
156
+		}
157
+		if ($geometry->geometryType() == 'LineString') {
158
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
159
+		}
160
+		if ($geometry->geometryType() == 'MultiLineString') {
161
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
162
+		}
163
+		break;
164
+	  case 'interiorRingN':
165
+		if ($geometry->geometryType() == 'Point') {
166
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
167
+		}
168
+		if ($geometry->geometryType() == 'LineString') {
169
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
170
+		}
171
+		if ($geometry->geometryType() == 'MultiLineString') {
172
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
173
+		}
174
+		break;
175
+	  case 'setSRID':
176
+		//TODO: The method setSRID() should return TRUE.
177
+		break;
178
+	  case 'SRID':
179
+		if ($geometry->geometryType() == 'Point') {
180
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
181
+		}
182
+		if ($geometry->geometryType() == 'LineString') {
183
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
184
+		}
185
+		if ($geometry->geometryType() == 'MultiLineString') {
186
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
187
+		}
188
+		break;
189
+	  case 'getBBox':
190
+		if ($geometry->geometryType() == 'Point') {
191
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
192
+		}
193
+		if ($geometry->geometryType() == 'LineString') {
194
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
195
+		}
196
+		if ($geometry->geometryType() == 'MultiLineString') {
197
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
198
+		}
199
+		break;
200
+	  case 'centroid':
201
+		if ($geometry->geometryType() == 'Point') {
202
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
203
+		}
204
+		if ($geometry->geometryType() == 'LineString') {
205
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
206
+		}
207
+		if ($geometry->geometryType() == 'MultiLineString') {
208
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
209
+		}
210
+		break;
211
+	  case 'length':
212
+		if ($geometry->geometryType() == 'Point') {
213
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
214
+		}
215
+		if ($geometry->geometryType() == 'LineString') {
216
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
217
+		}
218
+		if ($geometry->geometryType() == 'MultiLineString') {
219
+		  $this->assertEquals($geometry->$method_name($argument), (float) '0.11624637315233', 'Failed on ' . $method_name);
220
+		}
221
+		break;
222
+	  case 'numGeometries':
223
+		if ($geometry->geometryType() == 'Point') {
224
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
225
+		}
226
+		if ($geometry->geometryType() == 'LineString') {
227
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
228
+		}
229
+		if ($geometry->geometryType() == 'MultiLineString') {
230
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
231
+		}
232
+		break;
233
+	  case 'numPoints':
234
+		if ($geometry->geometryType() == 'Point') {
235
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
236
+		}
237
+		if ($geometry->geometryType() == 'LineString') {
238
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
239
+		}
240
+		if ($geometry->geometryType() == 'MultiLineString') {
241
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
242
+		}
243
+		break;
244
+	  case 'dimension':
245
+		if ($geometry->geometryType() == 'Point') {
246
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
247
+		}
248
+		if ($geometry->geometryType() == 'LineString') {
249
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
250
+		}
251
+		if ($geometry->geometryType() == 'MultiLineString') {
252
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
253
+		}
254
+		break;
255
+	  case 'boundary':
256
+		if ($geometry->geometryType() == 'Point') {
257
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
258
+		}
259
+		if ($geometry->geometryType() == 'LineString') {
260
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
261
+		}
262
+		if ($geometry->geometryType() == 'MultiLineString') {
263
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
264
+		}
265
+		break;
266
+	  case 'greatCircleLength':
267
+		if ($geometry->geometryType() == 'Point') {
268
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
269
+		}
270
+		if ($geometry->geometryType() == 'LineString') {
271
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
272
+		}
273
+		if ($geometry->geometryType() == 'MultiLineString') {
274
+		  $this->assertNotEquals($geometry->$method_name($argument), '9500.9359867418', 'Failed on ' . $method_name);
275
+		}
276
+		break;
277
+	  case 'haversineLength':
278
+	  case 'area':
279
+		$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
280
+		break;
281
+	  case 'geometryType':
282
+		$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
283
+		break;
284
+	  default:
285
+		$this->assertTrue($geometry->$method_name($argument), 'Failed on ' . $method_name);
286
+	}
287 287
   }
288 288
 }
289 289
 
Please login to merge, or discard this patch.
require/libs/geoPHP/tests/tests/geosTest.php 1 patch
Indentation   +68 added lines, -68 removed lines patch added patch discarded remove patch
@@ -9,78 +9,78 @@
 block discarded – undo
9 9
   }
10 10
 
11 11
   function testGeos() {
12
-    foreach (scandir('./input') as $file) {
13
-      $parts = explode('.',$file);
14
-      if ($parts[0]) {
15
-        $format = $parts[1];
16
-        $value = file_get_contents('./input/'.$file);
17
-        $geometry = geoPHP::load($value, $format);
12
+	foreach (scandir('./input') as $file) {
13
+	  $parts = explode('.',$file);
14
+	  if ($parts[0]) {
15
+		$format = $parts[1];
16
+		$value = file_get_contents('./input/'.$file);
17
+		$geometry = geoPHP::load($value, $format);
18 18
 
19
-        $geosMethods = array(
20
-          array('name' => 'geos'),
21
-          array('name' => 'setGeos', 'argument' => $geometry->geos()),
22
-          array('name' => 'PointOnSurface'),
23
-          array('name' => 'equals', 'argument' => $geometry),
24
-          array('name' => 'equalsExact', 'argument' => $geometry),
25
-          array('name' => 'relate', 'argument' => $geometry),
26
-          array('name' => 'checkValidity'),
27
-          array('name' => 'isSimple'),
28
-          array('name' => 'buffer', 'argument' => '10'),
29
-          array('name' => 'intersection', 'argument' => $geometry),
30
-          array('name' => 'convexHull'),
31
-          array('name' => 'difference', 'argument' => $geometry),
32
-          array('name' => 'symDifference', 'argument' => $geometry),
33
-          array('name' => 'union', 'argument' => $geometry),
34
-          array('name' => 'simplify', 'argument' => '0'),
35
-          array('name' => 'disjoint', 'argument' => $geometry),
36
-          array('name' => 'touches', 'argument' => $geometry),
37
-          array('name' => 'intersects', 'argument' => $geometry),
38
-          array('name' => 'crosses', 'argument' => $geometry),
39
-          array('name' => 'within', 'argument' => $geometry),
40
-          array('name' => 'contains', 'argument' => $geometry),
41
-          array('name' => 'overlaps', 'argument' => $geometry),
42
-          array('name' => 'covers', 'argument' => $geometry),
43
-          array('name' => 'coveredBy', 'argument' => $geometry),
44
-          array('name' => 'distance', 'argument' => $geometry),
45
-          array('name' => 'hausdorffDistance', 'argument' => $geometry),
46
-        );
19
+		$geosMethods = array(
20
+		  array('name' => 'geos'),
21
+		  array('name' => 'setGeos', 'argument' => $geometry->geos()),
22
+		  array('name' => 'PointOnSurface'),
23
+		  array('name' => 'equals', 'argument' => $geometry),
24
+		  array('name' => 'equalsExact', 'argument' => $geometry),
25
+		  array('name' => 'relate', 'argument' => $geometry),
26
+		  array('name' => 'checkValidity'),
27
+		  array('name' => 'isSimple'),
28
+		  array('name' => 'buffer', 'argument' => '10'),
29
+		  array('name' => 'intersection', 'argument' => $geometry),
30
+		  array('name' => 'convexHull'),
31
+		  array('name' => 'difference', 'argument' => $geometry),
32
+		  array('name' => 'symDifference', 'argument' => $geometry),
33
+		  array('name' => 'union', 'argument' => $geometry),
34
+		  array('name' => 'simplify', 'argument' => '0'),
35
+		  array('name' => 'disjoint', 'argument' => $geometry),
36
+		  array('name' => 'touches', 'argument' => $geometry),
37
+		  array('name' => 'intersects', 'argument' => $geometry),
38
+		  array('name' => 'crosses', 'argument' => $geometry),
39
+		  array('name' => 'within', 'argument' => $geometry),
40
+		  array('name' => 'contains', 'argument' => $geometry),
41
+		  array('name' => 'overlaps', 'argument' => $geometry),
42
+		  array('name' => 'covers', 'argument' => $geometry),
43
+		  array('name' => 'coveredBy', 'argument' => $geometry),
44
+		  array('name' => 'distance', 'argument' => $geometry),
45
+		  array('name' => 'hausdorffDistance', 'argument' => $geometry),
46
+		);
47 47
 
48
-        foreach($geosMethods as $method) {
49
-          $argument = NULL;
50
-          $method_name = $method['name'];
51
-          if (isset($method['argument'])) {
52
-            $argument = $method['argument'];
53
-          }
48
+		foreach($geosMethods as $method) {
49
+		  $argument = NULL;
50
+		  $method_name = $method['name'];
51
+		  if (isset($method['argument'])) {
52
+			$argument = $method['argument'];
53
+		  }
54 54
 
55
-          switch ($method_name) {
56
-            case 'isSimple':
57
-            case 'equals':
58
-            case 'geos':
59
-              if ($geometry->geometryType() == 'Point') {
60
-                $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
61
-              }
62
-              if ($geometry->geometryType() == 'LineString') {
63
-                $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
64
-              }
65
-              if ($geometry->geometryType() == 'MultiLineString') {
66
-                $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
67
-              }
68
-              break;
69
-            default:
70
-              if ($geometry->geometryType() == 'Point') {
71
-                $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
72
-              }
73
-              if ($geometry->geometryType() == 'LineString') {
74
-                $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
75
-              }
76
-              if ($geometry->geometryType() == 'MultiLineString') {
77
-                $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
78
-              }
79
-          }
80
-        }
55
+		  switch ($method_name) {
56
+			case 'isSimple':
57
+			case 'equals':
58
+			case 'geos':
59
+			  if ($geometry->geometryType() == 'Point') {
60
+				$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
61
+			  }
62
+			  if ($geometry->geometryType() == 'LineString') {
63
+				$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
64
+			  }
65
+			  if ($geometry->geometryType() == 'MultiLineString') {
66
+				$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
67
+			  }
68
+			  break;
69
+			default:
70
+			  if ($geometry->geometryType() == 'Point') {
71
+				$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
72
+			  }
73
+			  if ($geometry->geometryType() == 'LineString') {
74
+				$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
75
+			  }
76
+			  if ($geometry->geometryType() == 'MultiLineString') {
77
+				$this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
78
+			  }
79
+		  }
80
+		}
81 81
 
82
-      }
83
-    }
82
+	  }
83
+	}
84 84
   }
85 85
 
86 86
 }
Please login to merge, or discard this patch.