From 0f017814c3f972b4046540af52840de698ad329e Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 8 Aug 2022 19:49:38 +0800 Subject: [PATCH] =?UTF-8?q?[Fix]=E8=A7=A3=E5=86=B3=E8=BD=A6=E6=A8=A1?= =?UTF-8?q?=E9=97=AA=E5=8A=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原因:切换线程后源数据被修改 --- .../core/function/smp/AMapCustomView.java | 41 ++++++++++--------- .../res/layout/module_overview_map_view.xml | 2 +- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/AMapCustomView.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/AMapCustomView.java index e72ef33969..71aa82ba9d 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/AMapCustomView.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/AMapCustomView.java @@ -17,7 +17,7 @@ import androidx.annotation.Nullable; import com.amap.api.maps.AMap; import com.amap.api.maps.CameraUpdate; import com.amap.api.maps.CameraUpdateFactory; -import com.amap.api.maps.TextureMapView; +import com.amap.api.maps.MapView; import com.amap.api.maps.UiSettings; import com.amap.api.maps.model.BitmapDescriptor; import com.amap.api.maps.model.BitmapDescriptorFactory; @@ -65,7 +65,7 @@ public class AMapCustomView extends RelativeLayout implements IMoGoMapLocationListener { public static final String TAG = "AMapCustomView"; - private TextureMapView mAMapView; + private MapView mAMapView; private AMap mAMap; private int zoomLevel = 15; private CameraUpdate mCameraUpdate; @@ -94,6 +94,7 @@ public class AMapCustomView private MogoLocation mLocation; private boolean isFirstLocation = true; + CustomMapStyleOptions mCustomMapStyleOptions; public AMapCustomView(Context context) { this(context, null); @@ -140,20 +141,22 @@ public class AMapCustomView Log.d(TAG, "initAMapView"); mCameraUpdate = CameraUpdateFactory.zoomTo(zoomLevel); mAMap = mAMapView.getMap(); + mCustomMapStyleOptions = new CustomMapStyleOptions(); + if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) { + mCustomMapStyleOptions.setStyleData(MapAssetStyleUtils.getAssetsStyle(getContext(), "over_view_style.data")); + mCustomMapStyleOptions.setStyleExtraData(MapAssetStyleUtils.getAssetsExtraStyle(getContext(), "over_view_style_extra.data")); + } else { + mCustomMapStyleOptions.setStyleData(MapAssetStyleUtils.getAssetsStyle(getContext(), "over_view_style_bus.data")); + mCustomMapStyleOptions.setStyleExtraData(MapAssetStyleUtils.getAssetsExtraStyle(getContext(), "over_view_style_extra_bus.data")); + } mAMap.setOnMapLoadedListener(() -> { Log.d(TAG, "---onMapLoaded---"); - CustomMapStyleOptions customMapStyleOptions = new CustomMapStyleOptions(); - // 加载自定义样式 - customMapStyleOptions.setEnable(true); - if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) { - customMapStyleOptions.setStyleData(MapAssetStyleUtils.getAssetsStyle(getContext(), "over_view_style.data")); - customMapStyleOptions.setStyleExtraData(MapAssetStyleUtils.getAssetsExtraStyle(getContext(), "over_view_style_extra.data")); - } else { - customMapStyleOptions.setStyleData(MapAssetStyleUtils.getAssetsStyle(getContext(), "over_view_style_bus.data")); - customMapStyleOptions.setStyleExtraData(MapAssetStyleUtils.getAssetsExtraStyle(getContext(), "over_view_style_extra_bus.data")); + if (mCustomMapStyleOptions != null) { + // 加载自定义样式 + mCustomMapStyleOptions.setEnable(true); + // 设置自定义样式 + mAMap.setCustomMapStyle(mCustomMapStyleOptions); } - // 设置自定义样式 - mAMap.setCustomMapStyle(customMapStyleOptions); // 实时路况图层关闭,必须添加在loaded结束之后,其他位置不生效 mAMap.setTrafficEnabled(false); }); @@ -269,13 +272,11 @@ public class AMapCustomView public void onLocationChanged(@org.jetbrains.annotations.Nullable MogoLocation location, int from) { mLocation = location; MarkerDrawerManager.INSTANCE.setLonLat(new Pair(location.getLongitude(), location.getLatitude())); - UiThreadHandler.post(() -> { - drawCarMarker(location); - if (isFirstLocation) { - displayCustomOverView(); - isFirstLocation = false; - } - }); + drawCarMarker(location); + if (isFirstLocation) { + displayCustomOverView(); + isFirstLocation = false; + } } public void onCreateView(Bundle savedInstanceState) { diff --git a/core/function-impl/mogo-core-function-map/src/main/res/layout/module_overview_map_view.xml b/core/function-impl/mogo-core-function-map/src/main/res/layout/module_overview_map_view.xml index dedfa69132..d5184f1e3d 100644 --- a/core/function-impl/mogo-core-function-map/src/main/res/layout/module_overview_map_view.xml +++ b/core/function-impl/mogo-core-function-map/src/main/res/layout/module_overview_map_view.xml @@ -17,7 +17,7 @@ android:layout_height="match_parent" android:layout_centerInParent="true"> -