问题标签 [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.

0 投票
1 回答
520 浏览

ruby-on-rails - Geocoder + Rails 3.2 // SQLException: no such column: distance:

当我尝试将 Geocoder gem 应用于我的搜索表单时,我不断收到相同的错误。您将在事件控制器中看到 2 个不同的查询。如果我自己使用它们,它们会很好用。但是,我将它们一起使用,如此处所示,它确实会引发错误。

事件模型

事件控制器

似乎我必须为 Geocoder 查询指定表名。但是,我不知道怎么做。非常感谢任何帮助!谢谢

0 投票
0 回答
140 浏览

ruby-on-rails-3 - 当对象有 2 组坐标时使用 rails 地理编码器

导轨 3.1,红宝石 1.9.3

所以我有两个模型,都有两组坐标。

第一个模型 ,Loadfrom_lat/lng, 以及to_lat/lng.
第二个模型,卡车,也current_lat/lngdestination_lat/lng

我正在尝试做的是找到所有在负载模型的 to_lat/lng 附近具有current_lat/lngdestination_lat/lng来自卡车模型的结果。

我的车道模型是这样的:

在我看来,我有:

目前我在我的loads_controller中使用它:

我得到的错误是:
PG::Error: ERROR: column trucks.latitude does not exist

我知道这是因为列的名称不是默认的:latitude,并且:longitude. 在此特定搜索期间,我如何指定卡车模型中要使用的列集(destination_lat/lng 或 current_lat/lng)?

0 投票
1 回答
209 浏览

ruby-on-rails - 如何将地理编码器数据存储在单独的表中?

我有一个带有Photosand的应用程序Locations

我想要做的是使用字段自动地理定位(使用geoocoder gem)照片,:address但我想将地理定位数据存储在locations表中。

通过遵循此 gem 的 github 页面中的教程,我可以将这些数据存储在Photos表中而没有任何复杂性,但我什至无法想象如何将这种自动地理定位魔法移动到关联的表中。

更重要的是,如果它像标签一样工作,那将是非常棒的——如果提供的地址已经在locations表格中,脚本应该将它与新/更新的照片相关联。但是如果数据库中没有这样的地址,它应该创建一个新的位置记录。

通常我会通过手动对带有回调的照片进行地理编码来100%手动完成,before_save但我觉得这是一个非常肮脏的解决方案,我相信有一个我不知道的解决方案。

0 投票
2 回答
75 浏览

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

0 投票
1 回答
857 浏览

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.

0 投票
2 回答
158 浏览

ruby-on-rails - Geocoder 的手动模拟

我怎么能在不使用任何 gem 的情况下模拟任何方法?

假设我可以访问一个复杂的对象,例如request

我怎么能做

返回一个模拟值。

我读到我可以geocoder用宝石模拟结果,但我想知道一种通用的方法。

0 投票
0 回答
367 浏览

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 速率限制。

大约一个月前,我遇到了速率限制问题,所以我将大部分请求移到了客户端。我想我错过了什么。

程序流程

  1. 用户输入他们的搜索
  2. 浏览器向谷歌地图 API 发送请求
  3. 谷歌地图 API 返回坐标
  4. 浏览器将这些坐标发送到服务器
  5. 服务器搜索坐标附近的位置
  6. 从找到的位置创建设施和教师列表
  7. 列表返回浏览器显示

我相信最相关的步骤是 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

如果有更多有用的信息,请告诉我。

0 投票
3 回答
1752 浏览

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

0 投票
2 回答
1539 浏览

ruby-on-rails - 使用国家名称搜索附近的位置不适用于地理编码器

我正在尝试从给定位置获取附近的用户。我有用户的纬度和经度(我从他们的地址中取出)。

现在,当我搜索“NC”之类的术语时,它会显示一些结果,但是当我使用国家名称“Unites States”进行搜索时,它必须显示所有结果,但它不会显示任何结果。

我正在为此使用Geocoder gem。这就是我正在做的事情:

控制器 :

模型:

看法 :

任何想法我应该怎么做,即使我用国家名称搜索它也会返回所有结果。

0 投票
1 回答
773 浏览

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 存储库,但没有成功。我也在这里打开了一个问题。

任何帮助表示赞赏。