var keepRightSchema = { 'schema': '', 'error_id': 0, 'error_type': 0, 'error_name': 0, 'object_type': [ 'node', 'way', 'relation' ], 'object_id': 0, 'state': [ 'new', 'reopened', 'ignore_temporarily', 'ignore' ], 'first_occurrence': new Date(), 'last_checked': new Date(), 'object_timestamp': new Date(), 'user_name': '', 'lat': 0, 'lon': 0, 'comment': '', 'comment_timestamp': new Date(), 'msgid': '', 'txt1': '', 'txt2': '', 'txt3': '', 'txt4': '', 'txt5': '' }; var errorSchema = { errors: { 0: { errorType: 0, errorName: '', message: '', subTypes: {} }, 30: { errorType: 30, errorName: 'non_closed_areas', message: 'This way is tagged with \'$1=$2\' and should be closed-loop', subTypes: {} }, 40: { errorType: 40, errorName: 'dead ended oneways', message: 'The first node (id $1) of this one-way is not connected to any other way', subTypes: { 41: { errorType: 41, errorName: '', message: 'The last node (id $1) of this one-way is not connected to any other way' }, 42: { errorType: 42, errorName: '', message: 'This node cannot be reached, because one-ways only lead away from here' }, 43: { errorType: 43, errorName: '', message: 'You cannot escape from this node, because one-ways only lead to here' }, } }, 50: { errorType: 50, errorName: 'almost junctions', message: 'This node is very close but not connected to way #$1', subTypes: {} }, 60: { errorType: 60, errorName: 'depreciated tags', message: 'This $1 uses deprecated tag $2 = $3. Please use $4 instead!', subTypes: {} }, 70: { errorType: 70, errorName: 'missing tags', message: 'This $1 has an empty tag: $2', 71: { errorType: 71, errorName: '', message: 'This way has no tags' }, 72: { errorType: 72, errorName: '', message: 'This node is not member of any way and does not have any tags' } }, 90: { errorType: 90, errorName: 'motorways without ref', message: 'This way is tagged as motorway and therefore needs a ref, nat_ref or int_ref tag' }, 100: { errorType: 100, errorName: 'places of worship without religion', message: 'This $1 is tagged as place of worship and therefore needs a religion tag' }, 110: { errorType: 110, errorName: 'point of interest without name', message: 'This node is tagged as $1 and therefore needs a name tag' }, 120: { errorType: 120, errorName: 'ways without nodes', message: 'This way has just one single node' }, 130: { errorType: 130, errorName: 'floating islands', message: 'This way is not connected to the rest of the map' }, 150: { errorType: 150, errorName: 'railway crossing without tag', message: 'This crossing of a highway and a railway needs to be tagged as railway=crossing or railway=level_crossing' }, 160: { errorType: 160, errorName: 'wrongly used railway tag', message: '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: { errorType: 0, errorName: 'FIXME tagged items', message: '$1' }, 180: { errorType: 180, errorName: 'relations without type', message: 'This relation has no type tag, which is mandatory for relations' }, 190: { errorType: 190, errorName: 'intersections without junctions', message: 'Finds way crossings on same layer without common node as a junction', subtypes: { 191: { errorType: 191, errorName: 'highway-highway', message: 'This $1 intersects the $2 #$3 but there is no junction node' }, 192: { errorType: 192, errorName: 'highway-waterway', message: 'This $1 intersects the $2 #$3' }, 193: { errorType: 193, errorName: 'highway-riverbank', message: 'This $1 intersects the $2 #$3' }, 194: { errorType: 194, errorName: 'waterway-waterway', message: 'This $1 intersects the $2 #$3 but there is no junction node' }, 195: { errorType: 195, errorName: 'cycleway-cycleway', message: 'This $1 intersects the $2 #$3 but there is no junction node' }, 196: { errorType: 196, errorName: 'highway-cycleway', message: 'This $1 intersects the $2 #$3 but there is no junction node' }, 197: { errorType: 197, errorName: 'cycleway-waterway', message: 'This $1 intersects the $2 #$3' }, 198: { errorType: 198, errorName: 'cycleway-riverbank', message: 'This $1 intersects the $2 #$3' } } }, 200: { errorType: 200, errorName: 'intersections without junctions', message: 'Finds overlapping ways on same layer.', subtypes: { 201: { errorType: 201, errorName: 'highway-highway', message: 'This $1 overlaps the $2 #$3' }, 202: { errorType: 202, errorName: 'highway-waterway', message: 'This $1 overlaps the $2 #$3' }, 203: { errorType: 203, errorName: 'highway-riverbank', message: 'This $1 overlaps the $2 #$3' }, 204: { errorType: 204, errorName: 'waterway-waterway', message: 'This $1 overlaps the $2 #$3' }, 205: { errorType: 205, errorName: 'cycleway-cycleway', message: 'This $1 overlaps the $2 #$3' }, 206: { errorType: 206, errorName: 'highway-cycleway', message: 'This $1 overlaps the $2 #$3' }, 207: { errorType: 207, errorName: 'cycleway-waterway', message: 'This $1 overlaps the $2 #$3' }, 208: { errorType: 208, errorName: 'cycleway-riverbank', message: 'This $1 overlaps the $2 #$3' } } }, 210: { errorType: 210, errorName: 'loopings', message: 'These errors contain self intersecting ways', subTypes: { 211: { errorType: 211, errorName: '', message: 'This way contains more than one node at least twice. Nodes are $1. This may or may not be an error' }, 212: { errorType: 212, errorName: '', message: 'This way has only two different nodes and contains one of them more than once' }, } }, 220: { errorType: 220, errorName: 'misspelled tags', message: ' This $1 is tagged \'$2=$3\' where $4 looks like $5', subTypes: { 221: { errorType: 221, errorName: 'misspelled tags', message: 'The key of this $1\'s tag is \'key\': $2' } } }, 230: { errorType: 230, errorName: 'layer conflicts', message: '', subTypes: { 231: { errorType: 231, errorName: 'mixed layers intersection', message: 'This node is a junction of ways on different layers: $1' }, 232: { errorType: 232, errorName: 'strange layers', message: 'This $1 is tagged with layer $2. This need not be an error, but it looks strange' } } }, 270: { errorType: 270, errorName: 'motorways connected directly', message: '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 if it is a service=parking_aisle.' }, 280: { errorType: 280, errorName: 'boundaries', message: '', subTypes: { 281: { errorType: 281, errorName: 'missing name', message: 'This boundary has no name' }, 282: { errorType: 282, errorName: 'missing admin level', message: 'The boundary of $1 has no valid numeric admin_level. Please do not use admin levels like for example 6;7. Always tag the lowest admin_level of all boundaries.' }, 283: { errorType: 283, errorName: 'no closed loop', message: 'The boundary of $1 is not closed-loop' }, 284: { errorType: 284, errorName: 'splitting boundary', message: 'The boundary of $1 splits here' }, 285: { errorType: 285, errorName: 'admin_level too high', message: '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' }, } }, 290: { errorType: 290, errorName: 'faulty restrictions', message: '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.', subTypes: { 291: { errorType: 291, errorName: 'missing type', message: 'This turn-restriction has no known restriction type' }, 292: { errorType: 292, errorName: 'missing from way', message: 'A turn-restriction needs exactly one $1 member. This one has $2' }, 293: { errorType: 293, errorName: 'missing to way', message: 'A turn-restriction needs exactly one $1 member. This one has $2' }, 294: { errorType: 294, errorName: 'from or to not a way', message: 'From- and To-members of turn restrictions need to be ways. $1' }, 295: { errorType: 295, errorName: 'via is not on the way ends', message: 'via (node #$1) is not the first or the last member of from (way #$2)' }, 296: { errorType: 296, errorName: 'wrong restriction angle', message: 'restriction type is $1, but angle is $2 degrees. Maybe the restriction type is not appropriate?' }, 297: { errorType: 297, errorName: 'wrong direction of to member', message: 'wrong direction of to way $1' }, 298: { errorType: 298, errorName: 'already restricted by oneway', message: 'entry already prohibited by oneway tag on $1' }, } }, 310: { errorType: 310, errorName: 'roundabouts', message: 'Analyses ways with tag junction=roundabout. More then one way can form a roundabout. It supports tag oneway=-1.', subTypes: { 311: { errorType: 311, errorName: 'not closed loop', message: 'This way is part of a roundabout but is not closed-loop. (split carriageways approaching a roundabout should not be tagged as roundabout)' }, 312: { errorType: 312, errorName: 'wrong direction', message: 'If this roundabout is in a country with right-hand traffic then its orientation goes the wrong way around | If this roundabout is in a country with left-hand traffic then its orientation goes the wrong way around | If this mini_roundabout is in a country with right-hand traffic then its orientation goes the wrong way around | If this mini_roundabout is in a country with left-hand traffic then its orientation goes the wrong way around' }, 313: { errorType: 313, errorName: 'faintly connected', message: 'This roundabout has only $1 other roads connected. Roundabouts typically have three.' }, } }, 320: { errorType: 320, errorName: '*link connections', message: 'This way is tagged as highway=$1_link but doesn\'t have a connection to any other $1 or $1_link' }, 350: { errorType: 350, errorName: 'bridge tags', message: '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: $1' }, 370: { errorType: 370, errorName: 'doubled places', message: 'This node has tags in common with the surrounding way #$1 and seems to be redundand | This node has tags in common with the surrounding way #$1 (including the name \'$2\') and seems to be redundand' }, 380: { errorType: 380, errorName: 'non-physical use of sportage', message: 'This way is tagged $1 but has no physical tag like e.g. leisure, building, amenity or highway' }, 400: { errorType: 400, errorName: 'geometry glitches', message: '', subTypes: { 401: { errorType: 401, errorName: 'missing turn restrictions', message: 'ways $1 and $2 join in a very sharp angle here and there is no oneway tag or turn restriction that prevents turning' }, 402: { errorType: 402, errorName: 'impossible angles', message: 'this way bends in a very sharp angle here' }, } }, 410: { errorType: 410, errorName: 'websites', message: '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=*.', subTypes: { 411: { errorType: 411, errorName: 'http error', message: 'The URL ($1) cannot be opened (HTTP status code $2)' }, 412: { errorType: 412, errorName: 'domain hijacking', message: 'Possible domain squatting: $1. Suspicious text is: "$2"' }, 413: { errorType: 413, errorName: 'non-match', message: 'Content of the URL ($1) did not contain these keywords: ($2)' }, } } }, warnings: { 20: { errorType: 20, errorName: 'multiple nodes on the same spot', message: ' There is more than one node in this spot. Offending node IDs: $1' }, 60: { errorType: 60, errorName: '', message: '' }, 300: { errorType: 300, errorName: 'missing maxspeed', message: 'missing maxspeed tag' }, 360: { errorType: 360, errorName: 'language unknown', message: 'It would be nice if this $1 had an additional tag \'name:XX=$2\' where XX shows the language of its name \'$2\'.' }, 390: { errorType: 390, errorName: 'missing tracktype', message: 'This track doesn\'t have a tracktype' }, }, };