[CCTV API: 파이썬] 위도, 경도 좌표로 가까운 CCTV 찾아서 영상 실행하기
카테고리: Project
🔔 ‘국가교통정보센터’에서 제공하는 실시간 CCTV 영상 API를 사용하는 방법에 대해 알아보겠습니다.
1️⃣ 국가교통정보센터 가입하기
- https://www.its.go.kr 주소에 접속하여 회원가입
- 마이페이지 -> 인증키 발급현황 -> 인증키 신청
- 위와 같이 신청
2️⃣ CCTV API를 호출하는 방법
- https://www.its.go.kr/opendata/opendataList?service=cctv (CCTV API 상세정보)
import requests
import numpy as np
def get_cctv_url(lat, lng):
# CCTV 탐색 범위 지정을 위해 임의로 ±1 만큼 가감
minX = str(lng-1)
maxX = str(lng+1)
minY = str(lat-1)
maxY = str(lat+1)
# 개인key 입력
api_call = 'https://openapi.its.go.kr:9443/cctvInfo?' \
'apiKey=개인key' \
'&type=ex&cctvType=2' \
'&minX=' + minX + \
'&maxX=' + maxX + \
'&minY=' + minY + \
'&maxY=' + maxY + \
'&getType=json'
w_dataset = requests.get(api_call).json()
cctv_data = w_dataset['response']['data']
coordx_list = []
for index, data in enumerate(cctv_data):
xy_couple = (float(cctv_data[index]['coordy']),float(cctv_data[index]['coordx']))
coordx_list.append(xy_couple)
# 입력한 위경도 좌표에서 가장 가까운 위치에 있는 CCTV를 찾는 과정
coordx_list = np.array(coordx_list)
leftbottom = np.array((lat, lng))
distances = np.linalg.norm(coordx_list - leftbottom, axis=1)
min_index = np.argmin(distances)
return cctv_data[min_index]
cctv_data = get_cctv_url(36.58629, 128.186793)
print('CCTV명:', cctv_data['cctvname']) # 가장 가까운 CCTV명
print('CCTV 영상 URL:', cctv_data['cctvurl']) # 가장 가까운 CCTV 영상 URL
3️⃣ 실행 결과
CCTV명: [중부내륙선] 나한교
CCTV 영상 URL: http://cctvsec.ktict.co.kr/3995/lEHcZVOck0b17lTdDibqNhuCCHJ6E3LunVkoMo42+gtLvmR2wIyNknswB/5iLyTrVT7s0OHvryYUGpsmLFIl0w==
입력 좌표에서 가장 가까운 위치에 있는 CCTV를 탐색하여 결과로 출력하는 모습을 확인할 수 있습니다.
또한, URL로 접속하면 30초 단위로 제공되는 실시간 CCTV 영상을 시청할 수 있습니다.
💾 공부한 내용을 기록하기 위한 블로그입니다.
📄 오류와 질문은 댓글로 남겨주시면 감사하겠습니다!
댓글 남기기