gpt4 book ai didi

ruby-on-rails - Geokit 和 rails 3

转载 作者:行者123 更新时间:2023-12-04 06:18:09 26 4
gpt4 key购买 nike

我正在使用带有 rails 3 的 geokit gem 和插件。似乎它们存在一个已知问题,可以在此处查看 http://github.com/andre/geokit-rails/issues#issue/15

现在,我尝试按照底部提供的解决方案进行操作。我粘贴了该函数定义,在文件末尾,就在acts_as_mapable 上方,并且在第一次被调用之后,但每次都没有发生。

知道还能做什么吗?

谢谢

最佳答案

我在将我的应用程序升级到 rails 3 时遇到了类似的问题。我仍在使用 Geokit 进行地理编码,但使用 Active Record 范围进行基于距离的数据库查询。它非常方便,而且您仍然可以获得 Active Record 3 的所有优点。这是我的用户模型中的一个示例:

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/

关于ruby-on-rails - Geokit 和 rails 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3472706/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com