2010-10-02 11 views
5

मैं जियो :: कोडर :: कई पर्ल मॉड्यूल & का उपयोग कर कुछ अजीब परिणाम प्राप्त कर रहा हूं। जब मैं Google को प्रदाता के रूप में सेट करता हूं, तो परिणाम सही तरीके से प्रदर्शित होते हैं। हालांकि, प्रदाता को बिंग में सेट करने से अक्षांश & देशांतर मानों को उलट दिया जाएगा। उदाहरण के लिए:जियोकोडिंग .... क्या मैंने कुछ गलत किया?

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"; 
} 

यह (सही) वापस आ जाएगी:

देशांतर: -१२२.०८५०९९ अक्षांश: 37,422782

जब मैं बिंग के लिए प्रदाता बदलने के लिए, बातें धराशायी हो जाना:

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

यह रिटर्न:

रेखांश: 37.42317 6 अक्षांश: -122.085962

बिंग लगातार परिणाम पीछे देता है? मॉड्यूल में मैं इसे कैसे बदलूं?

+0

मैंने मॉड्यूल के लेखक को ईमेल के माध्यम से अधिसूचित किया है लेकिन मैं खुद को कैसे ठीक कर सकता हूं? – kristen

उत्तर

10

Geo/Coder/Many/Bing.pm में, लगता है लाइनों:

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

और स्वैप 0 और 1:

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

यह Geo-Coder-Many में एक बग, भू नहीं :: सांकेतिक शब्दों में बदलनेवाला :: बिंग है। सुनिश्चित करें कि आपने बग की रिपोर्ट की है और यह फिक्स right author पर है।

+0

+1: यह केवल उत्कृष्ट है कि आपने पाया कि ... – dawg

+0

यह बग [जिओ-कोडर-कई] (http://search.cpan.org/dist/Geo-Coder-Many/) 0.14 में तय किया गया है, जो कि कल जारी किया गया था। – cjm

संबंधित मुद्दे