首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Geokit和rails 3

Geokit和rails 3
EN

Stack Overflow用户
提问于 2010-08-13 07:06:12
回答 6查看 6.8K关注 0票数 4

我在rails 3中使用geokit gem和plugin。似乎它们有一个已知的问题,可以在这里http://github.com/andre/geokit-rails/issues#issue/15看到。

现在,我尝试按照底部提供的解决方案进行操作。我将函数定义粘贴到文件的末尾,就在acts_as_mapable的上方,在第一次调用它之后,但每次都没有任何反应。

你知道还能做什么吗?

谢谢

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-09-06 13:23:56

对于那些仍然对geokit有问题的人,我转向使用mongodb……它有内置的距离搜索和所有...

票数 1
EN

Stack Overflow用户

发布于 2010-10-13 02:28:59

我在将我的应用升级到Rails3时遇到了类似的问题。我仍然在使用Geokit进行地理编码,但活动记录范围用于基于距离的数据库查询。这是非常方便的,而且你仍然可以得到所有的活动记录3的好处。下面是我的用户模型中的一个示例:

代码语言:javascript
复制
scope :near, lambda{ |*args|
                  origin = *args.first[:origin]
                  if (origin).is_a?(Array)
                    origin_lat, origin_lng = origin
                  else
                    origin_lat, origin_lng = origin.lat, origin.lng
                  end
                  origin_lat, origin_lng = deg2rad(origin_lat), deg2rad(origin_lng)
                  within = *args.first[:within]
                  { 
                    :conditions => %(
                      (ACOS(COS(#{origin_lat})*COS(#{origin_lng})*COS(RADIANS(users.lat))*COS(RADIANS(users.lng))+
                      COS(#{origin_lat})*SIN(#{origin_lng})*COS(RADIANS(users.lat))*SIN(RADIANS(users.lng))+
                      SIN(#{origin_lat})*SIN(RADIANS(users.lat)))*3963) <= #{within}
                    ),
                    :select => %( users.*,
                      (ACOS(COS(#{origin_lat})*COS(#{origin_lng})*COS(RADIANS(users.lat))*COS(RADIANS(users.lng))+
                      COS(#{origin_lat})*SIN(#{origin_lng})*COS(RADIANS(users.lat))*SIN(RADIANS(users.lng))+
                      SIN(#{origin_lat})*SIN(RADIANS(users.lat)))*3963) AS distance
                    )
                  }
                }

这里有一篇关于这个主题的更多细节的博客文章:http://stcorbett.com/code/distance-queries-with-rails-3-without-geokit/

票数 7
EN

Stack Overflow用户

发布于 2011-04-20 10:46:05

jlecour's port to rails 3应该可以解决你去年遇到的任何问题。

如果您正在进行距离计算,请确保使用的是mysql或postgres。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3472706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档