diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index 11464a6587..d711a2dceb 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -26,6 +26,7 @@ import com.mogo.och.bus.constant.BusConst; import com.mogo.och.bus.presenter.BusPresenter; import com.mogo.och.bus.ui.BusSwitchLineActivity; import com.mogo.och.bus.view.SlidePanelView; +import com.mogo.och.common.module.utils.OCHThreadPoolManager; import java.util.List; @@ -337,27 +338,43 @@ public class BusFragment extends BaseBusTabFragment */ private void setOrRemoveMapMaker(boolean isAdd, String uuid, double lat, double longi,int resourceId) { if (isAdd) { - CallerLogger.INSTANCE.d(M_BUS + "setMapMaker= ", uuid + "=latitude=" + lat + ",longitude=" + longi); + Runnable setMapMarkerRunnable = new Runnable() { + @Override + public void run() { + CallerLogger.INSTANCE.d(M_BUS + "setMapMaker= "+Thread.currentThread().getName(), + uuid + "=latitude=" + lat + ",longitude=" + longi); - MogoMarkerOptions options = new MogoMarkerOptions() - .owner(BusConst.TYPE_MARKER_BUS_ORDER) - .anchor(0.5f, 0.5f) - .set3DMode(true) - .gps(true) - .controlAngle(true) - .icon3DRes(resourceId) - .latitude(lat) - .longitude(longi); - IMogoMarker marker = MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .addMarker(uuid, options); - CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo( - longi,lat,-1); - if (null != centerLine){ // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 - marker.setRotateAngle(centerLine.getAngle().floatValue()); - } + MogoMarkerOptions options = new MogoMarkerOptions() + .owner(BusConst.TYPE_MARKER_BUS_ORDER) + .anchor(0.5f, 0.5f) + .set3DMode(true) + .gps(true) + .controlAngle(true) + .icon3DRes(resourceId) + .latitude(lat) + .longitude(longi); + IMogoMarker marker = MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .addMarker(uuid, options); + CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo( + longi,lat,-1); + if (null != centerLine){ // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 + marker.setRotateAngle(centerLine.getAngle().floatValue()); + } + } + }; + + OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable); }else { - CallerLogger.INSTANCE.d(M_BUS + "RemoveMapMaker=",uuid+"=latitude="+lat+",longitude="+longi); - MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).removeMarkers(uuid); + Runnable removeMapMarkerRunnable = new Runnable() { + @Override + public void run() { + CallerLogger.INSTANCE.d(M_BUS + "RemoveMapMaker="+Thread.currentThread().getName(), + uuid+"=latitude="+lat+",longitude="+longi); + MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).removeMarkers(uuid); + } + }; + + OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable); } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java index bccd6475ba..a5e09fe2dd 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java @@ -32,6 +32,7 @@ import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.och.common.module.utils.NumberFormatUtil; +import com.mogo.och.common.module.utils.OCHThreadPoolManager; import com.mogo.och.taxi.callback.ITaxiNaviChangedCallback; import com.mogo.och.taxi.constant.TaxiConst; import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; @@ -602,28 +603,42 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement */ private void setOrRemoveMapMaker(boolean isAdd, String uuid, List station,int resourceId){ if (isAdd){ - CallerLogger.INSTANCE.d(M_TAXI + "setMapMaker= ",uuid+"=latitude=" - +station.get(1)+",longitude="+station.get(0)); - - MogoMarkerOptions options = new MogoMarkerOptions() - .owner(TaxiConst.TYPE_MARKER_TAXI_ORDER) - .anchor(0.5f, 0.5f) - .set3DMode(true) - .gps(true) - .controlAngle(true) - .icon3DRes(resourceId) - .latitude(station.get(1)) - .longitude(station.get(0)); - IMogoMarker marker = MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).addMarker(uuid, options); - CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo(station.get(0) - ,station.get(1),-1); - if (null != centerLine){// 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 - marker.setRotateAngle(centerLine.getAngle().floatValue()); - } + //开启线程执行起终点marker设置 + Runnable setMapMarkerRunnable = new Runnable() { + @Override + public void run() { + CallerLogger.INSTANCE.d(M_TAXI + "setMapMaker= " + Thread.currentThread().getName(), + uuid + "=latitude=" + station.get(1) + ",longitude=" + station.get(0)); + MogoMarkerOptions options = new MogoMarkerOptions() + .owner(TaxiConst.TYPE_MARKER_TAXI_ORDER) + .anchor(0.5f, 0.5f) + .set3DMode(true) + .gps(true) + .controlAngle(true) + .icon3DRes(resourceId) + .latitude(station.get(1)) + .longitude(station.get(0)); + IMogoMarker marker = MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).addMarker(uuid, options); + CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo(station.get(0) + , station.get(1), -1); + if (null != centerLine) {// 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 + marker.setRotateAngle(centerLine.getAngle().floatValue()); + } + } + }; + OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable); }else { - CallerLogger.INSTANCE.d(M_TAXI + "RemoveMapMaker=",uuid+"=latitude="+station.get(1)+",longitude="+station.get(0)); - MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .removeMarkers(uuid); + //开启线程移除起终点marker设置 + Runnable removeMapMarkerRunnable = new Runnable() { + @Override + public void run() { + CallerLogger.INSTANCE.d(M_TAXI + "RemoveMapMaker=" + Thread.currentThread().getName(), + uuid + "=latitude=" + station.get(1) + ",longitude=" + station.get(0)); + MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).removeMarkers(uuid); + } + }; + OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable); } }