This commit is contained in:
lixiaopeng
2020-12-16 17:06:11 +08:00
parent 5817c62a2e
commit 789f157f22
5 changed files with 146 additions and 17 deletions

View File

@@ -0,0 +1,33 @@
package com.mogo.module.extensions.live;
import android.content.Context;
import android.view.View;
import com.mogo.map.marker.IMogoInfoWindowAdapter;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.drawer.marker.IMarkerView;
import com.mogo.module.common.drawer.marker.MapCameraInfoView;
import com.mogo.module.common.drawer.marker.MapMarkerAdapter;
import com.mogo.module.common.drawer.marker.MapMarkerView;
import com.mogo.module.common.entity.MarkerShowEntity;
/**
* @author lixiaopeng
* @since 2020/12/16
* 描述
*/
public class CameraWindow3DAdapter implements IMogoInfoWindowAdapter {
private Context mContext;
private MogoMarkerOptions mOptions;
public CameraWindow3DAdapter(Context context, MogoMarkerOptions options) {
this.mContext = context;
this.mOptions = options;
}
@Override
public View getInfoWindow(IMogoMarker marker) {
return new MapCameraInfoView(mContext, mOptions);
}
}

View File

@@ -4,15 +4,20 @@ import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.view.View;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.map.marker.IMogoInfoWindowAdapter;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.drawer.marker.RoadConditionInfoWindow3DAdapter;
import com.mogo.module.common.entity.CloudRoadData;
import com.mogo.module.common.entity.MogoSnapshotSetData;
import com.mogo.module.extensions.R;
import com.mogo.module.extensions.live.CameraLiveManager;
import com.mogo.module.extensions.live.CameraWindow3DAdapter;
import com.mogo.module.extensions.live.ExtensionServiceManager;
import com.mogo.module.extensions.live.PushDataType;
import com.mogo.service.connection.IMogoOnWebSocketMessageListener;
@@ -23,7 +28,6 @@ import com.mogo.utils.logger.Logger;
/**
* vr模式下红绿灯消息 AdasNoticeHelper
*
*/
public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<MogoSnapshotSetData> {
private static final String TAG = "liyz";
@@ -35,16 +39,7 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
public void init(Context context) {
Logger.d(TAG, "init ======= ");
mContext = context;
//test
// UiThreadHandler.postDelayed( () -> {
// mCloudRoadData = new CloudRoadData();
// mCloudRoadData.setRtmpUrl("rtmp://58.200.131.2:1935/livetv/hunantv");
// mCloudRoadData.setLat(40.200353);
// mCloudRoadData.setLon(116.745467);
//// CameraLiveManager.getInstance().init(mCloudRoadData);
// addCameraMarker(mCloudRoadData);
// }, 2_000 );
}
public void enterVrMode() {
@@ -64,6 +59,16 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
return false;
}
});
// UiThreadHandler.postDelayed(() -> {
// mCloudRoadData = new CloudRoadData();
// mCloudRoadData.setRtmpUrl("rtmp://58.200.131.2:1935/livetv/hunantv");
// mCloudRoadData.setLat(40.200353);
// mCloudRoadData.setLon(116.745467);
//// CameraLiveManager.getInstance().init(mCloudRoadData);
// addCameraMarker(mCloudRoadData);
// }, 2_000);
}
@@ -74,6 +79,7 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
/**
* PushRoadConditionDrawer
*
* @param roadData
*/
private void addCameraMarker(CloudRoadData roadData) {
@@ -87,7 +93,10 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.module_camera_real_time_traffic, null);
options.icon(bitmap);
mMogoMarker = ExtensionServiceManager.getMapService().getMarkerManager(mContext)
.addMarker(PushDataType.TYPE_PUSH_CAMERA_DATA, options);
.addMarker(PushDataType.TYPE_PUSH_CAMERA_DATA, options);
mMogoMarker.setInfoWindowAdapter(new CameraWindow3DAdapter(AbsMogoApplication.getApp(), mMogoMarker.getMogoMarkerOptions()));
mMogoMarker.showInfoWindow();
if (mMogoMarker != null) {
mMogoMarker.setOwner(PushDataType.TYPE_PUSH_CAMERA_DATA);
@@ -114,7 +123,6 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
private double mCurrentlon;
/**
*
* @param obj
*/
@Override
@@ -124,7 +132,7 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
mCloudRoadData = obj.getCamera();
if (mCloudRoadData != null) {
Log.d(TAG, "onMsgReceived getRtmpUrl = " + mCloudRoadData.getRtmpUrl());
Log.d(TAG, "mCurrentlat = " + mCurrentlat + "--mCurrentlon = " +mCurrentlon);
Log.d(TAG, "mCurrentlat = " + mCurrentlat + "--mCurrentlon = " + mCurrentlon);
Log.d(TAG, "mCloudRoadData.getLat() = " + mCloudRoadData.getLat() + "--mCloudRoadData.getLon() = " + mCloudRoadData.getLon());
if (mCurrentlat == mCloudRoadData.getLat() && mCurrentlon == mCloudRoadData.getLon()) {
//TODO
@@ -136,10 +144,10 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
}
} else {
//删除marker
Logger.e(TAG, "onMsgReceived mCloudRoadData == null " );
UiThreadHandler.postDelayed( () -> {
Logger.e(TAG, "onMsgReceived mCloudRoadData == null ");
UiThreadHandler.postDelayed(() -> {
removeCameraMarker();
}, 1_000 );
}, 1_000);
}
} else {
Log.e(TAG, "onMsgReceived obj == null ");