Geocoder gem是否可以使用谷歌API密钥?

时间:2012-07-31 23:12:35

标签: ruby-on-rails ruby-on-rails-3 geocoding rails-geocoder

我正在为我的项目使用ruby geocoder gem,随着项目的不断发展,我开始考虑连接到Google API密钥。将此添加到项目后:

Geocoder.configure do |config|

# geocoding service (see below for supported options):
config.lookup = :google

# to use an API key:
config.api_key = 'my_key'

# geocoding service request timeout, in seconds (default 3):
config.timeout = 5

end 

我收到Google地理编码API错误:请求被拒绝。当我启动应用程序时。从阅读开始,如果他们选择继续使用宝石,似乎其他人转向雅虎。我可以将gem配置为使用google api密钥吗?主要是,我想留意每日查询的数量,以避免超出限制。

7 个答案:

答案 0 :(得分:6)

Geocoder仅支持Google Premier帐户的Google API密钥。

它在github上的自述文件中找到:https://github.com/alexreisner/geocoder#google-google-google_premier

如果您有Google Premier API密钥,则只需将其放入初始化程序中即可:

# config/initializers/geocoder.rb
   Geocoder.configure(:lookup => :google_premier, :api_key => "...")

您的地理编码器将使用您的首要密钥。

答案 1 :(得分:3)

我今天遇到了这个问题并设法通过设置use_https例如

来解决它
Geocoder.configure(
:timeout => 15,
:api_key => "YOUR_KEY",
:use_https => true
)

答案 2 :(得分:2)

创建一个文件: config / initializers / geocoder.rb和这样的设置:

Geocoder.configure(
:lookup => :google_premier,
:api_key=> ['api_key','client_id','client_id_type'],
)

答案 3 :(得分:1)

Geocoder可以正常使用Map API的免费套餐。但是,要使其正常工作,我必须使用此页专门注册密钥。

https://console.developers.google.com/flows/enableapi?apiid=geocoding_backend&keyType=SERVER_SIDE

并设置配置

# config/initializers/geocoder.rb
Geocoder.configure(
  api_key: 'KEY_HERE',
  use_https: true
)

答案 4 :(得分:-1)

默认情况下,Geocoder使用Google的地理编码API来获取坐标和街道地址。因此,我认为Google API密钥应该适用于初始化程序。

我希望这对你有用。

答案 5 :(得分:-1)

Geocoder.configure(
  # geocoding service
  lookup: :google,

  # geocoding service request timeout (in seconds)
  timeout: 3,

  # default units
  units: :km
)

这项工作对我而言。您可以使用http://www.rubygeocoder.com/处的地理编码器文档从rails控制台调用API,而不是使用<%= @place.address %>

来查看/my_map/show.html.erb替换地址或城市等来调用它

答案 6 :(得分:-1)

如果有人仍在查看此内容,由于某些原因Google API已更改且Geocoder不再使用标准配置文件。但是,您可以简单地不使用Geocoder gem进行地理编码和反向地理编码(不要使用Geocoder.search)并使用任何http请求gem来直接调用google api,因为此时使用RestClient,api调用将是

response = RestClient.get 'https://maps.googleapis.com/maps/api/geocode/json?address=' + sanitized_query + '&key=' + your_key

其中,已清理的查询可以是Cupertino, CA地址,也可以是lat=x, lng=y字符串,用于地理编码或反向地理编码。没有必要获得Google高级帐户。