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

NAME

DBIx::Class::InflateColumn::Geo - Inflate geometric columns to data structures

Requires Perl 5.10.1+ Travis status Distribution kwalitee CPAN Testers result

VERSION

Version 0.0100, released 2018-10-27.

SYNOPSIS

    package TheSchema::Result::Park;
    use base 'DBIx::Class::Core';

    __PACKAGE__->load_components(qw/InflateColumn::Geo/);
    __PACKAGE__->add_columns({
        location => {
            data_type => 'point'
        },
        secondary_location => {
            data_type => 'point',
            geo_srid => 4326,
            geo_xname => 'longitude',
            geo_yname => 'latitude',
            geo_with_astext => 1,
        },
    });

Later: my $park = $schema->resultset('Park')->create({ location => { x => 15.43, y => 54.32 }, secondary_location => { longitude => 12.32, latitude => 45.9843 }, }); say $park->location->{'x'}; # 15.43 say $park->secondary_location->{'latitude'}; # 45.9843 say $park->secondary_location->{'astext'}; # POINT(12.32 45.9843)

    # Values can also be given as an array ref or as a space-separated string, both in x/longitude, y/latitude order:
    my $same_park = $schema->resultset('Park')->create({
        location => [15.43, 54.32],
        secondary_location => '12.32 45.9843',
    });

DESCRIPTION

DBIx::Class::InflateColumn::Geo inflates geometry columns (so far, only POINT is supported) to more accessible data structures.

COLUMN SPECIFICATION OPTIONS

Usage shown in the synopsis.

geo_srid

The spacial reference identifier you wish to use.

Default: 4326 (aka WGS 84)

Set it to undef if you want to use your database's default.

geo_xname

The name you wish to use for the X (or longitude) value.

Default: x

geo_yname

The name you wish to use for the Y (or latitude) value.

Default: y

geo_with_astext

A boolean determining whether the Well-known text of the column is included in the inflated hash. It is not used during deflation.

Default: 0

COMPATIBILITY

I have only tested this on MariaDB 10.*.

SEE ALSO

SOURCE

https://github.com/Csson/p5-DBIx-Class-InflateColumn-Geo

HOMEPAGE

https://metacpan.org/release/DBIx-Class-InflateColumn-Geo

AUTHOR

Erik Carlsson <info@code301.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by Erik Carlsson.

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