The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Geo::Heatmap - generate a density map (aka heatmap) overlay layer for Google Maps

VERSION

version 0.05

REQUIRES

Moose

Storable

CHI

Image::Magick

METHODS

tile

 tile();

  return the tile image in png format

ATTRIBUTES

has 'debug' => (isa => 'Str', is => 'rw'); has 'cache' => (isa => 'Object', is => 'rw'); has 'logfile' => (isa => 'Str', is => 'rw'); has 'return_points' => (isa => 'CodeRef', is => 'rw'); has 'zoom_scale' => (isa => 'HashRef', is => 'rw'); has 'palette' => (isa => 'Str', is => 'rw');

USAGE

    Create a Heatmap layer for GoogleMaps

    my $ghm = Geo::Heatmap->new();
    $ghm->palette('palette.store');
    $ghm->zoom_scale( {
      1 => 298983,
      2 => 177127,
      3 => 104949,
      4 => 90185,
      5 => 70338,
      6 => 37742,
      7 => 28157,
      8 => 12541,
      9 => 3662,
      10 => 1275,
      11 => 417,
      12 => 130,
      13 => 41,
      14 => 18,
      15 => 10,
      16 => 6,
      17 => 2,
      18 => 0,
    } );

    $ghm->cache($cache);
    $ghm->return_points( \&get_points );
    my $image = $ghm->tile($tile);


    You need a color palette (one is included) to encode values to colors, in Storable Format as an arrayref of arrayrefs eg
      [50] = [34, 45, 56]
    which means that a normalized value of 50 would lead to an RGB color of 34% red , 45% blue, 56% green

    zoom_scale
      the maximum number of points for a given google zoom scale, you would be able to extract to values from the denisity log
      or derive them from your data in some cunning way

    cache
      you need some caching for the tiles otherwise the map would be quite slow. Use a CHI object with the cache you like

    return_points
      is a function reference which expects a single hashref as a parameter which defines two LAT/LONG points to get all
      data points within this box
      $r->{LATN}, $r->{LNGW}), $r->{LATS}, $r->{LNGE}
      the function has to return an arrayref of arrayrefs of the points within the box

    tile
      returns the rendered image

AUTHOR

Mark Hofstetter <hofstettm@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Mark Hofstetter

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.