问题标签 [rails-geocoder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Geocoder + Rails 3.2 // SQLException: no such column: distance:
当我尝试将 Geocoder gem 应用于我的搜索表单时,我不断收到相同的错误。您将在事件控制器中看到 2 个不同的查询。如果我自己使用它们,它们会很好用。但是,我将它们一起使用,如此处所示,它确实会引发错误。
事件模型
事件控制器
似乎我必须为 Geocoder 查询指定表名。但是,我不知道怎么做。非常感谢任何帮助!谢谢
ruby-on-rails-3 - 当对象有 2 组坐标时使用 rails 地理编码器
导轨 3.1,红宝石 1.9.3
所以我有两个模型,都有两组坐标。
第一个模型 ,Load
有from_lat/lng
, 以及to_lat/lng
.
第二个模型,卡车,也current_lat/lng
有destination_lat/lng
。
我正在尝试做的是找到所有在负载模型的 to_lat/lng 附近具有current_lat/lng
或destination_lat/lng
来自卡车模型的结果。
我的车道模型是这样的:
在我看来,我有:
目前我在我的loads_controller中使用它:
我得到的错误是:
PG::Error: ERROR: column trucks.latitude does not exist
我知道这是因为列的名称不是默认的:latitude
,并且:longitude
. 在此特定搜索期间,我如何指定卡车模型中要使用的列集(destination_lat/lng 或 current_lat/lng)?
ruby-on-rails - 如何将地理编码器数据存储在单独的表中?
我有一个带有Photos
and的应用程序Locations
。
我想要做的是使用字段自动地理定位(使用geoocoder gem)照片,:address
但我想将地理定位数据存储在locations
表中。
通过遵循此 gem 的 github 页面中的教程,我可以将这些数据存储在Photos
表中而没有任何复杂性,但我什至无法想象如何将这种自动地理定位魔法移动到关联的表中。
更重要的是,如果它像标签一样工作,那将是非常棒的——如果提供的地址已经在locations
表格中,脚本应该将它与新/更新的照片相关联。但是如果数据库中没有这样的地址,它应该创建一个新的位置记录。
通常我会通过手动对带有回调的照片进行地理编码来100%手动完成,before_save
但我觉得这是一个非常肮脏的解决方案,我相信有一个我不知道的解决方案。
ruby-on-rails - Implement the gecoder gem in nested resource loop?
I implemented the geocoder gem based on the tutorial on http://railscasts.com/episodes/273-geocoder
This is a part of the house show view template
This show al other houses with the distance in KM, so this works fine.
I already showed on the same house page all the cities of the region where the house is located, like this:
Question: How can i implement the geocoder gem in the @region.cities loop so the visitor can see on the house page how many KM is it to drive from the house to the cities?
Thanks...remco
ruby-on-rails - Rails Gem Geocoder Lookup 方法不遵守 /config/initializers/geocoder.rb
我不知道确切原因,但 gem 工作正常,除了它似乎不遵守配置文件的事实。
当我使用“puts”命令测试其初始化时,它会在控制台中显示正在读取文件。
核心问题是我想让我的地理编码器 gem 使用方法查找来确定使用 maxmind 或 google 的 ip 位置服务的用户位置,因为 freegeoip 只会给我错误的结果。
这是我自己创建的 /config/initializers/geocoder.rb 文件:
我还将此代码与我的 google api 代码和 google 一起使用以进行查找,并且使用 maxmind ... 都返回我,实际上地理编码器仍然使用 freegeoip
我在我的控制器上实现了一个“puts”条目:
so i could detect it on the console output.
I got:
I know that im using a local IP but i already tested on deplyoment and the fact is that the lookup is still using Freegeoip as lookup server.
Hope anybody could help me... Thanks in advance.
ruby-on-rails - Geocoder 的手动模拟
我怎么能在不使用任何 gem 的情况下模拟任何方法?
假设我可以访问一个复杂的对象,例如request
我怎么能做
返回一个模拟值。
我读到我可以geocoder
用宝石模拟结果,但我想知道一种通用的方法。
ruby-on-rails - Geocoder/rails:这段代码在哪里调用了谷歌地图 API?
tl;博士:
我以为我将所有谷歌地图 API 调用从这个方法移到了客户端。我错过了一些东西,但我不知道是什么。
tl;博士代码
我正在调用该near
方法,它是geocoder gem的一部分。
Location.facilities.near(@center, 50, order: :distance).select(&:item_is_searchable)
这是 Locations 模型中的地理编码器代码:
对于地理编码专家来说,这可能是足够的信息来帮助我。如果没有,这里有更多信息。更多信息。
背景故事
我一直在我的 Rails 应用程序中使用 Geocoder gem 并取得了巨大的成功,但现在我遇到了谷歌地图 API 速率限制。
大约一个月前,我遇到了速率限制问题,所以我将大部分请求移到了客户端。我想我错过了什么。
程序流程
- 用户输入他们的搜索
- 浏览器向谷歌地图 API 发送请求
- 谷歌地图 API 返回坐标
- 浏览器将这些坐标发送到服务器
- 服务器搜索坐标附近的位置
- 从找到的位置创建设施和教师列表
- 列表返回浏览器显示
我相信最相关的步骤是 5,因为这是我调用地理编码器 gem 来做我不理解的事情的地方,所以我将对此归零(并抓住一些步骤 4 和 6 的上下文)
地理编码
下面是一个具体的 SQL 语句的例子,它是由 near 方法为坐标生成的(30.267153, -97.74306079999997)
SELECT locations.*, 3958.755864232 * 2 * ASIN(SQRT(POWER(SIN((30.267153 - locations.latitude) * PI() / 180 / 2), 2) + COS(30.267153 * PI() / 180) * COS(locations.latitude * PI() / 180) * POWER(SIN((-97.7430608 - locations.longitude) * PI() / 180 / 2), 2))) AS distance, CAST(DEGREES(ATAN2( RADIANS(locations.longitude - -97.7430608), RADIANS(locations.latitude - 30.267153))) + 360 AS decimal) % 360 AS bearing FROM "locations" WHERE "locations"."addressable_item_type" = 'Facility' AND (locations.latitude BETWEEN 29.54349408444576 AND 30.99081191555424 AND locations.longitude BETWEEN -98.58093480507472 AND -96.90518679492527 AND 3958.755864232 * 2 * ASIN(SQRT(POWER(SIN((30.267153 - locations.latitude) * PI() / 180 / 2), 2) + COS(30.267153 * PI() / 180) * COS(locations.latitude * PI() / 180) * POWER(SIN((-97.7430608 - locations.longitude) * PI() / 180 / 2), 2))) <= 50) ORDER BY distance
如果有更多有用的信息,请告诉我。
ruby-on-rails - 地理编码器距离方法不存在
我正在使用 Ryan Bates 在第 273 集http://railscasts.com/episodes/273-geocoder?view=asciicast中介绍的 Ruby 地理编码器 gem 。在那一集中,他使用以下方法搜索半径 50 公里内的对象(尽管他使用的是 Location 模型,而我使用的是 User 模型)。
当我在带有 postgres 的 Rails 4 应用程序上运行此代码时,它说
在 Ryan 的演示应用程序(此处代码https://github.com/railscasts/273-geocoder/tree/master/siteseer-after)中,他的 Location 模型上没有距离列(因为我没有它)我的用户模型)所以我认为这distance
是由 Geocoder gem 提供的。但是,查看地理编码器的文档http://rdoc.info/github/alexreisner/geocoder/master/frames,没有distance
方法,所有其他类似距离的方法都会产生相同的错误。
有谁知道我如何按距离对查询结果进行排序?
更新在地理编码器主页http://www.rubygeocoder.com/上,它给出了使用的示例distance
,但是当我尝试它时,它说它对用户不存在。
更新
这是生成的sql
ruby-on-rails - 使用国家名称搜索附近的位置不适用于地理编码器
我正在尝试从给定位置获取附近的用户。我有用户的纬度和经度(我从他们的地址中取出)。
现在,当我搜索“NC”之类的术语时,它会显示一些结果,但是当我使用国家名称“Unites States”进行搜索时,它必须显示所有结果,但它不会显示任何结果。
我正在为此使用Geocoder gem。这就是我正在做的事情:
控制器 :
模型:
看法 :
任何想法我应该怎么做,即使我用国家名称搜索它也会返回所有结果。
mongodb - 错误 13038:找不到任何特殊索引:2d(需要索引)、2dsphere(需要索引)
我一直在寻找这个好几个小时。每次我在模型上调用“near”方法时,都会出现以下错误:
我已经尝试过运行:rake db:mongoid:create_indexes
使用 Ruby 2、Rails 4、Mongoid 4、MongoDB 2.4.4 和 Geocoder 1.1.8。顺便说一句,我也在使用 Mongoid-Paranoia Gem。我还尝试将所有 gem 指向他们的 github 存储库,但没有成功。我也在这里打开了一个问题。
任何帮助表示赞赏。