Ticket #24456: josm_24456_24457.patch

File josm_24456_24457.patch, 11.2 KB (added by francois.lacombe, 2 months ago)

Minor fixes in this patch (missing frequency in tag selector)

  • resources/data/defaultpresets.xml

     
    499499            <combo key="windings:configuration" text="Windings configuration" values="star,delta,open-delta,zigzag,open,scott,leblanc" values_context="power_windings" />
    500500        </optional>
    501501    </chunk>
     502    <chunk id="power_topology">
     503        <combo key="topology" text="Circuit topology" values="linear,branched" />
     504    </chunk>
    502505    <chunk id="telecom_medium">
    503506        <combo key="telecom:medium" text="Local loop type" values="copper,fibre,coaxial" />
    504507    </chunk>
     
    1011510118                    <role key="guidepost" text="guidepost" requisite="optional" type="node" member_expression="information=guidepost"/>
    1011610119                </roles>
    1011710120            </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 -->
    1012910121            <item name="Railway Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
    1013010122                <link wiki="Tag:route=railway" />
    1013110123                <space/>
     
    1015810150                <link wiki="Relation:superroute" />
    1015910151                <space/>
    1016010152                <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,Power Route,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" />
    1016210154                <reference ref="name_ref_operator"/>
    1016310155                <roles>
    1016410156                    <role key="" text="route segment" requisite="required" type="relation" member_expression="type=route"/> <!-- fixme: at least 2 members are required -->
     
    1029710289                <role key="edge" text="edge ways parallel to 'through'" requisite="optional" type="way" />
    1029810290            </roles>
    1029910291        </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>
    1030010328    </group> <!-- Relations -->
    1030110329</presets>
  • resources/data/validator/combinations.mapcss

     
    306306*[internet_access=no][internet_access:fee],
    307307node[power=transformer][voltage],
    308308node[transformer=distribution][voltage][power=pole],
     309relation[power=circuit][wires],
     310relation[power=line_section][wires],
    309311*[amenity=vending_machine][shop],
    310312*[noname?][name],
    311313*[noref?][ref],
     
    11371139  assertNoMatch: "way highway=path segregated=yes cycleway:surface=needles footway:surface=paving_stones";
    11381140  assertNoMatch: "way highway=primary oneway=yes bicycle:lanes=no|designated|yes cycleway:lanes=|lane|no";
    11391141}
     1142
     1143/* Prevent redundancy between relation and members, see #24456, #24457 */
     1144relation[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}
     1148relation[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 */
     1154relation[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

     
    25832583  suggestAlternative: "residential=apartments + condo=*"
    25842584}
    25852585
     2586/* route=power is deprecrated, see #24456 */
     2587relation[route=power] {
     2588  throwWarning: tr("{0} is deprecated", "{0.tag}");
     2589  group: tr("deprecated tagging");
     2590  suggestAlternative: "type=power + power=circuit";
     2591}
     2592relation[power=branch] {
     2593  throwWarning: tr("{0} is deprecated", "{0.tag}");
     2594  group: tr("deprecated tagging");
     2595  suggestAlternative: "type=power + power=line_section";
     2596}
     2597
    25862598/* When tags are deprecated they should be added to ignoretags.cfg too. */
  • resources/data/validator/geometry.mapcss

     
    9090node[type=multipolygon],
    9191node[interval],
    9292node[route],
    93 node[restriction] {
     93node[restriction],
     94node[power=circuit],
     95node[power=line_section] {
    9496  throwError: tr("{0} on a node. Should be used in a relation", "{0.tag}");
    9597}
    9698
     
    139141way[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)$/],
    140142way[type=multipolygon],
    141143way[interval][route!=ferry],
    142 way[route=bus] {
     144way[route=bus],
     145way[power=circuit],
     146way[power=line_section] {
    143147  throwError: tr("{0} on a way. Should be used in a relation", "{0.tag}");
    144148}
    145149
    146150/* {0} on a closed way, should be a unclosed way; #19981 */
    147 way:closed[power=line] {
     151way:closed[power=line],
     152way:closed[power=cable],
     153way:closed[power=minor_line] {
    148154  throwWarning: tr("{0} on a closed way. Should be used on an unclosed way.", "{1.tag}");
    149155}
    150156
  • resources/data/validator/ignoretags.cfg

     
    825825K:landform=tundra_polygon
    826826; This seems to be a region specific tag.
    827827K:valley=balka
     828K:route=power
     829K:power=branch
    828830
    829831; These tags should probably have better software support, but maybe they can be in the appropriate section in this file.
    830832; Examples: oneway:moped and cycleway:right:oneway.
  • resources/data/validator/relation.mapcss

     
    7171  throwWarning: tr("{0} of {1} member and {0} relation differ", "{0.key}", "outline");
    7272  group: tr("suspicious tag combination");
    7373}
     74
     75/* Power relations, #24456 */
     76relation[type=power][!power],
     77relation[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

     
    125125    }
    126126
    127127    @Test
    128     void testPowerMemberExpression() {
    129         Relation r = createRelation("type=route route=power");
     128    void testPowerCircuitMemberExpression() {
     129        Relation r = createRelation("type=power power=circuit");
    130130        r.addMember(new RelationMember("", new Way()));
    131131
    132132        List<TestError> errors = testRelation(r);
    133133        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());
    136136    }
    137137
    138138    @Test