Skip to content
Commits on Source (5)
......@@ -3,7 +3,7 @@
<entry
kind="dir"
path="trunk"
revision="14945">
revision="15031">
<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="14945">
revision="15031">
<author>Don-vip</author>
<date>2019-03-31T19:17:00.322141Z</date>
<date>2019-04-28T02:36:41.370825Z</date>
</commit>
</entry>
</info>
......@@ -764,6 +764,7 @@ Build-Date: ${build.tstamp}
<fileset file="${java.home}/lib/jce.jar" unless:set="isJava9"/>
<fileset file="${java.home}/lib/ext/jfxrt.jar" unless:set="isJava9"/>
<fileset dir="${java.home}/jmods" if:set="isJava9"/>
<fileset dir="/usr/share/openjfx/lib" unless:set="isJava9"/>
</path>
</as:build-signatures>
<as:check-signature signature="${dir}/api.sig" failonerror="false">
......
......@@ -203,7 +203,7 @@
<combo key="leisure" text="Type" values="pitch,sports_centre,stadium" default="pitch" />
</chunk>
<chunk id="sport">
<combo key="sport" text="Sport" values="multi,archery,athletics,american_football,australian_football,baseball,basketball,beachvolleyball,billiards,boules,bowls,canadian_football,canoe,climbing,cricket,croquet,cycling,dog_racing,equestrian,field_hockey,gaelic_games,golf,gymnastics,handball,horse_racing,ice_hockey,karting,model_aerodrome,motocross,motor,pelota,racquet,rc_car,rowing,rugby_league,rugby_union,running,safety_training,shooting,skateboard,ice_skating,roller_skating,soccer,swimming,table_tennis,tennis,volleyball,9pin,10pin" values_context="sport" />
<combo key="sport" text="Sport" values="multi,archery,athletics,american_football,australian_football,baseball,basketball,beachvolleyball,billiards,boules,bowls,canadian_football,canoe,climbing,cricket,croquet,cycling,dog_racing,equestrian,field_hockey,fitness,gaelic_games,golf,gymnastics,handball,horse_racing,ice_hockey,karting,model_aerodrome,motocross,motor,pelota,racquet,rc_car,rowing,rugby_league,rugby_union,running,safety_training,shooting,skateboard,ice_skating,roller_skating,soccer,swimming,table_tennis,tennis,volleyball,9pin,10pin" values_context="sport" />
</chunk>
<chunk id="fee">
<combo key="fee" text="Fee" values="yes,no" />
......@@ -1192,7 +1192,7 @@
<key key="highway" value="turning_loop" />
</item> <!-- Turning Loop -->
<item name="City Limit Sign" icon="presets/vehicle/restriction/city_limit.svg" type="node" preset_name_label="true">
<link wiki="Key:traffic_sign" />
<link wiki="Tag:traffic_sign=city_limit" />
<space />
<key key="traffic_sign" value="city_limit" />
<text key="name" text="Name" />
......@@ -1331,7 +1331,7 @@
<link wiki="Tag:barrier=wall" />
<key key="barrier" value="wall" />
<reference ref="optional_height" />
<combo key="wall" text="Type" values="dry_stone,noise_barrier" />
<combo key="wall" text="Type" values="castle_wall,dry_stone,flood_wall,noise_barrier,seawall" />
</item> <!-- Wall -->
<item name="City Wall" icon="presets/barrier/city_wall.svg" type="way,closedway" preset_name_label="true">
<link wiki="Tag:barrier=city_wall" />
......@@ -5368,6 +5368,7 @@
<optional>
<text key="inscription" text="Inscription" />
<text key="artist_name" text="Artist Name" />
<combo key="material" text="Material" values="metal,plastic,steel,stone,wood,concrete" />
<text key="start_date" text="Start date" />
<text key="wikipedia" text="Wikipedia" />
</optional>
......@@ -5769,6 +5770,13 @@
<reference ref="name_oh_wheelchair" />
<reference ref="link_contact_address_payment" />
</item> <!-- Bed -->
<item name="Carpet" icon="presets/shop/carpet.svg" type="node,closedway,multipolygon" preset_name_label="true">
<link wiki="Tag:shop=carpet" />
<space />
<key key="shop" value="carpet" />
<reference ref="name_oh_wheelchair" />
<reference ref="link_contact_address_payment" />
</item> <!-- Carpet -->
<item name="Interior Decoration" icon="presets/shop/interior_decoration.svg" type="node,closedway,multipolygon" preset_name_label="true">
<link wiki="Tag:shop=interior_decoration" />
<space />
......@@ -6435,7 +6443,7 @@
<reference ref="link_contact_address" />
</item> <!-- Shoemaker -->
<separator/> <!-- other "soft"/art craft group -->
<item name="Sawmill" type="node,closedway,multipolygon" preset_name_label="true">
<item name="Sawmill" icon="presets/craft/sawmill.svg" type="node,closedway,multipolygon" preset_name_label="true">
<link wiki="Tag:craft=sawmill" />
<space />
<key key="craft" value="sawmill" />
......@@ -7431,7 +7439,7 @@
</item> <!-- Road Route -->
</group> <!-- Routes -->
<item name="Route Network" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
<link wiki="Relations/Proposed/Network" />
<link wiki="Relation:network" />
<space />
<key key="type" value="network" />
<text key="name" text="Name" />
......
......@@ -24,3 +24,15 @@ way[addr:interpolation] {
assertMatch: "node addr:housename=1 addr:housenumber=1";
assertNoMatch: "node addr:housename=1 addr:housenumber=2";
}
/* #17486 */
*[addr:housenumber][addr:housenumber!~/[0-9]/] {
throwWarning: tr("{0} without number", "{0.key}");
assertNoMatch: "way addr:housenumber=0";
assertNoMatch: "way addr:housenumber=5a";
assertNoMatch: "way addr:housenumber=5/1";
assertMatch: "way addr:housenumber=?";
assertMatch: "way addr:housenumber=unknown";
assertMatch: "way addr:housenumber=Palace of Westminster";
assertMatch: "way addr:housenumber=S/N";
}
\ No newline at end of file
......@@ -242,7 +242,9 @@ way[highway=footway][oneway=no] {
group: tr("suspicious tag combination");
}
/* {0.tag} together with {1.tag}, see #17542, #16861, #16147, #10186 */
/* {0.tag} together with {1.tag}, see #17592, #17594, #17542, #16861, #16147, #10186 */
way[tracktype=grade1][surface][surface=~/^(unpaved|compacted|gravel|fine_gravel|pebblestone|ground|earth|dirt|grass|sand|mud|ice|salt|snow|woodchips)$/],
way[tracktype=grade2][surface][surface=~/^(sand|mud)$/],
way[segregated][bicycle=no],
way[segregated][foot=no],
way[man_made=pipeline][tunnel=flooded],
......@@ -264,9 +266,10 @@ relation[type=multipolygon][area=no] {
group: tr("suspicious tag combination");
}
/* {0.key} together with {1.key} (info level) */
/* {0.key} together with {1.key}, #17630, #17604 */
*[building:part][building],
*[addr:street][addr:place] {
throwOther: tr("{0} together with {1}", "{0.key}", "{1.key}");
throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}");
group: tr("suspicious tag combination");
}
......@@ -362,9 +365,9 @@ way[highway=footway][cycleway=lane] {
}
/* {0} on suspicious object */
*[tunnel ][!highway][!railway][!waterway][!piste:type][public_transport!=platform][route!=ferry][man_made!=pipeline][man_made!=goods_conveyor],
*[bridge ][!highway][!railway][!waterway][!piste:type][public_transport!=platform][route!=ferry][man_made!=pipeline][man_made!=goods_conveyor][man_made!=bridge][building!=bridge],
*[psv ][!highway][!railway][!waterway][amenity !~ /^parking.*/],
*[tunnel ][!highway][!railway][!waterway][!piste:type][public_transport!=platform][route!=ferry][man_made!=pipeline][man_made!=goods_conveyor][man_made!=wildlife_crossing],
*[bridge ][!highway][!railway][!waterway][!piste:type][public_transport!=platform][route!=ferry][man_made!=pipeline][man_made!=goods_conveyor][man_made!=wildlife_crossing][man_made!=bridge][building!=bridge],
*[psv ][!highway][!railway][!waterway][barrier!=bollard][amenity !~ /^parking.*/],
*[width ][!highway][!railway][!waterway][!aeroway][!cycleway][!footway][!barrier][!man_made][!entrance][natural!=stone][leisure!=track],
*[maxspeed][!highway][!railway][traffic_sign !~ /^((.*;)?maxspeed(;.*)?|[A-Z][A-Z]:.+)$/][type != enforcement][waterway !~ /^(river|canal|lock)$/][!traffic_calming][aerialway!=zip_line] {
throwWarning: tr("{0} on suspicious object", "{0.key}");
......
......@@ -997,9 +997,9 @@ node[type][pipeline=marker] {
fixChangeKey: "amenity => leisure";
}
/* #12494 */
/* #12494, #17554 */
*[/^[^t][^i][^g].+_[0-9]$/][!/^note_[0-9]$/][!/^description_[0-9]$/] {
throwOther: tr("{0}", "{0.key}");
throwWarning: tr("{0}", "{0.key}");
group: tr("questionable key (ending with a number)");
assertMatch: "way name_1=foo";
assertNoMatch: "way note_2=foo";
......@@ -1420,3 +1420,16 @@ way[/^is_in:.*$/] {
group: tr("deprecated tagging");
fixRemove: "{0.key}";
}
/* #17593 */
*[sport=football] {
throwWarning: tr("{0} is deprecated", "{0.tag}");
suggestAlternative: "sport=soccer";
suggestAlternative: "sport=american_football";
suggestAlternative: "sport=australian_football";
suggestAlternative: "sport=canadian_football";
suggestAlternative: "sport=rugby_league";
suggestAlternative: "sport=rugby_union";
suggestAlternative: "sport=gaelic_games";
group: tr("deprecated tagging");
}
......@@ -131,15 +131,19 @@ way[route=bus] {
throwError: tr("{0} on a way. Should be used in a relation", "{0.tag}");
}
/* #14395 */
way >[index=1] node,
way >[index=-1] node {
set first_last_node;
}
/* #14395, #17025 */
way[highway][area!=yes][!tunnel][!covered] > node {
set node_in_highway;
}
way[building][building!=no] > node.node_in_highway!.first_last_node {
way[highway][area!=yes][!tunnel][!covered]:closed > node {
set node_in_closed_highway;
}
way[highway][area!=yes][!tunnel][!covered] >[index=1] node,
way[highway][area!=yes][!tunnel][!covered] >[index=-1] node {
set first_last_highway_node;
}
way[building][building!=no] > node.node_in_closed_highway,
way[building][building!=no] > node.node_in_highway!.first_last_highway_node {
throwWarning: tr("node connects highway and building");
}
......@@ -280,6 +284,10 @@ way[highway] > node[tourism=information][information=guidepost] {
set guidepost;
throwOther: tr("{0} node connected to a highway", "{1.tag}");
}
way >[index=1] node,
way >[index=-1] node {
set first_last_node;
}
way[highway] > node[amenity][!entrance][amenity!~/^(parking|parking_space|parking_entrance|motorcycle_parking|bicycle_parking|bus_station|car_wash|ferry_terminal|weighbridge|taxi|toilets)$/],
way[highway] > node[building][!entrance],
way[highway] > node[leisure][!entrance][leisure!=slipway],
......
......@@ -317,10 +317,12 @@ K:denomination=masonic
;
; Shop Key/Value Pairs
;
K:shop=organic
K:shop=boat
K:shop=ice_cream
K:shop=vacant
K:shop=organic
K:shop=pasta
K:shop=tiles
K:shop=vacant
;
; Craft Key/Value Pairs
K:craft=tailor
......
......@@ -22,3 +22,10 @@
assertMatch: "way name=Hauptstraße";
assertNoMatch: "way name=Hauptstrasse";
}
/* #17484 */
relation[type=associatedStreet][inside("DE")] {
throwWarning: tr("{0} is deprecated in {1}", "{0.tag}", "Deutschland");
suggestAlternative: "addr:street";
group: tr("deprecated tagging");
}
\ No newline at end of file
......@@ -39,23 +39,22 @@ area:closed[aeroway=helipad][area?] {
/* #9257, #17482 */
way[foot =~ /^(yes|designated)$/][highway =~ /^(footway|pedestrian)$/][!access],
way[bicycle =~ /^(yes|designated)$/][highway=cycleway][!vehicle][!access][foot!=designated],
*[building:ruian:type=2][building=farm_auxiliary],
*[building:ruian:type=7][building=house],
*[building:ruian:type=11][building=hotel],
*[building:ruian:type=12][building=warehouse],
*[building:ruian:type=13][building=barn],
*[building:ruian:type=18][building=garage],
*[building:ruian:type=21][building=greenhouse] {
*[gnis:Class="Populated Place"][place=city],
*[gnis:Class="Populated Place"][place=town],
*[gnis:Class="Populated Place"][place=village],
*[gnis:Class="Populated Place"][place=hamlet],
*[gnis:Class=Summit][natural=peak] {
throwWarning: tr("{0} is unnecessary for {1}", "{0.tag}", "{1.tag}");
group: tr("unnecessary tag");
fixRemove: "{0.key}";
assertMatch: "way highway=pedestrian foot=designated";
assertNoMatch: "way highway=pedestrian access=no foot=designated";
/* see #17555 assertNoMatch: "node gnis:Class="Populated Place" place=locality";*/
}
*[emergency=permissive] {
/* see #9458 - emergency=permissive makes no sense */
throwWarning: tr("{0} makes no sense", "{0.tag");
throwWarning: tr("{0} makes no sense", "{0.tag}");
fixAdd: "emergency=yes";
assertMatch: "way emergency=permissive";
assertNoMatch: "way emergency=designated";
......@@ -91,20 +90,36 @@ node[emergency=fire_hydrant][fire_hydrant:count=1] {
fixRemove: "{1.key}";
}
/* #17100, #17471 */
/* #17100, #17471, #17629 */
*[name][name=~/^(?i)(pond)$/][water=pond],
*[name][name=~/^(?i)(chapel|chapelle|kapelle)$/][building=chapel],
*[name][name=~/^(?i)(church|église|biserica)$/][amenity=place_of_worship][religion=christian],
*[name][name=~/^(?i)(mosque|cami|masjid|مسجد)$/][amenity=place_of_worship][religion=muslim],
*[name][name=~/^(?i)(parking|parkplatz)$/][amenity=parking],
*[name][name=~/^(?i)(post office)$/][amenity=post_office],
*[name][name=~/^(?i)(restaurant)$/][amenity=restaurant],
*[name][name=~/^(?i)(toilets?)$/][amenity=toilets],
*[name][name=~/^(?i)(playground|spielplatz)$/][leisure=playground],
*[name][name=~/^(?i)(shop)$/][shop][shop!=no],
*[name][name=~/^(?i)(building)$/][building][building!=no],
*[name][name=~/^(?i)(house|rumah)$/][building=house],
*[name][name=~/^(?i)(shop|boutique)$/][shop][shop!=no],
*[name][name=~/^(?i)(building|bangunan)$/][building][building!=no],
*[name][name=~/^(?i)(house|casa|maison|rumah|vivienda)$/][building=house],
*[name][name=~/^(?i)(kiosk)$/][shop=kiosk],
*[name][name=~/^(?i)(path)$/][highway=path],
*[name][name=~/^(?i)(jalan)$/][highway],
*[name][name=~/^(?i)(silo)$/][man_made=silo],
*[name][name=~/^(?i)(silo)$/][building=silo],
*[name][name=~/^(?i)(cemetery|cmentarz)$/][amenity=graveyard],
*[name][name=~/^(?i)(cemetery|cmentarz)$/][amenity=cemetery],
*[name="АГЗС"][amenity=fuel],
*[name="АЗС"][amenity=fuel] {
*[name][name=~/^(?i)(cemetery|cementerio|cimetière|cmentarz|friedhof)$/][amenity=grave_yard],
*[name][name=~/^(?i)(cemetery|cementerio|cimetière|cmentarz|friedhof)$/][landuse=cemetery],
*[name][name=~/^(?i)(mairie|rathaus)$/][amenity=townhall],
*[name][name=~/^(?i)(monument aux morts|war memorial)$/][historic=memorial][memorial=war_memorial],
*[name][name=~/^(?i)(school|école|Школа)$/][amenity=school],
*[name][name=~/^(?i)(école élémentaire)$/][amenity=school]["school:FR"="élémentaire"],
*[name][name=~/^(?i)(école maternelle)$/][amenity=school]["school:FR"="maternelle"],
*[name][name=~/^(?i)(école primaire)$/][amenity=school]["school:FR"="primaire"],
*[name][name=~/^(?i)(collège)$/][amenity=school]["school:FR"="collège"],
*[name][name=~/^(?i)(lycée)$/][amenity=school]["school:FR"="lycée"],
*[name][name=~/^(?i)(Аптека|farmacia|pharmacy|pharmacie)$/][amenity=pharmacy],
*[name][name=~/^(?i)(АГЗС|АЗС)$/][amenity=fuel] {
throwWarning: tr("{0}", "{0.tag}");
group: tr("descriptive name");
fixRemove: "name";
......@@ -131,11 +146,11 @@ node[emergency=fire_hydrant][fire_hydrant:count=1] {
assertMatch: "way name=silo man_made=silo";
assertMatch: "way name=Silo man_made=silo building=silo";
assertMatch: "way name=Silo building=silo";
assertMatch: "way name=cemetery amenity=graveyard";
assertMatch: "way name=Cmentarz amenity=graveyard";
assertNoMatch: "way name=kiosk amenity=graveyard";
assertMatch: "way name=cemetery amenity=grave_yard";
assertMatch: "way name=Cmentarz amenity=grave_yard";
assertNoMatch: "way name=kiosk amenity=grave_yard";
}
*[name][name=~/^(?i)(house|rumah)$/][building][building!=house][building!=no] {
*[name][name=~/^(?i)(house|casa|rumah|vivienda)$/][building][building!=house][building!=no] {
throwWarning: tr("{0}", "{0.tag}");
group: tr("descriptive name");
/* without fixRemove to avoid possible information loss */
......