mirror of
https://github.com/FoggedLens/iD.git
synced 2026-02-12 16:52:50 +00:00
504 lines
18 KiB
JSON
504 lines
18 KiB
JSON
{
|
|
"localizeStrings": {
|
|
"this node": "this_node",
|
|
"this way": "this_way",
|
|
"this relation": "this_relation",
|
|
"this one-way": "this_oneway",
|
|
"this highway": "this_highway",
|
|
"this railway": "this_railway",
|
|
"this waterway": "this_waterway",
|
|
"this cycleway": "this_cycleway",
|
|
"this footpath": "this_footpath",
|
|
"this cycleway/footpath": "this_cycleway_footpath",
|
|
"this riverbank": "this_riverbank",
|
|
"this crossing": "this_crossing",
|
|
"this railway crossing": "this_railway_crossing",
|
|
"this bridge": "this_bridge",
|
|
"this tunnel": "this_tunnel",
|
|
"this boundary": "this_boundary",
|
|
"this turn-restriction": "this_turn_restriction",
|
|
"this roundabout": "this_roundabout",
|
|
"this mini-roundabout": "this_mini_roundabout",
|
|
"this track": "this_track",
|
|
"this feature": "this_feature",
|
|
"highway": "highway",
|
|
"railway": "railway",
|
|
"waterway": "waterway",
|
|
"cycleway": "cycleway",
|
|
"cycleway_footpath": "cycleway/footpath",
|
|
"riverbank": "riverbank",
|
|
"place_of_worship": "place_of_worship",
|
|
"pub": "pub",
|
|
"restaurant": "restaurant",
|
|
"school": "school",
|
|
"university": "university",
|
|
"hospital": "hospital",
|
|
"library": "library",
|
|
"theatre": "theatre",
|
|
"courthouse": "courthouse",
|
|
"bank": "bank",
|
|
"cinema": "cinema",
|
|
"pharmacy": "pharmacy",
|
|
"cafe": "cafe",
|
|
"fast_food": "fast_food",
|
|
"fuel": "fuel",
|
|
"from": "from",
|
|
"to": "to",
|
|
"left-hand": "left_hand",
|
|
"right-hand": "right_hand"
|
|
},
|
|
"errorTypes": {
|
|
"20": {
|
|
"title": "multiple nodes on the same spot",
|
|
"severity": "warning",
|
|
"description": "There is more than one node in this spot. Offending node IDs: $1",
|
|
"IDs": ["20"],
|
|
"regex": "IDs: ((?:#\\d+,?)+)"
|
|
},
|
|
"30": {
|
|
"title": "non-closed_areas",
|
|
"severity": "error",
|
|
"description": "This way is tagged with '$1' and should be closed-loop.",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this way) is tagged with '(.+)'"
|
|
},
|
|
"40": {
|
|
"title": "dead-ended one-ways",
|
|
"severity": "error",
|
|
"description": "The first node (id $1) of this one-way is not connected to any other way",
|
|
"IDs": ["n", "this"],
|
|
"regex": "\\(id (\\d+)\\) of (this one-way)"
|
|
},
|
|
"41": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "The last node (id $1) of this one-way is not connected to any other way",
|
|
"IDs": ["n", "this"],
|
|
"regex": "\\(id (\\d+)\\) of (this one-way)"
|
|
},
|
|
"42": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "This node cannot be reached because one-ways only lead away from here",
|
|
"IDs": ["this"],
|
|
"regex": "(this node)"
|
|
},
|
|
"43": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "You cannot escape from this node because one-ways only lead to here",
|
|
"IDs": ["this"],
|
|
"regex": "(this node)"
|
|
},
|
|
"50": {
|
|
"title": "almost-junctions",
|
|
"severity": "error",
|
|
"description": "This node is very close but not connected to way #$1",
|
|
"IDs": ["this", "w"],
|
|
"regex": "(this node) is very close but not connected to way #(\\d+)"
|
|
},
|
|
"60": {
|
|
"title": "deprecated tags",
|
|
"severity": "warning",
|
|
"description": "This $1 uses deprecated tag $2. Please use $3 instead!",
|
|
"IDs": ["this", "", ""],
|
|
"regex": "(this (?:node|way|relation)) uses deprecated tag '(.+)'\\. Please use "(.+)""
|
|
},
|
|
"70": {
|
|
"title": "missing tags",
|
|
"severity": "error",
|
|
"description": "This $1 has an empty tag: $2",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this (?:node|way|relation)) has an empty tag: "(.+)=""
|
|
},
|
|
"71": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "This way has no tags",
|
|
"IDs": ["this"],
|
|
"regex": "(this way)"
|
|
},
|
|
"72": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "This node is not member of any way and does not have any tags",
|
|
"IDs": ["this"],
|
|
"regex": "(this node)"
|
|
},
|
|
"73": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "This way has a $1 tag but no highway tag",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this way) has a (.+) tag"
|
|
},
|
|
"74": {
|
|
"title": "missing tags",
|
|
"severity": "error",
|
|
"description": "This $1 has an empty tag: $2",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this (?:node|way|relation)) has an empty tag: "(.+)=""
|
|
},
|
|
"75": {
|
|
"description": "This (node|way|relation) has a name \\((.+)\\) but no other tag",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this (?:node|way|relation)) has a name \\((.+)\\)"
|
|
},
|
|
"90": {
|
|
"title": "motorways without ref",
|
|
"severity": "error",
|
|
"description": "This way is tagged as motorway and therefore needs a ref nat_ref or int_ref tag",
|
|
"IDs": ["this"],
|
|
"regex": "(this way)"
|
|
},
|
|
"100": {
|
|
"title": "places of worship without religion",
|
|
"severity": "error",
|
|
"description": "This $1 is tagged as place of worship and therefore needs a religion tag",
|
|
"IDs": ["this"],
|
|
"regex": "(this (?:node|way|relation))"
|
|
},
|
|
"110": {
|
|
"title": "point of interest without name",
|
|
"severity": "error",
|
|
"description": "This node is tagged as $1 and therefore needs a name tag",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this (?:node|way|relation)) is tagged as (.+) and"
|
|
},
|
|
"120": {
|
|
"title": "ways without nodes",
|
|
"severity": "error",
|
|
"description": "This way has just one single node",
|
|
"IDs": ["this"],
|
|
"regex": "(this way)"
|
|
},
|
|
"130": {
|
|
"title": "floating islands",
|
|
"severity": "error",
|
|
"description": "This way is not connected to the rest of the map",
|
|
"IDs": ["this"],
|
|
"regex": "(this way)"
|
|
},
|
|
"150": {
|
|
"title": "railway crossing without tag",
|
|
"severity": "error",
|
|
"description": "This crossing of a highway and a railway needs to be tagged as railway=crossing or railway=level_crossing",
|
|
"IDs": ["this"],
|
|
"regex": "(this crossing)"
|
|
},
|
|
"160": {
|
|
"title": "wrongly used railway tag",
|
|
"severity": "error",
|
|
"description": "There are ways in different layers coming together in this railway crossing. There are ways tagged as tunnel or bridge coming together in this railway crossing",
|
|
"IDs": ["this"],
|
|
"regex": "(this railway crossing)"
|
|
},
|
|
"170": {
|
|
"title": "FIXME tagged items",
|
|
"severity": "error",
|
|
"description": "This feature has a FIXME tag: (.*)",
|
|
"IDs": ["this"],
|
|
"regex": "(this feature) has a FIXME tag: (.*)"
|
|
},
|
|
"180": {
|
|
"title": "relations without type",
|
|
"severity": "error",
|
|
"description": "This relation has no type tag which is mandatory for relations",
|
|
"IDs": ["this"],
|
|
"regex": "(this relation)"
|
|
},
|
|
"190": {
|
|
"title": "intersections without junctions",
|
|
"severity": "error",
|
|
"description": "This $1 intersects the $2 #$3 but there is no junction node",
|
|
"IDs": ["this", "", "w"],
|
|
"regex": "(this .+) intersects the (.+) #(\\d+)"
|
|
},
|
|
"200": {
|
|
"title": "overlapping ways",
|
|
"severity": "error",
|
|
"description": "This $1 overlaps the $2 #$3",
|
|
"IDs": ["this", "", "w"],
|
|
"regex": "(this .+) overlaps the (.+) #(\\d+)"
|
|
},
|
|
"210": {
|
|
"title": "loopings",
|
|
"severity": "error",
|
|
"description": "These errors contain self intersecting ways"
|
|
},
|
|
"211": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "This way contains more than one node at least twice. Nodes are $1.",
|
|
"IDs": ["this", "211"],
|
|
"regex": "(this way) contains more than one node at least twice. Nodes are ((?:#\\d+(?:, )?)+)\\."
|
|
},
|
|
"212": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "This way has only two different nodes and contains one of them more than once",
|
|
"IDs": ["this"],
|
|
"regex": "(this way)"
|
|
},
|
|
"220": {
|
|
"title": "misspelled tags",
|
|
"severity": "error",
|
|
"description": "This $1 is tagged '$2' where $3 looks like $4",
|
|
"regex": "(this (?:node|way|relation)) is tagged '(.+)' where "(.+)" looks like "(.+)""
|
|
},
|
|
"221": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "The key of this $1's tag is 'key': $2",
|
|
"regex": "(this (?:node|way|relation))\\'s tag is \\'key\\': (.+)"
|
|
},
|
|
"230": {
|
|
"title": "layer conflicts",
|
|
"severity": "error",
|
|
"description": "This node is a junction of ways on different layers.",
|
|
"IDs": ["this"],
|
|
"regex": "(this node)"
|
|
},
|
|
"231": {
|
|
"title": "mixed layers intersection",
|
|
"severity": "error",
|
|
"description": "This node is a junction of ways on different layers: $1",
|
|
"IDs": ["this", "231"],
|
|
"regex": "(this node) is a junction of ways on different layers: (.+)"
|
|
},
|
|
"232": {
|
|
"title": "strange layers",
|
|
"severity": "error",
|
|
"description": "This $1 is tagged with layer $2. This need not be an error, but it looks strange",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this (?:bridge|tunnel)) is tagged with layer (-?\\d+)\\."
|
|
},
|
|
"270": {
|
|
"title": "motorways connected directly",
|
|
"severity": "error",
|
|
"description": "This node is a junction of a motorway and a highway other than motorway, motorway_link, trunk, rest_area or construction. Service or unclassified is only valid if it has access=no/private or it leads to a motorway service area or if it is a service=parking_aisle.",
|
|
"IDs": ["this"],
|
|
"regex": "(this node)"
|
|
},
|
|
"280": {
|
|
"title": "boundaries",
|
|
"severity": "error",
|
|
"description": "Administrative Boundaries can be expressed either by tagging ways or by adding them to a relation. They should be closed-loop sequences of ways, they must not self-intersect or split and they must have a name and an admin_level."
|
|
},
|
|
"281": {
|
|
"title": "missing name",
|
|
"severity": "error",
|
|
"description": "This boundary has no name",
|
|
"IDs": ["this"],
|
|
"regex": "(this boundary)"
|
|
},
|
|
"282": {
|
|
"title": "missing admin level",
|
|
"severity": "error",
|
|
"description": "The boundary of $1 has no (?:valid numeric)?admin_level",
|
|
"regex": "of (.+) has"
|
|
},
|
|
"283": {
|
|
"title": "no closed loop",
|
|
"severity": "error",
|
|
"description": "The boundary of $1 is not closed-loop",
|
|
"regex": "boundary of (.+) is"
|
|
},
|
|
"284": {
|
|
"title": "splitting boundary",
|
|
"severity": "error",
|
|
"description": "The boundary of $1 splits here",
|
|
"regex": "boundary of (.+) splits"
|
|
},
|
|
"285": {
|
|
"title": "admin_level too high",
|
|
"severity": "error",
|
|
"description": "This boundary-way has admin_level $1 but belongs to a relation with lower admin_level (higher priority); it should have the lowest admin_level of all relations",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this boundary)-way has admin_level (-?\\d+) but"
|
|
},
|
|
"290": {
|
|
"title": "restrictions",
|
|
"severity": "error",
|
|
"description": "Analyses all relations tagged type=restriction or following variations type=restriction:hgv type=restriction:caravan type=restriction:motorcar type=restriction:bus type=restriction:agricultural type=restriction:motorcycle type=restriction:bicycle and type=restriction:hazmat"
|
|
},
|
|
"291": {
|
|
"title": "missing type",
|
|
"severity": "error",
|
|
"description": "This turn-restriction has no (?:known )?restriction type",
|
|
"IDs": ["this"],
|
|
"regex": "(this turn-restriction) has"
|
|
},
|
|
"292": {
|
|
"title": "missing from way",
|
|
"severity": "error",
|
|
"description": "This turn-restriction needs exactly one from member. This one has $1",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this turn-restriction) needs.+has (\\d+)"
|
|
},
|
|
"293": {
|
|
"title": "missing to way",
|
|
"severity": "error",
|
|
"description": "This turn-restriction needs exactly one to member. This one has $1",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this turn-restriction) needs.+has (\\d+)"
|
|
},
|
|
"294": {
|
|
"title": "from or to not a way",
|
|
"severity": "error",
|
|
"description": "From- and To-members of this turn-restriction need to be ways. $1",
|
|
"IDs": ["this", "294"],
|
|
"regex": "(this turn-restriction)~.+ways\\. ((?:(?:from|to) (?:node|relation) #\\d+,?)+)"
|
|
},
|
|
"295": {
|
|
"title": "via is not on the way ends",
|
|
"severity": "error",
|
|
"description": "via (node #$1) is not the first or the last member of (from|to) (way #$3)",
|
|
"IDs": ["this", "n", "", "w"],
|
|
"regex": "(this turn-restriction)~via \\(node #(\\d+)\\).+ of (from|to) \\(way #(\\d+)\\)"
|
|
},
|
|
"296": {
|
|
"title": "wrong restriction angle",
|
|
"severity": "error",
|
|
"description": "This turn-restriction type is $1, but angle is $2 degrees. Maybe the restriction type is not appropriate?",
|
|
"IDs": ["this", "", ""],
|
|
"regex": "(this turn-restriction)~.+is (\\w+), but angle is (-?\\d+)"
|
|
},
|
|
"297": {
|
|
"title": "wrong direction of to member",
|
|
"severity": "error",
|
|
"description": "wrong direction of to way $1",
|
|
"IDs": ["this", "w"],
|
|
"regex": "(this turn-restriction)~.+to way (\\d+)"
|
|
},
|
|
"298": {
|
|
"title": "already restricted by oneway",
|
|
"severity": "error",
|
|
"description": "entry already prohibited by oneway tag on $1",
|
|
"IDs": ["this", "w"],
|
|
"regex": "(this turn-restriction)~.+tag on (\\d+)"
|
|
},
|
|
"300": {
|
|
"title": "missing maxspeed",
|
|
"severity": "warning",
|
|
"description": "This highway is missing a maxspeed tag",
|
|
"IDs": ["this"],
|
|
"regex": "(this highway)"
|
|
},
|
|
"310": {
|
|
"title": "roundabouts",
|
|
"severity": "error",
|
|
"description": "Analyses ways with tag junction=roundabout. More then one way can form a roundabout. It supports tag oneway=-1"
|
|
},
|
|
"311": {
|
|
"title": "not closed loop",
|
|
"severity": "error",
|
|
"description": "This way is part of a roundabout but is not closed-loop. (split carriageways approaching a roundabout should not be tagged as roundabout)",
|
|
"IDs": ["this"],
|
|
"regex": "(this way)"
|
|
},
|
|
"312": {
|
|
"title": "wrong direction",
|
|
"severity": "error",
|
|
"description": "If this ((?:mini_)?roundabout) is in a country with (left|right)-hand traffic then its orientation goes the wrong way around",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this (?:mini_)?roundabout) is in a country with ((?:left|right)-hand)"
|
|
},
|
|
"313": {
|
|
"title": "faintly connected",
|
|
"severity": "error",
|
|
"description": "This roundabout has only $1 other roads connected. Roundabouts typically have three",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this roundabout) has only (\\d) other"
|
|
},
|
|
"320": {
|
|
"title": "*_link connections",
|
|
"severity": "error",
|
|
"description": "This way is tagged as highway=$1_link but doesn't have a connection to any other $1 or $1_link",
|
|
"IDs": ["this", "", "", "", ""],
|
|
"regex": "(this way) is tagged as (highway=.+) but doesn't have a connection to any other (.+) or (.+)"
|
|
},
|
|
"350": {
|
|
"title": "bridge-tags",
|
|
"severity": "error",
|
|
"description": "This bridge does not have a tag in common with its surrounding ways that shows the purpose of this bridge. There should be one of these tags: (.+)",
|
|
"NOTE": "Group can be arbitrary list of form: key=value,key=value,key=value...",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this bridge).*tags: (.+)"
|
|
},
|
|
"360": {
|
|
"title": "language unknown",
|
|
"severity": "warning",
|
|
"description": "It would be nice if this (node|way|relation) had an additional tag 'name:XX=(.+)' where XX shows the language of its name '\\2'",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this (?:node|way|relation)) had an additional tag 'name:XX=(.+)' where"
|
|
},
|
|
"370": {
|
|
"title": "doubled places",
|
|
"severity": "error",
|
|
"description": "This node has tags in common with the surrounding way #$1 ((?:\\(including the name '.+'\\) )?)and seems to be redundant",
|
|
"IDs": ["this", "w", "370"],
|
|
"regex": "(this node) has tags in common with the surrounding way #(\\d+) ((?:\\(including the name '.+'\\) )?)and"
|
|
},
|
|
"380": {
|
|
"title": "non-physical use of sport-tag",
|
|
"severity": "error",
|
|
"description": "This way is tagged sport=$1 but has no physical tag like e.g. leisure, building, amenity or highway",
|
|
"IDs": ["this", ""],
|
|
"regex": "(this way) is tagged (sport=.+) but"
|
|
},
|
|
"390": {
|
|
"title": "missing tracktype",
|
|
"severity": "warning",
|
|
"description": "This track doesn''t have a tracktype",
|
|
"IDs": ["this"],
|
|
"regex": "(this track)"
|
|
},
|
|
"400": {
|
|
"title": "geometry glitches",
|
|
"severity": "error",
|
|
"description": ""
|
|
},
|
|
"401": {
|
|
"title": "missing turn restriction",
|
|
"severity": "error",
|
|
"description": "ways $1 and $2 join in a very sharp angle here and there is no oneway tag or turn restriction that prevents turning( from way (\\1|\\2) to (\\1|\\2))?",
|
|
"IDs": ["w", "w"],
|
|
"regex": "ways (\\d+) and (\\d+) join"
|
|
},
|
|
"402": {
|
|
"title": "impossible angles",
|
|
"severity": "error",
|
|
"description": "this way bends in a very sharp angle here",
|
|
"IDs": ["this"],
|
|
"regex": "(this way)"
|
|
},
|
|
"410": {
|
|
"title": "website",
|
|
"severity": "error",
|
|
"description": "Web pages are analyzed. Web page is defined by any of the following tags website=* url=* website:mobile=* contact:website=* contact:url=* image=* source:website=* or source:url=*"
|
|
},
|
|
"411": {
|
|
"title": "http error",
|
|
"severity": "error",
|
|
"description": "The URL (<a target=_blank href=$1>$1</a>) cannot be opened (HTTP status code $2)",
|
|
"IDs": ["this", "url", ""],
|
|
"regex": "(this feature)~.+ href=([^>]+)>.+ code (\\d+)\\)"
|
|
},
|
|
"412": {
|
|
"title": "domain hijacking",
|
|
"severity": "error",
|
|
"description": "Possible domain squatting: <a target=_blank href=$1>$1</a>. Suspicious text is: \"$2\"",
|
|
"IDs": ["this", "url", ""],
|
|
"regex": "(this feature)~.+ href=([^>]+)>.+ is: "(.+)""
|
|
},
|
|
"413": {
|
|
"title": "non-match",
|
|
"severity": "error",
|
|
"description": "Content of the URL (<a target=_blank href=$1>$1</a>) did not contain these keywords: ($2)",
|
|
"IDs": ["this", "url", ""],
|
|
"regex": "(this feature)~.+ href=([^>]+)>.+ keywords: \\((.+)\\)"
|
|
}
|
|
}
|
|
}
|