Smart Parking Plan Parser API 문서
Functions 모듈 (functions.py)
도형 분석 함수들
extract_type(doc, plan_name)
- 설명: 도면에서 특정 레이어의 도형 타입을 추출
- 매개변수:
doc: ezdxf 문서 객체plan_name: 레이어 이름
- 반환값: 도형 타입들의 집합(set)
direction(line)
- 설명: 선의 방향 벡터를 계산
- 매개변수:
line: ezdxf 선 객체
- 반환값: (x 방향, y 방향) 튜플
distance(p1, p2)
- 설명: 두 점 사이의 거리를 계산
- 매개변수:
p1: 시작점 좌표 (x, y)p2: 끝점 좌표 (x, y)
- 반환값: 두 점 사이의 거리 (float)
is_perpendicular(line1, line2)
- 설명: 두 선이 수직인지 확인
- 매개변수:
line1: 첫 번째 선 객체line2: 두 번째 선 객체
- 반환값: 수직 여부 (boolean)
주차 공간 분석 함수들
extract_parking_area(lines, min_line_len, max_line_len)
- 설명: 주어진 선들에서 주차 공간 영역을 추출
- 매개변수:
lines: 선 객체들의 리스트min_line_len: 최소 선 길이max_line_len: 최대 선 길이
- 반환값: 주차 공간을 구성하는 선들의 리스트
get_parkingLocations(doc, config)
- 설명: 도면에서 모든 주차 위치 정보를 추출
- 매개변수:
doc: ezdxf 문서 객체config: 설정 정보 딕셔너리
- 반환값: 주차 위치 정보 리스트
부가 시설물 분석 함수들
get_emergencyBells(index, doc, config)
- 설명: 비상벨 위치 정보 추출
- 매개변수:
index: 층 인덱스doc: ezdxf 문서 객체config: 설정 정보 딕셔너리
- 반환값: 비상벨 위치 정보 리스트
get_camera(index, doc, config)
- 설명: CCTV 카메라 위치 정보 추출
- 매개변수:
index: 층 인덱스doc: ezdxf 문서 객체config: 설정 정보 딕셔너리
- 반환값: CCTV 위치 정보 리스트
유틸리티 함수들
export_svg(doc, config)
- 설명: 도면을 SVG 형식으로 내보내기
- 매개변수:
doc: ezdxf 문서 객체config: 설정 정보 딕셔너리
- 반환값: 없음
설정 파일 형식 (settings.yaml)
filename: "example.dxf" # 입력 도면 파일 경로
floor_start_points: # 각 층의 시작점 좌표
- [0, 0]
- [100, 0]
layer_info: # 도면 레이어 정보
parking: "PARKING"
emergency: "EMERGENCY"
camera: "CAMERA"
size_limits: # 객체 크기 제한
min_length: 50
max_length: 300출력 JSON 형식
주차 공간 정보
{
"position": [x, y], // 주차 공간 중심점 좌표
"points": [ // 주차 공간을 구성하는 점들의 좌표
[x1, y1],
[x2, y2],
[x3, y3],
[x4, y4]
],
"type": "NORMAL" // 주차 공간 유형
}비상벨/CCTV 정보
{
"position": [x, y], // 설치 위치 좌표
"type": "EMERGENCY" // 설비 유형
}