feat(D01): 예정노선 등록 — 설계속도 지움 · 카카오 지도 기준점 하나 + 주소(VWorld · 출처 표기) · 사업 지역 채움 (PLAN 591-1 · 요구 452 · 453)
- 등록 화면 = 공용 카카오 지도(마우스 설정 따름 · 일반/위성) 누름 · 끌기로 기준점 하나 · 주소 글 + 출처 - 사업 지역 = 주소의 「시군구 읍면」 채움 · 손으로 고친 값은 안 덮음 - 서버 = 기준점 필수(경위도 범위) · 주소는 서버가 VWorld 로 다시 찾아 저장 · 설계속도 칸 안 씀(B05 기본 20) - 새 길 GET /api/map/address — 지번 먼저(산 번지) · region · 출처 VWorld · B08 한 줄 주소 그대로 - DB 024 = projects 기준점 칸 셋 추가 · PLAN 설계속도 비움 · 옛 PLAN 기준점 = 지점 가운데(024_plan_site_fill.py · 적용 완료) - 시험 528 = 설계속도 단언을 기준점 단언으로 · 새 지킴 시험 591_1 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
"""카카오 지도 JavaScript 키 공용 길(529-2) — B08 거리이정표 · D 예정노선 지도가 씀.
|
||||
"""카카오 지도 JS 키 · 좌표 → 주소 공용 길(529-2 · 591-1) — B08 거리이정표 · D 예정노선이 씀.
|
||||
|
||||
GET /api/map/kakao-key {key} — 공개용(도메인 등록으로 막힘) · .env KAKAO_JS_KEY · 없으면 null
|
||||
GET /api/map/address {address, region, source} — VWorld(B08 과 같은 길) · 지번 먼저 · 없음 null
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
@@ -8,14 +9,25 @@ from __future__ import annotations
|
||||
import os
|
||||
from typing import Any
|
||||
|
||||
from fastapi import APIRouter
|
||||
from fastapi import APIRouter, Query
|
||||
|
||||
from B01_Dashboard.B01_Dashboard_Map import reverse_place
|
||||
|
||||
router = APIRouter(prefix="/api/map", tags=["map"])
|
||||
|
||||
KAKAO_JS = "KAKAO_JS_KEY"
|
||||
ADDRESS_SOURCE = "VWorld"
|
||||
|
||||
|
||||
@router.get("/kakao-key")
|
||||
async def kakao_map_key() -> dict[str, Any]:
|
||||
"""없으면 null = 화면 안내 한 줄."""
|
||||
return {"key": os.environ.get(KAKAO_JS, "").strip() or None}
|
||||
|
||||
|
||||
@router.get("/address")
|
||||
async def map_address(
|
||||
lon: float = Query(..., ge=120, le=135), lat: float = Query(..., ge=30, le=45)
|
||||
) -> dict[str, Any]:
|
||||
"""좌표 → 주소 · 「시군구 읍면」(사업 지역 채움) · 출처."""
|
||||
return {**await reverse_place(lon, lat), "source": ADDRESS_SOURCE}
|
||||
|
||||
Reference in New Issue
Block a user