/bikeSeoul_slackbot

Slackbot을 이용한 근처 따릉이 대여소 조회 알리미

Primary LanguageHTML

Slackbot을 이용한 근처 따릉이 대여소 조회 알리미

🚲 소개

  • slack에 주소를 입력하면 그 근처 최단거리(직선거리)의 따릉이 대여소 3곳의 거리와 그 위치가 표시된 지도가 나온다.

팀원

이름 역할 github
이주환 주소 입력 -> 위도,경도 좌표 변환, 해당 위치 사진 https://github.com/LeeJuHwan
고건영 대여소 크롤링, 좌표에 따른 대여소 계산, slackbot 연결 https://github.com/goodyoung

실행 화면

bikeSeoul

⚙︎ bikeSeoul_slackbot 기능 설명


[따릉이_total 기능]


  • main file이다.

  • slack bot을 구동하는 file.

  • 사용자 text를 받아서 2-2,2-3 module을 이용해 대여소 3곳 조회

  • 대여소 지도 사진 파일 slack에 upload.

[bikeSeoul]


  • create_api 따릉이 대여소 api를 부르는 함수. -> DataFrame으로 변환.

  • latilong 따릉이 대여소 DataFrame과 해당 위치 위도 경도 값을 이용하여 해당 위치와 대여소 거리 계산 column 생성

  • bestdistance 생성된 column을 이용하여 가장 거리가 짧은 3곳을 찾아준다.

  • make_map2 대여소 3곳의 위치를 지도에 folium을 이용하여 Marker로 시각화 한다. (html file)

  • picture 시각화 한 파일을 slack에 보내주기 위해 selenium의 screenshot을 활용해 사진(png)으로 변환

[distance_kakaoapi]

  • KaKao API를 이용하여 현재 위치 값을 입력 하여 페이지 번호를 순회 하여 위도, 경도, 도로명 주소를 반환 하여 데이터 프레임으로 정제한다. 반환 한 값을 folium 지도 시각화 라이브러리를 이용하여 45개 개수를 제한 한 값을 반환 하였다.

🙋 KPT 회고


KPT

  • Keep(계속 해야할 것)

    • api token의 암호화

    • 경로 지정 (어느 컴퓨터에서도 할 수 있게)

    • module의 class화

    • main 파일인 '따릉이_total'의 코드 정리가 필요하다.

  • Problem(문제점)

    • 지도 사진이 잘 나오긴 하지만 시간이 오래 걸린다.

    • '@~' bot mention을 사용 할 때만 가능하다.(slack api에 mention이 아닌 방법이 있을 것 같다.)

    • 거리 계산이 직선거리, 건물들이 많은 곳이라면 최적의 경로가 아닐 수 있다.

  • Try(앞으로 시도할 것)

    • python flask를 활용해 soket mode가 아닌 서버로 이용하는 방법.

    • 이 방법을 활용 한 Web도 같이 구현하면 좋을 것 같다.

    • 직선거리의 단점을 보완하기 위해

      • Dijkstra(다익스트라) 등 최단경로 알고리즘을 구현하여 거리를 계산하는 방법.
      • kakao등 지도 api를 이용하여 최단경로를 찾는 방법.
    • 오류 처리 ex) 다른 지역이어도 제일 가까운 곳이 나오기 때문에 입력받는 지역을 서울로 한정지어야 한다.