我将 RoR 与 PostGIS 一起使用来存储位置数据。我正在尝试使用圆存储估计的位置(例如带半径的中心点)。
我已经尝试过类似的方法,但它不起作用:
@location = Location.new(:place_id => place.id,
:circle => %{ST_Buffer(ST_MakePoint(#{latitude}, #{longitude})::geography, #{accuracy})})
我也尝试过使用 RGeo 和它的工厂,但不知道如何准确地使用它。
任何帮助将不胜感激。谢谢。
编辑1:我取得了一些进展。
factory = RGeo::Cartesian.factory
center_point = factory.point(latitude, longitude)
circle = center_point.buffer(accuracy)
@location = Location.new(:place_id => place.id,
:circle => circle)
但是 - 现在它抛出以下异常:
can't cast RGeo::Cartesian::Polygon Impl to string
再次,任何帮助将不胜感激。