diff --git a/app/src/main/java/com/navinfo/outdoor/activity/AutoTakePictureActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/AutoTakePictureActivity.java index 8767be0..dfa1ad1 100644 --- a/app/src/main/java/com/navinfo/outdoor/activity/AutoTakePictureActivity.java +++ b/app/src/main/java/com/navinfo/outdoor/activity/AutoTakePictureActivity.java @@ -87,6 +87,7 @@ import com.otaliastudios.cameraview.size.AspectRatio; import com.otaliastudios.cameraview.size.SizeSelector; import com.otaliastudios.cameraview.size.SizeSelectors; import com.tencent.map.geolocation.TencentLocation; +import com.tencent.map.geolocation.TencentMotion; import com.tencent.map.geolocation.TencentPoi; import com.tencent.tencentmap.mapsdk.maps.CameraUpdate; import com.tencent.tencentmap.mapsdk.maps.CameraUpdateFactory; @@ -718,21 +719,21 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic finishEntityMap.put(roadMatchEntity.getId(), roadMatchEntity); } // 匹配到终点、或匹配距离超过90% - if (roadMatchEntity.getMatchPointList().size()>=2&&GeometryTools.getLineStringByMyCoordinate(roadMatchEntity.getMatchPointList()).getLength()/roadMatchEntity.getLength()>=MATCH_CONFIRM_FINISH_BUFFER + if ((roadMatchEntity.getMatchPointList().size()>=2&&GeometryTools.getLineStringByMyCoordinate(roadMatchEntity.getMatchPointList()).getLength()/roadMatchEntity.getLength()>=MATCH_CONFIRM_FINISH_BUFFER) || currentEndDistance<= finalMatchStartDistance) { roadMatchEntity.setEndMathchTime(System.currentTimeMillis()); // 匹配到终点后,记录该条数据的最新一次匹配距离,当下一次匹配距离大于当前距离,则认为该数据完全匹配,结束匹配 roadMatchEntity.setLastEndDistance(currentEndDistance); } } else { // 无法匹配,或当前道路并不是距离最近的数据 + // 将无法匹配的点位个数记录到对象中 + roadMatchEntity.setUnMatchCount(roadMatchEntity.getUnMatchCount()+1); + roadMatchEntity.setMatchCount(0);// 设置连续匹配的数据个数为0 + roadMatchEntity.getUnMatchPointList().add(new MyCoordinate(currentPoint.getX(), currentPoint.getY())); // 该数据未匹配,但是如果此前已经匹配到结束点,则仍然认为匹配成功 if (roadMatchEntity.getEndMathchTime()>0) { finishEntityMap.put(roadMatchEntity.getId(), roadMatchEntity); } else { - // 将无法匹配的点位个数记录到对象中 - roadMatchEntity.setUnMatchCount(roadMatchEntity.getUnMatchCount()+1); - roadMatchEntity.setMatchCount(0);// 设置连续匹配的数据个数为0 - roadMatchEntity.getUnMatchPointList().add(new MyCoordinate(currentPoint.getX(), currentPoint.getY())); // 判断当前是否存在已匹配的点 if (roadMatchEntity.getMatchPointList().size()>1) { // 存在匹配的点超过1个,根据长度判断 if (GeometryTools.getLineStringByMyCoordinate(roadMatchEntity.getMatchPointList()).getLength()/roadMatchEntity.getLength()>UNMATCH_GIVE_UP_DISTANCE_BUFFER) { @@ -770,9 +771,12 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic } // TODO 完成的entity数据,需要自动生成对应的数据,还需要自动复制对应的照片,通知服务器采集完成 finishRoadTask(finishEntityMap); - // 语音提示用户 - mediaPlayer.start(); - systemTTS.playText("拍摄完成"); + // 只有在没有正在拍摄的任务,所有任务都拍摄完成时才会提示 + if (roadMatchEntityList.isEmpty()) { + // 语音提示用户 + mediaPlayer.start(); + systemTTS.playText("拍摄完成"); + } } if (!unMatchList.isEmpty()) { @@ -826,7 +830,7 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic .cls(TaskByNetBean.class) .params(new HttpParams()) .token(Constant.ACCESS_TOKEN); - okhttp3.Response response = okGoBuilder.getSynchronization(); + Response response = okGoBuilder.getSynchronization(); Gson gson = new Gson(); TaskByNetBean taskByNetBean = gson.fromJson(response.body().string(), TaskByNetBean.class); if (taskByNetBean.getCode() == 200) { @@ -1457,6 +1461,16 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic return "NetWork"; } + @Override + public String getFusionProvider() { + return null; + } + + @Override + public String getSourceProvider() { + return null; + } + @Override public double getLatitude() { return latLng.getLatitude(); @@ -1562,6 +1576,11 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic return 0; } + @Override + public int getInOutStatus() { + return 0; + } + @Override public String getIndoorBuildingId() { return null; @@ -1592,11 +1611,36 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic return null; } + @Override + public TencentMotion getMotion() { + return null; + } + + @Override + public int getGpsQuality() { + return 0; + } + + @Override + public float getDeltaAngle() { + return 0; + } + + @Override + public float getDeltaSpeed() { + return 0; + } + @Override public int getCoordinateType() { return 0; } + @Override + public int getFakeReason() { + return 0; + } + @Override public int isMockGps() { return 0;