More MySQL purging
[contractdashboard.git] / displayHeatmap.php
blob:a/displayHeatmap.php -> blob:b/displayHeatmap.php
--- a/displayHeatmap.php
+++ b/displayHeatmap.php
@@ -1,5 +1,4 @@
 <?php

-

 

 include('lib/common.inc.php');

 

@@ -28,72 +27,70 @@
 

 $query = 'SELECT "supplierPostcode", sum("value") as value, max(lat) as lat, max(lon) as lon FROM contractnotice inner join postcodes on "supplierPostcode" = postcode::text where "childCN" is null AND "supplierCountry" = \'Australia\' GROUP BY "supplierPostcode"';

 $query = $conn->prepare($query);

-   $query->execute();

-   if (!$query) {

-      databaseError($conn->errorInfo());

-   }

+$query->execute();

+databaseError($conn->errorInfo());

 

 

 $left = "FFFF50";

-$right= "EF0050";

-$leftR = hexdec(substr($left,0,2));

-$leftG = hexdec(substr($left,2,2));

-$leftB = hexdec(substr($left,4,2));

-$rightR = hexdec(substr($right,0,2));

-$rightG = hexdec(substr($right,2,2));

-$rightB = hexdec(substr($right,4,2));

-for($i=0;$i<250;$i++) {

-    $colorset[$i] = imagecolorallocatealpha($handle, $leftR + ($i*(($rightR-$leftR)/250)), $leftG + ($i*(($rightG-$leftG)/250)), $leftB + ($i*(($rightB-$leftB)/250)),117 - ($i/250)*40);

+$right = "EF0050";

+$leftR = hexdec(substr($left, 0, 2));

+$leftG = hexdec(substr($left, 2, 2));

+$leftB = hexdec(substr($left, 4, 2));

+$rightR = hexdec(substr($right, 0, 2));

+$rightG = hexdec(substr($right, 2, 2));

+$rightB = hexdec(substr($right, 4, 2));

+for ($i = 0; $i < 250; $i++) {

+    $colorset[$i] = imagecolorallocatealpha($handle, $leftR + ($i * (($rightR - $leftR) / 250)), $leftG + ($i * (($rightG - $leftG) / 250)), $leftB + ($i * (($rightB - $leftB) / 250)), 117 - ($i / 250) * 40);

 }

 

-  foreach ($query->fetchAll() as $row) {

-   $xpage = round((($XRange - ($MaxX - $row['lon'])) / $xdivlength));

-	if ($row['lat'] < -40.25) $row['lat']-= 0.75;

-   $ypage = round(($YRange - (abs($MaxY) - abs($row['lat']))) / $ydivheight);

-   @$pagevalues[$xpage][$ypage] += $row['value'];

-   //echo $ypage." ".$xpage."<br>";

+foreach ($query->fetchAll() as $row) {

+    $xpage = round((($XRange - ($MaxX - $row['lon'])) / $xdivlength));

+    if ($row['lat'] < -40.25)

+        $row['lat']-= 0.75;

+    $ypage = round(($YRange - (abs($MaxY) - abs($row['lat']))) / $ydivheight);

+    @$pagevalues[$xpage][$ypage] += $row['value'];

+    //echo $ypage." ".$xpage."<br>";

 }

 

 $max = 0;

 $min = 0;

-for ($i = 0;$i < $xdivs; $i++ ) {

-   for ($j = 0;$j < $ydivs; $j++ ) {

-   if (@$pagevalues[$i][$j])

-   {

-      if (@$pagevalues[$i][$j] > $max) $max = @$pagevalues[$i][$j];

-      if ($min == 0 || @$pagevalues[$i][$j] < $min) $min = @$pagevalues[$i][$j];

-   } else {

-      @$pagevalues[$i][$j] = ((@$pagevalues[$i][$j] + (@$pagevalues[$i+1][$j] + @$pagevalues[$i][$j+1]

-                           + @$pagevalues[$i-1][$j] + @$pagevalues[$i][$j-1])/4) /2)-9;

-      @$pagevalues[$i-1][$j] = ((@$pagevalues[$i-1][$j] + (@$pagevalues[$i][$j] + @$pagevalues[$i-1][$j+1]

-                           + @$pagevalues[$i-2][$j] + @$pagevalues[$i-1][$j-1])/4) /2)-9;

-      @$pagevalues[$i][$j-1] = ((@$pagevalues[$i][$j-1] + (@$pagevalues[$i+1][$j-1] + @$pagevalues[$i][$j]

-                           + @$pagevalues[$i-1][$j-1] + @$pagevalues[$i][$j-2])/4) /2)-9;

-   } 

-   }

+for ($i = 0; $i < $xdivs; $i++) {

+    for ($j = 0; $j < $ydivs; $j++) {

+        if (@$pagevalues[$i][$j]) {

+            if (@$pagevalues[$i][$j] > $max)

+                $max = @$pagevalues[$i][$j];

+            if ($min == 0 || @$pagevalues[$i][$j] < $min)

+                $min = @$pagevalues[$i][$j];

+        } else {

+            @$pagevalues[$i][$j] = ((@$pagevalues[$i][$j] + (@$pagevalues[$i + 1][$j] + @$pagevalues[$i][$j + 1]

+                    + @$pagevalues[$i - 1][$j] + @$pagevalues[$i][$j - 1]) / 4) / 2) - 9;

+            @$pagevalues[$i - 1][$j] = ((@$pagevalues[$i - 1][$j] + (@$pagevalues[$i][$j] + @$pagevalues[$i - 1][$j + 1]

+                    + @$pagevalues[$i - 2][$j] + @$pagevalues[$i - 1][$j - 1]) / 4) / 2) - 9;

+            @$pagevalues[$i][$j - 1] = ((@$pagevalues[$i][$j - 1] + (@$pagevalues[$i + 1][$j - 1] + @$pagevalues[$i][$j]

+                    + @$pagevalues[$i - 1][$j - 1] + @$pagevalues[$i][$j - 2]) / 4) / 2) - 9;

+        }

+    }

 }

 //echo $max." ".$min;

 //echo "<table width='100%'>";

-for ($i = 0;$i < $xdivs; $i++ ) {

+for ($i = 0; $i < $xdivs; $i++) {

 //   echo "<tr>";

-   for ($j = 0; $j < $ydivs; $j++ ) {

+    for ($j = 0; $j < $ydivs; $j++) {

 //   echo ("<td>". log10(@$pagevalues[$i][$j])/log10($max) ."</td>");

-   if ((@$pagevalues[$i][$j]) > $min) {

-      $x = $i*($width/$xdivs);

-      $x1 = $borderLeft + $x -($width/$xdivs);

-      $x2 = $borderLeft + $x +($width/$xdivs);

-      $y = $j*($height/$ydivs);

-      $y1 = $borderTop + $y - ($height/$ydivs);

-      $y2 = $borderTop + $y + ($height/$ydivs);

-      imagefilledrectangle ($handle, $x1, $y1, $x2, $y2, $colorset[(int)((log10(@$pagevalues[$i][$j])/log10($max))*249)]);

-   }

-   }

+        if ((@$pagevalues[$i][$j]) > $min) {

+            $x = $i * ($width / $xdivs);

+            $x1 = $borderLeft + $x - ($width / $xdivs);

+            $x2 = $borderLeft + $x + ($width / $xdivs);

+            $y = $j * ($height / $ydivs);

+            $y1 = $borderTop + $y - ($height / $ydivs);

+            $y2 = $borderTop + $y + ($height / $ydivs);

+            imagefilledrectangle($handle, $x1, $y1, $x2, $y2, $colorset[(int) ((log10(@$pagevalues[$i][$j]) / log10($max)) * 249)]);

+        }

+    }

 //echo "</tr>";

 }

 //echo "</table>"

 

-header ("Content-type: image/png");

-ImagePng ($handle); 

-

-

+header("Content-type: image/png");

+ImagePng($handle);

 ?>