From 127e6e1d0b50937bb59d195ece64603c54f461df Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 13 四月 2026 20:44:39 +0800
Subject: [PATCH] 修改bug 查找车新增1分钟查询
---
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/mango/VehiclePositionService.java | 25 +++++++++++++++----------
1 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/mango/VehiclePositionService.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/mango/VehiclePositionService.java
index fed8f2a..7a587ee 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/mango/VehiclePositionService.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/mango/VehiclePositionService.java
@@ -2,17 +2,18 @@
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
import org.springframework.data.domain.Sort;
-import org.springframework.data.geo.*;
+import org.springframework.data.geo.Circle;
+import org.springframework.data.geo.Distance;
+import org.springframework.data.geo.Metrics;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
import org.springframework.data.mongodb.core.query.Criteria;
-import org.springframework.data.mongodb.core.query.NearQuery;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
+
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
-import java.util.stream.Collectors;
@Service
public class VehiclePositionService {
@@ -24,7 +25,7 @@
* 查询附近指定距离内且状态正常的车辆
* @param longitude 经度
* @param latitude 纬度
- * @param distanceInMeters 距离(米)
+ * @param distanceInMeters 距离(KM)
* @return 符合条件的车辆列表
*/
public List<VehiclePosition> findAvailableVehiclesNearby(double longitude,
@@ -52,14 +53,17 @@
// .map(geoResult -> geoResult.getContent())
// .collect(Collectors.toList());
- //找到中心点
+ // 找到中心点
GeoJsonPoint geoJsonPoint = new GeoJsonPoint(longitude, latitude);
- //构造半径
- Distance distanceR = new Distance(distanceInMeters / 1000, Metrics.KILOMETERS);
- //画圆
+ // 构造半径
+ Distance distanceR = new Distance(distanceInMeters, Metrics.KILOMETERS);
+ // 画圆
Circle circle = new Circle(geoJsonPoint, distanceR);
- // 构造query对象
- Query query = Query.query(Criteria.where("point").withinSphere(circle));
+ long latestAllowedAddTime = System.currentTimeMillis() - 60 * 1000;
+ Query query = Query.query(new Criteria().andOperator(
+ Criteria.where("point").withinSphere(circle),
+ Criteria.where("addTime").gte(latestAllowedAddTime)
+ ));
List<VehiclePosition> vehiclePositions = mongoTemplate.find(query, VehiclePosition.class);
return vehiclePositions;
} catch (Exception e) {
@@ -69,6 +73,7 @@
}
+
/**
* 根据车辆ID查询车辆信息
* @param vehicleId 车辆ID
--
Gitblit v1.7.1