diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java index fca2cc564e..c5b640fc98 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java @@ -56,7 +56,7 @@ public class MarkerServiceHandler { mMarkerManager = mMapService.getMarkerManager(context); mNavi = mMapService.getNavi(context); mMapUIController = mMapService.getMapUIController(); - mLocationClient = mMapService.getLocationClient(context); + mLocationClient = mMapService.getSingletonLocationClient(context); mMapMarkerManager = MapMarkerManager.getInstance(context); mMapMarkerManager.init(context); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java index 40d3d632c4..2dc8d3121c 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java @@ -15,6 +15,7 @@ import com.amap.api.maps.model.animation.Animation; import com.amap.api.maps.model.animation.ScaleAnimation; import com.mogo.map.MogoLatLng; import com.mogo.map.impl.amap.marker.AMapMarkerWrapper; +import com.mogo.map.location.MogoLocation; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.marker.MogoMarkerOptions; @@ -387,7 +388,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag noveltyInfoList = markerCardResult.getNoveltyInfo(); } if (onlineCarList != null) { - double nearlyDistance = Double.MAX_VALUE; + double nearlyDistance = Float.MAX_VALUE; for (MarkerOnlineCar markerOnlineCar : onlineCarList) { MarkerLocation markerLocation = markerOnlineCar.getLocation(); @@ -401,16 +402,25 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag IMogoMarker iMogoMarker = drawMapMarker(markerShowEntity); // 计算在线车辆距离当前车辆的距离,每次都与最后一次距离最近的进行比较,保留距离最近的车辆,进行卡片展示 try { - double calculateDistance = Utils.calculateLineDistance( - new MogoLatLng(markerLocation.getLat(), markerLocation.getLat()), - new MogoLatLng( - MarkerServiceHandler.getMogoLocationClient().getLastKnowLocation().getLatitude(), - MarkerServiceHandler.getMogoLocationClient().getLastKnowLocation().getLongitude() - ) + // 当前车辆的位置 + MogoLocation currentLocation = MarkerServiceHandler.getMogoLocationClient().getLastKnowLocation(); + + // 计算车辆距离指定气泡的距离 + float calculateDistance = Utils.calculateLineDistance( + new MogoLatLng(markerLocation.getLat(), markerLocation.getLon()), + new MogoLatLng(currentLocation.getLatitude(), currentLocation.getLongitude()) ); +// Logger.d("点之间距离", +// "当前车辆经纬度:" + +// "\n\tlatitude=" + currentLocation.getLatitude() + +// "\n\tlongitude=" + currentLocation.getLongitude() + +// "\n气泡经纬度:" + markerLocation + +// "\n相距:" + calculateDistance + "米"); + // 进行比较,保留最近的一个数据 if (calculateDistance < nearlyDistance) { + nearlyDistance = calculateDistance; nearlyMogoMarker = iMogoMarker; } @@ -418,6 +428,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag e.printStackTrace(); } } + Logger.d("点之间距离", "距离当前车辆位置最近的距离为:" + nearlyDistance); fillNumberTrackEventBody(array, 3, onlineCarList.size()); }