#!/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 = <STDIN>);
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 E<lt>jiro@cpan.orgE<gt>
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=cut