diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackObj.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackObj.java index 1d91f86a50..7bdd70b422 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackObj.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackObj.java @@ -102,27 +102,27 @@ public class TrackObj { private void calLoc() { //距离计算,位置修正 if (relativeStatic()) { - double angle = roadAngle != 0 ? roadAngle : cacheData.getHeading(); - if (centerLineInfo == null && isFourWheelType()) { - try { - centerLineInfo = CallerHDMapManager.INSTANCE.getCenterLineInfo(lon, lat, (float) angle); - } catch (Exception e) { - Log.d("hy uuid : " + cacheData.getUuid(), "道路获取异常"); - } - if (centerLineInfo != null && centerLineInfo.getPoints() != null && !centerLineInfo.getPoints().isEmpty()) { - double[] matchedPoint = PointInterpolatorUtil.mergeToRoad(cacheData.getLongitude(), cacheData.getLatitude(), centerLineInfo.getPoints()); - if (matchedPoint[0] > 0 || matchedPoint[1] > 0) { - lon = matchedPoint[0]; - lat = matchedPoint[1]; - s2LatLng = S2LatLng.fromDegrees(cacheData.getLatitude(), cacheData.getLongitude()); - s2CellId = S2CellId.fromLatLng(s2LatLng).parent(22); - } else { - centerLineInfo = null; - } - } else { - centerLineInfo = null; - } - } +// double angle = roadAngle != 0 ? roadAngle : cacheData.getHeading(); +// if (centerLineInfo == null && isFourWheelType()) { +// try { +// centerLineInfo = CallerHDMapManager.INSTANCE.getCenterLineInfo(lon, lat, (float) angle); +// } catch (Exception e) { +// Log.d("hy uuid : " + cacheData.getUuid(), "道路获取异常"); +// } +// if (centerLineInfo != null && centerLineInfo.getPoints() != null && !centerLineInfo.getPoints().isEmpty()) { +// double[] matchedPoint = PointInterpolatorUtil.mergeToRoad(cacheData.getLongitude(), cacheData.getLatitude(), centerLineInfo.getPoints()); +// if (matchedPoint[0] > 0 || matchedPoint[1] > 0) { +// lon = matchedPoint[0]; +// lat = matchedPoint[1]; +// s2LatLng = S2LatLng.fromDegrees(cacheData.getLatitude(), cacheData.getLongitude()); +// s2CellId = S2CellId.fromLatLng(s2LatLng).parent(22); +// } else { +// centerLineInfo = null; +// } +// } else { +// centerLineInfo = null; +// } +// } cacheData = cacheData.toBuilder().setLongitude(lon).setLatitude(lat).build(); } else { centerLineInfo = null; @@ -175,7 +175,11 @@ public class TrackObj { } public boolean relativeStatic() { - return speedAverage < LIMIT_SPEED | cacheData.getSpeed() < LIMIT_SPEED; + return (speedAverage < LIMIT_SPEED && cacheData.getSpeed() < LIMIT_SPEED) | isInRange() ; + } + + private boolean isInRange(){ + return s2LatLng.getDistance(S2LatLng.fromDegrees(cacheData.getLatitude(), cacheData.getLongitude())).distance(6371000) < 0.2; } public boolean isFourWheelType() {