This commit is contained in:
2025-11-19 16:10:25 +08:00
parent 9aa041c479
commit 5a77756c33
25 changed files with 238 additions and 90 deletions

View File

@ -38,7 +38,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
@Data
@Slf4j
@Tag(name = "路径规划管理")
@CheckAuth
@RestController
@RequestMapping("/graphhopper")
public class GraphHopperController {
@ -58,7 +58,7 @@ public class GraphHopperController {
@Operation(summary = "加载地图数据")
@PostMapping("/loadMap")
@CheckAuth
public ApiResponse loadMap(@Parameter(description = "文件路径") @RequestParam String path) {
File osmFile = new File(path);
if (!osmFile.exists()) {
@ -108,7 +108,7 @@ public class GraphHopperController {
@Operation(summary = "清除地图服务")
@PostMapping("/clearMap")
@CheckAuth
public ApiResponse clearMap() {
// 防止并发操作(与加载操作互斥)
if (isLoading.get()) {
@ -146,11 +146,14 @@ public class GraphHopperController {
@Operation(summary = "路径规划")
@PostMapping("/route")
@CheckAuth
public ApiResponse calculateRoute(@RequestBody RouteRequest request) {
// 校验地图是否加载完成 + 实例是否可用
// 区分未加载地图和加载中两种状态
if (isLoading.get()) {
return ApiResponse.failure("地图正在加载中,请稍后再试");
}
if (!isLoaded.get() || currentHopper == null) {
return ApiResponse.failure("地图未加载完成");
return ApiResponse.failure("地图未加载,请先加载地图");
}
try {
// 构建路径点列表
@ -203,8 +206,20 @@ public class GraphHopperController {
}
}
@Operation(summary = "获取地图加载状态")
@GetMapping("/status")
public ApiResponse getMapStatus() {
if (isLoading.get()) {
return ApiResponse.success("地图正在加载中");
} else if (isLoaded.get() && currentHopper != null) {
return ApiResponse.success("地图已加载完成");
} else {
return ApiResponse.success("地图未加载");
}
}
@Operation(summary = "获取交通方式")
@CheckAuth
@PostMapping("/profiles")
public ApiResponse profiles() {
return ApiResponse.success(graphHopperProperties.getProfiles());