[CCTV API: 파이썬] 위도, 경도 좌표로 가까운 CCTV 찾아서 영상 실행하기

Date:     Updated:

카테고리:

태그:

🔔 ‘국가교통정보센터’에서 제공하는 실시간 CCTV 영상 API를 사용하는 방법에 대해 알아보겠습니다.

1️⃣ 국가교통정보센터 가입하기

  1. https://www.its.go.kr 주소에 접속하여 회원가입
  2. 마이페이지 -> 인증키 발급현황 -> 인증키 신청

인증키 발급

  • 위와 같이 신청


2️⃣ 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

입력 좌표에서 가장 가까운 위치에 있는 CCTV를 탐색하여 결과로 출력하는 모습을 확인할 수 있습니다.
또한, URL로 접속하면 30초 단위로 제공되는 실시간 CCTV 영상을 시청할 수 있습니다.



💾 공부한 내용을 기록하기 위한 블로그입니다.
📄 오류와 질문은 댓글로 남겨주시면 감사하겠습니다!

맨 위로 이동하기

Project 카테고리 내 다른 글 보러가기

댓글 남기기