API Reference

The project intentionally exposes most functionality via two modules. This reference documents the public functions that other tooling can reuse.

fuel_route_recommender

총비용(연료비 + 우회연료비 + 시간가치) 최소화 주유소 추천 - 지역: 광진구 + 송파구 (CSV 내부 필터) - 입력 CSV: 번호, 지역, 상호, 주소, 기간, 상표, 셀프여부, 고급휘발유, 휘발유, 경유, 실내등유 - 차량 연비(–eff), 주유량(–liters), 시간가치(–alpha) 입력 - Kakao 지오코딩 + 길찾기 사용 (REST API 키 필요)

fuel_route_recommender.ensure_geocodes(df: pandas.DataFrame) pandas.DataFrame[source]
fuel_route_recommender.evaluate_total_cost(station_row: pandas.Series, A: Tuple[float, float], B: Tuple[float, float], fuel_eff_km_per_L: float, liters: float, alpha_won_per_min: float, fuel_col: str, avg_price_won_per_L: float) Dict[source]
fuel_route_recommender.geocode_address(addr: str) Tuple[float, float] | None[source]

주소 → (lat, lon). 실패 시 None

fuel_route_recommender.haversine_km(lat1, lon1, lat2, lon2) float[source]
fuel_route_recommender.kakao_headers() Dict[str, str][source]

간단 딥링크(지도 열기). 실제 네비는 KakaoNavi 스킴 권장.

fuel_route_recommender.load_and_prepare(csv_paths: List[str]) pandas.DataFrame[source]
fuel_route_recommender.main()[source]
fuel_route_recommender.point_to_segment_distance_km(px, py, ax, ay, bx, by) float[source]

점 P와 선분 AB 거리(근거리 평면근사).

fuel_route_recommender.preselect_candidates(df: pandas.DataFrame, A: Tuple[float, float], B: Tuple[float, float], fuel_col: str) pandas.DataFrame[source]
fuel_route_recommender.route_distance_time(A: Tuple[float, float], B: Tuple[float, float]) Tuple[float, float][source]

A→B 거리(km)·시간(분). GET→POST 폴백.

fuel_route_recommender.route_via_distance_time(A: Tuple[float, float], S: Tuple[float, float], B: Tuple[float, float]) Tuple[float, float][source]

A→S→B 경유 거리(km)·시간(분). GET→POST 폴백.

fuel_route_recommender_with_map

총비용(연료비 + 우회연료비 + 시간가치) 최소화 주유소 추천 + 지도 시각화.

기능:

  • 기존 CLI 기능 그대로 + --save_map <파일경로.html> 옵션 제공.

  • Folium(Leaflet)로 출발지/도착지/Top3 마커와 직선 경로(A→B, A→S→B)를 표시 한다. (주의: 실제 도로 폴리라인이 아닌 단순 지오메트리 직선입니다. Directions 폴리라인을 쓰려면 Kakao API 응답을 파싱해 확장하세요.)

fuel_route_recommender_with_map.ensure_geocodes(df: pandas.DataFrame) pandas.DataFrame[source]
fuel_route_recommender_with_map.evaluate_total_cost(row, A, B, eff, liters, alpha, fuel_col, avg_price)[source]
fuel_route_recommender_with_map.geocode_address(addr: str) Tuple[float, float] | None[source]
fuel_route_recommender_with_map.kakao_headers() Dict[str, str][source]
fuel_route_recommender_with_map.load_and_prepare(csv_paths: List[str]) pandas.DataFrame[source]
fuel_route_recommender_with_map.main()[source]
fuel_route_recommender_with_map.make_map_html(path, A, B, top3)[source]
fuel_route_recommender_with_map.point_to_segment_distance_km(px, py, ax, ay, bx, by) float[source]
fuel_route_recommender_with_map.preselect_candidates(df: pandas.DataFrame, A, B, fuel_col: str) pandas.DataFrame[source]
fuel_route_recommender_with_map.route_distance_time(A, B)[source]
fuel_route_recommender_with_map.route_via_distance_time(A, S, B)[source]