gpt4 book ai didi

Ruby、SQLite 和三角函数

转载 作者:数据小太阳 更新时间:2023-10-29 08:10:26 24 4
gpt4 key购买 nike

我希望能够使用各种三角函数从使用 SQLite 数据库的 ruby​​ 中查找纬度和经度之间的距离。 SQLite 不提供三角函数(cossinpow)所以我正在寻找如何实现这些函数 - 有什么想法吗?

我知道我可以使用其他数据库(PostgreSQL、MySQL 等),但我需要使用 SQLite,因此不需要安装数据库。关于如何编译可以插入到 sqlite3 gem 中的 SQLite 扩展的任何想法?

谢谢!

最佳答案

如果写一个扩展太麻烦,我通常对这个问题做的是通过使用 lat/lng 边界框来近似我想要选择的距离(并高估一点),这会显着减少样本空间,然后在 ruby​​ 中迭代该集合以找到正确距离内的确切点集。

编辑:看起来有人已经编写了一个库,可以让您轻松定义函数,就好像它们是存储过程一样。我不知道它是不是一个 ruby​​ 实现,或者它是否做了一些诡计来先将它编译成 C,所以我不知道它的性能,但它似乎很容易使用。 https://github.com/copiousfreetime/amalgalite

require 'rubygems'
$: << "../lib"
$: << "../ext"
require 'amalgalite'
db = Amalgalite::Database.new( "mydb.sqlite" )
db.define_function( 'geo_dist' ) do |lat1, lng1, lat2, lng2|
# Haversine formular here to calculate the distance
end

这是完整的例子 https://github.com/copiousfreetime/amalgalite/blob/master/examples/define_function.rb

关于Ruby、SQLite 和三角函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7065554/

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