forked from kkaiser1952/NCM
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGridSquare.php
67 lines (53 loc) · 1.63 KB
/
GridSquare.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
/* Function to calculate the grid square based on lat/lng */
function gridsquare($lat, $lng){
$Mtype = '';
$ychr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$ynum = "0123456789";
$y = 0;
$ycalc = array(0,0,0);
$yn = array(0,0,0,0,0,0,0);
$ycalc[1] = $lng + 180;
$ycalc[2] = $lat + 90;
for ($i = 1; $i < 3; $i++) {
for ($k = 1; $k < 4; $k++) {
if ($k != 3) {
if ($i == 1) {
if ($k == 1) $ydiv = 20;
if ($k == 2) $ydiv = 2;
}
if ($i == 2) {
if ($k == 1) $ydiv = 10;
if ($k == 2) $ydiv = 1;
}
$yres = $ycalc[$i] / $ydiv;
$ycalc[$i] = $yres;
if ($ycalc[$i]>0)
$ylp = floor($yres);
else
$ylp = ceil($yres);
$ycalc[$i] = ($ycalc[$i] - $ylp) * $ydiv;
}else {
if ($i == 1)
$ydiv = 12;
else
$ydiv = 24;
$yres = $ycalc[$i] * $ydiv;
$ycalc[$i] = $yres;
if ($ycalc[$i] > 0)
$ylp = floor($yres);
else
$ylp = ceil($yres);
}
$y++;
$yn[$y] = $ylp;
}
}
$yqth = $ychr{$yn[1]} . $ychr{$yn[4]} . $ynum{$yn[2]} . $ynum{$yn[5]} . $ychr{$yn[3]} . $ychr{$yn[6]};
return $yqth;
} /* end of the gridsquare function */
//echo "$yqth<br>";
//$gs = gridsquare(39.8520, -94.37400);
//echo "$gs[0], $gs[1]...$gs[5]<br>";
//print_r("$gs");
?>