diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index a5f9f1be4a..2e6e044185 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -441,7 +441,7 @@ public class AMapNaviViewWrapper implements IMogoMapView, case CarUp_3D: case NorthUP_2D: setUIMode( ui, options ); - return; + break; case Type_Light: options.setNaviNight( false ); break; diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index b22f33d0a7..8654b9b00a 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -546,10 +546,16 @@ public class MogoServices implements IMogoMapListener, private int getQueryRadius() { mCameraSouthWestPosition = mUiController.getCameraSouthWestPosition(); mCameraNorthEastPosition = mUiController.getCameraNorthEastPosition(); + int radius = 0; if ( mIsVertical ) { - return ( ( int ) ( getMapCameraFactWidth() / 2 ) ); + radius = ( ( int ) ( getMapCameraFactWidth() / 2 ) ); + } else { + radius = ( ( int ) ( getMapCameraFactHeight() / 2 ) ); } - return ( ( int ) ( getMapCameraFactHeight() / 2 ) ); + if ( radius < 1000 ) { + return 1_000; + } + return radius; } /** diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/Utils.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/Utils.java index 3a3ebfded5..ef4534ac61 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/Utils.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/Utils.java @@ -17,45 +17,56 @@ public class Utils { * @param point2 点二坐标 * @return 两坐标的距离 单位:米(M) */ - public static float calculateLineDistance(MogoLatLng point1, MogoLatLng point2) { - if (point1 != null && point2 != null) { - try { - double var2 = point1.lng; - double var4 = point1.lat; - double var6 = point2.lng; - double var8 = point2.lat; - var2 *= 0.01745329251994329D; - var4 *= 0.01745329251994329D; - var6 *= 0.01745329251994329D; - var8 *= 0.01745329251994329D; - double var10 = Math.sin(var2); - double var12 = Math.sin(var4); - double var14 = Math.cos(var2); - double var16 = Math.cos(var4); - double var18 = Math.sin(var6); - double var20 = Math.sin(var8); - double var22 = Math.cos(var6); - double var24 = Math.cos(var8); - double[] var28 = new double[3]; - double[] var29 = new double[3]; - var28[0] = var16 * var14; - var28[1] = var16 * var10; - var28[2] = var12; - var29[0] = var24 * var22; - var29[1] = var24 * var18; - var29[2] = var20; - return (float) (Math.asin(Math.sqrt((var28[0] - var29[0]) * (var28[0] - var29[0]) + (var28[1] - var29[1]) * (var28[1] - var29[1]) + (var28[2] - var29[2]) * (var28[2] - var29[2])) / 2.0D) * 1.27420015798544E7D); - } catch (Throwable var26) { - var26.printStackTrace(); - return 0.0F; - } + public static float calculateLineDistance( MogoLatLng point1, MogoLatLng point2 ) { + if ( point1 != null && point2 != null ) { + return calculateLineDistance( point1.lon, point1.lat, point2.lon, point2.lat ); } else { return 0.0F; } } - public static void main(String[] args) { - double calculateLineDistance = calculateLineDistance(new MogoLatLng(39.955533, 116.423262), new MogoLatLng(39.955385, 116.414604)); - System.out.println("距离点 calculateLineDistance:" + calculateLineDistance); + /** + * @param lon1 + * @param lat1 + * @param lon2 + * @param lat2 + * @return 两坐标的距离 单位:米(M) + */ + public static float calculateLineDistance( double lon1, double lat1, double lon2, double lat2 ) { + try { + double var2 = lon1; + double var4 = lat1; + double var6 = lon2; + double var8 = lat2; + var2 *= 0.01745329251994329D; + var4 *= 0.01745329251994329D; + var6 *= 0.01745329251994329D; + var8 *= 0.01745329251994329D; + double var10 = Math.sin( var2 ); + double var12 = Math.sin( var4 ); + double var14 = Math.cos( var2 ); + double var16 = Math.cos( var4 ); + double var18 = Math.sin( var6 ); + double var20 = Math.sin( var8 ); + double var22 = Math.cos( var6 ); + double var24 = Math.cos( var8 ); + double[] var28 = new double[3]; + double[] var29 = new double[3]; + var28[0] = var16 * var14; + var28[1] = var16 * var10; + var28[2] = var12; + var29[0] = var24 * var22; + var29[1] = var24 * var18; + var29[2] = var20; + return ( float ) ( Math.asin( Math.sqrt( ( var28[0] - var29[0] ) * ( var28[0] - var29[0] ) + ( var28[1] - var29[1] ) * ( var28[1] - var29[1] ) + ( var28[2] - var29[2] ) * ( var28[2] - var29[2] ) ) / 2.0D ) * 1.27420015798544E7D ); + } catch ( Throwable var26 ) { + var26.printStackTrace(); + return 0.0F; + } + } + + public static void main( String[] args ) { + double calculateLineDistance = calculateLineDistance( new MogoLatLng( 39.955533, 116.423262 ), new MogoLatLng( 39.955385, 116.414604 ) ); + System.out.println( "距离点 calculateLineDistance:" + calculateLineDistance ); } } 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 316e251e3f..458535fb7f 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 @@ -818,10 +818,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, * @return */ private boolean ignoreOnlineCarRequest() { - if ( MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() ) { - return true; - } - return false; + return ignoreDrawRequest(); } private void removeCarMarkers() { @@ -885,7 +882,9 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } private boolean ignoreDrawRequest() { - return MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() || MarkerServiceHandler.getMogoStatusManager().isADASShow(); + return MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() + || MarkerServiceHandler.getMogoStatusManager().isV2XShow() + || !MarkerServiceHandler.getMogoStatusManager().isMainPageLaunched(); } private void runOnTargetThread( Runnable runnable ) { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/UserDataMarkerInfoWindowAdapter.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/UserDataMarkerInfoWindowAdapter.java index 39965debba..ae5fc33693 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/UserDataMarkerInfoWindowAdapter.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/UserDataMarkerInfoWindowAdapter.java @@ -184,7 +184,7 @@ public class UserDataMarkerInfoWindowAdapter implements IMogoInfoWindowAdapter { params.put( CallChattingProviderConstant.CCPROVIDER_LON, location.getLon() + "" ); } Logger.d( TAG, "call parameters: %s", params ); - if ( MarkerServiceHandler.getApis().getStatusManagerApi().isADASShow() ) { + if ( MarkerServiceHandler.getApis().getStatusManagerApi().isV2XShow() ) { MarkerServiceHandler.getCarChatting().callShowWindow( params ); } else { MarkerServiceHandler.getCarChatting().call( params );