tower UI, coverage map, etc.
[freeside.git] / httemplate / misc / sector_coverage-json.cgi
diff --git a/httemplate/misc/sector_coverage-json.cgi b/httemplate/misc/sector_coverage-json.cgi
new file mode 100644 (file)
index 0000000..9fd08d7
--- /dev/null
@@ -0,0 +1,40 @@
+<% encode_json($collection) %>
+<%init>
+my @sectors;
+if ( my $towernum = $cgi->param('towernum') ) {
+  @sectors = qsearch('tower_sector', { towernum => $towernum });
+} elsif ( my $sectornum = $cgi->param('sectornum') ) {
+  @sectors = FS::tower_sector->by_key($sectornum);
+} else {
+  die "towernum or sectornum required";
+}
+my @features;
+my $collection = {
+  type => 'FeatureCollection',
+  features => \@features,
+};
+foreach my $sector (@sectors) {
+  my $sectornum = $sector->sectornum;
+  my $low = $sector->db_low;
+  my $high = $sector->db_high;
+  my $color = $sector->tower->color || 'green';
+  foreach my $coverage ( $sector->sector_coverage ) {
+    #note $coverage->geometry is already JSON
+    my $level = $coverage->db_loss;
+    push @features, {
+      type => 'Feature',
+      id => "sector/$sectornum/$level",
+      properties => {
+        level => $level,
+        low   => ($level == $low ? 1 : 0),
+        high  => ($level == $high ? 1 : 0),
+        style => {
+          strokeColor => $color,
+          fillColor => $color,
+        },
+      },
+      geometry => decode_json($coverage->geometry),
+    };
+  }
+}
+</%init>