Geo::Parse::OSM(3p)

NAME
Geo::Parse::OSM - OpenStreetMap XML file regexp parser

VERSION
version 0.42

SYNOPSIS
    use Geo::Parse::OSM;

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

METHODS

  new
Creates parser instance and opens file

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

Compressed files (.gz, .bz2) are also supported.

  parse
Parses file and executes callback function for every object. Stops parsing if callback returns 'stop'

    $osm->parse( sub{ warn $_[0]->{id} and return 'stop' } );

It's possible to filter out unnecessary object types

    $osm->parse( sub{ ... }, only => 'way' );
    $osm->parse( sub{ ... }, only => [ 'way', 'relation' ] );

  seek_to
Seeks to the file position or to the first object of selected type.

    $osm->seek_to( 0 );
    $osm->seek_to( 'way' );

Can be slow on compressed files!

  seek_to_nodes

  seek_to_ways

  seek_to_relations
    $osm->seek_to_ways;     # same as seek_to('way');

  parse_file
Class method - creates parser instance and does one parser() pass. Returns created parser object.

    use Data::Dumper;
    Geo::Parse::OSM->parse_file( 'planet.osm', sub{ print Dumper $_[0] } );

FUNCTIONS

  object_to_xml
Returns xml representation of the callback object.

    sub callback {
        print Geo::Parse::OSM::object_to_xml( shift @_);
    }
    Geo::Parse::OSM->parse_file( 'planet.osm', \&callback );

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:

•   RT: CPAN's request tracker

    <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Geo-Parse-OSM>

•   AnnoCPAN: Annotated CPAN documentation

    <http://annocpan.org/dist/Geo-Parse-OSM>

•   CPAN Ratings

    <http://cpanratings.perl.org/d/Geo-Parse-OSM>

•   Search CPAN

    <http://search.cpan.org/dist/Geo-Parse-OSM/>

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.