#!/usr/local/bin/perl use strict; use warnings; use Pod::Usage; use Getopt::Long; use Geo::Coder::Ja qw(:all); GetOptions( 'dbpath=s' => \my $dbpath, 'loadlevel=s' => \my $level, 'encoding=s' => \my $encoding, 'version|v' => \my $version, 'help|h' => \my $help, ); if ($version) { print "Geo::Coder::Ja version $Geo::Coder::Ja::VERSION\n\n"; exit; } pod2usage(0) if $help; $dbpath ||= '/usr/local/share/geocoderja'; $level ||= 'DB_AUTO'; $encoding ||= 'EUC-JP'; my $load_level = eval $level; if ($@) { warn qq/unknown level "$level"/; exit 1; } my $geocoder = Geo::Coder::Ja->new( dbpath => $dbpath, load_level => $load_level, encoding => $encoding, ); while (1) { print 'address/postcode>'; chomp(my $input = ); next unless $input; my $location = $input =~ /^\d{7}$/ ? $geocoder->geocode(postcode => $input) : $geocoder->geocode(location => $input); if ($location) { print "\n"; for (qw/latitude longitude address address_kana/) { print "$_: $location->{$_}\n"; } print "\n"; } else { print "not found.\n\n"; } } exit 1; __END__ =head1 NAME geocoderja - geocode address. =head1 SYNOPSIS geocoderja [options] Options: -d -dbpath dbpath (defaults to /usr/local/share/geocoderja) -l -loadlevel loadLevel (defaults to DB_AUTO) -e -encoding encoding (defaults to EUC-JP) -v -version print version -h -help print this help See also: perldoc Geo::Coder::Ja =head1 DESCRIPTION Geocode address. =head1 AUTHOR Jiro Nishiguchi Ejiro@cpan.orgE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut