Skip to content
Commits on Source (9)
<?xml version="1.0" encoding="UTF-8"?>
<info>
<entry
kind="dir"
path="trunk"
revision="15390"
kind="dir">
revision="15492">
<url>https://josm.openstreetmap.de/svn/trunk</url>
<relative-url>^/trunk</relative-url>
<repository>
......@@ -11,9 +11,9 @@
<uuid>0c6e7542-c601-0410-84e7-c038aed88b3b</uuid>
</repository>
<commit
revision="15390">
revision="15492">
<author>Don-vip</author>
<date>2019-09-29T21:59:43.125303Z</date>
<date>2019-11-01T22:59:01.990576Z</date>
</commit>
</entry>
</info>
......@@ -197,7 +197,7 @@ Build-Date: ${build.tstamp}
<attribute name="Codebase" value="josm.openstreetmap.de"/>
<attribute name="Application-Name" value="JOSM - Java OpenStreetMap Editor"/>
<!-- Java 9 stuff. Entries are safely ignored by Java 8 -->
<attribute name="Add-Exports" value="java.base/sun.security.util java.base/sun.security.x509 java.desktop/com.apple.eawt java.desktop/com.sun.imageio.spi java.desktop/com.sun.imageio.plugins.jpeg javafx.graphics/com.sun.javafx.application jdk.deploy/com.sun.deploy.config" />
<attribute name="Add-Exports" value="java.desktop/com.apple.eawt java.desktop/com.sun.imageio.spi java.desktop/com.sun.imageio.plugins.jpeg javafx.graphics/com.sun.javafx.application jdk.deploy/com.sun.deploy.config" />
<attribute name="Add-Opens" value="java.base/java.lang java.base/java.nio java.base/jdk.internal.loader java.base/jdk.internal.ref java.desktop/javax.imageio.spi java.desktop/javax.swing.text.html java.prefs/java.util.prefs" />
</manifest>
<service type="java.text.spi.DecimalFormatSymbolsProvider" provider="org.openstreetmap.josm.tools.JosmDecimalFormatSymbolsProvider" />
......@@ -416,10 +416,6 @@ Build-Date: ${build.tstamp}
<!-- Disable HTML checking until we switch to Java13+, see https://bugs.openjdk.java.net/browse/JDK-8223552 -->
<arg value="-Xdoclint:-html" if:set="isJava13" />
<arg value="-html5" if:set="isJava9" />
<arg value="--add-exports" if:set="isJava9" />
<arg value="java.base/sun.security.util=ALL-UNNAMED" if:set="isJava9" />
<arg value="--add-exports" if:set="isJava9" />
<arg value="java.base/sun.security.x509=ALL-UNNAMED" if:set="isJava9" />
<arg value="--add-exports" if:set="isJava9" unless:set="noJavaFX" />
<arg value="javafx.graphics/com.sun.javafx.application=ALL-UNNAMED" if:set="isJava9" unless:set="noJavaFX" />
<excludepackage name="org/openstreetmap/josm/io/audio/fx" if:set="noJavaFX" />
......@@ -514,10 +510,6 @@ Build-Date: ${build.tstamp}
<jvmarg value="-javaagent:${test.dir}/lib/jmockit.jar"/>
<jvmarg value="--add-modules" if:set="isJava9" unless:set="isJava11" />
<jvmarg value="java.activation,java.se.ee" if:set="isJava9" unless:set="isJava11" />
<jvmarg value="--add-exports" if:set="isJava9" />
<jvmarg value="java.base/sun.security.util=ALL-UNNAMED" if:set="isJava9" />
<jvmarg value="--add-exports" if:set="isJava9" />
<jvmarg value="java.base/sun.security.x509=ALL-UNNAMED" if:set="isJava9" />
<jvmarg value="--add-exports" if:set="isJava9" unless:set="noJavaFX" />
<jvmarg value="javafx.graphics/com.sun.javafx.application=ALL-UNNAMED" if:set="isJava9" unless:set="noJavaFX" />
<jvmarg value="--add-exports" if:set="isJava9" unless:set="isJava11" />
......@@ -826,6 +818,7 @@ Build-Date: ${build.tstamp}
<ignore classname="org.junit.*"/>
<ignore classname="org.jvnet.*"/>
<ignore classname="org.kxml2.*"/>
<ignore classname="org.mozilla.*"/>
<ignore classname="org.objectweb.*"/>
<ignore classname="org.opentest4j.*"/>
<ignore classname="org.osgi.*"/>
......
......@@ -372,6 +372,7 @@
<chunk id="power_pole">
<text key="height" text="Height (meters)" />
<combo key="material" text="Material" values="concrete,metal,plastic,steel,stone,wood" />
<combo key="line_attachment" text="Line attachment" values="anchor,pin,pulley,suspension" values_context="power" />
<check key="location:transition" text="Location transition" disable_off="true" />
<reference ref="ref_operator" />
</chunk>
......@@ -854,6 +855,8 @@
<check key="oneway" text="Oneway" />
<check key="toll" text="Toll" />
<check key="noexit" text="No exit (cul-de-sac)" disable_off="true" />
<check key="winter_road" text="Winter road" disable_off="true" />
<check key="ice_road" text="Ice road" disable_off="true" />
</checkgroup>
<space />
<label text="Transport mode restrictions" />
......@@ -1364,6 +1367,11 @@
<combo key="colour" text="Color (HTML name or hexadecimal code)" values_context="color" values="black,blue,brown,gray,green,orange,purple,red,silver,white,yellow,#CD853F" />
</optional>
</item> <!-- Handrail -->
<item name="Cable barrier" icon="presets/barrier/cable_barrier.svg" type="way,closedway" preset_name_label="true">
<link wiki="Tag:barrier=cable_barrier" />
<key key="barrier" value="cable_barrier" />
<reference ref="optional_height" />
</item> <!-- Cable barrier -->
<item name="Guard Rail" icon="presets/barrier/guard_rail.svg" type="way,closedway" preset_name_label="true">
<link wiki="Tag:barrier=guard_rail" />
<key key="barrier" value="guard_rail" />
......@@ -2094,6 +2102,18 @@
<text key="aerialway:duration" text="Typical journey time in minutes" />
</optional>
</item> <!-- Goods -->
<item name="Zip line" icon="presets/transport/aerialway/zip_line.svg" type="way" preset_name_label="true">
<link wiki="Tag:aerialway=zip_line" />
<space />
<key key="aerialway" value="zip_line" />
<optional>
<reference ref="name_ref_operator" />
<reference ref="oh" />
<reference ref="fee" />
<reference ref="min_age" />
<text key="maxweight" text="Max. weight (tonnes)" />
</optional>
</item> <!-- Zip line -->
<separator/>
<item name="Station" name_context="aerialway" icon="presets/transport/aerialway/station.svg" type="node,closedway" preset_name_label="true">
<link wiki="Tag:aerialway=station" />
......@@ -2482,22 +2502,17 @@
<combo key="tactile_paving" text="Tactile Paving" values="yes,no,incorrect" />
</optional>
<space />
<checkgroup columns="2">
<check key="bus" text="Bus" />
<check key="highway" value_on="bus_stop" value_off="" text="Bus stop (legacy)" />
<check key="tram" text="Tram" />
<check key="railway" value_on="tram_stop" value_off="" text="Tram stop (legacy)" />
<check key="train" text="Train" />
<check key="railway" value_on="halt" value_off="" text="Railway halt (legacy)" />
</checkgroup>
<check key="trolleybus" text="Trolleybus" />
<check key="share_taxi" text="Share taxi" />
<check key="subway" text="Subway" />
<check key="light_rail" text="Light Rail" />
<check key="monorail" text="Monorail" />
<check key="funicular" text="Funicular" />
<check key="aerialway" text="Aerialway" />
<check key="ferry" text="Ferry" />
<check key="bus" text="Bus" icon="presets/transport/bus.svg" />
<check key="tram" text="Tram" icon="presets/transport/railway/tram.svg" />
<check key="train" text="Train" icon="presets/transport/train.svg" />
<check key="trolleybus" text="Trolleybus" icon="presets/transport/trolleybus.svg" />
<check key="share_taxi" text="Share taxi" icon="presets/transport/share_taxi.svg" />
<check key="subway" text="Subway" icon="presets/transport/railway/subway.svg" />
<check key="light_rail" text="Light Rail" icon="presets/transport/railway/light_rail.svg" />
<check key="monorail" text="Monorail" icon="presets/transport/railway/monorail.svg" />
<check key="funicular" text="Funicular" icon="presets/transport/railway/funicular.svg" />
<check key="aerialway" text="Aerialway" icon="presets/transport/aerialway/station.svg" />
<check key="ferry" text="Ferry" icon="presets/nautical/ferry.svg" />
</item> <!-- Stop Position -->
<item name="Platform" type="node,way,closedway,multipolygon" icon="presets/transport/platform.svg" preset_name_label="true">
<link wiki="Tag:public_transport=platform" />
......@@ -5368,6 +5383,7 @@
<space />
<key key="power" value="terminal" />
<optional>
<combo key="line_attachment" text="Line attachment" values="anchor,pin,pulley,suspension" values_context="power" />
<text key="ref" text="Reference" />
<text key="operator" text="Operator" />
</optional>
......@@ -5382,6 +5398,7 @@
<combo key="colour" text="Color (HTML name or hexadecimal code)" values="black,red,white,gray,red/white" values_context="color" />
<reference ref="ref_operator" />
<combo key="design" text="Portal design" values="portal,portal_two-level,portal_three-level" values_context="power" />
<combo key="line_attachment" text="Line attachment" values="anchor,pin,pulley,suspension" values_context="power" />
</item> <!-- Power Portal -->
<item name="Power Tower" icon="presets/power/tower.svg" type="node" preset_name_label="true">
<link wiki="Tag:power=tower" />
......@@ -5393,9 +5410,10 @@
<combo key="colour" text="Color (HTML name or hexadecimal code)" values="black,red,white,gray,red/white" values_context="color" />
<reference ref="ref_operator" />
<optional>
<combo key="tower:type" text="Tower type" values="suspension,anchor,termination,branch,transposing,crossing,transition" text_context="power" values_context="power" />
<combo key="tower:type" text="Tower type" values="termination,branch,transposing,crossing,transition" text_context="power" values_context="power" />
<combo key="branch:type" text="Branch tower type" values="tap,split,loop,cross" values_context="power" />
<combo key="design" text="Tower design" values="one-level,two-level,donau,three-level,barrel,asymmetric,triangle,flag,donau;one-level,four-level,six-level,nine-level,delta,delta_two-level,y-frame,x-frame,h-frame,guyed_h-frame,portal,portal_two-level,portal_three-level,guyed_v-frame,bipole,monopolar" values_context="power" />
<combo key="line_attachment" text="Line attachment" values="anchor,pin,pulley,suspension" values_context="power" />
<check key="triple_tower" text="Triple tower" />
<check key="design:incomplete" text="Incomplete tower" />
<check key="location:transition" text="Location transition" disable_off="true" />
......@@ -5446,6 +5464,7 @@
<link wiki="Tag:power=insulator" />
<space />
<key key="power" value="insulator" />
<combo key="line_attachment" text="Line attachment" values="anchor,pin,pulley,suspension" values_context="power" />
<reference ref="ref_operator" />
</item> <!-- Insulator -->
<item name="Power Line" icon="presets/power/line.svg" type="way" preset_name_label="true">
......@@ -6092,6 +6111,13 @@
<reference ref="name_operator_oh_wheelchair" />
<reference ref="link_contact_address_payment" />
</item> <!-- Tobacco -->
<item name="E-cigarette" icon="presets/shop/e-cigarette.svg" type="node,closedway,multipolygon" preset_name_label="true">
<link wiki="Tag:shop=e-cigarette" />
<space />
<key key="shop" value="e-cigarette" />
<reference ref="name_operator_oh_wheelchair" />
<reference ref="link_contact_address_payment" />
</item> <!-- E-cigarette -->
<item name="Hairdresser/Barber" icon="presets/shop/hairdresser.svg" type="node,closedway,multipolygon" preset_name_label="true">
<link wiki="Tag:shop=hairdresser" />
<space />
......@@ -6296,6 +6322,13 @@
<reference ref="name_oh_wheelchair" />
<reference ref="link_contact_address_payment" />
</item> <!-- Pet -->
<item name="Pet grooming" icon="presets/shop/pet_grooming.svg" type="node,closedway,multipolygon" preset_name_label="true">
<link wiki="Tag:shop=pet_grooming" />
<space />
<key key="shop" value="pet_grooming" />
<reference ref="name_oh_wheelchair" />
<reference ref="link_contact_address_payment" />
</item> <!-- Pet grooming -->
<item name="Photo" icon="presets/shop/photo.svg" type="node,closedway,multipolygon" preset_name_label="true">
<link wiki="Tag:shop=photo" />
<space />
......@@ -7646,7 +7679,8 @@
<key key="route" value="power"/>
<reference ref="name_ref_operator"/>
<roles>
<role key="" text="route segment" requisite="required" type="way" member_expression="power"/>
<role key="line" text="route segment" requisite="required" type="way" member_expression="power=line|power=cable"/>
<role key="substation" text="Power Substation" requisite="optional" type="way,closedway,multipolygon" member_expression="power"/>
</roles>
</item> <!-- Power Route -->
<item name="Railway Route" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
......
......@@ -269,6 +269,8 @@
<attribute name="value_off" type="string" />
<attribute name="disable_off" type="boolean" />
<attribute name="match" type="tns:match" />
<attribute name="icon" type="string" />
<attribute name="icon_size" type="integer" />
<attribute name="name" use="prohibited" />
<attribute name="type" use="prohibited" />
......
......@@ -93,6 +93,7 @@ way[lanes:backward][!lanes:forward][oneway!=yes][oneway!=-1],
}
/* {0.key} without {1.tag}, #17997 */
node[railway:switch ][railway!=switch],
*[generator:source ][power!=generator],
*[generator:method ][power!=generator],
*[generator:type ][power!=generator],
......@@ -126,7 +127,8 @@ way[waterway=pressurised ][tunnel!=flooded][man_made!=pipeline] {
group: tr("missing tag");
}
/* {0.tag} without {1.key} (warning level) */
/* {0.tag} without {1.key} (warning level), #18246 */
way[highway=construction][!construction],
node[traffic_sign=maxspeed][!maxspeed],
node[actuator=manual][!handle],
node[emergency=fire_hydrant][!fire_hydrant:type],
......@@ -555,8 +557,8 @@ way["addr:housenumber"][!building][!"building:part"][!"demolished:building"][!no
group: tr("missing tag");
}
/* #14125, #14323 */
way[highway][lanes][!lanes:forward][!lanes:backward][oneway!=yes][oneway!=-1][junction!=roundabout][lanes>2][get(split(".", tag(lanes)/2), 1)=5] {
/* #14125, #14323, #18185 */
way[highway][lanes][!lanes:forward][!lanes:backward][oneway!=yes][oneway!=-1][oneway!=reversible][junction!=roundabout][lanes>2][get(split(".", tag(lanes)/2), 1)=5] {
throwWarning: tr("street with odd number of {0}, but without {1} and {2} or {3}", "{1.key}", "{2.key}", "{3.key}", "{4.key}");
group: tr("missing tag");
assertNoMatch: "way highway=primary lanes=2";
......@@ -615,11 +617,11 @@ area[cemetery=sector][landuse=cemetery] {
fixRemove: "cycleway";
}
/* #17973 */
way[highway=path ][foot][foot!=no ][!segregated][bicycle][bicycle!=no]!.unpaved_surface,
way[highway=footway ][bicycle][bicycle!=no][!segregated]!.unpaved_surface,
way[highway=cycleway][foot][foot!=no ][!segregated]!.unpaved_surface {
throwWarning: tr("Combined foot- and cycleway without {1}.", "{3.key}");
/* #17973, #18183 */
way[highway=path ][foot][foot!=no ][foot!=use_sidepath ][!segregated][bicycle][bicycle!=no][bicycle!=use_sidepath]!.unpaved_surface,
way[highway=footway ][bicycle][bicycle!=no][bicycle!=use_sidepath][!segregated]!.unpaved_surface,
way[highway=cycleway][foot][foot!=no ][foot!=use_sidepath ][!segregated]!.unpaved_surface {
throwWarning: tr("Combined foot- and cycleway without {0}.", "{4.key}");
group: tr("missing tag");
}
......@@ -629,3 +631,9 @@ node[emergency_ward_entrance][emergency!=emergency_ward_entrance] {
group: tr("missing tag");
fixAdd: "emergency=emergency_ward_entrance";
}
/* #18203 */
way[construction][construction!=yes][highway][highway!=construction] {
throwWarning: tr("{0} together with {1}", "{2.tag}", "{0.tag}");
group: tr("suspicious tag combination");
}
\ No newline at end of file
......@@ -1793,3 +1793,27 @@ way[/^is_in:.*$/] {
group: tr("deprecated tagging");
fixChangeKey: "recycling:metal => recycling:scrap_metal";
}
/* #18154 */
*[shop=dog_grooming] {
throwWarning: tr("{0} is deprecated", "{0.tag}");
suggestAlternative: "shop=pet_grooming";
fixAdd: "shop=pet_grooming";
group: tr("deprecated tagging");
}
/* #17984 */
*[tower:type=anchor],
*[tower:type=suspension] {
throwWarning: tr("{0} is deprecated", "{0.tag}");
suggestAlternative: concat("line_attachment=", "{0.value}");
fixChangeKey: "tower:type => line_attachment";
group: tr("deprecated tagging");
}
node[pole:type=anchor],
node[pole:type=suspension] {
throwWarning: tr("{0} is deprecated", "{0.tag}");
suggestAlternative: concat("line_attachment=", "{0.value}");
fixChangeKey: "pole:type => line_attachment";
group: tr("deprecated tagging");
}
......@@ -95,6 +95,7 @@ node[restriction] {
}
/* {0} on a way, should be a node */
way[line_attachment],
way[emergency=fire_hydrant],
way[entrance],
way[door],
......@@ -336,8 +337,8 @@ way[!power][!building] > node.node_in_power_way {
throwWarning: tr("Node connects a power line or cable with an object which is not related to the power infrastructure.");
}
/* #12646, #12992 */
way[waterway=~/^(stream|ditch|river|drain)$/]!:closed >[index=-1] node[natural!=sinkhole][natural!=cave_entrance]!:connection:in-downloaded-area {
/* #12646, #12992, #16334 */
way[waterway=~/^(stream|river|drain)$/]!:closed >[index=-1] node[natural!=sinkhole][natural!=cave_entrance]!:connection:in-downloaded-area {
throwWarning: tr("Waterway ends without a connection to another waterway or the direction of the waterway is wrong.");
}
......
......@@ -153,6 +153,7 @@ F::conditional
;
; Misc Tags
;
K:traffic_calming=dynamic_bump
K:type=is_in
K:type=benchmark
K:noref=yes
......@@ -396,3 +397,4 @@ K:crossing=zebra
K:healthcare=dentist
K:golf=cartpath
K:historic=fort
K:man_made=water_tap
......@@ -165,3 +165,12 @@ node[emergency=fire_hydrant][fire_hydrant:count=1] {
assertNoMatch: "way name=house building=house";
assertMatch: "way name=house building=yes";
}
/* #2760 */
*[/^gpx:/] {
throwWarning: tr("{0} should not be uploaded", "{0.key}");
group: tr("unnecessary tag");
fixRemove: "{0.key}";
assertMatch: "node gpx:time=2018-01-01T12:00:00Z";
assertNoMatch: "node source=gpx:foo";
}
/* validation for the wikipedia=* tag - see tickets #8383, #14425 */
/* validation for the wikipedia=* tag - see tickets #8383, #14425, #18251 */
/* If there is no language at all, this is broken. Also catches 'wikipedia' used as 'email', 'website', 'ele' [sic!] ... */
*[wikipedia][wikipedia !~ /(?i)^[-a-z]{2,12}:/] {
......@@ -53,6 +53,14 @@
assertNoMatch: "node wikipedia=en:Foo";
}
*[/^wikipedia:[-a-z]{2,12}$/][/^wikipedia:[-a-z]{2,12}$/ =~ /(?i).*%[0-9A-F][0-9A-F]/] {
throwError: tr("{0} tag should not have URL-encoded values like ''%27''", "{0.key}");
/* fixAdd: concat("{0.key}", "=", get(regexp_match("(?i)^([-a-z]+:)(.*)$", tag("{0.key}")),1), trim(replace(URL_decode(get(regexp_match("(?i)^([-a-z]+:)(.+)$", tag("{0.key}")),2)), "_", " "))); */
/* tag("{0.key}") is not yet supported */
assertMatch: "node wikipedia:de=Foo%27s";
assertNoMatch: "node wikipedia:de=Foo";
}
*[wikipedia =~ /(?i)^[-a-z]{2,12}: /] {
throwWarning: tr("wikipedia title should not start with a space after language code");
fixAdd: concat("wikipedia=", get(regexp_match("(?i)^([-a-z]+:)(.*)$", tag("wikipedia")),1), trim(get(regexp_match("(?i)^([-a-z]+:)(.*)$", tag("wikipedia")),2)));
......@@ -137,9 +145,9 @@
assertNoMatch: "node foo=bar";
}
/* Wikipedia without wikidata */
/* Wikipedia:lang without wikipedia */
*[!wikipedia][/^wikipedia:/] {
throwWarning: tr("wikipedia tag is not set, but a ''{0}'' tag is. Make sure to use wikipedia=language:value together with wikidata tag.", "{1.key}");
throwWarning: tr("''{0}'' tag is set, but no ''{1}'' tag. Make sure to set ''wikipedia=language:value'' for the main article and optional ''wikipedia:language=value'' only for additional articles that are not just other language variants of the main article.", "{1.key}", "{0.key}");
assertMatch: "node wikipedia:en=a";
assertNoMatch: "node wikipedia=a wikipedia:en=b";
assertNoMatch: "node wikipedia=Foo";
......