Net-GPSD

 view release on metacpan or  search on metacpan

doc/display_device.cgi  view on Meta::CPAN

$sth->execute($device, $limit) or die($DBI::errstr);
my $data=$sth->fetchall_arrayref({});#[{},{},...]
my $trackcount=scalar(@$data);

$sth=$dbh->prepare("SELECT AVG(lat) as latavg, AVG(lon) as lonavg, MAX(lat) as latmax, MAX(lon) as lonmax, MIN(lat) as latmin, MIN(lon) as lonmin FROM tracking WHERE device=?;");
$sth->execute($device) or die($DBI::errstr);
my $devicestats=$sth->fetchall_arrayref({});#[{},{},...]
$devicestats=$devicestats->[0]; #{}
#print "latavg: ", $devicestats->{'latavg'}, "\n";
my $latavg=$devicestats->{'latavg'};
my $lonavg=$devicestats->{'lonavg'};
my $latmin=$devicestats->{'latmin'};
my $lonmin=$devicestats->{'lonmin'};
my $latmax=$devicestats->{'latmax'};
my $lonmax=$devicestats->{'lonmax'};

$sth=$dbh->prepare("SELECT device, count(*)
                    FROM tracking
                    GROUP BY device
                    ORDER BY device;");
$sth->execute() or die($DBI::errstr);
my $devicelist=$sth->fetchall_arrayref(); #[[],[],...]
my %devicecount=map {$_->[0]=>$_->[1]} @$devicelist;
$sth->finish;
$dbh->disconnect();

my $layer='';
my $icon='icon0';
my @table=([qw{id device lat lon dtg speed heading}]);

foreach (@$data) {
  my $id=$_->{'id'};
  my $device=$_->{'device'};
  my $lat=$_->{'lat'};
  my $lon=$_->{'lon'};
  my $dtg=$_->{'dtg'};
  my $speed=$_->{'speed'};
  my $heading=$_->{'heading'};

 #//createInfoText($lat,$lon,$device,$dtg,$speed,$heading)
  $layer.=
  qq{
    point = new GPoint($lon, $lat);
    points.push(point);
    html = "<p>ID: $id<br/>Device: $device<br/>Lat: $lat<br/>Lon: $lon<br/>DTG: $dtg</p>";
    marker = createMarker(point, $icon, html);
    map.addOverlay(marker);
  };
  push @table, [$id,$device,$lat,$lon,$dtg,$speed,$heading];
  $icon='icon1';
}
my $lat=$data->[0]->{'lat'};
my $lon=$data->[0]->{'lon'};
my $dtg=$data->[0]->{'dtg'};
my $speed=$data->[0]->{'speed'};
my $heading=$data->[0]->{'heading'};
my $device=$data->[0]->{'device'};
my $form=join "", 
         $query->start_form(-action=>$query->script_name()),
         "Device: ",
         $query->popup_menu(-name=>'device',
	                    -values=>[map {$_->[0]} @$devicelist]),
         $query->submit(-value=>"Go!"),
         $query->end_form();

unless (defined($data)) {
print $query->header(q{text/html}),
      $query->p("Error: database returned bad data.");
} else {
print $query->header(q{text/html}),
q{<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:v="urn:schemas-microsoft-com:vml">
  <head>},
qq{<script src="http://maps.google.com/maps?file=api&v=1&key=$googlekey" type="text/javascript"></script>
    <style type="text/css">v\:* {behavior:url(#default#VML);}</style>
  </head>
}, #end of q{}
qq{
  <body>
    <table>
      <tr>
        <td colspan="2">
          $form
        </td>
      </tr>
      <tr>
        <td valign="top">
          <div id="map" style="width: 480px; height: 360px"></div>
        </td>
        <td>
          <table>
            <tr>
              <td colspan="2">Current Track Properties</td>
            </tr>
            <tr>
              <td>Device</td><td><div id="track_device"></div></td>
            </tr>
            <tr>
              <td>Lat</td><td><div id="track_lat"></div></td>
            </tr>
            <tr>
              <td>Lon</td><td><div id="track_lon"></div></td>
            </tr>
            <tr>
              <td>DTG</td><td><div id="track_dtg"></div></td>
            </tr>
            <tr>
              <td>Speed</td><td><div id="track_speed"></div></td>
            </tr>
            <tr>
              <td>Heading</td><td><div id="track_heading"></div></td>
            </tr>
            <tr>
              <td>Lat Average</td><td><div id="track_latavg"></div></td>
            </tr>
            <tr>
              <td>Lon Average</td><td><div id="track_lonavg"></div></td>
            </tr>
            <tr>



( run in 2.613 seconds using v1.01-cache-2.11-cpan-364913b4093 )