opt
This commit is contained in:
@@ -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 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user