Aleksey Korabelshchikov > Geo-Parse-OSM-0.42 > Geo::Parse::OSM::Singlepass

Download:
Geo-Parse-OSM-0.42.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.42   Source  

NAME ^

Geo::Parse::OSM::Singlepass - Single pass OpenStreetMap file parser

VERSION ^

version 0.42

SYNOPSIS ^

Geo::Parse::OSM::Singlepass extends Geo::Parse::OSM class to resolve geometry on one pass. It faster than ::Multipass, but uses much more memory and fails on old-style multipolygons.

    use Geo::Parse::OSM::Singlepass;

    my $osm = Geo::Parse::OSM::Singlepass->new( 'planet.osm.gz' );
    $osm->seek_to_relations;
    $osm->parse( sub{ warn $_[0]->{id}  if  $_[0]->{user} eq 'Alice' } );

METHODS ^

new

    my $osm = Geo::Parse::OSM::Singlepass->new( 'planet.osm' );

Creates parser instance and makes one pass to load node coords, way chains and multipolygon lists.

You can add extra custom callback function 'pass1' for every object

    my $osm = Geo::Parse::OSM::Singlepass->new( 'planet.osm', pass1 => sub{ ... } );

parse

Same as in Geo::Parse::OSM, but callback object has additional fields for multipolygon objects:

* outer - list of outer rings (ring is a closed list of node ids) * inner - inner rings

latlon

Returns coordinates of node.

    my ($lat,$lon) = $osm->latlon( '1234578' );

AUTHOR ^

liosha, <liosha at cpan.org>

BUGS ^

Please report any bugs or feature requests to bug-geo-parse-osm at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Geo-Parse-OSM. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT ^

You can find documentation for this module with the perldoc command.

    perldoc Geo::Parse::OSM

You can also look for information at:

ACKNOWLEDGEMENTS ^

LICENSE AND COPYRIGHT ^

Copyright 2010 liosha.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

syntax highlighting: