NAME

Geo::Parse::OSM - OpenStreetMap file parser

VERSION

Version 0.221

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' );

seek_to

Seeks to the first object of selected type.

$osm->seek_to( 'way' );

Can be slow on compressed files.

seek_to_nodes

seek_to_ways

seek_to_relations

$osm->seek_to_ways;

FUNCTIONS

parse_file

Simple parser - parses contents of file and executes callback function for every object.

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

to_xml

Returns xml representation of the object.

sub callback {
    my ($obj) = @_;
    print Geo::Parse::OSM->to_xml( $obj );
}
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:

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.