Ticket #24456: josm_24456_24457.patch
| File josm_24456_24457.patch, 11.2 KB (added by , 2 months ago) |
|---|
-
resources/data/defaultpresets.xml
499 499 <combo key="windings:configuration" text="Windings configuration" values="star,delta,open-delta,zigzag,open,scott,leblanc" values_context="power_windings" /> 500 500 </optional> 501 501 </chunk> 502 <chunk id="power_topology"> 503 <combo key="topology" text="Circuit topology" values="linear,branched" /> 504 </chunk> 502 505 <chunk id="telecom_medium"> 503 506 <combo key="telecom:medium" text="Local loop type" values="copper,fibre,coaxial" /> 504 507 </chunk> … … 10115 10118 <role key="guidepost" text="guidepost" requisite="optional" type="node" member_expression="information=guidepost"/> 10116 10119 </roles> 10117 10120 </item> <!-- Detour Route --> 10118 <item name="Power Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">10119 <link wiki="Tag:route=power" />10120 <space/>10121 <key key="type" value="route"/>10122 <key key="route" value="power"/>10123 <reference ref="name_ref_operator"/>10124 <roles>10125 <role key="line" text="route segment" requisite="required" type="way" member_expression="power=line|power=cable"/>10126 <role key="substation" text="Power Substation" requisite="optional" type="way,closedway,multipolygon" member_expression="power"/>10127 </roles>10128 </item> <!-- Power Route -->10129 10121 <item name="Railway Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true"> 10130 10122 <link wiki="Tag:route=railway" /> 10131 10123 <space/> … … 10158 10150 <link wiki="Relation:superroute" /> 10159 10151 <space/> 10160 10152 <key key="type" value="superroute"/> 10161 <combo key="route" text="Type" values="bicycle,detour,foot,hiking,horse,mtb,piste, power,railway,road,ski" display_values="Bicycle Route,Detour Route,Walking Route,Hiking Route,Riding Route,Mountain Biking Route,Piste Route,PowerRoute,Railway Route,Road Route,Ski Route" />10153 <combo key="route" text="Type" values="bicycle,detour,foot,hiking,horse,mtb,piste,railway,road,ski" display_values="Bicycle Route,Detour Route,Walking Route,Hiking Route,Riding Route,Mountain Biking Route,Piste Route,Railway Route,Road Route,Ski Route" /> 10162 10154 <reference ref="name_ref_operator"/> 10163 10155 <roles> 10164 10156 <role key="" text="route segment" requisite="required" type="relation" member_expression="type=route"/> <!-- fixme: at least 2 members are required --> … … 10297 10289 <role key="edge" text="edge ways parallel to 'through'" requisite="optional" type="way" /> 10298 10290 </roles> 10299 10291 </item> <!-- Tunnel --> 10292 <group name="Power" icon="presets/power/power.svg"> 10293 <item name="Power circuit" icon="presets/misc/route.svg" type="relation" preset_name_label="true"> 10294 <link wiki="Tag:power=circuit" /> 10295 <space/> 10296 <key key="type" value="power"/> 10297 <key key="power" value="circuit"/> 10298 <space/> 10299 <reference ref="cables"/> 10300 <reference ref="voltage"/> 10301 <reference ref="frequency"/> 10302 <reference ref="power_topology"/> 10303 <optional> 10304 <reference ref="name_ref_operator"/> 10305 </optional> 10306 <roles> 10307 <role key="substation" text="Power Substation" requisite="required" type="way,closedway,multipolygon" member_expression="power|substation"/> 10308 <role key="section" text="Circuit section" requisite="required" type="way,relation" member_expression="power=line|power=cable|power=minor_line|power=line_section"/> 10309 <role key="tap" text="Tap point" requisite="optional" type="node" member_expression="power=pole|power=tower|power=connection"/> 10310 </roles> 10311 </item> <!-- Power circuit --> 10312 <item name="Power line section" icon="presets/misc/route.svg" type="relation" preset_name_label="true"> 10313 <link wiki="Tag:power=line_section" /> 10314 <space/> 10315 <key key="type" value="power"/> 10316 <key key="power" value="line_section"/> 10317 <space/> 10318 <reference ref="cables"/> 10319 <reference ref="voltage"/> 10320 <optional> 10321 <reference ref="name_ref_operator"/> 10322 </optional> 10323 <roles> 10324 <role key="line" text="Section segment" requisite="required" type="way" member_expression="power=line|power=cable|power=minor_line"/> 10325 </roles> 10326 </item> <!-- Power circuit --> 10327 </group> 10300 10328 </group> <!-- Relations --> 10301 10329 </presets> -
resources/data/validator/combinations.mapcss
306 306 *[internet_access=no][internet_access:fee], 307 307 node[power=transformer][voltage], 308 308 node[transformer=distribution][voltage][power=pole], 309 relation[power=circuit][wires], 310 relation[power=line_section][wires], 309 311 *[amenity=vending_machine][shop], 310 312 *[noname?][name], 311 313 *[noref?][ref], … … 1137 1139 assertNoMatch: "way highway=path segregated=yes cycleway:surface=needles footway:surface=paving_stones"; 1138 1140 assertNoMatch: "way highway=primary oneway=yes bicycle:lanes=no|designated|yes cycleway:lanes=|lane|no"; 1139 1141 } 1142 1143 /* Prevent redundancy between relation and members, see #24456, #24457 */ 1144 relation[power=circuit] > way[power=~/line|minor_line|cable/][frequency] { 1145 throwWarning: tr("Frequency tag should be on the circuit relation only, not on the power segment"); 1146 group: tr("redundant tagging"); 1147 } 1148 relation[power=circuit] > relation[power=line_section][frequency] { 1149 throwWarning: tr("Frequency tag should be on the circuit relation only, not on the power section"); 1150 group: tr("redundant tagging"); 1151 } 1152 1153 /* Invalid topology with power circuit relation, see #24456 */ 1154 relation[power=circuit][topology][topology!~/linear|branched/] { 1155 throwError: tr("power=circuit relations should have a topology tag with value linear or branched"); 1156 assertMatch: "relation type=power power=circuit topology=branch"; 1157 assertNoMatch: "relation type=power power=circuit topology=branched"; 1158 assertNoMatch: "relation type=power power=circuit"; 1159 } 1160 No newline at end of file -
resources/data/validator/deprecated.mapcss
2583 2583 suggestAlternative: "residential=apartments + condo=*" 2584 2584 } 2585 2585 2586 /* route=power is deprecrated, see #24456 */ 2587 relation[route=power] { 2588 throwWarning: tr("{0} is deprecated", "{0.tag}"); 2589 group: tr("deprecated tagging"); 2590 suggestAlternative: "type=power + power=circuit"; 2591 } 2592 relation[power=branch] { 2593 throwWarning: tr("{0} is deprecated", "{0.tag}"); 2594 group: tr("deprecated tagging"); 2595 suggestAlternative: "type=power + power=line_section"; 2596 } 2597 2586 2598 /* When tags are deprecated they should be added to ignoretags.cfg too. */ -
resources/data/validator/geometry.mapcss
90 90 node[type=multipolygon], 91 91 node[interval], 92 92 node[route], 93 node[restriction] { 93 node[restriction], 94 node[power=circuit], 95 node[power=line_section] { 94 96 throwError: tr("{0} on a node. Should be used in a relation", "{0.tag}"); 95 97 } 96 98 … … 139 141 way[restriction][restriction =~ /^(no_right_turn|no_left_turn|no_u_turn|no_straight_on|only_right_turn|only_left_turn|only_straight_on|no_entry|no_exit)$/], 140 142 way[type=multipolygon], 141 143 way[interval][route!=ferry], 142 way[route=bus] { 144 way[route=bus], 145 way[power=circuit], 146 way[power=line_section] { 143 147 throwError: tr("{0} on a way. Should be used in a relation", "{0.tag}"); 144 148 } 145 149 146 150 /* {0} on a closed way, should be a unclosed way; #19981 */ 147 way:closed[power=line] { 151 way:closed[power=line], 152 way:closed[power=cable], 153 way:closed[power=minor_line] { 148 154 throwWarning: tr("{0} on a closed way. Should be used on an unclosed way.", "{1.tag}"); 149 155 } 150 156 -
resources/data/validator/ignoretags.cfg
825 825 K:landform=tundra_polygon 826 826 ; This seems to be a region specific tag. 827 827 K:valley=balka 828 K:route=power 829 K:power=branch 828 830 829 831 ; These tags should probably have better software support, but maybe they can be in the appropriate section in this file. 830 832 ; Examples: oneway:moped and cycleway:right:oneway. -
resources/data/validator/relation.mapcss
71 71 throwWarning: tr("{0} of {1} member and {0} relation differ", "{0.key}", "outline"); 72 72 group: tr("suspicious tag combination"); 73 73 } 74 75 /* Power relations, #24456 */ 76 relation[type=power][!power], 77 relation[type=power][power][power!~/circuit|line_section/] { 78 throwError: tr("Power relation misses or combined to wrong power=* value"); 79 assertMatch: "relation type=power"; 80 assertMatch: "relation type=power power=line"; 81 assertNoMatch: "relation type=power power=circuit"; 82 } -
test/unit/org/openstreetmap/josm/data/validation/tests/RelationCheckerTest.java
125 125 } 126 126 127 127 @Test 128 void testPower MemberExpression() {129 Relation r = createRelation("type= route route=power");128 void testPowerCircuitMemberExpression() { 129 Relation r = createRelation("type=power power=circuit"); 130 130 r.addMember(new RelationMember("", new Way())); 131 131 132 132 List<TestError> errors = testRelation(r); 133 133 assertEquals(2, errors.size()); 134 assertEquals("Role ' line' missing", errors.get(0).getDescription());135 assertEquals("Empty role found when expecting one of ' line/substation'", errors.get(1).getDescription());134 assertEquals("Role 'substation' missing", errors.get(0).getDescription()); 135 assertEquals("Empty role found when expecting one of 'substation/section/tap'", errors.get(1).getDescription()); 136 136 } 137 137 138 138 @Test
