{ "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 redundand", "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 ($1) 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: $1. Suspicious text is: \"$2\"", "IDs": ["this", "url", ""], "regex": "(this feature)~.+ href=([^>]+)>.+ is: "(.+)"" }, "413": { "title": "non-match", "severity": "error", "description": "Content of the URL ($1) did not contain these keywords: ($2)", "IDs": ["this", "url", ""], "regex": "(this feature)~.+ href=([^>]+)>.+ keywords: \\((.+)\\)" } } }