# jsprit-web **Repository Path**: giteeliuyan/jsprit-web ## Basic Information - **Project Name**: jsprit-web - **Description**: jsprit的web程序 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-03-27 - **Last Updated**: 2025-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vehicle Routing Problem (VRP) Web Service 基于 Spring Boot 和 Jsprit 库实现的车辆路径规划服务。 ## 项目概述 本项目提供了一个灵活的 RESTful API 服务,用于解决车辆路径规划问题。通过整合 Jsprit 优化库,可以为给定的服务点集合生成最优配送路线。 ### 主要特性 - 基于 RESTful API 的路径规划服务 - 支持单车辆路径优化 - 考虑车辆容量约束 - 基于欧几里得距离的路径计算,后续修改地图距离 - 支持服务时间窗 - JSON 格式的请求和响应 ## 技术栈 - Spring Boot 2.7.12 - Java 8 - Jsprit Core Library - Maven - Lombok ## 快速开始 ### 环境要求 - JDK 8+ - Maven 3.6+ ### 安装步骤 1. 克隆项目 ```bash git clone https://gitee.com/gradysong/jsprit-web.git ``` 2. 进入项目目录 ```bash cd jsprit-web ``` 3. 构建项目 ```bash mvn clean install ``` 4. 运行项目 ```bash mvn spring-boot:run ``` 服务将在 `http://localhost:8080` 启动 ## API 使用说明 ### 路径规划接口 **接口**:`POST /vrp/solve` **请求示例**: ```json { "vehicle": { "id": "vehicle_1", "capacity": 100, "startLocation": { "x": 0.0, "y": 0.0 } }, "services": [ { "id": "service_1", "location": { "x": 10.0, "y": 10.0 }, "demand": 20, "serviceTime": 10 }, { "id": "service_2", "location": { "x": -5.0, "y": 8.0 }, "demand": 30, "serviceTime": 15 } ] } ``` **响应示例**: ```json { "status": "success", "message": null, "cost": 38.70886270620911, "routes": [ { "vehicleId": "vehicle_1", "stops": [ { "serviceId": "service_1", "location": { "x": 10.0, "y": 10.0 }, "demand": 20, "arrivalTime": 14.142135623730951, "departureTime": 24.14213562373095 }, { "serviceId": "service_2", "location": { "x": -5.0, "y": 8.0 }, "demand": 30, "arrivalTime": 39.27488157415251, "departureTime": 54.27488157415251 } ], "totalDistance": 38.70886270620911, "totalTime": 63.70886270620911, "totalDemand": 50 } ] } ``` ### 请求参数说明 - `vehicle`: 车辆信息 - `id`: 车辆标识 - `capacity`: 车辆容量 - `startLocation`: 起始位置坐标 - `services`: 服务点列表 - `id`: 服务点标识 - `location`: 服务点位置 - `demand`: 需求量 - `serviceTime`: 服务时间 ### 响应参数说明 - `status`: 处理状态(success/error) - `cost`: 总成本 - `routes`: 路线列表 - `vehicleId`: 车辆标识 - `stops`: 停靠点列表 - `totalDistance`: 总距离 - `totalTime`: 总时间 - `totalDemand`: 总需求量 ## 项目结构 ``` src/main/java/com/example/jspweb/ ├── controller/ │ └── VrpController.java ├── service/ │ └── VrpService.java └── model/ ├── VrpRequest.java ├── VrpResponse.java └── LocationDto.java ``` ## 限制和约束 - 当前仅支持单车辆路径规划 - 使用欧几里得距离计算,后续可改成地图距离 - 不支持时间窗约束 - 仅支持基本容量约束 ## 未来计划 - [ ] 支持多车辆路径规划 - [ ] 添加时间窗约束 - [ ] 实现更复杂的约束处理 - [ ] 优化性能 - [ ] 添加缓存机制 - [ ] 实现认证和授权 - [ ] 添加完整的单元测试和集成测试