summaryrefslogtreecommitdiff
path: root/httemplate/misc
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2016-04-13 19:18:34 -0700
committerMark Wells <mark@freeside.biz>2016-04-13 19:18:34 -0700
commitccd822eb8751deae96b57df4ce6abc56a195b9c4 (patch)
tree091b99fb7c634b9b39961ccb6468def0a8b82dcc /httemplate/misc
parent916c7d12076875cfc090ffaebde8f5add436430e (diff)
tower location CSV download, #39776
Diffstat (limited to 'httemplate/misc')
-rw-r--r--httemplate/misc/tower-export.html36
1 files changed, 36 insertions, 0 deletions
diff --git a/httemplate/misc/tower-export.html b/httemplate/misc/tower-export.html
new file mode 100644
index 000000000..d359a97a5
--- /dev/null
+++ b/httemplate/misc/tower-export.html
@@ -0,0 +1,36 @@
+<%init>
+# currently, browse/tower just shows all towers, so do the same here
+my @towers = qsearch({ table => 'tower' });
+http_header('Content-Type' => 'text/csv');
+http_header('Content-Disposition' => 'attachment;filename=towers.csv');
+if ( $cgi->param('format') eq 'tc' ) {
+ # towercoverage.com format: not a true CSV, no quoting (so no way to include
+ # commas in any field, so we strip them)
+
+ # lat/long are signed decimals, northeast positive
+ # height is in meters
+ # Description/Group are not necessary
+ # sector/antenna information (orientation, beamwidth, gain, frequency,
+ # etc.) is in what TC calls a "Coverage", which can't be edited this way.
+ my $text = "SiteName,Latitude,Longitude,Description,Group,Height\n";
+
+ foreach my $tower (@towers) {
+ next if ( !$tower->latitude or !$tower->longitude );
+
+ my $name = $tower->towername;
+ my $height = ( ($tower->altitude || 0 ) + ($tower->height || 0) ) / 3.28;
+ $name =~ s(,)( )g;
+ $text .= join(',',
+ $name,
+ $tower->latitude,
+ $tower->longitude,
+ '',
+ '',
+ $height,
+ ) . "\n";
+ }
+ $m->print($text);
+} else {
+ die('unknown format '.$cgi->param('format'));
+}
+</%init>