# element0603 **Repository Path**: edn126/element0603 ## Basic Information - **Project Name**: element0603 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-06-03 - **Last Updated**: 2026-07-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Map POI Feature Recognition 在线地图临时兴趣点(POI)特征识别系统:**Vue 3 + Leaflet + FastAPI**。 在地图上点击指定临时兴趣点,后端基于 OpenStreetMap(Overpass API)对缓冲区内要素进行特征识别与归类。 ## 架构 ``` Vue 3 前端 (Vite :5173) ├─ Leaflet 在线地图(OpenStreetMap 瓦片) ├─ 地图点击添加临时 POI └─ Pinia 管理 POI 与识别结果 ↓ /api 代理 FastAPI 后端 (:8000) ├─ POI CRUD(JSON 文件持久化) └─ 特征识别(Overpass API + 要素归类) ``` ## 快速启动 ### 1. 前端依赖 ```sh npm install ``` ### 2. 后端依赖(首次需创建虚拟环境) ```sh cd backend python -m venv .venv .venv\Scripts\pip install -r requirements.txt # Windows # source .venv/bin/activate && pip install -r requirements.txt # macOS/Linux cd .. ``` ### 3. 同时启动前后端 ```sh npm run dev:all ``` - 前端:http://localhost:5173 - 后端:http://localhost:8000 - API 文档:http://localhost:8000/docs ## 使用说明 1. 打开页面后,确认右上角 **「后端已连接」** 2. 保持 **「点击地图添加兴趣点」** 模式,在地图上点击选点 3. 右侧面板填写名称与识别半径,点击 **添加兴趣点** 4. 在列表中选择 POI,点击 **特征识别** 5. 查看识别摘要、类别、数量、置信度与 OSM 样例标签 ## 区域智能分割(多类 · 开源模型) 支持在矩形 / 多边形选区内做**多类别**自动分割: | 引擎 | 说明 | |------|------| | **hybrid**(默认) | OSM 矢量地物 + 影像分割融合 | | **yolo** | Ultralytics YOLO11-seg 实例分割(需安装 ultralytics) | | **vision** | 影像分割:优先 YOLO,否则 RGB 颜色启发式 | | **osm** | 仅 OpenStreetMap 矢量(建筑/水体/林地/草地/农田/道路等) | 类别覆盖:建筑、水体、湿地、林地、树木、植被、草地、农田、果园、裸土、沙地、道路、铁路、停车场、公园、居住/工业/商业用地,以及 YOLO 目标(车辆、船只、飞机、行人、动物等)。 启用 YOLO(可选,体积较大): ```sh backend\.venv\Scripts\pip install ultralytics ``` 首次运行会自动下载 `yolo11n-seg.pt`。 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/segment/catalog` | 类别与引擎目录 | | POST | `/api/segment` | 区域智能分割 | ## 特征识别说明 - 默认查询 POI 周围 `radius_m` 米内 OpenStreetMap 要素 - 归类:建筑、道路交通、水体、绿地、商业、居住、工业、公共设施 - 网络不可用时自动进入离线回退模式(模拟结果) ## 构建 ```sh npm run build ```