fix: align DEPCNT DEPARE safety control flow
This commit is contained in:
@@ -81,7 +81,16 @@ function dynamicRules(procedure,props,settings,context){
|
||||
if(props.s52_source_object_class==="DRGARE"&&!Object.prototype.hasOwnProperty.call(props,"depth_min_m"))color="DEPMD";const out=[rule("AC",[color],{procedure:procedure})];if(props.s52_source_object_class==="DRGARE")out.push(rule("AP",["DRGARE01"]),rule("LS",["DASH","1","CHGRF"]));return out;
|
||||
}
|
||||
if(procedure==="DEPCNT02"){
|
||||
const contour=numberValue(props,"contour_depth_m",0),safe=context.effectiveSafetyContourM!==null&&Math.abs(contour-context.effectiveSafetyContourM)<1e-4,q=numberValue(props,"s52_quapos_code",0);let out=[];
|
||||
let safe=false;
|
||||
if(String(props.s52_source_object_class||"")==="DEPARE"){
|
||||
const d1=numberValue(props,"depth_min_m",0),d2=numberValue(props,"depth_max_m",d1);
|
||||
if(d1<=settings.safetyContourM)safe=d2>=settings.safetyContourM;
|
||||
else safe=context.effectiveSafetyContourM!==null&&Math.abs(d1-context.effectiveSafetyContourM)<1e-4;
|
||||
}else{
|
||||
const contour=numberValue(props,"contour_depth_m",0);
|
||||
safe=Math.abs(contour-settings.safetyContourM)<1e-4||(context.effectiveSafetyContourM!==null&&Math.abs(contour-context.effectiveSafetyContourM)<1e-4);
|
||||
}
|
||||
const q=numberValue(props,"s52_quapos_code",0);let out=[];
|
||||
if(q>=2&&q<10)out=safe?storedRules(props,"s52_safe_dashed_rule_chain"):[rule("LS",["DASH","1","DEPCN"])];else if(q===0)out=safe?storedRules(props,"s52_safe_solid_rule_chain"):[rule("LS",["SOLD","1","DEPCN"])];
|
||||
if(safe){if(!out.length)out=[rule("LS",[q>=2?"DASH":"SOLD","2","DEPSC"])];out.unshift(sideEffect({display_category:"Displaybase",scamin:100000001}));}return out;
|
||||
}return [];
|
||||
|
||||
Reference in New Issue
Block a user