2010-10-02 38 views
5

Tôi đang sử dụng Geo :: Coder :: Nhiều mô-đun perl & nhận được một số kết quả lạ. Khi tôi đặt Google làm nhà cung cấp, kết quả được hiển thị chính xác. Tuy nhiên, việc đặt nhà cung cấp thành Bing sẽ đảo ngược vĩ độ & giá trị kinh độ. Ví dụ:Mã hóa địa lý .... tôi có làm gì sai không?

use Geo::Coder::Google; 
use Geo::Coder::Bing; 
use Geo::Coder::Many; 
use Geo::Coder::Many::Util qw(country_filter); 

# Create the Geo::Coder::Many object, telling it to use a 'weighted random' 
# scheduling method 
my $options = { 
    scheduler_type => 'WRR', 
}; 
my $geocoder_many = Geo::Coder::Many->new($options); 


# Create and add a geocoder 
my $Locatorize = Geo::Coder::Google->new(apikey => 'yur Key'); 
my $Locatorize_options = { 
    geocoder => $Locatorize, 
    daily_limit => 2500, #google has a 2,500 limit/day 
}; 
$geocoder_many->add_geocoder($Locatorize_options); 


my $result = $geocoder_many->geocode( 
    { 
     location => '1600 Amphitheatre Parkway Mountain View, CA 94043' 
    } 
); 

if (defined $result) { 
    print "Longitude: ",  $result->{longitude},  "\n"; 
    print "Latitude: ",  $result->{latitude},  "\n"; 
} 
else { 
    print "Failed to geocode!\n"; 
} 

này sẽ trở lại (chính xác):

Longitude: -122,085099 Latitude: 37,422782

Khi tôi thay đổi nhà cung cấp để Bing, mọi thứ không như mong đợi:

my $WhereIzIt = Geo::Coder::Bing->new(key => 'Yur key'); 
my $WhereIzIt_options = { 
    geocoder => $WhereIzIt, 
    daily_limit => 4000, 
}; 
$geocoder_many->add_geocoder($WhereIzIt_options); 

Trả lại:

Longitude: 37.42317 6 Vĩ độ: -122.085962

Bing luôn trả về kết quả ngược? Làm thế nào tôi sẽ thay đổi điều này trong mô-đun?

+0

Tôi đã thông báo cho tác giả của mô-đun qua email nhưng tôi làm cách nào để tự khắc phục? – kristen

Trả lời

10

Trong Geo/Coder/Many/Bing.pm, tìm dòng:

longitude => $raw_reply->{point}->{coordinates}->[0], 
latitude => $raw_reply->{point}->{coordinates}->[1], 

và trao đổi các 0 và 1:

longitude => $raw_reply->{point}->{coordinates}->[1], 
latitude => $raw_reply->{point}->{coordinates}->[0], 

Đây là một lỗi trong Geo-Coder-Many, không GEO :: Coder :: Bing. Đảm bảo bạn đã báo cáo lỗi này và sửa lỗi này thành right author.

+0

+1: đó chỉ là tuyệt vời mà bạn thấy rằng ... – dawg

+0

Lỗi này được sửa trong [Geo-Coder-Many] (http://search.cpan.org/dist/Geo-Coder-Many/) 0.14, đã được phát hành ngày hôm qua. – cjm

Các vấn đề liên quan