/[maps]/web/googlemap.cgi
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /web/googlemap.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 14 - (show annotations)
Mon Dec 3 14:25:40 2007 UTC (16 years, 4 months ago) by dpavlin
File size: 1821 byte(s)
- refactored NMEA parsing into own package from web interface
- script which converts NMEA dump to KML for GoogleMaps
1 #!/usr/bin/perl
2
3 use warnings;
4 use strict;
5
6 use HTML::GoogleMaps;
7 use CGI;
8 use CGI::Carp qw/fatalsToBrowser/;
9 use File::Find;
10 use Data::Dump qw/dump/;
11
12 use lib '../';
13 use NMEA;
14
15 my $trace_path = '/home/dpavlin/x/openmoko/gps/';
16
17 # http://localhost/
18 my $map_key = 'ABQIAAAAVQ5szt9Jd8ws6vgfVQOEmhT2yXp_ZAY8_ufC3CFXhHIE1NvwkxQ1cKf0DwFJcwtpESJEI0hL8QgtYg';
19
20 my @traces;
21 find({ wanted => sub {
22 push @traces, $_ if -f $_;
23 }}, $trace_path);
24
25 my $q = CGI->new;
26
27 print $q->header;
28
29 print qq{
30 <html>
31 <title>Read GPS - NMEA sentence and display it on GoogleMaps</title>
32 <body>
33 <h1>Select GPS NMEA dump</h1>
34 },
35 $q->start_form,
36 $q->popup_menu(
37 -name => 'trace',
38 -values => [
39 map {
40 "$_ (" . (stat("$trace_path/$_"))[7] . " bytes)"
41 }
42 sort {
43 (stat("$trace_path/$a"))[10] <=> (stat("$trace_path/$b"))[10]
44 } @traces
45 ],
46 ),
47 $q->submit( -value => 'Show trace' ),
48 $q->end_form;
49
50 if ( my $trace = $q->param('trace') ) {
51 $trace =~ s/\s.+$//;
52
53 my $map = HTML::GoogleMaps->new(key => $map_key);
54 #$map->center(point => "Zagreb, Hrvatska");
55
56 $trace = "$trace_path/$trace";
57
58 my $points = 0;
59
60 open(my $fh, '<', $trace) || die "can't open $trace: $!";
61 while( <$fh> ) {
62
63 my $hash = NMEA->line( $_ ) || next;
64
65 $map->add_marker(
66 point => [ $hash->{lon}, $hash->{lat} ],
67 html => join('<br/>',
68 map {
69 ucfirst($_) . ': ' . $hash->{$_}
70 } ( qw/time lat lon speed course/ )
71 ),
72 );
73
74 $points++;
75 }
76 close($fh);
77
78 #$map->zoom(10);
79 #$map->v2_zoom(0);
80 $map->controls("large_map_control", "map_type_control");
81 $map->map_type('hybrid');
82
83 my ($head, $map_div, $map_script) = $map->render;
84
85 print qq{
86 <h1>Plotting $points points from }, $q->param('trace'), qq{</h1>
87 $map_div
88 $map_script
89 <a href="http://aprs.gids.nl/nmea/">GPS - NMEA sentence information</a>
90 };
91
92 }
93
94 print qq{
95 </body>
96 </html>
97 };

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26