From 43cec56a1f12cf8ef485dabb35deb4ecd20a0ded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Fri, 21 Feb 2020 01:40:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86bug=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=BA=86=E7=BB=98=E5=88=B6=E6=B0=94=E6=B3=A1=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E5=80=99=E6=95=B0=E6=8D=AE=E5=BC=82=E5=B8=B8=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/service/MogoServiceProvider.java | 2 +- .../service/marker/MapMarkerManager.java | 25 ++++++++++++------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java index 23466988e7..90a125dc2f 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java @@ -427,7 +427,7 @@ public class MogoServiceProvider implements IMogoModuleProvider, @Override public void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ) { - + Logger.d(TAG, "onMapChanged==latLng:" + latLng+" mStatusManager.isUserInteracted()==="+mStatusManager.isUserInteracted()); if ( mIsCameraInited ) { mLastZoomLevel = zoom; mLastCustomRefreshCenterLocation = latLng; 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 5475f7e638..e049d34bb1 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 @@ -118,6 +118,10 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag public boolean onMarkerClicked(IMogoMarker marker) { Logger.i(TAG, "onMarkerClicked 点击了大而全中的Marker:" + marker); try { + // 移动地图到指定位置 + MarkerServiceHandler.getMogoStatusManager().setUserInteractionStatus(ServiceConst.TYPE, true, true); + MarkerServiceHandler.getMapUIController().moveToCenter(marker.getPosition()); + if (lastMarker != null) { // 判断点击的是否是同一个 if (marker.equals(lastMarker)) { @@ -127,22 +131,25 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag // 将上次选中 Marker 设置为未选中状态 MarkerShowEntity lastMarkerShowEntity = (MarkerShowEntity) lastMarker.getObject(); Logger.i(TAG, "onMarkerClicked 点击了大而全中的Marker lastMarkerShowEntity:" + lastMarkerShowEntity); - lastMarkerShowEntity.setChecked(false); - lastMarkerShowEntity.setHighlighted(false); - IMarkerView markerView = MapMarkerAdapter.getMarkerView(mContext, lastMarkerShowEntity, lastMarker.getMogoMarkerOptions()); - lastMarker.setIcon(fromView(markerView.getView())); + if (lastMarkerShowEntity != null) { + lastMarkerShowEntity.setChecked(false); + lastMarkerShowEntity.setHighlighted(false); + IMarkerView markerView = MapMarkerAdapter.getMarkerView(mContext, lastMarkerShowEntity, lastMarker.getMogoMarkerOptions()); + lastMarker.setIcon(fromView(markerView.getView())); + } } // 将当前的Marker设置为选中 MarkerShowEntity markerShowEntity = (MarkerShowEntity) marker.getObject(); Logger.i(TAG, "onMarkerClicked 点击了大而全中的Marker markerShowEntity:" + markerShowEntity); - markerShowEntity.setChecked(true); - markerShowEntity.setHighlighted(true); - IMarkerView markerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity, marker.getMogoMarkerOptions()); - marker.setIcon(fromView(markerView.getView())); + if (markerShowEntity != null) { + markerShowEntity.setChecked(true); + markerShowEntity.setHighlighted(true); + IMarkerView markerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity, marker.getMogoMarkerOptions()); + marker.setIcon(fromView(markerView.getView())); + } lastMarker = marker; - MarkerServiceHandler.getMapUIController().moveToCenter(lastMarker.getPosition()); // 数据统计代码 final Map properties = new HashMap<>();