From c96fbe6b0aeb413a17c429133ee6d81d138144b9 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 09 六月 2026 10:58:52 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/mango/VehiclePositionService.java |   42 +++++++++++++-----------------------------
 1 files changed, 13 insertions(+), 29 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 42bd932..2f18141 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 {
@@ -31,35 +32,17 @@
                                                              double latitude,
                                                              double distanceInMeters,int num) {
         try {
-//            // 1. 创建查询点
-//            Point referencePoint = new Point(longitude, latitude);
-//
-//            // 2. 构建 NearQuery - 完全使用 NearQuery 的 API
-//            NearQuery nearQuery = NearQuery.near(referencePoint, Metrics.KILOMETERS)
-//                    .maxDistance(distanceInMeters / 1000)  // 转成公里
-//                    .spherical(true);
-//
-//
-//            // 4. 执行查询 - 明确指定集合名
-//            GeoResults<VehiclePosition> geoResults = mongoTemplate.geoNear(
-//                    nearQuery,
-//                    VehiclePosition.class,
-//                    "vehicle_position"  // 明确指定集合名,避免映射错误
-//            );
-//
-//            // 5. 提取结果
-//            return geoResults.getContent().stream()
-//                    .map(geoResult -> geoResult.getContent())
-//                    .collect(Collectors.toList());
-
-            //找到中心点
+            // 找到中心点
             GeoJsonPoint geoJsonPoint = new GeoJsonPoint(longitude, latitude);
-            //构造半径
+            // 构造半径
             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 +52,7 @@
     }
 
 
+
     /**
      * 根据车辆ID查询车辆信息
      * @param vehicleId 车辆ID

--
Gitblit v1.7.1