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.