/usr/local/CPAN/mobirc/App/Mobirc/Plugin/GPS/InvGeocoder/EkiData.pm


package App::Mobirc::Plugin::GPS::InvGeocoder::EkiData;
use strict;
use warnings;
use Geo::Coordinates::Converter;
use LWP::UserAgent;
use XML::Simple;
use Encode;

sub inv_geocoder {
    my ($class, $point) = @_;

    my $geo = Geo::Coordinates::Converter->new(point => $point);
    my $p = $geo->convert('degree', 'wgs84');

    my $url = "http://www.ekidata.jp/api/s.php?lon=@{[ $p->lng ]}&lat=@{[ $p->lat ]}";

    my $ua = LWP::UserAgent->new;
    my $res = $ua->get($url);
    if ($res->is_success) {
        my $stations = XML::Simple::XMLin($res->content)->{station};
        my $station = (ref($stations) eq 'ARRAY') ? $stations->[0] : $stations;
        return $station->{line_name} . $station->{station_name};
    } else {
        warn "OOPS";
        return "ERROR OCCURED :" . $res->status_line;
    }
}

1;