我有一个使用 PostGISPOINT
类型来存储位置坐标的 Rails 模型。如何查询边界框中包含的所有位置?边界框来自谷歌地图,如下所示:
/locations?within=40.766159%2C-73.989786%2C40.772781%2C-73.979905&per_page=500
然后在我的模型中,我有一个范围来处理这个问题,但无法弄清楚如何正确查询:
scope :within, ->(box_string) {
sw = box_string.split(",")[0..1].reverse.map {|c| c.to_f}
ne = box_string.split(",")[2..3].reverse.map {|c| c.to_f}
box = "BOX3D(#{sw[0]} #{sw[1]}, #{ne[0]} #{ne[1]})"
where( ***WHAT DO I DO HERE?*** )
}