Changes between Version 93 and Version 94 of Rules/FranceSpecificRules
- Timestamp:
- 2024-08-06T16:45:10+02:00 (18 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Rules/FranceSpecificRules
v93 v94 126 126 127 127 /* validation rules for French RIU (Referentiel Inter Urbain) at https://www.data.gouv.fr/fr/datasets/bornage-du-reseau-routier-national */ 128 node[highway=milestone][operator][nat_ref][nat_ref!~/^(([1-9][0-9]|0[1-9])PR([0-9]|[1-9][0-9]|[1-9][0-9][0-9])[DGU](|C))$/][inside("F R")] {128 node[highway=milestone][operator][nat_ref][nat_ref!~/^(([1-9][0-9]|0[1-9])PR([0-9]|[1-9][0-9]|[1-9][0-9][0-9])[DGU](|C))$/][inside("FX")] { 129 129 throwWarning: tr("{0} is not a milestone valid reference RIU", "{2.tag}"); 130 130 group: tr("validation rules highway milestone"); 131 131 -osmoseItemClassLevel: "3040/30403/3"; 132 132 -osmoseTags: list("ref", "highway"); 133 -osmoseAssertNoMatchWithContext: list("node highway=milestone distance=38 nat_ref=77PR38DC operator=SANEF", "inside=F R");133 -osmoseAssertNoMatchWithContext: list("node highway=milestone distance=38 nat_ref=77PR38DC operator=SANEF", "inside=FX"); 134 134 } 135 135 136 136 /* missing distance for milestone */ 137 node[highway=milestone][operator][nat_ref][!distance][inside("F R")] {137 node[highway=milestone][operator][nat_ref][!distance][inside("FX")] { 138 138 throwWarning: tr("missing distance"); 139 139 group: tr("validation rules highway milestone"); 140 140 -osmoseItemClassLevel: "9019/9019001/3"; 141 141 -osmoseTags: list("ref", "highway"); 142 -osmoseAssertMatchWithContext: list("node highway=milestone nat_ref=77PR38DC operator=SANEF", "inside=F R");143 -osmoseAssertNoMatchWithContext: list("node highway=milestone distance=38 nat_ref=77PR38DC operator=SANEF", "inside=F R");142 -osmoseAssertMatchWithContext: list("node highway=milestone nat_ref=77PR38DC operator=SANEF", "inside=FX"); 143 -osmoseAssertNoMatchWithContext: list("node highway=milestone distance=38 nat_ref=77PR38DC operator=SANEF", "inside=FX"); 144 144 } 145 145 146 146 /* tag nat_ref is for links roads, ref is on major roads */ 147 way[highway=~/^(motorway|trunk|primary|secondary|tertiary|unclassified)$/][nat_ref][operator][!junction][inside("F R")],148 way[highway=service][nat_ref][nat_ref!~/^([1-9][0-9]|0[1-9])[AN]8[0-9]{3}(|A|N)([0-9]?[0-9])(|[A-Z]|[a-z])(|CD)_(1[0-9]|[1-9])D$/][operator][!junction][inside("F R")]147 way[highway=~/^(motorway|trunk|primary|secondary|tertiary|unclassified)$/][nat_ref][operator][!junction][inside("FX")], 148 way[highway=service][nat_ref][nat_ref!~/^([1-9][0-9]|0[1-9])[AN]8[0-9]{3}(|A|N)([0-9]?[0-9])(|[A-Z]|[a-z])(|CD)_(1[0-9]|[1-9])D$/][operator][!junction][inside("FX")] 149 149 { 150 150 throwWarning: tr("{0} must be a link road or roundabout", "{1.tag}"); … … 152 152 -osmoseItemClassLevel: "9019/9019002/3"; 153 153 -osmoseTags: list("ref", "highway"); 154 -osmoseAssertMatchWithContext: list("way highway=primary nat_ref=62A901609CD_2D operator=SANEF", "inside=F R");155 -osmoseAssertNoMatchWithContext: list("way highway=service nat_ref=50A802209_1D operator=DIRO", "inside=F R");156 -osmoseAssertNoMatchWithContext: list("way highway=primary junction=roundabout nat_ref=62A901609CD_2D operator=SANEF", "inside=F R");157 -osmoseAssertNoMatchWithContext: list("way highway=service junction=roundabout nat_ref=62A801609CD_12D operator=SANEF", "inside=F R");158 } 159 160 way[highway=~/^(motorway|trunk|primary|secondary|tertiary|unclassified|service)$/]["nat_ref:backward"][operator][inside("F R")],161 way[highway=~/^(motorway|trunk|primary|secondary|tertiary|unclassified|service)$/]["nat_ref:forward"][operator][inside("F R")] {154 -osmoseAssertMatchWithContext: list("way highway=primary nat_ref=62A901609CD_2D operator=SANEF", "inside=FX"); 155 -osmoseAssertNoMatchWithContext: list("way highway=service nat_ref=50A802209_1D operator=DIRO", "inside=FX"); 156 -osmoseAssertNoMatchWithContext: list("way highway=primary junction=roundabout nat_ref=62A901609CD_2D operator=SANEF", "inside=FX"); 157 -osmoseAssertNoMatchWithContext: list("way highway=service junction=roundabout nat_ref=62A801609CD_12D operator=SANEF", "inside=FX"); 158 } 159 160 way[highway=~/^(motorway|trunk|primary|secondary|tertiary|unclassified|service)$/]["nat_ref:backward"][operator][inside("FX")], 161 way[highway=~/^(motorway|trunk|primary|secondary|tertiary|unclassified|service)$/]["nat_ref:forward"][operator][inside("FX")] { 162 162 throwWarning: tr("{0} must be a link road ", "{1.tag}"); 163 163 group: tr("validation rules nat_ref in France"); 164 164 -osmoseItemClassLevel: "9019/9019002/3"; 165 165 -osmoseTags: list("ref", "highway"); 166 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref:forward=62A902615CD_11D nat_ref:backward=62A902615CD_2D operator='SANEF'", "inside=F R");166 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref:forward=62A902615CD_11D nat_ref:backward=62A902615CD_2D operator='SANEF'", "inside=FX"); 167 167 } 168 168 169 169 /* tag nat_ref is well formed (isidor format) , (bretelles code 9 ou aire de service code 8)*/ 170 way[highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/][nat_ref][nat_ref!~/^([1-9][0-9]|0[1-9])[ANP](8|9)[0-9]{3}(|A|N)([0-9]?[0-9]|B1|B2)(|[A-Z]|[a-z])(|CD)_(1[0-9]|[1-9])D$/][operator!="VILLE DE PARIS"][inside("F R")]{170 way[highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/][nat_ref][nat_ref!~/^([1-9][0-9]|0[1-9])[ANP](8|9)[0-9]{3}(|A|N)([0-9]?[0-9]|B1|B2)(|[A-Z]|[a-z])(|CD)_(1[0-9]|[1-9])D$/][operator!="VILLE DE PARIS"][inside("FX")]{ 171 171 throwWarning: tr("{0} is not a valid reference", "{1.tag}"); 172 172 group: tr("validation rules nat_ref in France"); 173 173 -osmoseItemClassLevel: "9019/9019002/3"; 174 174 -osmoseTags: list("ref", "highway"); 175 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref=80A901645CD_16D operator=SANEF", "inside=F R");176 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref=80A801645CD_16D operator=SANEF", "inside=F R");177 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref=78A901319CD_1D operator=SAPN", "inside=F R");178 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref=78A801319CD_1D operator=SAPN", "inside=F R");175 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref=80A901645CD_16D operator=SANEF", "inside=FX"); 176 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref=80A801645CD_16D operator=SANEF", "inside=FX"); 177 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref=78A901319CD_1D operator=SAPN", "inside=FX"); 178 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref=78A801319CD_1D operator=SAPN", "inside=FX"); 179 179 } 180 180 181 181 /* tag nat_ref is well formed on roundabout (isidor format) */ 182 way[junction=roundabout][highway=~/^(motorway|trunk|primary|secondary|tertiary|unclassified|service)$/][nat_ref][nat_ref!~/^(([1-9][0-9]|0[1-9])[ANP](8|9)[0-9]{3}(|A|N)([0-9]?[0-9]|B1|B2)(|[A-Z]|[a-z])(|CD)_(1[0-9]|[1-9])D)$/][inside("F R")] {182 way[junction=roundabout][highway=~/^(motorway|trunk|primary|secondary|tertiary|unclassified|service)$/][nat_ref][nat_ref!~/^(([1-9][0-9]|0[1-9])[ANP](8|9)[0-9]{3}(|A|N)([0-9]?[0-9]|B1|B2)(|[A-Z]|[a-z])(|CD)_(1[0-9]|[1-9])D)$/][inside("FX")] { 183 183 throwWarning: tr("{0} is not a valid reference", "{2.tag}"); 184 184 group: tr("validation rules nat_ref in France"); 185 185 -osmoseItemClassLevel: "9019/9019002/3"; 186 186 -osmoseTags: list("ref", "highway"); 187 -osmoseAssertNoMatchWithContext: list("way highway=primary junction=roundabout nat_ref=80A901645_16D operator=DIRN", "inside=F R");188 -osmoseAssertNoMatchWithContext: list("way highway=service junction=roundabout nat_ref=80A801645_6D operator=DIRN", "inside=F R");189 -osmoseAssertNoMatchWithContext: list("way highway=primary junction=roundabout nat_ref=78A901319CD_15D operator=DIRN", "inside=F R");190 -osmoseAssertNoMatchWithContext: list("way highway=service junction=roundabout nat_ref=78A801319CD_1D operator=DIRN", "inside=F R");187 -osmoseAssertNoMatchWithContext: list("way highway=primary junction=roundabout nat_ref=80A901645_16D operator=DIRN", "inside=FX"); 188 -osmoseAssertNoMatchWithContext: list("way highway=service junction=roundabout nat_ref=80A801645_6D operator=DIRN", "inside=FX"); 189 -osmoseAssertNoMatchWithContext: list("way highway=primary junction=roundabout nat_ref=78A901319CD_15D operator=DIRN", "inside=FX"); 190 -osmoseAssertNoMatchWithContext: list("way highway=service junction=roundabout nat_ref=78A801319CD_1D operator=DIRN", "inside=FX"); 191 191 } 192 192 193 193 /* tag nat_ref is well formed specific Paris (isidor format). no roundabout in Paris*/ 194 way[highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/][nat_ref][nat_ref!~/^(75Periph_Paris_[0-9]{2}_(1[0-9]|[1-9])D)$/][operator="VILLE DE PARIS"][inside("F R")] {194 way[highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/][nat_ref][nat_ref!~/^(75Periph_Paris_[0-9]{2}_(1[0-9]|[1-9])D)$/][operator="VILLE DE PARIS"][inside("FX")] { 195 195 throwWarning: tr("{0} is not a valid reference (Paris)", "{1.tag}"); 196 196 group: tr("validation rules nat_ref in France"); 197 197 -osmoseItemClassLevel: "9019/9019002/3"; 198 198 -osmoseTags: list("ref", "highway"); 199 -osmoseAssertNoMatchWithContext: list("way highway=trunk_link nat_ref=75Periph_Paris_05_3D operator=\"VILLE DE PARIS\"", "inside=F R");200 -osmoseAssertNoMatchWithContext: list("way highway=primary_link nat_ref=75Periph_Paris_05_13D operator=\"VILLE DE PARIS\"", "inside=F R");199 -osmoseAssertNoMatchWithContext: list("way highway=trunk_link nat_ref=75Periph_Paris_05_3D operator=\"VILLE DE PARIS\"", "inside=FX"); 200 -osmoseAssertNoMatchWithContext: list("way highway=primary_link nat_ref=75Periph_Paris_05_13D operator=\"VILLE DE PARIS\"", "inside=FX"); 201 201 } 202 202 203 203 /* tag nat_ref is well formed for backward and forward (isidor format). No roundabout */ 204 way[highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/]["nat_ref:forward"]["nat_ref:forward"!~/^(([1-9][0-9]|0[1-9])[ANP]9[0-9]{3}(|A|N)([0-9]?[0-9]|B1|B2)(|[A-Z]|[a-z])(|CD)_(1[0-9]|[1-9])D)$/][inside("F R")],205 way[highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/]["nat_ref:backward"]["nat_ref:backward"!~/^(([1-9][0-9]|0[1-9])[ANP]9[0-9]{3}(|A|N)([0-9]?[0-9]|B1|B2)(|[A-Z]|[a-z])(|CD)_(1[0-9]|[1-9])D)$/][inside("F R")]{204 way[highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/]["nat_ref:forward"]["nat_ref:forward"!~/^(([1-9][0-9]|0[1-9])[ANP]9[0-9]{3}(|A|N)([0-9]?[0-9]|B1|B2)(|[A-Z]|[a-z])(|CD)_(1[0-9]|[1-9])D)$/][inside("FX")], 205 way[highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/]["nat_ref:backward"]["nat_ref:backward"!~/^(([1-9][0-9]|0[1-9])[ANP]9[0-9]{3}(|A|N)([0-9]?[0-9]|B1|B2)(|[A-Z]|[a-z])(|CD)_(1[0-9]|[1-9])D)$/][inside("FX")]{ 206 206 throwWarning: tr("{0} is not a valid reference", "{1.tag}"); 207 207 group: tr("validation rules nat_ref in France"); 208 208 -osmoseItemClassLevel: "9019/9019002/3"; 209 209 -osmoseTags: list("ref", "highway"); 210 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref:forward=62A902615CD_1D nat_ref:backward=62A902615CD_2D operator=SANEF", "inside=F R");211 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref:forward=62A902615CD_11D nat_ref:backward=62A902615CD_2D operator=SANEF", "inside=F R");212 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref:forward=62A902615CD_1D nat_ref:backward=62A902615CD_12D operator=SANEF", "inside=F R");210 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref:forward=62A902615CD_1D nat_ref:backward=62A902615CD_2D operator=SANEF", "inside=FX"); 211 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref:forward=62A902615CD_11D nat_ref:backward=62A902615CD_2D operator=SANEF", "inside=FX"); 212 -osmoseAssertNoMatchWithContext: list("way highway=motorway_link nat_ref:forward=62A902615CD_1D nat_ref:backward=62A902615CD_12D operator=SANEF", "inside=FX"); 213 213 } 214 214 215 215 /* nat_ref reference without operator */ 216 way[highway][highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/][nat_ref][!operator][inside("F R")] {216 way[highway][highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/][nat_ref][!operator][inside("FX")] { 217 217 throwWarning: tr("Missing tag operator with nat_ref"); 218 218 group: tr("validation rules nat_ref in France"); … … 221 221 } 222 222 223 way[highway][highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/]["nat_ref:forward"][!operator][inside("F R")],224 way[highway][highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/]["nat_ref:backward"][!operator][inside("F R")] {223 way[highway][highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/]["nat_ref:forward"][!operator][inside("FX")], 224 way[highway][highway=~/^(motorway_link|trunk_link|primary_link|secondary_link|tertiary_link)$/]["nat_ref:backward"][!operator][inside("FX")] { 225 225 throwWarning: tr("Missing tag operator with nat_ref"); 226 226 group: tr("validation rules nat_ref in France");
