2012-06-30 3 views
2

공공 장소의 평면도를 나타내는 모양 데이터를 저장해야하는 Rails 앱을 작성하고 있습니다. 이 공간은 대부분 교회와 콘서트 홀입니다. 많은 모양은 매우 단순 할 것이지만 ("팬"또는 "신발 상자") 일부는 더 복잡 할 것입니다 (예 : like this).룸 형상 데이터를 레일스에 저장하는 방법은 무엇입니까?

저는 Rails에 처음 접했고 GIS 응용 프로그램에 완전히 익숙하지 않습니다. (GIS에 문제가 있습니까? 확실하지 않습니다.)

누구든지 내 데이터베이스에이 정보를 저장하는 데 사용해야하는 데이터 유형을 제안 할 수 있습니까? 방 모양을 다각형으로 저장해야합니까? 또는 some venues에있는 곡면을보다 정확하게 나타낼 수있는 데이터 유형이 더 적합한 데이터 유형입니까?

답변

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을 살펴 보시기 바랍니다.

다른 유형의 곡선 경로 (예 : 베 지어 곡선)를 나타내려면이 방법을 약간 변경해야합니다.

+0

이것은 매력처럼 작동합니다. 정말 고마워. :) –

관련 문제