주차장 도면 데이터
개요
이 문서는 주차장 도면 데이터를 설명하고, 데이터베이스로 저장하기 위한 스크립트를 안내합니다. 주차장 도면 데이터는 여러 객체들로 구성되어 있으며, 각 객체는 특정한 위치 정보 및 연관된 정보를 포함하고 있습니다. 이 데이터는 주차장 내의 CCTV, 비상벨, 주차 구역, 조명 등 다양한 장비와 위치를 기록한 JSON 형태로 제공됩니다.
도면 데이터 예제
광주 도면 데이터 (2024.09.04)
{
"EmergencyBell": [
{
"id": "unknown_EmergencyBell_0",
"position": [
1931.09,
611.25
],
"linked_cctv_id": "P1_B1_1_1"
},
{
"id": "unknown_EmergencyBell_1",
"position": [
2852.7,
1196.01
],
"linked_cctv_id": "P1_B1_1_2"
}
],
"OccupancyLight": [
{
"id": "occupiedLight_1",
"position": [
1922.97,
902.5
]
},
{
"id": "occupiedLight_2",
"position": [
2855.53,
902.5
]
}
],
"CCTV": {
"light_cctv": [
{
"id": "P1_B1_1_1",
"ip_address": "192.168.219.201 / 24",
"position": [
1922.97,
902.5
],
"linked_emergency_bells": [
"unknown_EmergencyBell_0"
],
"occupied_light": {
"id": "occupiedLight_1",
"position": [
1922.97,
902.5
]
},
"light_line": [
{
"position": [
1228.85,
704.94
],
"points": [
[
0.0,
-0.0
],
[
600.0,
-0.0
]
]
},
{
"position": [
1131.33,
802.44
],
"points": [
[
0.0,
-0.0
],
[
0.0,
200.0
]
]
},
{
"position": [
1923.96,
802.77
],
"points": [
[
0.0,
-0.0
],
[
0.0,
200.0
]
]
},
{
"position": [
1228.85,
1098.45
],
"points": [
[
0.0,
-0.0
],
[
600.0,
-0.0
]
]
}
],
"light_frame": {
"position": [
1129.96,
703.94
],
"points": [
[
0.0,
-0.0
],
[
795.0,
-0.0
],
[
795.0,
396.0
],
[
0.0,
396.0
]
]
},
"zone_code": "zone1",
"parking_areas": [
"ParkingLocations_1",
"ParkingLocations_2",
"ParkingLocations_3",
"ParkingLocations_4",
"ParkingLocations_5",
"ParkingLocations_6",
"ParkingLocations_9",
"ParkingLocations_10",
"ParkingLocations_11",
"ParkingLocations_12",
"ParkingLocations_13",
"ParkingLocations_14"
],
"upper_cctv_id": [],
"lower_cctv_id": [],
"left_cctv_id": [],
"right_cctv_id": [
"P1_B1_1_2"
]
},
{
"id": "P1_B1_1_2",
"ip_address": "192.168.219.202 / 24",
"position": [
2857.98,
902.5
],
"linked_emergency_bells": [
"unknown_EmergencyBell_1"
],
"occupied_light": {
"id": "occupiedLight_2",
"position": [
2855.53,
902.5
]
},
"light_line": [
{
"position": [
2952.43,
705.44
],
"points": [
[
0.0,
-0.0
],
[
400.0,
-0.0
]
]
},
{
"position": [
2854.65,
802.44
],
"points": [
[
0.0,
-0.0
],
[
0.0,
200.0
]
]
},
{
"position": [
3450.65,
802.44
],
"points": [
[
0.0,
-0.0
],
[
0.0,
200.0
]
]
},
{
"position": [
2952.43,
1098.33
],
"points": [
[
0.0,
-0.0
],
[
400.0,
-0.0
]
]
}
],
"light_frame": {
"position": [
2854.65,
703.94
],
"points": [
[
0.0,
-0.0
],
[
596.0,
-0.0
],
[
596.0,
396.0
],
[
0.0,
396.0
]
]
},
"zone_code": "zone2",
"parking_areas": [
"ParkingLocations_7",
"ParkingLocations_8",
"ParkingLocations_15",
"ParkingLocations_16"
],
"upper_cctv_id": [],
"lower_cctv_id": [],
"left_cctv_id": [
"P1_B1_1_1"
],
"right_cctv_id": []
}
],
"warning_cctv": [
{
"id": "P1_B1_1_101",
"ip_address": "192.168.219.211 / 24",
"position": [
1025.69,
2124.13
],
"linked_emergency_bells": [],
"parking_areas": []
},
{
"id": "P1_B1_1_102",
"ip_address": "192.168.219.210 / 24",
"position": [
714.73,
1617.21
],
"linked_emergency_bells": [],
"parking_areas": []
}
]
},
"PreventionLight": [
{
"id": "unknown_preventionLight_0",
"position": [
1075.16,
902.66
],
"angle": -90.0,
"upper_cctv_id": [],
"lower_cctv_id": [],
"left_cctv_id": [],
"right_cctv_id": [
"P1_B1_1_1"
]
}
],
"WarningLight": [
{
"id": "unknown_warningLight_0",
"position": [
716.07,
1617.21
]
}
],
"ParkingLocation": [
{
"id": "ParkingLocations_1",
"position": [
1075.86,
71.25
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "장애인",
"angle": 0.0
},
{
"id": "ParkingLocations_2",
"position": [
1335.86,
71.25
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "장애인",
"angle": 0.0
},
{
"id": "ParkingLocations_3",
"position": [
1597.13,
71.25
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "parkingLocation",
"angle": 0.0
},
{
"id": "ParkingLocations_4",
"position": [
2002.17,
71.25
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "여성전용",
"angle": 0.0
},
{
"id": "ParkingLocations_5",
"position": [
2261.53,
71.25
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "parkingLocation",
"angle": 0.0
},
{
"id": "ParkingLocations_6",
"position": [
2521.51,
71.25
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "parkingLocation",
"angle": 0.0
},
{
"id": "ParkingLocations_7",
"position": [
2926.31,
71.25
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "경차",
"angle": 0.0
},
{
"id": "ParkingLocations_8",
"position": [
3186.31,
71.25
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "경차",
"angle": 0.0
},
{
"id": "ParkingLocations_9",
"position": [
1073.47,
1211.61
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "전기차",
"angle": 0.0
},
{
"id": "ParkingLocations_10",
"position": [
1333.47,
1211.61
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "전기차",
"angle": 0.0
},
{
"id": "ParkingLocations_11",
"position": [
1594.72,
1211.61
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "parkingLocation",
"angle": 0.0
},
{
"id": "ParkingLocations_12",
"position": [
1999.48,
1211.61
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "가족배려",
"angle": 0.0
},
{
"id": "ParkingLocations_13",
"position": [
2258.85,
1211.61
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "교통약자",
"angle": 0.0
},
{
"id": "ParkingLocations_14",
"position": [
2518.85,
1211.61
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "parkingLocation",
"angle": 0.0
},
{
"id": "ParkingLocations_15",
"position": [
2923.92,
1211.61
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "parkingLocation",
"angle": 0.0
},
{
"id": "ParkingLocations_16",
"position": [
3183.92,
1211.61
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "이륜차",
"angle": 0.0
}
],
"Zone": [
{
"id": "zone1",
"position": [
1075.86,
71.25
],
"points": [
[
0.0,
-0.0
],
[
1705.6499999999999,
-0.0
],
[
1705.6499999999999,
1658.8600000000001
],
[
0.0,
1658.8600000000001
]
],
"included_parking_location_id": [
"ParkingLocations_1",
"ParkingLocations_2",
"ParkingLocations_3",
"ParkingLocations_4",
"ParkingLocations_5",
"ParkingLocations_6",
"ParkingLocations_9",
"ParkingLocations_10",
"ParkingLocations_11",
"ParkingLocations_12",
"ParkingLocations_13",
"ParkingLocations_14"
]
},
{
"id": "zone2",
"position": [
2782.35,
71.25
],
"points": [
[
0.0,
-0.0
],
[
668.0699999999999,
-0.0
],
[
668.0699999999999,
1658.8600000000001
],
[
0.0,
1658.8600000000001
]
],
"included_parking_location_id": [
"ParkingLocations_7",
"ParkingLocations_8",
"ParkingLocations_15",
"ParkingLocations_16"
]
}
],
"Column": [
{
"id": "columns_0",
"position": [
934.84,
439.31
],
"points": [
[
0.0,
-0.0
],
[
139.95983847638297,
-0.0
],
[
139.95983847638297,
207.21053700218636
],
[
0.0,
207.21053700218636
]
]
},
{
"id": "columns_1",
"position": [
1857.49,
439.31
],
"points": [
[
0.0,
-0.0
],
[
136.96452710823536,
-0.0
],
[
136.96452710823536,
209.71742208662727
],
[
0.0,
209.71742208662727
]
]
},
{
"id": "columns_2",
"position": [
2783.93,
446.63
],
"points": [
[
0.0,
-0.0
],
[
136.939083941013,
-0.0
],
[
136.939083941013,
209.69197891940246
],
[
0.0,
209.69197891940246
]
]
},
{
"id": "columns_3",
"position": [
934.84,
1150.78
],
"points": [
[
0.0,
-0.0
],
[
139.95983847638297,
-0.0
],
[
139.95983847638297,
209.69193824694045
],
[
0.0,
209.69193824694045
]
]
},
{
"id": "columns_4",
"position": [
1857.49,
1150.78
],
"points": [
[
0.0,
-0.0
],
[
136.96452710823536,
-0.0
],
[
136.96452710823536,
209.69193824694045
],
[
0.0,
209.69193824694045
]
]
},
{
"id": "columns_5",
"position": [
2783.93,
1155.55
],
"points": [
[
0.0,
-0.0
],
[
136.939083941013,
-0.0
],
[
136.939083941013,
209.6919382469405
],
[
0.0,
209.6919382469405
]
]
}
],
"GuideBoard": [
{
"position": [
649.52,
907.5
],
"left": [
"ParkingLocations_1",
"ParkingLocations_2",
"ParkingLocations_3",
"ParkingLocations_4",
"ParkingLocations_5",
"ParkingLocations_6",
"ParkingLocations_7",
"ParkingLocations_8"
],
"right": [
"ParkingLocations_9",
"ParkingLocations_10",
"ParkingLocations_11",
"ParkingLocations_12",
"ParkingLocations_13",
"ParkingLocations_14",
"ParkingLocations_15",
"ParkingLocations_16"
]
}
],
"OutLine": {
"position": [
0.0,
0.0
],
"points": [
[
0.0,
-0.0
],
[
3570.0,
-0.0
],
[
3570.0,
1800.01
],
[
0.0,
1800.01
]
]
}
}데이터 구성요소
EmergencyBell (비상벨)
비상벨의 위치와 관련된 CCTV 정보를 나타냅니다.
id: 비상벨의 고유 식별자.
position: 비상벨의 위치 (x, y 좌표).
linked_cctv_id: 연관된 CCTV의 ID.
{
"EmergencyBell": [
{
"id": "unknown_EmergencyBell_0",
"position": [1931.09, 611.25],
"linked_cctv_id": "P1_B1_1_1"
}
]
}OccupancyLight (만공차등)
주차장의 만공차 상태를 나타내는 조명의 정보를 담고 있습니다.
id: 만공차등의 고유 식별자.
position: 만공차등의 위치 (x, y 좌표).
{
"OccupancyLight": [
{
"id": "occupiedLight_1",
"position": [1922.97, 902.5]
}
]
}CCTV
주차장 내의 CCTV와 그와 연관된 정보들을 나타냅니다. CCTV는 비상벨, 조명과 연관될 수 있으며, 특정 주차 구역을 감시하는 역할을 합니다.
id: CCTV의 고유 식별자.
ip_address: CCTV의 IP 주소.
position: CCTV의 위치 좌표 (x, y).
linked_emergency_bells: CCTV에 연결된 비상벨의 ID 목록.
occupied_light: CCTV와 연동된 만공차등 정보.
light_line: CCTV의 조명 정보 (선의 위치 및 좌표).
light_frame: CCTV가 담당하는 영역의 경계 좌표.
zone_code: CCTV가 속한 구역 코드.
parking_areas: CCTV가 감시하는 주차 구역 ID 목록.
upper_cctv_id: 상위 CCTV ID.
lower_cctv_id: 하위 CCTV ID.
left_cctv_id: 좌측 CCTV ID.
right_cctv_id: 우측 CCTV ID.
{
"CCTV": {
"light_cctv": [
{
"id": "P1_B1_1_1",
"ip_address": "192.168.219.201 / 24",
"position": [1922.97, 902.5],
"linked_emergency_bells": ["unknown_EmergencyBell_0"],
"occupied_light": {
"id": "occupiedLight_1",
"position": [1922.97, 902.5]
},
"light_line": [
{
"position": [1228.85, 704.94],
"points": [
[0.0, -0.0],
[600.0, -0.0]
]
}
],
"light_frame": {
"position": [1129.96, 703.94],
"points": [
[0.0, -0.0],
[795.0, -0.0],
[795.0, 396.0],
[0.0, 396.0]
]
},
"zone_code": "zone1",
"parking_areas": ["ParkingLocations_1", "ParkingLocations_2"],
"upper_cctv_id": [],
"lower_cctv_id": [],
"left_cctv_id": [],
"right_cctv_id": ["P1_B1_1_2"]
}
],
"warning_cctv": [
{
"id": "P1_B1_1_101",
"ip_address": "192.168.219.211 / 24",
"position": [
1025.69,
2124.13
],
"linked_emergency_bells": [],
"parking_areas": []
},
{
"id": "P1_B1_1_102",
"ip_address": "192.168.219.210 / 24",
"position": [
714.73,
1617.21
],
"linked_emergency_bells": [],
"parking_areas": []
}
]
}
}PreventionLight (충돌방지등)
충돌 방지를 위한 조명으로, CCTV와 연관되어 배치됩니다.
id: 충돌방지등 고유 식별자.
position: 조명의 위치 좌표 (x, y).
angle: 조명의 각도.
upper_cctv_id: 상위 CCTV ID.
lower_cctv_id: 하위 CCTV ID.
left_cctv_id: 좌측 CCTV ID.
right_cctv_id: 우측 CCTV ID.
{
"PreventionLight": [
{
"id": "unknown_preventionLight_0",
"position": [
1075.16,
902.66
],
"angle": -90.0,
"upper_cctv_id": [],
"lower_cctv_id": [],
"left_cctv_id": [],
"right_cctv_id": [
"P1_B1_1_1"
]
}
],
}WarningLight (경고등)
주차장 내 특정 상황을 알리기 위한 경고등입니다.
id: 경고등 고유 식별자.
position: 경고등의 위치 좌표 (x, y).
{
"WarningLight": [
{
"id": "unknown_warningLight_0",
"position": [716.07, 1617.21]
}
]
}ParkingLocation (주차 구역)
주차 구역의 위치와 크기, 종류를 나타냅니다. 각 주차 구역은 ID로 구분되며, 유형(장애인, 경차 등)을 정의합니다.
id: 주차 구역 고유 식별자.
position: 주차 구역의 위치 (x, y 좌표).
points: 주차 구역의 꼭지점 좌표.
type: 주차 구역 유형 (예: 장애인, 경차, 여성전용).
{
"ParkingLocation": [
{
"id": "ParkingLocations_1",
"position": [
1075.86,
71.25
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "장애인",
"angle": 0.0
},
{
"id": "ParkingLocations_2",
"position": [
1335.86,
71.25
],
"points": [
[
0.0,
-0.0
],
[
260.0,
-0.0
],
[
260.0,
520.0
],
[
0.0,
520.0
]
],
"type": "장애인",
"angle": 0.0
},
]
}Zone (구역)
주차장의 특정 구역을 정의하며, 여러 주차 구역을 포함할 수 있습니다.
id: 구역의 고유 식별자.
position: 구역의 시작 좌표.
points: 구역의 꼭지점 좌표 목록.
included_parking_location_id: 구역에 포함된 주차 구역 ID 목록.
{
"Zone": [
{
"id": "zone1",
"position": [1075.86, 71.25],
"points": [
[0.0, -0.0],
[1705.65, -0.0],
[1705.65, 1658.86],
[0.0, 1658.86]
],
"included_parking_location_id": [
"ParkingLocations_1",
"ParkingLocations_2"
]
}
]
}Column (기둥)
주차장 내 기둥의 위치 및 크기를 나타냅니다.
id: 기둥의 고유 식별자.
position: 기둥의 위치 좌표 (x, y).
points: 기둥의 꼭지점 좌표 목록.
{
"Column": [
{
"id": "columns_0",
"position": [934.84, 439.31],
"points": [
[0.0, -0.0],
[139.96, -0.0],
[139.96, 207.21],
[0.0, 207.21]
]
}
]
}GuideBoard (안내판)
주차장의 안내판 정보를 나타내며, 양쪽으로 주차 구역을 안내합니다.
position: 안내판의 위치 좌표 (x, y).
left: 좌측으로 안내하는 주차 구역 ID 목록.
right: 우측으로 안내하는 주차 구역 ID 목록.
변경요청 합니다. name, ip 추가 & left, right는 cctv list를 넣어주세요.
{
"GuideBoard": [
{
"position": [649.52, 907.5],
"name": "안내판1",
"ip": "",
"left": [
"cctvId1",
"cctvId2"
],
"right": [
"cctvId3",
"cctvId4"
]
}
]
}OutLine (주차장 경계선)
주차장의 외곽을 정의하는 경계선 정보입니다.
position: 경계선의 시작 좌표.
points: 경계선의 꼭지점 좌표 목록.
{
"OutLine": {
"position": [0.0, 0.0],
"points": [
[0.0, -0.0],
[3570.0, -0.0],
[3570.0, 1800.01],
[0.0, 1800.01]
]
}
}