From 796c7e5755d4164ad5a99748d2a9fa33e2363fcd Mon Sep 17 00:00:00 2001 From: zhangyuanzhen Date: Fri, 7 Feb 2020 21:41:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=AF=E5=BE=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../map/impl/amap/navi/CalculatePathItem.java | 75 +++++++++++-------- .../map/impl/amap/navi/NaviOverlayHelper.java | 7 +- .../navi/ui/search/ChoosePathFragment.kt | 1 - 3 files changed, 49 insertions(+), 34 deletions(-) diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/CalculatePathItem.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/CalculatePathItem.java index 83a63aa0ec..262aab4e5b 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/CalculatePathItem.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/CalculatePathItem.java @@ -6,8 +6,11 @@ import android.text.TextUtils; import com.amap.api.maps.AMap; import com.amap.api.navi.model.AMapNaviPath; import com.amap.api.navi.model.AMapNaviStep; +import com.amap.api.navi.model.NaviLatLng; +import com.mogo.map.MogoLatLng; import com.mogo.map.impl.amap.overlay.RouteOverLayWrapper; +import java.util.ArrayList; import java.util.List; /** @@ -33,14 +36,14 @@ public class CalculatePathItem { return mPath; } - public RouteOverLayWrapper getOverLazWrapper( boolean createIfNull ) { - if ( mOverLazWrapper == null && createIfNull ) { - mOverLazWrapper = new RouteOverLayWrapper( mContext, mAMap, mPath ); + public RouteOverLayWrapper getOverLazWrapper(boolean createIfNull) { + if (mOverLazWrapper == null && createIfNull) { + mOverLazWrapper = new RouteOverLayWrapper(mContext, mAMap, mPath); } return mOverLazWrapper; } - public CalculatePathItem( Context context, AMap amap, int id, AMapNaviPath path ) { + public CalculatePathItem(Context context, AMap amap, int id, AMapNaviPath path) { mContext = context; mAMap = amap; this.mId = id; @@ -52,41 +55,41 @@ public class CalculatePathItem { } public String getTime() { - if ( mTimeBuilder == null ) { + if (mTimeBuilder == null) { final int time = mPath.getAllTime(); mTimeBuilder = new StringBuilder(); - fillFormatTime( time, mTimeBuilder ); + fillFormatTime(time, mTimeBuilder); } return mTimeBuilder.toString(); } private StringBuilder mTimeBuilder; - private void fillFormatTime( int seconds, StringBuilder builder ) { -// int days = seconds / ( 24 * 60 * 60 ); -// if ( days > 0 ) { -// builder.append( days ).append( "天" ); -// } -// seconds -= days * 24 * 60 * 60; - int hours = seconds / ( 60 * 60 ); - if ( hours > 0 ) { - builder.append( hours ).append( "小时" ); + private void fillFormatTime(int seconds, StringBuilder builder) { + // int days = seconds / ( 24 * 60 * 60 ); + // if ( days > 0 ) { + // builder.append( days ).append( "天" ); + // } + // seconds -= days * 24 * 60 * 60; + int hours = seconds / (60 * 60); + if (hours > 0) { + builder.append(hours).append("小时"); } seconds -= hours * 60 * 60; int min = seconds / 60; - builder.append( min > 1 ? min : 1 ).append( "分钟" ); + builder.append(min > 1 ? min : 1).append("分钟"); } private String mDistanceCacheStr = ""; public String getDistance() { - if ( TextUtils.isEmpty( mDistanceCacheStr ) ) { + if (TextUtils.isEmpty(mDistanceCacheStr)) { int distance = mPath.getAllLength(); - if ( distance == -1 ) { + if (distance == -1) { mDistanceCacheStr = "路程总程未获取"; } - if ( distance >= 1000 ) { - mDistanceCacheStr = String.format( "%.1f公里", ( float ) distance / 1000 ); + if (distance >= 1000) { + mDistanceCacheStr = String.format("%.1f公里", (float) distance / 1000); } else { mDistanceCacheStr = distance + "米"; } @@ -94,19 +97,17 @@ public class CalculatePathItem { return mDistanceCacheStr; } - - private StringBuilder mDescBuilder = null; public String getDesc() { - if ( mDescBuilder == null ) { + if (mDescBuilder == null) { mDescBuilder = new StringBuilder(); int lightsSize = getTrafficNumber(); - if ( lightsSize > 0 ) { - mDescBuilder.append( "红绿灯" ).append( lightsSize ).append( "个" ); + if (lightsSize > 0) { + mDescBuilder.append("红绿灯").append(lightsSize).append("个"); } - mDescBuilder.append( " " ); - mDescBuilder.append( "收费" ).append( mPath.getTollCost() ).append( "元" ); + mDescBuilder.append(" "); + mDescBuilder.append("收费").append(mPath.getTollCost()).append("元"); } return mDescBuilder.toString(); @@ -114,11 +115,11 @@ public class CalculatePathItem { public int getTrafficNumber() { int trafficLightNumber = 0; - if ( mPath == null ) { + if (mPath == null) { return trafficLightNumber; } - List< AMapNaviStep > steps = mPath.getSteps(); - for ( AMapNaviStep step : steps ) { + List steps = mPath.getSteps(); + for (AMapNaviStep step : steps) { trafficLightNumber += step.getTrafficLightNumber(); } return trafficLightNumber; @@ -128,9 +129,21 @@ public class CalculatePathItem { mContext = null; mAMap = null; mPath = null; - if ( mOverLazWrapper != null ) { + if (mOverLazWrapper != null) { mOverLazWrapper.destroy(); } mOverLazWrapper = null; } + + public List getCoordList() { + + ArrayList mogoLatLngs = new ArrayList<>(); + for (NaviLatLng latlng : mPath.getCoordList() + ) { + MogoLatLng mogoLatLng = + new MogoLatLng(latlng.getLatitude(), latlng.getLongitude()); + mogoLatLngs.add(mogoLatLng); + } + return mogoLatLngs; + } } \ No newline at end of file diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java index ea00c257a0..62b15c5f59 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java @@ -319,9 +319,12 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction { public List getCalculatedPathPos() { - if (mPaths != null && !mPaths.isEmpty()) { - return mPaths.get(0).getCoordList(); + if (mSelectedCalculatePathItem != null) { + return mSelectedCalculatePathItem.getCoordList(); } + //if (mPaths != null && !mPaths.isEmpty()) { + // return mPaths.get(0).getCoordList(); + //} return null; } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt index 169aefc806..8657696fd6 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt @@ -45,7 +45,6 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener { override fun onCalculateSuccess() { var calculatedStrategies = SearchServiceHolder.getNavi() .calculatedStrategies - if (calculatedStrategies != null && calculatedStrategies.size > 0) { mAdapter.setDatas(calculatedStrategies) mAdapter.selectTag = calculatedStrategies[0].tagId