mirror of
https://github.com/FoggedLens/iD.git
synced 2026-02-13 17:23:02 +00:00
395 lines
15 KiB
JSON
395 lines
15 KiB
JSON
{
|
|
"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.",
|
|
"regex": "'(.+)'"
|
|
},
|
|
"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"],
|
|
"regex": "\\(id (\\d+)\\)"
|
|
},
|
|
"41": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "The last node (id $1) of this one-way is not connected to any other way",
|
|
"IDs": ["n"],
|
|
"regex": "\\(id (\\d+)\\)"
|
|
},
|
|
"42": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "This node cannot be reached because one-ways only lead away from here"
|
|
},
|
|
"43": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "You cannot escape from this node because one-ways only lead to here"
|
|
},
|
|
"50": {
|
|
"title": "almost-junctions",
|
|
"severity": "error",
|
|
"description": "This node is very close but not connected to way #$1",
|
|
"IDs": ["w"],
|
|
"regex": "way #(\\d+)"
|
|
},
|
|
"60": {
|
|
"title": "deprecated tags",
|
|
"severity": "warning",
|
|
"description": "This $1 uses deprecated tag $2. Please use $3 instead!",
|
|
"regex": "This (node|way|relation) uses deprecated tag '(.+)'\\. Please use "(.+)""
|
|
},
|
|
"70": {
|
|
"title": "missing tags",
|
|
"severity": "error",
|
|
"description": ""
|
|
},
|
|
"71": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "This way has no tags"
|
|
},
|
|
"72": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "This node is not member of any way and does not have any tags"
|
|
},
|
|
"73": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "This way has a $1 tag but no highway tag",
|
|
"regex": "has a (.+) tag"
|
|
},
|
|
"74": {
|
|
"title": "missing tags",
|
|
"severity": "error",
|
|
"description": "This $1 has an empty tag: $2",
|
|
"regex": "This (node|way|relation) has an empty tag: "(.+)=""
|
|
},
|
|
"75": {
|
|
"description": "This (node|way|relation) has a name \\((.+)\\) but no other tag",
|
|
"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"
|
|
},
|
|
"100": {
|
|
"title": "places of worship without religion",
|
|
"severity": "error",
|
|
"description": "This $1 is tagged as place of worship and therefore needs a religion tag",
|
|
"regex": "This (node|way|relation) is"
|
|
},
|
|
"110": {
|
|
"title": "point of interest without name",
|
|
"severity": "error",
|
|
"description": "This node is tagged as $1 and therefore needs a name tag",
|
|
"regex": "as (.+) and"
|
|
},
|
|
"120": {
|
|
"title": "ways without nodes",
|
|
"severity": "error",
|
|
"description": "This way has just one single node"
|
|
},
|
|
"130": {
|
|
"title": "floating islands",
|
|
"severity": "error",
|
|
"description": "This way is not connected to the rest of the map"
|
|
},
|
|
"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"
|
|
},
|
|
"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"
|
|
},
|
|
"170": {
|
|
"title": "FIXME tagged items",
|
|
"severity": "error",
|
|
"description": "(.*)",
|
|
"regex": "(.*)"
|
|
},
|
|
"180": {
|
|
"title": "relations without type",
|
|
"severity": "error",
|
|
"description": "This relation has no type tag which is mandatory for relations"
|
|
},
|
|
"190": {
|
|
"title": "intersections without junctions",
|
|
"severity": "error",
|
|
"description": "This $1 intersects the $2 #$3 but there is no junction node",
|
|
"IDs": ["", "", "w"],
|
|
"regex": "This (.+) intersects the (.+) #(\\d+)"
|
|
},
|
|
"200": {
|
|
"title": "overlapping ways",
|
|
"severity": "error",
|
|
"IDs": ["", "","w"],
|
|
"description": "This $1 overlaps the $2 #$3",
|
|
"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": ["211"],
|
|
"regex": "Nodes are ((?:#\\d+(?:, )?)+)\\."
|
|
},
|
|
"212": {
|
|
"title": "",
|
|
"severity": "error",
|
|
"description": "This way has only two different nodes and contains one of them more than once"
|
|
},
|
|
"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": "Connected ways should be on the same layer. Crossings on intermediate nodes of ways on different layers are obviously wrong. Junctions on end-nodes of ways on different layers are also deprecated, but common practice. So you may ignore this part of the check and switch them off separately. Please note that bridges are set to layer +1, and tunnels to -1, anything else to layer 0 implicitly if no layer tag is present."
|
|
},
|
|
"231": {
|
|
"title": "mixed layers intersection",
|
|
"severity": "error",
|
|
"description": "This node is a junction of ways on different layers: $1",
|
|
"IDs": ["231"],
|
|
"regex": "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",
|
|
"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."
|
|
},
|
|
"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"
|
|
},
|
|
"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",
|
|
"regex": "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",
|
|
"regex": "This turn-restriction has no (?:known )?restriction type"
|
|
},
|
|
"292": {
|
|
"title": "missing from way",
|
|
"severity": "error",
|
|
"description": "A turn-restriction needs exactly one from member. This one has $1",
|
|
"regex": "has (\\d+)"
|
|
},
|
|
"293": {
|
|
"title": "missing to way",
|
|
"severity": "error",
|
|
"description": "A turn-restriction needs exactly one to member. This one has $1",
|
|
"regex": "has (\\d+)"
|
|
},
|
|
"294": {
|
|
"title": "from or to not a way",
|
|
"severity": "error",
|
|
"description": "From- and To-members of turn restrictions need to be ways. $1",
|
|
"IDs": ["294"],
|
|
"regex": "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": ["n", "", "w"],
|
|
"regex": "via \\(node #(\\d+)\\) is not the first or the last member of (from|to) \\(way #(\\d+)\\)"
|
|
},
|
|
"296": {
|
|
"title": "wrong restriction angle",
|
|
"severity": "error",
|
|
"description": "restriction type is $1, but angle is $2 degrees. Maybe the restriction type is not appropriate?",
|
|
"regex": "is (\\w+), but angle is (-?\\d+) degrees"
|
|
},
|
|
"297": {
|
|
"title": "wrong direction of to member",
|
|
"severity": "error",
|
|
"description": "wrong direction of to way $1",
|
|
"IDs": ["w"],
|
|
"regex": "way (\\d+)"
|
|
},
|
|
"298": {
|
|
"title": "already restricted by oneway",
|
|
"severity": "error",
|
|
"description": "entry already prohibited by oneway tag on $1",
|
|
"IDs": ["w"],
|
|
"regex": "on (\\d+)"
|
|
},
|
|
"300": {
|
|
"title": "missing maxspeed",
|
|
"severity": "warning",
|
|
"description": "missing maxspeed tag"
|
|
},
|
|
"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)"
|
|
},
|
|
"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",
|
|
"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",
|
|
"regex": "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",
|
|
"regex": "(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...",
|
|
"regex": "these 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'",
|
|
"regex": "this (node|way|relation) had an additional tag 'name:XX=(.+)' where XX shows the language of its name '\\2'"
|
|
},
|
|
"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 redundand",
|
|
"IDs": ["w","370"],
|
|
"regex": "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",
|
|
"regex": "(sport=.+) but"
|
|
},
|
|
"390": {
|
|
"title": "missing tracktype",
|
|
"severity": "warning",
|
|
"description": "This track doesn''t have a tracktype"
|
|
},
|
|
"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"
|
|
},
|
|
"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)",
|
|
"regex": "href=(.+)>\\1</a>\\) cannot be opened \\(HTTP status code (\\d+)\\)"
|
|
},
|
|
"412": {
|
|
"title": "domain hijacking",
|
|
"severity": "error",
|
|
"description": "Possible domain squatting: <a target=\"_blank\" href=\"$1\">$1</a>. Suspicious text is: \"$2\"",
|
|
"regex": "Possible domain squatting: <a target=_blank href=(.+)>\\1</a>\\. Suspicious text 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)",
|
|
"regex": "Content of the URL (<a target=_blank href=(.+)>\\1</a>) did not contain these keywords: \\((.+)\\)"
|
|
}
|
|
}
|
|
}
|