【问题标题】:How to store room shape data in Rails?如何在 Rails 中存储房间形状数据?
【发布时间】:2023-03-22 12:13:01
【问题描述】:

我正在编写一个 Rails 应用程序,它需要存储表示公共空间平面图的形状数据。这些空间主要是教堂和音乐厅。许多形状非常简单(“扇形”或“鞋盒”),但有些形状会更复杂(例如like this)。

我对 Rails 还很陌生,对 GIS 应用程序完全陌生。 (这是 GIS 问题吗?我不确定。)

谁能建议我应该使用哪种数据类型将这些信息存储在我的数据库中?房间形状应该存储为多边形吗?或者有没有更合适的数据类型,比如可以更准确地表示some venues中找到的曲面?

【问题讨论】:

    标签: ruby-on-rails gis polygon


    【解决方案1】:

    这可能不是最有效的方法,但您可以从定义一些模型开始,例如:

    class Path
        has_many :nodes
    end
    
    class Node
        attr_accessible :x, :y, :next_id
        belongs_to :next, class_name: 'Node'
        has_one :arc_extension
    end
    
    class ArcExtension
        attr_accessible :radius, :x1, :y1, :x2, :y2
        belongs_to :node
    end
    

    路径只是节点的集合。每个节点将存储路径上一个点的坐标以及路径中下一个节点的 id。如果您希望一个节点代表弧的起点,您可以为该节点创建一个弧延伸。 arc_extension 可能会存储弧的半径以及构造弧所需的两个参考点。有关如何定义这些参考点的参考,您可以查看 HTML5 画布中使用的 arcTo 方法:http://dbp-consulting.com/tutorials/canvas/CanvasArcTo.html

    如果您想表示其他类型的曲线路径(例如贝塞尔曲线),您应该可以稍微更改此方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-09
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2023-03-21
      • 2021-10-21
      • 1970-01-01
      相关资源
      最近更新 更多