|
@@ -70,35 +70,45 @@ public interface ITurnPointCalculator {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ /**判断是否保留原来的转点*/
|
|
static boolean persist(List<TurnPoint> list){
|
|
static boolean persist(List<TurnPoint> list){
|
|
- /*在补充计算之前进行完整性校验,如果成功怎不会再生成任何新转点*/
|
|
|
|
- if(list.stream().anyMatch(e->ZD.equals(e.getType()))){
|
|
|
|
|
|
+ /*在补充计算之前进行完整性校验,如果成功则不会再生成任何新转点*/
|
|
|
|
+ if(Func.isNotEmpty(list)){
|
|
LevelInfo tmp = new LevelInfo();
|
|
LevelInfo tmp = new LevelInfo();
|
|
LevelInfo info = list.get(0).getLevelInfo();
|
|
LevelInfo info = list.get(0).getLevelInfo();
|
|
tmp.setSightHeight(info.getSightHeight());
|
|
tmp.setSightHeight(info.getSightHeight());
|
|
for(TurnPoint tp:list){
|
|
for(TurnPoint tp:list){
|
|
if(CE.equals(tp.getType())||CLOSE.equals(tp.getType())){
|
|
if(CE.equals(tp.getType())||CLOSE.equals(tp.getType())){
|
|
- boolean pass;
|
|
|
|
|
|
+ boolean pass=false;
|
|
if(BaseUtils.isNumber(tp.getSc())&&BaseUtils.isNumber(tp.getQ())){
|
|
if(BaseUtils.isNumber(tp.getSc())&&BaseUtils.isNumber(tp.getQ())){
|
|
pass=tmp.getSightHeight()-tp.getQ0L()==tp.getSc0L();
|
|
pass=tmp.getSightHeight()-tp.getQ0L()==tp.getSc0L();
|
|
}else {
|
|
}else {
|
|
/*是否是负前视*/
|
|
/*是否是负前视*/
|
|
- boolean nagetive =false;
|
|
|
|
|
|
+ boolean negative =false;
|
|
if(BaseUtils.isNumber(tp.getSc())){
|
|
if(BaseUtils.isNumber(tp.getSc())){
|
|
tp.setQ(tmp.getSightHeight()-tp.getSc0L());
|
|
tp.setQ(tmp.getSightHeight()-tp.getSc0L());
|
|
}else if(BaseUtils.isNumber(tp.getQ())){
|
|
}else if(BaseUtils.isNumber(tp.getQ())){
|
|
- nagetive=tp.getQ0L()<0;
|
|
|
|
- }else if(BaseUtils.isNumber(tp.getSj())&&BaseUtils.isNumber(tp.getDx())){
|
|
|
|
- tp.setSc(tp.getSj0L()+tp.getDx0L());
|
|
|
|
- tp.setQ(tmp.getSightHeight()-tp.getSc0L());
|
|
|
|
|
|
+ negative=tp.getQ0L()<0;
|
|
|
|
+ }else if(BaseUtils.isNumber(tp.getSj())){
|
|
|
|
+ if(BaseUtils.isNumber(tp.getDx())){
|
|
|
|
+ tp.setSc(tp.getSj0L()+tp.getDx0L());
|
|
|
|
+ }else{
|
|
|
|
+ tp.setSc(tp.getSj0L()+Double.parseDouble(rangeList(1, 0, info.getDx(), 0.001, 3, 1).get(0).toString()));
|
|
|
|
+ }
|
|
|
|
+ double q=tmp.getSightHeight()-tp.getSc0L();
|
|
|
|
+ if(q>info.getMin()) {
|
|
|
|
+ tp.setQ(q);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- double q=tp.getQ0L();
|
|
|
|
- if(nagetive){
|
|
|
|
- /*负前视是倒尺计算,要取绝对值比较*/
|
|
|
|
- q=Math.abs(q);
|
|
|
|
|
|
+ if(BaseUtils.isNumber(tp.getQ())) {
|
|
|
|
+ double q = tp.getQ0L();
|
|
|
|
+ if (negative) {
|
|
|
|
+ /*负前视是倒尺计算,要取绝对值比较*/
|
|
|
|
+ q = Math.abs(q);
|
|
|
|
+ }
|
|
|
|
+ /*判断前视是否在合理范围*/
|
|
|
|
+ pass = q >= info.getMin() && q <= info.getStep();
|
|
}
|
|
}
|
|
- /*判断前视是否在合理范围*/
|
|
|
|
- pass= q>=info.getMin()&&q<=info.getStep();
|
|
|
|
}
|
|
}
|
|
if(!pass){
|
|
if(!pass){
|
|
return false;
|
|
return false;
|
|
@@ -314,8 +324,16 @@ public interface ITurnPointCalculator {
|
|
tp.setDx(dx);
|
|
tp.setDx(dx);
|
|
}
|
|
}
|
|
if(StringUtils.isNotEmpty(tp.getQ())){
|
|
if(StringUtils.isNotEmpty(tp.getQ())){
|
|
- tp.setSc(info.getSightHeight()-tp.getQ0L());
|
|
|
|
- tp.setDx(tp.getSj0L()-tp.getSj0L());
|
|
|
|
|
|
+ double sc=info.getSightHeight()-tp.getQ0L();
|
|
|
|
+ if(BaseUtils.isNumber(tp.getSj())){
|
|
|
|
+ if(info.isRangeOfDx(sc-tp.getSj0L())){
|
|
|
|
+ tp.setSc(sc);
|
|
|
|
+ tp.setDx(tp.getSc0L()-tp.getSj0L());
|
|
|
|
+ }else{
|
|
|
|
+ tp.setSc(tp.getSj0L()+tp.getDx0L());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
}else{
|
|
}else{
|
|
tp.setSc(tp.getSj0L() + tp.getDx0L());
|
|
tp.setSc(tp.getSj0L() + tp.getDx0L());
|
|
tp.setQ(info.getSightHeight() - tp.getSc0L());
|
|
tp.setQ(info.getSightHeight() - tp.getSc0L());
|