From 78d4d1d58fba0c430b730d4c856384f33901fac7 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Thu, 6 Aug 2020 11:02:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=A6=96=E6=AC=A1=E6=89=93?= =?UTF-8?q?=E5=BC=80=E6=97=A0=E6=B3=95=E5=88=B7=E6=96=B0=E9=81=93=E8=B7=AF?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/module/service/MogoServices.java | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) 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 3b184598cb..1cd37bc275 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 @@ -364,6 +364,7 @@ public class MogoServices implements IMogoMapListener, if ( msg.obj instanceof RefreshObject ) { RefreshObject ro = ( ( RefreshObject ) msg.obj ); if ( ro.mLonLat == null ) { + invokeAutoRefreshStrategy(); return; } mRefreshModel.refreshData( ro.mLonLat, ro.mRadius, ro.mAmount, ro.mCallback ); @@ -617,9 +618,7 @@ public class MogoServices implements IMogoMapListener, // 自动刷新触发 final MogoLatLng point = new MogoLatLng( location.getLatitude(), location.getLongitude() ); if ( mLastAutoRefreshLocation == null ) { - mLastAutoRefreshLocation = point; - mLoopRequest = true; - notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); + startFirstLocationRequest( point ); return; } float distance = Utils.calculateLineDistance( mLastAutoRefreshLocation, point ); @@ -633,8 +632,27 @@ public class MogoServices implements IMogoMapListener, } } + /** + * 首次定位成功后,执行道路事件的刷新 + * + * @param point + */ + private void startFirstLocationRequest( MogoLatLng point ) { + mLastAutoRefreshLocation = point; + mLoopRequest = true; + notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); + } + @Override public void onCarLocationChanged2( Location latLng ) { + if ( latLng == null ) { + return; + } + // poi 定位无法获取时,使用该定位 + if ( mLastAutoRefreshLocation == null ) { + MogoLatLng point = new MogoLatLng( latLng.getLatitude(), latLng.getLongitude() ); + startFirstLocationRequest( point ); + } } @Override