Skip to content
Commits on Source (9)
<?xml version="1.0" encoding="UTF-8"?>
<info>
<entry
revision="15628"
kind="dir"
path="trunk">
path="trunk"
revision="15806">
<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="15628">
<author>GerdP</author>
<date>2020-01-02T21:34:59.489885Z</date>
revision="15806">
<author>Don-vip</author>
<date>2020-02-01T00:10:57.430951Z</date>
</commit>
</entry>
</info>
......@@ -594,7 +594,7 @@ Build-Date: ${build.tstamp}
<target name="test-perf-hardfail" depends="test-perf" description="Run 'test-perf' target but abort if tests failed">
<fail message="'test-perf' failed" if="test.performance.failed"/>
</target>
<target name="test-html" depends="test, test-it, test-perf" description="Generate HTML test reports">
<target name="test-html" depends="test, test-it, test-perf" description="Generate HTML, CSV and XML test reports">
<!-- May require additional ant dependencies like ant-trax package -->
<junitreport todir="${test.dir}/report">
<fileset dir="${test.dir}/report">
......@@ -615,6 +615,8 @@ Build-Date: ${build.tstamp}
</sourcefiles>
</structure>
<html destdir="${test.dir}/report/jacoco"/>
<xml destfile="${test.dir}/report/jacoco.xml"/>
<csv destfile="${test.dir}/report/jacoco.csv"/>
</jacoco:report>
</target>
<target name="dist-optimized" depends="dist" unless="isJava11">
......@@ -820,6 +822,7 @@ Build-Date: ${build.tstamp}
<ignore classname="org.junit.*"/>
<ignore classname="org.jvnet.*"/>
<ignore classname="org.kxml2.*"/>
<ignore classname="org.locationtech.*"/>
<ignore classname="org.mozilla.*"/>
<ignore classname="org.objectweb.*"/>
<ignore classname="org.opentest4j.*"/>
......@@ -1000,8 +1003,7 @@ Build-Date: ${build.tstamp}
<target name="run" depends="dist">
<java jar="${dist.jar}" fork="true">
<arg value="--set=expert=true"/>
<arg value="--set=remotecontrol.enabled=true"/>
<arg value="--set=debug.edt-checker.enable=false"/>
<arg value="--set=iso.dates=true"/>
<jvmarg value="-Djosm.home=/tmp/.josm/"/>
</java>
</target>
......
......@@ -6993,10 +6993,10 @@
<node id='-14006' lat='47.53752' lon='7.6656' />
<node id='-14008' lat='47.53232' lon='7.68101' />
<node id='-14010' lat='47.53297' lon='7.69642' />
<node id='-14012' lat='47.5841' lon='7.84412' />
<node id='-14012' lat='47.58196' lon='7.84167' />
<node id='-14014' lat='47.55031' lon='7.91251' />
<node id='-14016' lat='47.57674' lon='7.90673' />
<node id='-14018' lat='47.54511' lon='7.94494' />
<node id='-14018' lat='47.5436' lon='7.94614' />
<node id='-14020' lat='47.55789' lon='7.95682' />
<node id='-14022' lat='47.55096' lon='8.02136' />
<node id='-14024' lat='47.55616' lon='8.00113' />
......@@ -14375,6 +14375,15 @@
<node id='-28842' lat='54.81749' lon='9.36496' />
<node id='-28844' lat='54.80602' lon='9.32771' />
<node id='-28846' lat='54.90518' lon='8.81178' />
<node id='-30000' lat='47.56946' lon='7.811279' />
<node id='-30001' lat='47.56335' lon='7.80098' />
<node id='-30002' lat='47.58663' lon='7.833466' />
<node id='-30003' lat='47.58808' lon='7.862692' />
<node id='-30004' lat='47.58408' lon='7.898354' />
<node id='-30005' lat='47.56686' lon='7.911615' />
<node id='-30006' lat='47.56037' lon='7.906809' />
<node id='-30007' lat='47.5469' lon='7.920585' />
<node id='-30008' lat='47.54704' lon='7.932644' />
<node id='-56086' lat='49.5533' lon='5.84143' />
<node id='-56105' lat='49.49608' lon='5.94224' />
<node id='-56128' lat='49.44845' lon='6.02743' />
......@@ -25463,11 +25472,20 @@
<nd ref='-8012' />
<nd ref='-14020' />
<nd ref='-14018' />
<nd ref='-30008' />
<nd ref='-30007' />
<nd ref='-14014' />
<nd ref='-30006' />
<nd ref='-30005' />
<nd ref='-14016' />
<nd ref='-30004' />
<nd ref='-8336' />
<nd ref='-30003' />
<nd ref='-14012' />
<nd ref='-30002' />
<nd ref='-8338' />
<nd ref='-30000' />
<nd ref='-30001' />
<nd ref='-8010' />
<nd ref='-8008' />
<nd ref='-8340' />
......@@ -43717,7 +43735,6 @@
<nd ref='-11868' />
<tag k='ISO3166-1:alpha2' v='IM' />
<tag k='name:en' v='Isle of Man' />
<tag k='note' v='not in EU' />
</way>
<way id='-29346'>
<nd ref='-12224' />
......@@ -44344,11 +44361,20 @@
<nd ref='-8012' />
<nd ref='-14020' />
<nd ref='-14018' />
<nd ref='-30008' />
<nd ref='-30007' />
<nd ref='-14014' />
<nd ref='-30006' />
<nd ref='-30005' />
<nd ref='-14016' />
<nd ref='-30004' />
<nd ref='-8336' />
<nd ref='-30003' />
<nd ref='-14012' />
<nd ref='-30002' />
<nd ref='-8338' />
<nd ref='-30000' />
<nd ref='-30001' />
<nd ref='-8010' />
<nd ref='-8008' />
<nd ref='-8340' />
......@@ -49190,14 +49216,6 @@
<nd ref='-22622' />
</way>
<way id='-29584'>
<nd ref='-26266' />
<nd ref='-9062' />
<nd ref='-11866' />
<nd ref='-6180' />
<nd ref='-6182' />
<nd ref='-6184' />
<nd ref='-11872' />
<nd ref='-11874' />
<nd ref='-6904' />
<nd ref='-8482' />
<nd ref='-8484' />
......@@ -50033,8 +50051,9 @@
<nd ref='-11862' />
<nd ref='-11864' />
<nd ref='-8992' />
<nd ref='-22442' />
<nd ref='-26266' />
<nd ref='-8994' />
<nd ref='-6902' />
<nd ref='-6904' />
</way>
<way id='-29586'>
<nd ref='-12064' />
......@@ -58554,6 +58573,7 @@
</relation>
<relation id='-29642'>
<member type='way' ref='-29584' role='outer' />
<member type='way' ref='-28898' role='outer' />
<member type='way' ref='-29426' role='outer' />
<member type='way' ref='-29026' role='outer' />
<member type='way' ref='-29028' role='outer' />
......@@ -58574,7 +58594,7 @@
<member type='way' ref='-29180' role='inner' />
<member type='way' ref='-29118' role='inner' />
<member type='way' ref='-29106' role='inner' />
<member type='way' ref='-29344' role='inner' />
<member type='way' ref='-29044' role='inner' />
<tag k='ISO3166-1:alpha2' v='EU' />
<tag k='name:en' v='European Union' />
<tag k='type' v='multipolygon' />
This diff is collapsed.
......@@ -681,7 +681,7 @@
<!-- A link that is opened, when the user clicks on the terms-of-use text -->
<xs:element name="terms-of-use-url" minOccurs="0" maxOccurs="1" type="xs:string" />
<!-- The image category, don't use enumeration, so future extension is possible -->
<!-- Currently defined values are: "photo", "map", "historicmap", "osmbasedmap", "historicphoto" and "other" -->
<!-- Currently defined values are: "photo", "elevation", "map", "historicmap", "osmbasedmap", "historicphoto", "qa" and "other" -->
<xs:element name="category" minOccurs="1" maxOccurs="1" type="xs:string" />
<!-- The ISO 3166 country code -->
<xs:element name="country-code" minOccurs="0" maxOccurs="1" type="tns:iso3166" />
......
SELECT (CONCAT("Key:", ?permanent_key_ID) as ?OSM_key) ?formatter_URL WHERE {
?item osmdt:P2 osmd:Q7.
?item osmdt:P16 ?permanent_key_ID.
?item osmdt:P8 ?formatter_URL.
}
SELECT ?OSM_key ?formatter_URL WHERE {
{ ?item wdt:P1282 ?OSM_key. }
FILTER(STRSTARTS(?OSM_key, 'Key:')) .
{
{ ?item wdt:P1630 ?formatter_URL. }
UNION
{ ?item wdt:P3303 ?formatter_URL. }
}
}
......@@ -102,6 +102,9 @@
<group ref="tns:list_elements" minOccurs="1" maxOccurs="unbounded" />-->
<element name="list_entry" type="tns:list_entry" minOccurs="1" maxOccurs="unbounded" />
</sequence>
<sequence>
<element name="role" type="tns:role" minOccurs="1" maxOccurs="unbounded" />
</sequence>
</choice>
<attribute name="id" type="ID" use="required" />
</complexType>
......@@ -304,11 +307,16 @@
</simpleType>
<complexType name="roles">
<sequence>
<element name="role" type="tns:role" minOccurs="1" maxOccurs="unbounded" />
</sequence>
<group ref="tns:roles_elements" maxOccurs="unbounded" />
</complexType>
<group name="roles_elements">
<choice>
<element name="role" type="tns:role" minOccurs="1" maxOccurs="unbounded" />
<element name="reference" type="tns:reference" />
</choice>
</group>
<complexType name="role">
<attribute name="key" type="string" />
<attribute name="text" type="string" />
......
......@@ -111,6 +111,11 @@ node[map_type ][information!=map],
*[castle_type ][historic!=castle],
*[parking ][amenity!~/^(parking|parking_space|parking_entrance|motorcycle_parking)$/][parking!=yes][parking!=no],
way[cutline ][man_made!=cutline],
*[ref:FR:ARCEP ][telecom!=connection_point],
*[ref:FR:ARCEP ][telecom:medium!=fibre],
*[ref:FR:Orange ][telecom:medium!=fibre],
*[ref:FR:SFR ][telecom:medium!=fibre],
*[ref:FR:PTT ][telecom:medium!=copper],
*[bunker_type ][military!=bunker] {
throwWarning: tr("{0} without {1}", "{0.key}", "{1.tag}");
group: tr("missing tag");
......@@ -144,6 +149,7 @@ relation[route=ski ][!piste:type][type=route],
*[tourism=information][!information],
*[leisure=pitch][!sport],
*[aeroway=terminal][!building],
*[office=government][!government],
*[power=generator][!generator:source],
*[amenity=recycling][!/^recycling:/][recycling_type!=centre],
*[amenity=social_facility][!social_facility],
......@@ -155,6 +161,7 @@ relation[route=ski ][!piste:type][type=route],
/* {0.tag} without {1.key} (info level), #15107 */
*[aeroway=runway ][!ref],
*[aeroway=runway ][!surface],
node[highway=crossing ][!crossing],
way[highway=track ][!tracktype],
way[power=cable ][!location],
node[power=transformer ][!voltage:primary],
......@@ -267,7 +274,10 @@ way[highway=footway][oneway=no] {
group: tr("suspicious tag combination");
}
/* {0.tag} together with {1.tag}, see #17950, #17330, #17623, #17592, #17594, #17542, #16861, #16147, #10186 */
/* {0.tag} together with {1.tag}, see #18411, #17950, #17330, #17623, #17592, #17594, #17542, #16861, #16147, #10186 */
*[barrier=kerb][kerb=no],
way[highway=construction][construction=yes],
way[railway=construction][construction=yes],
*[man_made=bridge][bridge=yes],
*[man_made=tunnel][tunnel=yes],
*[amenity=police][police],
......@@ -302,6 +312,12 @@ node[marker][substance],
group: tr("suspicious tag combination");
}
/* {0.tag} together with {1.tag} and {2.key}, #18471 */
way[highway=~/^(cycleway|footway|path)$/][segregated=no][sidewalk =~/^(left|right|both)$/] {
throwWarning: tr("{0} together with {1} and {2}", "{0.tag}", "{1.tag}", "{2.key}");
group: tr("suspicious tag combination");
}
/* #11127, #13727 */
way[waterway][bridge=yes][waterway!=weir] {
throwWarning: tr("{0} together with {1}", "{0.key}", "{1.tag}");
......@@ -643,6 +659,23 @@ node[emergency_ward_entrance][emergency!=emergency_ward_entrance] {
/* #18203 */
way[construction][construction!=yes][construction!=minor][highway][highway!=construction] {
throwWarning: tr("{0} together with {1}", "{2.tag}", "{0.tag}");
throwWarning: tr("{0} together with {1}", "{3.tag}", "{0.tag}");
group: tr("suspicious tag combination");
}
/* #18374 */
*[amenity=recycling][collection_times="24/7"][!opening_hours],
*[amenity=recycling][collection_times ][!opening_hours][collection_times=~/[a-z]-[A-Z].*[0-9]-[0-9]/] {
throwWarning: tr("{0} together with {1}. Probably {2} is meant.", "{1.key}", "{0.tag}", "{2.key}");
group: tr("suspicious tag combination");
fixChangeKey: "collection_times => opening_hours";
assertMatch: "node amenity=recycling collection_times=\"Mo-Fr 06:00-20:00\"";
assertNoMatch: "node amenity=recycling collection_times=\"Mo-Fr 15:00\"";
assertNoMatch: "node amenity=recycling collection_times=\"Mo 08:00-11:00\"";
assertNoMatch: "node amenity=recycling collection_times=\"Sa[2,4] 8:00-11:00\"";
}
*[amenity=recycling][collection_times="24/7"][opening_hours],
*[amenity=recycling][collection_times ][opening_hours][collection_times=~/[a-z]-[A-Z].*[0-9]-[0-9]/] {
throwWarning: tr("{0} together with {1}. Probably {2} is meant.", "{1.key}", "{0.tag}", "{2.key}");
group: tr("suspicious tag combination");
}
\ No newline at end of file
......@@ -542,6 +542,7 @@ way[sidewalk=yes] {
}
/* see #11070 */
*[kerb=unknown],
*[lock=unknown],
*[hide=unknown],
*[shelter=unknown],
......@@ -1068,6 +1069,14 @@ way[barrier=wall][type=noise_barrier][wall][wall!=noise_barrier] {
group: tr("deprecated tagging");
}
/* #18517 */
*[office=administrative] {
throwWarning: tr("{0} is deprecated", "{0.tag}");
suggestAlternative: "office=government";
group: tr("deprecated tagging");
fixAdd: "office=government";
}
/* #12708 */
*[vending=news_papers] {
throwWarning: tr("{0} is deprecated", "{0.tag}");
......@@ -1284,7 +1293,7 @@ way[direction=down][incline][incline!=down] {
fixAdd: "building=yes";
}
/* #17786 */
/* #17786, #18612 */
*[building=abandoned],
*[building=address],
*[building=bing],
......@@ -1294,14 +1303,18 @@ way[direction=down][incline][incline!=down] {
*[building=disused],
*[building=fixme],
*[building=occupied],
*[building=razed] {
throwWarning: tr("{0} is not a building type.", "{0.tag}");
group: tr("deprecated tagging");
}
*[building=other],
*[building=razed],
*[building=unclassified],
*[building=undefined],
*[building=unknown],
*[building=unidentified] {
throwWarning: tr("{0} is not a building type.", "{0.tag}");
group: tr("deprecated tagging");
fixAdd: "building=yes";
}
/* #15675 */
......@@ -1839,3 +1852,68 @@ way[barrier=embankment] {
suggestAlternative: "embankment=yes";
group: tr("deprecated tagging");
}
/* #18469 */
way[landuse=churchyard] {
throwWarning: tr("{0} is deprecated", "{0.tag}");
suggestAlternative: "landuse=religious";
suggestAlternative: "amenity=graveyard";
group: tr("deprecated tagging");
}
*[sloped_curb=yes][!kerb],
*[sloped_curb=both][!kerb] {
throwWarning: tr("{0} is deprecated", "{0.tag}");
suggestAlternative: "kerb=lowered";
group: tr("deprecated tagging");
fixRemove: "sloped_curb";
fixAdd: "kerb=lowered";
}
*[sloped_curb=no][!kerb] {
throwWarning: tr("{0} is deprecated", "{0.tag}");
suggestAlternative: "kerb=yes";
group: tr("deprecated tagging");
fixRemove: "sloped_curb";
fixAdd: "kerb=yes";
}
*[sloped_curb][sloped_curb !~ /^(yes|both|no)$/][!kerb],
*[sloped_curb][kerb] {
throwWarning: tr("{0} is deprecated", "{0.key}");
suggestAlternative: "kerb=*";
group: tr("deprecated tagging");
}
/* #18571 */
*[unnamed=yes] {
throwWarning: tr("{0} is deprecated", "{0.tag}");
suggestAlternative: "noname=yes";
fixChangeKey: "unnamed => noname";
group: tr("deprecated tagging");
}
node[segregated][segregated!=yes][segregated!=no],
way[segregated ][segregated!=yes][segregated!=no] {
throwWarning: tr("unusual value of {0}", "{0.key}");
}
/* #18603 */
way[bicycle:oneway] {
throwWarning: tr("{0} is deprecated", "{0.key}");
suggestAlternative: "oneway:bicycle";
fixChangeKey: "bicycle:oneway => oneway:bicycle";
group: tr("deprecated tagging");
}
/* #18605 */
*[building:height] {
throwWarning: tr("{0} is deprecated", "{0.key}");
suggestAlternative: "height";
fixChangeKey: "building:height => height";
group: tr("deprecated tagging");
}
*[building:min_height] {
throwWarning: tr("{0} is deprecated", "{0.key}");
suggestAlternative: "min_height";
fixChangeKey: "building:min_height => min_height";
group: tr("deprecated tagging");
}
\ No newline at end of file
......@@ -291,7 +291,7 @@ way >[index=-1] 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],
way[highway] > node[leisure][!entrance][leisure!=slipway][leisure!=fitness_station],
way[highway] > node[office][!entrance],
way[highway] > node[shop][!entrance],
way[highway] > node[tourism][!entrance][tourism!=viewpoint]!.guidepost.first_last_node:connection,
......
......@@ -157,3 +157,9 @@ node[railway!=level_crossing].is_in_railway.is_in_major_road!.is_in_minor_road {
group: tr("missing tag");
fixAdd: "railway=level_crossing";
}
node[highway=crossing][barrier=kerb].is_in_major_road {
throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}");
suggestAlternative: "kerb=*";
group: tr("suspicious tag combination");
}
\ No newline at end of file
......@@ -71,6 +71,7 @@ E:icn_ref
E:ncn_ref
E:rcn_ref
E:lcn_ref
E:isced:level
E:place_name
E:cycleway
E:abutters
......@@ -82,6 +83,8 @@ E:height
E:opening_hours
E:service_times
E:collection_times
E:duration
E:interval
E:maxspeed
E:maxstay
E:colour
......@@ -104,6 +107,9 @@ E:roof:shape
E:turn:lanes
E:turn:lanes:forward
E:turn:lanes:backward
E:change:lanes
E:change:lanes:forward
E:change:lanes:backward
E:maxspeed:lanes
E:maxspeed:lanes:forward
E:maxspeed:lanes:backward
......@@ -155,6 +161,7 @@ F::wikidata
;
; Misc Tags
;
K:bollard=unremovable
K:traffic_calming=dynamic_bump
K:type=is_in
K:type=benchmark
......@@ -170,7 +177,6 @@ K:man_made=petroleum_well
K:man_made=yes
K:man_made=clearcut
K:man_made=maypole
K:railway=construction
K:railway=razed
K:railway=stop
K:station=subway
......
......@@ -397,3 +397,16 @@ node[fire_hydrant:pressure="#"] {
assertNoMatch: "way aeroway=aerodrome icao=EDDB";
assertMatch: "way aeroway=aerodrome icao=EQQQ";
}
/* #18573 */
*[isced:level][isced:level !~ /^(0|1|2|3|4|5|6|7|8)((;|-)(1|2|3|4|5|6|7|8))*$/] {
throwWarning: tr("unusual value of {0}", "{0.key}");
assertMatch: "node isced:level=secondary";
assertMatch: "node isced:level=0,1,2,3";
assertMatch: "node isced:level=9";
assertMatch: "node isced:level=10";
assertNoMatch: "node isced:level=0;1;2;3";
assertNoMatch: "node isced:level=0";
assertNoMatch: "node isced:level=5";
assertNoMatch: "node isced:level=0-3";
}
\ No newline at end of file
......@@ -11,7 +11,7 @@ relation[!type] {
relation[type=route][!route],
relation[type=route_master][!route_master],
relation[type=restriction][!/^restriction/], /* see #11586 */
relation[type=boundary][!boundary],
relation[type=boundary][!boundary][!disused:boundary],
relation[type=public_transport][!public_transport],
relation[type=waterway][!waterway],
relation[type=enforcement][!enforcement] {
......
......@@ -49,7 +49,8 @@ way[bicycle =~ /^(yes|designated)$/][highway=cycleway][!vehicle][!access][foot!=
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";*/
assertMatch: "node gnis:Class=\"Populated Place\" place=village";
assertNoMatch: "node gnis:Class=\"Populated Place\" place=locality";
}
*[emergency=permissive] {
......