【发布时间】:2014-06-19 00:04:20
【问题描述】:
所以我只想从常规地址(字符串)中提取经度/纬度坐标。我去了 geokit gem 文档并准确地做了记录的内容,但我一直收到这个错误:“NameError: uninitialized constant Geokit::Geocoders::OpenSSL”
我在 gemfile 中添加了“geokit”,并且:
require 'rubygems'
require 'geokit'
def get_coordinates
@a = Geokit::Geocoders::GoogleGeocoder.geocode '140 Market St, San Francisco, CA'
@a.ll
end
我之前也尝试过添加这个,但无济于事。 Geokit::Geocoders::GoogleGeocoder.api_key = api_key
我只想要坐标,如果这不是一个可行的解决方案,有人可以推荐另一个地理编码器。我尝试了railscasts,但也无法让它工作。任何帮助将不胜感激!
【问题讨论】:
-
大家好,我是geokit的维护者。我们在 ruby 1.8 - 2.1 上运行测试。我想知道在编译 ruby 或没有用 openssl 编译 ruby 时你是否以某种方式没有 OpenSSL。您能否通过告诉我 2 个命令的输出来帮助我:openssl 版本和 ruby -ropenssl -e "require 'openssl'; OpenSSL"正确的调试命令等
-
我必须明确地
require 'openssl'(在 ruby 2.0.0 上测试)才能使这个错误消失(就像@Anastasia 回答 BTW)。 -
我和 OP 有同样的问题。我在 Mac 上运行 Mavericks,并且正在使用 Ruby 2.1。当我在 irb 中运行这些命令时,只要我首先需要 openssl,geokit 就可以工作。但是,在我的 Padrino 应用程序中,我收到了相同的错误消息(“未初始化的常量 Geokit”),即使我在那里也明确需要 openssl。 Geokit 在我的 Gemfile 中,已安装,并且还出现在我的 Padrino 应用程序的“外部库”下。 openssl 版本产生:“OpenSSL 0.9.8zc 201 年 10 月 15 日。”当我运行 ruby 命令时,我没有得到任何响应,只是回到提示符。
-
好吧,我错了。通常工头(heroku padrino 守护进程)会在不需要重新启动的情况下进行更改,但在这种情况下不会。不过,它在重新启动后确实有效。
标签: geokit