[charter]

[3.2.0]
[1.15.2适配]
This commit is contained in:
yangyakun
2023-05-10 16:57:24 +08:00
parent 4b9691d2e8
commit 30c1b606b8
4 changed files with 54 additions and 32 deletions

View File

@@ -1,12 +1,12 @@
package com.mogo.och.bus.passenger.ui
import android.os.Bundle
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.mvp.MvpFragment
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getMapUIController
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getMarkerManager
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getOverlayManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.map.marker.MogoMarkerOptions
import com.mogo.map.overlay.core.Level
import com.mogo.map.overlay.point.Point
import com.mogo.och.bus.passenger.R
import com.mogo.och.bus.passenger.constant.M2Const.Companion.TYPE_MARKER_M2_LINE
import com.mogo.och.bus.passenger.presenter.PM2ADASPresenter
@@ -82,26 +82,33 @@ class PM2HPMapFragment :
val setMapMarkerRunnable = Runnable {
d("setMapMaker= " + Thread.currentThread().name,
uuid + "=latitude=" + station[1] + ",longitude=" + station[0])
val options = MogoMarkerOptions()
.owner(TYPE_MARKER_M2_LINE)
val builder = Point.Options.Builder(
TYPE_MARKER_M2_LINE,
Level.MAP_MARKER
)
.setId(uuid)
.anchor(0.5f, 0.5f)
.set3DMode(true)
.gps(true)
.isUseGps(true)
.controlAngle(true)
.icon3DRes(R.raw.star_marker)
.longitude(station[0])
.latitude(station[1])
val marker = Objects.requireNonNull(
getMarkerManager(AbsMogoApplication.getApp())
)?.addMarker(uuid, options)
val centerLine =
getMapUIController()!!
.getCenterLineInfo(
station[0], station[1], -1f
)
if (null != centerLine && marker != null) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致
marker.setRotateAngle(centerLine.angle!!.toFloat())
val mapUIController = getMapUIController()
if (mapUIController != null) {
val centerLine = mapUIController.getCenterLineInfo(
station[0], station[1], -1f
)
if (null != centerLine) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 地图未初始化会返回空
val angle = centerLine.angle
if (angle != null) {
builder.rotate(angle.toFloat())
}
}
}
val overlayManager = getOverlayManager()
overlayManager?.showOrUpdatePoint(builder.build())
}
OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable)
}
@@ -112,9 +119,8 @@ class PM2HPMapFragment :
//开启线程移除起终点marker设置
val removeMapMarkerRunnable = Runnable {
d("RemoveMapMaker=" + Thread.currentThread().name, uuid)
Objects.requireNonNull(
getMarkerManager(AbsMogoApplication.getApp())
)?.removeMarkers(uuid)
val overlayManager = getOverlayManager()
overlayManager?.removePoint(uuid)
}
OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable)
}

View File

@@ -25,8 +25,10 @@ import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant;
import com.mogo.eagle.core.utilcode.util.ToastUtils;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.map.overlay.IMoGoOverlayManager;
import com.mogo.map.overlay.core.Level;
import com.mogo.map.overlay.point.Point;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.och.bus.R;
import com.mogo.och.data.bean.BusStationBean;
import com.mogo.och.bus.constant.BusConst;
@@ -486,20 +488,29 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
CallerLogger.INSTANCE.d(M_BUS + "setMapMaker= "+Thread.currentThread().getName(),
uuid + "=latitude=" + lat + ",longitude=" + longi);
MogoMarkerOptions options = new MogoMarkerOptions()
.owner(BusConst.TYPE_MARKER_BUS_ORDER)
Point.Options.Builder builder = new Point.Options.Builder(BusConst.TYPE_MARKER_BUS_ORDER, Level.MAP_MARKER)
.setId(uuid)
.anchor(0.5f, 0.5f)
.set3DMode(true)
.gps(true)
.isUseGps(true)
.controlAngle(true)
.icon3DRes(resourceId)
.latitude(lat)
.longitude(longi);
IMogoMarker marker = Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMarkerManager(AbsMogoApplication.getApp())).addMarker(uuid, options);
CenterLine centerLine = CallerMapUIServiceManager.INSTANCE.getMapUIController().getCenterLineInfo(
longi,lat,-1);
if (null != centerLine && marker != null) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 地图未初始化会返回空
marker.setRotateAngle(centerLine.getAngle().floatValue());
IMogoMapUIController mapUIController = CallerMapUIServiceManager.INSTANCE.getMapUIController();
if (mapUIController != null) {
CenterLine centerLine = mapUIController.getCenterLineInfo(
longi,lat,-1);
if (null != centerLine) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 地图未初始化会返回空
Double angle = centerLine.getAngle();
if (angle != null) {
builder.rotate(angle.floatValue());
}
}
}
IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager();
if (overlayManager != null) {
overlayManager.showOrUpdatePoint(builder.build());
}
};
@@ -509,7 +520,7 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
Runnable removeMapMarkerRunnable = () -> {
CallerLogger.INSTANCE.d(M_BUS + "RemoveMapMaker="+Thread.currentThread().getName(),
uuid+"=latitude="+lat+",longitude="+longi);
Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMarkerManager(AbsMogoApplication.getApp())).removeMarkers(uuid);
Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getOverlayManager()).removePoint(uuid);
};
OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable);
}

View File

@@ -227,6 +227,11 @@ public class OrderModel {
private final IReceivedMsgListener mReceivedMsgListener =
new IReceivedMsgListener() {
@Override
public void onReceivedServerSn(@Nullable String sn) {
}
@Override
public void onReceivedMsg(int type, @NonNull byte[] byteArray) {
if (OchCommonConst.BUSINESS_STRING == type){

View File

@@ -340,8 +340,8 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
@Override
public void onClickImpl(View v) {
IMogoMapUIController controller = CallerMapUIServiceManager.INSTANCE.getMapUIController();
IMogoMarkerManager markerManager = CallerMapUIServiceManager.INSTANCE.getMarkerManager(AbsMogoApplication.getApp());
if (controller != null && markerManager != null) {
if (controller != null) {
//切换地图的远近视图
if (controller.getCurrentMapVisualAngle().isLongSight()) {
// 2.11.0去掉