@@ -5,6 +5,7 @@ const signals_railway_line = yaml.parse(fs.readFileSync('train_protection.yaml',
55const speed_railway_signals = yaml . parse ( fs . readFileSync ( 'speed_railway_signals.yaml' , 'utf8' ) ) . speed_railway_signals
66const signals_railway_signals = yaml . parse ( fs . readFileSync ( 'signals_railway_signals.yaml' , 'utf8' ) ) . signals_railway_signals
77const electrification_signals = yaml . parse ( fs . readFileSync ( 'electrification_signals.yaml' , 'utf8' ) ) . electrification_signals
8+ const loading_gauges = yaml . parse ( fs . readFileSync ( 'loading_gauge.yaml' , 'utf8' ) ) . loading_gauges
89
910const origin = `${ process . env . PUBLIC_PROTOCOL } ://${ process . env . PUBLIC_HOST } `
1011
@@ -958,6 +959,26 @@ const gaugeLayout = {
958959 'line-cap' : 'round' ,
959960} ;
960961
962+ const loadingGaugeCasingPaint = {
963+ 'line-color' : 'white' ,
964+ 'line-width' : railwayLineWidth ,
965+ 'line-gap-width' : 0.75 ,
966+ } ;
967+ const loadingGaugeFillPaint = ( dashArray ) => ( {
968+ 'line-color' : [ 'match' , [ 'get' , 'loading_gauge' ] ,
969+ ...loading_gauges . flatMap ( loading_gauge =>
970+ [ loading_gauge . value , loading_gauge . color ]
971+ ) ,
972+ 'gray' ,
973+ ] ,
974+ 'line-width' : railwayLineWidth ,
975+ 'line-dasharray' : dashArray ,
976+ } ) ;
977+ const loadingGaugeLayout = {
978+ 'line-join' : 'round' ,
979+ 'line-cap' : 'round' ,
980+ } ;
981+
961982const attribution = '<a href="https://github.com/hiddewie/OpenRailwayMap-vector" target="_blank">© OpenRailwayMap contributors</a> | <a href="https://www.openstreetmap.org/about" target="_blank">© OpenStreetMap contributors</a>' ;
962983
963984const sources = {
@@ -3057,17 +3078,17 @@ const layers = {
30573078 maxzoom : 7 ,
30583079 source : 'openrailwaymap_low' ,
30593080 'source-layer' : 'railway_line_low' ,
3060- paint : gaugeCasingPaint ,
3061- layout : gaugeLayout ,
3081+ paint : loadingGaugeCasingPaint ,
3082+ layout : loadingGaugeLayout ,
30623083 } ,
30633084 {
30643085 id : 'loading_gauge_railway_line_low_fill' ,
30653086 type : 'line' ,
30663087 maxzoom : 7 ,
30673088 source : 'openrailwaymap_low' ,
30683089 'source-layer' : 'railway_line_low' ,
3069- paint : gaugeFillPaint ( 'gauge0' , 'gaugeint0' , [ 1 ] ) ,
3070- layout : gaugeLayout ,
3090+ paint : loadingGaugeFillPaint ( [ 1 ] ) ,
3091+ layout : loadingGaugeLayout ,
30713092 } ,
30723093 {
30733094 id : 'loading_gauge_railway_line_med_casing' ,
@@ -3076,8 +3097,8 @@ const layers = {
30763097 maxzoom : 8 ,
30773098 source : 'openrailwaymap_med' ,
30783099 'source-layer' : 'railway_line_med' ,
3079- paint : gaugeCasingPaint ,
3080- layout : gaugeLayout ,
3100+ paint : loadingGaugeCasingPaint ,
3101+ layout : loadingGaugeLayout ,
30813102 } ,
30823103 {
30833104 id : 'loading_gauge_railway_line_med_fill' ,
@@ -3086,8 +3107,8 @@ const layers = {
30863107 maxzoom : 8 ,
30873108 source : 'openrailwaymap_med' ,
30883109 'source-layer' : 'railway_line_med' ,
3089- paint : gaugeFillPaint ( 'gauge0' , 'gaugeint0' , [ 1 ] ) ,
3090- layout : gaugeLayout ,
3110+ paint : loadingGaugeFillPaint ( [ 1 ] ) ,
3111+ layout : loadingGaugeLayout ,
30913112 } ,
30923113 {
30933114 id : 'loading_gauge_railway_line_casing' ,
@@ -3096,8 +3117,8 @@ const layers = {
30963117 source : 'high' ,
30973118 'source-layer' : 'railway_line_high' ,
30983119 filter : [ '!=' , [ 'get' , 'railway' ] , 'construction' ] ,
3099- paint : gaugeCasingPaint ,
3100- layout : gaugeLayout ,
3120+ paint : loadingGaugeCasingPaint ,
3121+ layout : loadingGaugeLayout ,
31013122 } ,
31023123 {
31033124 id : 'loading_gauge_railway_line_casing_construction' ,
@@ -3120,8 +3141,8 @@ const layers = {
31203141 source : 'high' ,
31213142 'source-layer' : 'railway_line_high' ,
31223143 filter : [ '!=' , [ 'get' , 'railway' ] , 'construction' ] ,
3123- paint : gaugeFillPaint ( 'gauge0' , 'gaugeint0' , [ 1 ] ) ,
3124- layout : gaugeLayout ,
3144+ paint : loadingGaugeFillPaint ( [ 1 ] ) ,
3145+ layout : loadingGaugeLayout ,
31253146 } ,
31263147 {
31273148 id : 'loading_gauge_railway_line_fill_construction' ,
@@ -3130,60 +3151,8 @@ const layers = {
31303151 source : 'high' ,
31313152 'source-layer' : 'railway_line_high' ,
31323153 filter : [ '==' , [ 'get' , 'railway' ] , 'construction' ] ,
3133- paint : gaugeFillPaint ( 'gauge0' , 'gaugeint0' , gauge_construction_dashes ) ,
3134- layout : gaugeLayout ,
3135- } ,
3136- {
3137- id : 'loading_gauge_railway_dual_gauge_line' ,
3138- type : 'line' ,
3139- minzoom : 8 ,
3140- source : 'high' ,
3141- 'source-layer' : 'railway_line_high' ,
3142- filter : [ 'all' ,
3143- [ '!=' , [ 'get' , 'gauge1' ] , null ] ,
3144- [ '!=' , [ 'get' , 'railway' ] , 'construction' ] ,
3145- ] ,
3146- paint : gaugeFillPaint ( 'gauge1' , 'gaugeint1' , gauge_dual_gauge_dashes ) ,
3147- layout : gaugeLayout ,
3148- } ,
3149- {
3150- id : 'loading_gauge_railway_dual_gauge_line_construction' ,
3151- type : 'line' ,
3152- minzoom : 8 ,
3153- source : 'high' ,
3154- 'source-layer' : 'railway_line_high' ,
3155- filter : [ 'all' ,
3156- [ '!=' , [ 'get' , 'gauge1' ] , null ] ,
3157- [ '==' , [ 'get' , 'railway' ] , 'construction' ] ,
3158- ] ,
3159- paint : gaugeFillPaint ( 'gauge1' , 'gaugeint1' , dual_construction_dashes ) ,
3160- layout : gaugeLayout ,
3161- } ,
3162- {
3163- id : 'loading_gauge_railway_multi_gauge_line' ,
3164- type : 'line' ,
3165- minzoom : 8 ,
3166- source : 'high' ,
3167- 'source-layer' : 'railway_line_high' ,
3168- filter : [ 'all' ,
3169- [ '!=' , [ 'get' , 'gauge2' ] , null ] ,
3170- [ '!=' , [ 'get' , 'railway' ] , 'construction' ] ,
3171- ] ,
3172- paint : gaugeFillPaint ( 'gauge2' , 'gaugeint2' , gauge_multi_gauge_dashes ) ,
3173- layout : gaugeLayout ,
3174- } ,
3175- {
3176- id : 'loading_gauge_railway_multi_gauge_line_construction' ,
3177- type : 'line' ,
3178- minzoom : 8 ,
3179- source : 'high' ,
3180- 'source-layer' : 'railway_line_high' ,
3181- filter : [ 'all' ,
3182- [ '!=' , [ 'get' , 'gauge2' ] , null ] ,
3183- [ '==' , [ 'get' , 'railway' ] , 'construction' ] ,
3184- ] ,
3185- paint : gaugeFillPaint ( 'gauge2' , 'gaugeint2' , multi_construction_dashes ) ,
3186- layout : gaugeLayout ,
3154+ paint : loadingGaugeFillPaint ( gauge_construction_dashes ) ,
3155+ layout : loadingGaugeLayout ,
31873156 } ,
31883157 preferredDirectionLayer ( 'railway_preferred_direction' , [ 'any' ,
31893158 [ '==' , [ 'get' , 'preferred_direction' ] , 'forward' ] ,
@@ -3324,7 +3293,7 @@ const layers = {
33243293 layout : {
33253294 'symbol-z-order' : 'source' ,
33263295 'symbol-placement' : 'line' ,
3327- 'text-field' : '{gauge_label }' ,
3296+ 'text-field' : '{loading_gauge }' ,
33283297 // TODO not present: oblique font
33293298 'text-font' : [ 'Noto Sans Bold' ] ,
33303299 'text-size' : 11 ,
0 commit comments