This commit is contained in:
wangcongtao
2020-06-16 17:06:18 +08:00
parent 6555ba7de6
commit 81a200ec1c
10 changed files with 383 additions and 28 deletions

View File

@@ -647,6 +647,10 @@ public class MogoServices implements IMogoMapListener,
return;
}
if ( !mStatusManager.isMainPageOnResume() ) {
return;
}
if ( mStatusManager.isSearchUIShow() ) {
return;
}

View File

@@ -66,7 +66,7 @@ public class Utils {
}
public static void main( String[] args ) {
double calculateLineDistance = calculateLineDistance( new MogoLatLng( 39.955533, 116.423262 ), new MogoLatLng( 39.955385, 116.414604 ) );
double calculateLineDistance = calculateLineDistance( new MogoLatLng( 39.968598, 116.411121 ), new MogoLatLng( 39.968598, 116.411121 ) );
System.out.println( "距离点 calculateLineDistance" + calculateLineDistance );
}
}

View File

@@ -120,7 +120,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
Map< String, Object > properties = new HashMap<>();
if ( marker.getObject() instanceof MarkerShowEntity ) {
properties.put( "sn", getCarSnFromMarker( marker ) );
final String sn = getCarSnFromEntity( marker );
if ( TextUtils.isEmpty( sn ) ) {
return false;
}
properties.put( "sn", sn );
if ( ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() instanceof MarkerExploreWay ) {
MarkerExploreWay exploreWay = ( MarkerExploreWay ) ( ( MarkerShowEntity ) marker.getObject() ).getBindObj();
properties.put( "dbid", exploreWay.getInfoId() );
@@ -482,7 +486,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
} else if ( entity instanceof MarkerNoveltyInfo ) {
return ( ( MarkerNoveltyInfo ) entity ).getSn();
} else if ( entity instanceof MarkerExploreWay ) {
return ( ( MarkerExploreWay ) entity ).getInfoId();
return ( ( MarkerExploreWay ) entity ).getUserInfo().getSn();
}
} catch ( Exception e ) {
@@ -844,6 +848,10 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
List< MogoLatLng > points = new ArrayList<>();
double lastLat = 0.0d;
double lastLon = 0.0d;
for ( int j = 0; j < poiList.size(); j++ ) {
MarkerCarPois poi = poiList.get( j );
if ( poi == null || poi.getCoordinates() == null && poi.getCoordinates().size() != 2 ) {
@@ -852,6 +860,14 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
try {
double lat = Double.valueOf( poi.getCoordinates().get( 1 ) + "" );
double lng = Double.valueOf( poi.getCoordinates().get( 0 ) + "" );
float distance = Utils.calculateLineDistance( lastLon, lastLat, lng, lat );
lastLon = lng;
lastLat = lat;
if ( distance < 0.5f ) {// 距离过短,认为静止不动
continue;
}
points.add( new MogoLatLng( lat, lng ) );
} catch ( Exception e ) {
}
@@ -859,6 +875,8 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
if ( points.size() >= 1 ) {
points.add( new MogoLatLng( markerLocation.getLat(), markerLocation.getLon() ) );
iMogoMarker.startSmooth( points, SMOOTH_DURATION );
} else {
Logger.d( TAG, "静止小车,但是有相同的连续坐标" );
}
}
@@ -892,7 +910,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
return MarkerServiceHandler.getMogoStatusManager().isSearchUIShow()
|| MarkerServiceHandler.getMogoStatusManager().isV2XShow()
|| !MarkerServiceHandler.getMogoStatusManager().isMainPageLaunched()
|| !MarkerServiceHandler.getMogoStatusManager().isMainPageLaunched();
|| !MarkerServiceHandler.getMogoStatusManager().isMainPageOnResume();
}
private void runOnTargetThread( Runnable runnable ) {