smartparking_planparser
API 소개

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"      // 설비 유형
}