source: subversion/sites/other/freemap-npe/functions.php @ 9110

Last change on this file since 9110 was 1540, checked in by nick, 13 years ago

Freemap-NPE: initial version

File size: 1.6 KB
Line 
1<?php
2################################################################################
3# This file forms part of the Freemap source code.                             #
4# (c) 2004-06 Nick Whitelegg (Hogweed Software)                                #
5# Licenced under the Lesser GNU General Public Licence; see COPYING            #
6# for details.                                                                 #
7################################################################################
8
9function wholly_numeric($input)
10{
11        return preg_match("/^-?[\d\.]+$/",$input);
12}
13
14function get_mapview ($i)
15{
16                $mapviews = array (
17                        1 =>            array("id"=>1, "scale"=>0.3),
18                                        array("id"=>2, "scale"=>0.6),
19                                        array("id"=>3, "scale"=>1.2),
20                                        array("id"=>4, "scale"=>3.125),
21                                        array("id"=>5, "scale"=>6.25),
22                                        array("id"=>6, "scale"=>12.5),
23                                        array("id"=>7, "scale"=>25),
24                                        array("id"=>8, "scale"=>50),
25                                        array("id"=>9, "scale"=>100),
26                                        array("id"=>10, "scale"=>200),
27                                        array("id"=>11, "scale"=>400)
28                                                );
29                return $mapviews[$i];
30}
31# Might be breaking the law with this one. Global Megacorp has patented this
32# algorithm. Well up yours I'm doing it anyway :-)
33function line_length($x1,$y1,$x2,$y2)
34{
35        $dx=$x2-$x1;
36        $dy=$y2-$y1;
37        return sqrt($dx*$dx + $dy*$dy);
38}
39# Returns the slope angle of a contour line;
40# always in the range -90 -> 0 -> +90.
41# 08/02/05 made more generalised by passing parameters as x1,x2,y1,y2
42# rather than the line array.
43function slope_angle($x1,$y1,$x2,$y2)
44{
45        $dy = $y2-$y1;
46        $dx = $x2-$x1;
47        /*
48        $a = rad2deg(atan2($dy,$dx));
49        return round($a-(180*($a>90&&$a<270)));
50        */
51        $a = $dx ? round(rad2deg(atan($dy/$dx))) : 90;
52        return $a; 
53}
54?>
Note: See TracBrowser for help on using the repository browser.