This commit is contained in:
wangcongtao
2020-03-14 15:16:24 +08:00
parent 7524c3b42d
commit bef5a7b527

View File

@@ -130,19 +130,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
mIsMarkerClicked = true;
Logger.d( TAG, "onMarkerClicked 点击了大而全中的Marker" + marker );
try {
if ( mLastCheckMarker != null ) {
// 判断点击的是否是同一个
if ( marker.equals( mLastCheckMarker ) ) {
Logger.d( TAG, "onMarkerClicked 与上一次点击的Marker一样不做处理" + marker );
return false;
}
// 将上次选中 Marker 设置为未选中状态
closeMarker( mLastCheckMarker );
boolean result = switchMarkerOpenStatus( marker );
if ( !result ) {
return false;
}
// 将当前的Marker设置为选中
openMarker( marker );
// 数据统计代码
final Map< String, Object > properties = new HashMap<>();
switch ( mLastCheckMarker.getOwner() ) {
@@ -191,6 +183,28 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
return false;
}
/**
* 切换当前选中marker和上一个选中的状态
*
* @param marker
* @return
*/
private boolean switchMarkerOpenStatus( IMogoMarker marker ) {
if ( mLastCheckMarker != null ) {
// 判断点击的是否是同一个
if ( marker.equals( mLastCheckMarker ) ) {
Logger.d( TAG, "onMarkerClicked 与上一次点击的Marker一样不做处理" + marker );
return false;
}
// 将上次选中 Marker 设置为未选中状态
closeMarker( mLastCheckMarker );
}
// 将当前的Marker设置为选中
openMarker( marker );
return true;
}
// 对指定类型高亮处理
public synchronized void highlightedMarker( final String typeTag ) {
@@ -772,23 +786,16 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
@Override
public void onBizActionDone( String biz, int position, Object data ) {
Logger.d( TAG, "biz = %s, position = %s", biz, position );
if ( !( data instanceof MarkerShowEntity ) ) {
return;
}
if ( ( ( MarkerShowEntity ) data ).getMarker() != null ) {
onMarkerClicked( ( ( MarkerShowEntity ) data ).getMarker() );
if ( data instanceof MarkerShowEntity &&
( ( MarkerShowEntity ) data ).getMarker() != null ) {
switchMarkerOpenStatus( ( ( MarkerShowEntity ) data ).getMarker() );
} else {
IMogoMarkerManager markerManager = MarkerServiceHandler.getMarkerManager();
List< IMogoMarker > markers = markerManager.getMarkers( biz );
if ( markers != null ) {
for ( IMogoMarker marker : markers ) {
if ( !( marker.getObject() instanceof MarkerShowEntity ) ) {
continue;
}
if ( ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() == data ) {
onMarkerClicked( marker );
break;
}
IMogoMarker marker = markers.get( position );
if ( marker != null ) {
switchMarkerOpenStatus( marker );
}
}
}