puzhibing
2026-03-06 fbbea0b1e2380e8c2fb86740a237b0a3aac56aad
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,
@@ -55,7 +56,7 @@
            //找到中心点
            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对象