diff options
author | Mark Wells <mark@freeside.biz> | 2016-04-13 19:18:34 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2016-04-13 19:18:34 -0700 |
commit | ccd822eb8751deae96b57df4ce6abc56a195b9c4 (patch) | |
tree | 091b99fb7c634b9b39961ccb6468def0a8b82dcc /httemplate/misc | |
parent | 916c7d12076875cfc090ffaebde8f5add436430e (diff) |
tower location CSV download, #39776
Diffstat (limited to 'httemplate/misc')
-rw-r--r-- | httemplate/misc/tower-export.html | 36 |
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> |