2016-03-07 22 views
0

我的Geokit插件工作正常,但在geocoder.us下来后,它停止工作并显示错误。 Geokit::Geocoders::GeocodeError。现在我怎样才能禁用geocoder.us服务,并只使用geocoder.ca和google服务。Geokit不能与geocoder.us和google api一起工作

这里是我的代码:

if defined? Geokit 
    # These defaults are used in Geokit::Mappable.distance_to and in acts_as_mappable 
    Geokit::default_units = :miles 
    Geokit::default_formula = :sphere 

    # This is the timeout value in seconds to be used for calls to the geocoder web 
    # services. For no timeout at all, comment out the setting. The timeout unit 
    # is in seconds. 
    Geokit::Geocoders::request_timeout = 3 

    # These settings are used if web service calls must be routed through a proxy. 
    # These setting can be nil if not needed, otherwise, addr and port must be 
    # filled in at a minimum. If the proxy requires authentication, the username 
    # and password can be provided as well. 
    Geokit::Geocoders::proxy_addr = nil 
    Geokit::Geocoders::proxy_port = nil 
    Geokit::Geocoders::proxy_user = nil 
    Geokit::Geocoders::proxy_pass = nil 

    # This is your yahoo application key for the Yahoo Geocoder. 
    # See http://developer.yahoo.com/faq/index.html#appid 
    # and http://developer.yahoo.com/maps/rest/V1/geocode.html 
    Geokit::Geocoders::yahoo = 'REPLACE_WITH_YOUR_YAHOO_KEY' 

    # This is your Google Maps geocoder key. 
    # See http://www.google.com/apis/maps/signup.html 
    # and http://www.google.com/apis/maps/documentation/#Geocoding_Examples 
    Geokit::Geocoders::google = 'AIXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' 

    # This is your username and password for geocoder.us. 
    # To use the free service, the value can be set to nil or false. For 
    # usage tied to an account, the value should be set to username:password. 
    # See http://geocoder.us 
    # and http://geocoder.us/user/signup 
    Geokit::Geocoders::geocoder_us = false 

    # This is your authorization key for geocoder.ca. 
    # To use the free service, the value can be set to nil or false. For 
    # usage tied to an account, set the value to the key obtained from 
    # Geocoder.ca. 
    # See http://geocoder.ca 
    # and http://geocoder.ca/?register=1 
    Geokit::Geocoders::geocoder_ca = false 

    # Uncomment to use a username with the Geonames geocoder 
    Geokit::Geocoders::geonames = "HElloWorld" 

    # This is the order in which the geocoders are called in a failover scenario 
    # If you only want to use a single geocoder, put a single symbol in the array. 
    # Valid symbols are :google, :yahoo, :us, and :ca. 
    # Be aware that there are Terms of Use restrictions on how you can use the 
    # various geocoders. Make sure you read up on relevant Terms of Use for each 
    # geocoder you are going to use. 
    Geokit::Geocoders::provider_order = [:google, :us, :ca] 

    # The IP provider order. Valid symbols are :ip,:geo_plugin. 
    # As before, make sure you read up on relevant Terms of Use for each 
    Geokit::Geocoders::ip_provider_order = [:geo_plugin,:ip] 

end 
+0

你可能想改变'provider_order'阵列并使其像'[:google,:ca,:us]'或只是'[:google,:ca]'without:us。 –

+0

我试过这个[:google,:ca],但仍然不能正常工作 – GurpreetHans

+0

请告诉我们您正在获取的确切错误,以及堆栈跟踪(如果可能的话)。 –

回答

-1

添加gem 'google-v3-geocoder', '1.0.0'在你的Gemfile

然后添加下面的代码行放在geokit_config.rb

Geokit::Geocoders::Google3Geocoder = Geokit::Geocoders::GoogleGeocoder3 
Geokit::Geocoders::provider_order = [:google3, :ca]