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<>();