diff --git a/assets/datasets/destinations.json b/assets/datasets/destinations.json new file mode 100644 index 0000000..f2015c1 --- /dev/null +++ b/assets/datasets/destinations.json @@ -0,0 +1,5270 @@ +{ + "Tottenham Court Road": { + "Contributor": "ImBenji", + "Location": "51.5203145, -0.1340121" + }, + "Holborn": { + "Contributor": "ImBenji", + "Location": "51.5175802, -0.1145147" + }, + "Aldwych": { + "Contributor": "ImBenji", + "Location": "51.5132441, -0.1172819" + }, + "Waterloo": { + "Contributor": "ImBenji", + "Location": "51.5048541, -0.1136621" + }, + "Elephant & Castle": { + "Contributor": "ImBenji", + "Location": "51.4938058, -0.0977932" + }, + "Bricklayer's Arms": { + "Contributor": "ImBenji", + "Location": "51.4661322, -0.2166946" + }, + "Surrey Quays": { + "Contributor": "ImBenji", + "Location": "51.4944172, -0.0383063" + }, + "Southwark Park Road": { + "Contributor": "ImBenji", + "Location": "51.493047, -0.07343890000000002" + }, + "Canada Water": { + "Contributor": "ImBenji", + "Location": "51.4962989, -0.0482742" + }, + "Marylebone": { + "Contributor": "ImBenji", + "Location": "51.5188746, -0.1498955" + }, + "Marble Arch": { + "Contributor": "ImBenji", + "Location": "51.5132225, -0.1588937" + }, + "Hyde Park Corner": { + "Contributor": "ImBenji", + "Location": "51.5029347, -0.1508562" + }, + "Victoria": { + "Contributor": "ImBenji", + "Location": "51.49554149999999, -0.1435602" + }, + "Vauxhall": { + "Contributor": "ImBenji", + "Location": "51.4861671, -0.12172" + }, + "Stockwell": { + "Contributor": "ImBenji", + "Location": "51.4760412, -0.1263271" + }, + "Brixton": { + "Contributor": "ImBenji", + "Location": "51.4612794, -0.1156148" + }, + "Tulse Hill Station": { + "Contributor": "ImBenji", + "Location": "51.43986, -0.10505" + }, + "West Norwood": { + "Contributor": "ImBenji", + "Location": "51.427905, -0.1002486" + }, + "Regent Street": { + "Contributor": "ImBenji", + "Location": "51.5080333, -0.133591" + }, + "Piccadilly Circus": { + "Contributor": "ImBenji", + "Location": "51.5099734, -0.13497" + }, + "Whitehall, Horse Guards": { + "Contributor": "ImBenji", + "Location": "51.5049111, -0.1273704" + }, + "Parliament Square": { + "Contributor": "ImBenji", + "Location": "51.5010421, -0.1268514" + }, + "Lambeth Bridge": { + "Contributor": "ImBenji", + "Location": "51.4945633, -0.123211" + }, + "Kennington Lane": { + "Contributor": "ImBenji", + "Location": "51.4884765, -0.1112969" + }, + "Kennington Church": { + "Contributor": "ImBenji", + "Location": "51.5055111, -0.1940999" + }, + "Brixton, Morval Road": { + "Contributor": "ImBenji", + "Location": "51.456008, -0.1128301" + }, + "South Croxted Road": { + "Contributor": "ImBenji", + "Location": "51.432326, -0.0894342" + }, + "Crystal Palace": { + "Contributor": "ImBenji", + "Location": "51.4197233, -0.0830638" + }, + "Archway": { + "Contributor": "ImBenji", + "Location": "51.5648883, -0.1323808" + }, + "Holloway, Nag's Head": { + "Contributor": "ImBenji", + "Location": "51.55724250000001, -0.1204364" + }, + "Finsbury Park Station": { + "Contributor": "ImBenji", + "Location": "51.5646425, -0.1058553" + }, + "Highbury Barn": { + "Contributor": "ImBenji", + "Location": "51.553813, -0.09808739999999999" + }, + "Highbury & Islington": { + "Contributor": "ImBenji", + "Location": "51.5569649, -0.0979656" + }, + "Islington, Angel": { + "Contributor": "ImBenji", + "Location": "51.5366523, -0.1029852" + }, + "Barbican": { + "Contributor": "ImBenji", + "Location": "51.5202077, -0.09378639999999999" + }, + "St. Paul's": { + "Contributor": "ImBenji", + "Location": "51.5833118, -0.1236257" + }, + "Ludgate Circus": { + "Contributor": "ImBenji", + "Location": "51.5140306, -0.1043143" + }, + "Romford Market": { + "Contributor": "ImBenji", + "Location": "51.577076, 0.178319" + }, + "Romford Station": { + "Contributor": "ImBenji", + "Location": "51.57472449999999, 0.1826519" + }, + "Roneo Corner": { + "Contributor": "ImBenji", + "Location": "51.5655709, 0.1869165" + }, + "Becontree Heath": { + "Contributor": "ImBenji", + "Location": "51.5609465, 0.1488995" + }, + "Five Elms": { + "Contributor": "ImBenji", + "Location": "51.3697855, 0.0259964" + }, + "Bennett's Castle Lane": { + "Contributor": "ImBenji", + "Location": "51.5562949, 0.1276031" + }, + "Fair Cross": { + "Contributor": "ImBenji", + "Location": "51.5833519, -0.07649299999999999" + }, + "Barking": { + "Contributor": "ImBenji", + "Location": "51.5833519, -0.07649299999999999" + }, + "Newham Town Hall": { + "Contributor": "ImBenji", + "Location": "51.53280239999999, 0.0551608" + }, + "East Ham, Newham Town Hall": { + "Contributor": "ImBenji", + "Location": "51.53280239999999, 0.0551608" + }, + "Upton Park, Boleyn": { + "Contributor": "ImBenji", + "Location": "51.5305005, 0.0384915" + }, + "Plaistow, Balaam Street": { + "Contributor": "ImBenji", + "Location": "51.529212, 0.0243676" + }, + "Canning Town, Barking Road": { + "Contributor": "ImBenji", + "Location": "51.5180017, 0.0130984" + }, + "Canning Town": { + "Contributor": "ImBenji", + "Location": "51.51395705923875, 0.00827546234713445" + }, + "Willesden, Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.5474482, -0.2394372" + }, + "Kensal Rise": { + "Contributor": "ImBenji", + "Location": "51.5345071, -0.2250186" + }, + "Queen's Park": { + "Contributor": "ImBenji", + "Location": "51.5345448, -0.2043853" + }, + "Edgware Road Station": { + "Contributor": "ImBenji", + "Location": "51.51988249999999, -0.1678336" + }, + "Portman Square": { + "Contributor": "ImBenji", + "Location": "51.5161534, -0.1560125" + }, + "Oxford Circus": { + "Contributor": "ImBenji", + "Location": "51.5152543, -0.1420395" + }, + "Trafalgar Square": { + "Contributor": "ImBenji", + "Location": "51.508039, -0.128069" + }, + "East Acton": { + "Contributor": "ImBenji", + "Location": "51.5127758, -0.2476803" + }, + "North Pole Road": { + "Contributor": "ImBenji", + "Location": "51.5195492, -0.2265871" + }, + "Ladbroke Grove": { + "Contributor": "ImBenji", + "Location": "51.5178769, -0.2103321" + }, + "Chepstow Road": { + "Contributor": "ImBenji", + "Location": "51.5167339, -0.1955587" + }, + "Paddington": { + "Contributor": "ImBenji", + "Location": "51.515973, -0.174943" + }, + "Bow Church": { + "Contributor": "ImBenji", + "Location": "51.5287753, -0.0167013" + }, + "Old Ford": { + "Contributor": "ImBenji", + "Location": "51.535812, -0.021259" + }, + "Roman Road, Grove Road": { + "Contributor": "ImBenji", + "Location": "51.531048, -0.03955699999999999" + }, + "Shoreditch": { + "Contributor": "ImBenji", + "Location": "51.5229106, -0.0777472" + }, + "Liverpool Street": { + "Contributor": "ImBenji", + "Location": "51.5175001, -0.0826966" + }, + "City Thameslink": { + "Contributor": "ImBenji", + "Location": "51.5140438, -0.1033475" + }, + "Green Park": { + "Contributor": "ImBenji", + "Location": "51.5039052, -0.1438484" + }, + "Royal Albert Hall": { + "Contributor": "ImBenji", + "Location": "51.5009088, -0.177366" + }, + "Kensington, Palace Gate": { + "Contributor": "ImBenji", + "Location": "51.4997084, -0.1839913" + }, + "Kensington, Holland Road": { + "Contributor": "ImBenji", + "Location": "51.5010095, -0.1932794" + }, + "Hammersmith": { + "Contributor": "ImBenji", + "Location": "51.491187, -0.223731" + }, + "Euston": { + "Contributor": "ImBenji", + "Location": "51.5280408, -0.1333271" + }, + "King's Cross": { + "Contributor": "ImBenji", + "Location": "51.5347488, -0.1245845" + }, + "Fulham Broadway": { + "Contributor": "ImBenji", + "Location": "51.4803328, -0.1943638" + }, + "Chelsea, World's End": { + "Contributor": "ImBenji", + "Location": "51.6017398, -0.1148607" + }, + "Sloane Square": { + "Contributor": "ImBenji", + "Location": "51.4927684, -0.1570174" + }, + "Victoria, Coach Station": { + "Contributor": "ImBenji", + "Location": "51.4924744, -0.1482485" + }, + "Mansion House": { + "Contributor": "ImBenji", + "Location": "51.51300699999999, -0.08950899999999999" + }, + "Whitehall, Horseguards": { + "Contributor": "ImBenji", + "Location": "51.5049111, -0.1273704" + }, + "Lambeth North": { + "Contributor": "ImBenji", + "Location": "51.4989177, -0.1121086" + }, + "Camberwell Road, Medlar Street": { + "Contributor": "ImBenji", + "Location": "51.4793161, -0.0941097" + }, + "Camberwell Green": { + "Contributor": "ImBenji", + "Location": "51.4748827, -0.0921158" + }, + "Peckham": { + "Contributor": "ImBenji", + "Location": "51.47032369999999, -0.0673872" + }, + "Peckham Rye": { + "Contributor": "ImBenji", + "Location": "51.4603208, -0.0603961" + }, + "Dulwich Library": { + "Contributor": "ImBenji", + "Location": "51.4488677, -0.07447669999999999" + }, + "North Finchley": { + "Contributor": "ImBenji", + "Location": "51.6135087, -0.1754198" + }, + "Finchley, Church End": { + "Contributor": "ImBenji", + "Location": "51.604606, -0.1882833" + }, + "Golders Green": { + "Contributor": "ImBenji", + "Location": "51.5740013, -0.1987725" + }, + "Finchley Road & Frognal": { + "Contributor": "ImBenji", + "Location": "51.5585086, -0.1818591" + }, + "Swiss Cottage": { + "Contributor": "ImBenji", + "Location": "51.5425872, -0.1724737" + }, + "St John's Wood": { + "Contributor": "ImBenji", + "Location": "51.5343581, -0.1742065" + }, + "Baker Street Station": { + "Contributor": "ImBenji", + "Location": "51.5231548, -0.156863" + }, + "Park Lane, Hilton Hotel": { + "Contributor": "ImBenji", + "Location": "51.5083331, -0.1547189" + }, + "Putney Heath": { + "Contributor": "ImBenji", + "Location": "51.4524424, -0.2298485" + }, + "Putney Station": { + "Contributor": "ImBenji", + "Location": "51.4611807, -0.2164913" + }, + "Putney Bridge": { + "Contributor": "ImBenji", + "Location": "51.4669712, -0.2129034" + }, + "South Kensington": { + "Contributor": "ImBenji", + "Location": "51.4953291, -0.1789909" + }, + "Warren Street": { + "Contributor": "ImBenji", + "Location": "51.5240516, -0.1399547" + }, + "Blackwall": { + "Contributor": "ImBenji", + "Location": "51.5079838, -0.007195699999999999" + }, + "Poplar, All Saints": { + "Contributor": "ImBenji", + "Location": "51.5105521, -0.0118612" + }, + "Limehouse, Burdett Road": { + "Contributor": "ImBenji", + "Location": "51.5150014, -0.0285662" + }, + "Stepney, Arbour Square": { + "Contributor": "ImBenji", + "Location": "51.5140186, -0.0481747" + }, + "Aldgate": { + "Contributor": "ImBenji", + "Location": "51.5134365, -0.0772463" + }, + "Tower Hill": { + "Contributor": "ImBenji", + "Location": "51.5095757, -0.0760083" + }, + "Cannon Street": { + "Contributor": "ImBenji", + "Location": "51.5119949, -0.091962" + }, + "Cricklewood Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.56195959999999, -0.2224221" + }, + "Cricklewood Broadway": { + "Contributor": "ImBenji", + "Location": "51.5567072, -0.2153734" + }, + "Kilburn High Road Station": { + "Contributor": "ImBenji", + "Location": "51.537243, -0.192318" + }, + "London Bridge": { + "Contributor": "ImBenji", + "Location": "51.5078788, -0.0877321" + }, + "Sudbury": { + "Contributor": "ImBenji", + "Location": "51.5556591, -0.3171114" + }, + "Wembley Stadium": { + "Contributor": "ImBenji", + "Location": "51.55602469999999, -0.2796177" + }, + "Stonebridge Park": { + "Contributor": "ImBenji", + "Location": "51.5445824, -0.2608244" + }, + "Craven Park": { + "Contributor": "ImBenji", + "Location": "51.5409981, -0.2563872" + }, + "Harlesden, Jubilee Clock": { + "Contributor": "ImBenji", + "Location": "51.5354215, -0.2479155" + }, + "Harrow Road, Elgin Avenue": { + "Contributor": "ImBenji", + "Location": "51.520765, -0.1810053" + }, + "Harrow Road, Warwick Avenue": { + "Contributor": "ImBenji", + "Location": "51.521152, -0.1806301" + }, + "Paddington Green": { + "Contributor": "ImBenji", + "Location": "51.5207075, -0.1737114" + }, + "Islington Green": { + "Contributor": "ImBenji", + "Location": "51.5359664, -0.1028448" + }, + "Rosebery Avenue": { + "Contributor": "ImBenji", + "Location": "51.5262828, -0.1094047" + }, + "Battersea Bridge, South Side": { + "Contributor": "ImBenji", + "Location": "51.4811674, -0.1725411" + }, + "Walthamstow Central": { + "Contributor": "ImBenji", + "Location": "51.58371234741264, -0.020388542417149096" + }, + "Leyton, Bakers Arms": { + "Contributor": "ImBenji", + "Location": "51.5749185, -0.013549" + }, + "Whipps Cross": { + "Contributor": "ImBenji", + "Location": "51.581499, 0.0001219" + }, + "Woodford Green": { + "Contributor": "ImBenji", + "Location": "51.6092549, 0.0405521" + }, + "Woodford Wells": { + "Contributor": "ImBenji", + "Location": "51.6148287, 0.0282889" + }, + "Loughton": { + "Contributor": "ImBenji", + "Location": "51.64195093723499, 0.05498357119784937" + }, + "Debden": { + "Contributor": "ImBenji", + "Location": "51.645776846753535, 0.08200009471482733" + }, + "Lewisham, Shopping Centre": { + "Contributor": "ImBenji", + "Location": "51.46175909999999, -0.0119106" + }, + "Lewisham, Jerrard Street": { + "Contributor": "ImBenji", + "Location": "51.4653963, -0.0162157" + }, + "New Cross Gate": { + "Contributor": "ImBenji", + "Location": "51.4749904, -0.0403466" + }, + "Moorgate, Finsbury Square": { + "Contributor": "ImBenji", + "Location": "51.5184165, -0.0889151" + }, + "Hoxton, Baring Street": { + "Contributor": "ImBenji", + "Location": "51.5368127, -0.0882585" + }, + "Newington Green": { + "Contributor": "ImBenji", + "Location": "51.5514507, -0.0857535" + }, + "Putney Common": { + "Contributor": "ImBenji", + "Location": "51.4676836, -0.228221" + }, + "Putney Church": { + "Contributor": "ImBenji", + "Location": "51.4596431, -0.2141257" + }, + "Parsons Green": { + "Contributor": "ImBenji", + "Location": "51.4747689, -0.2002723" + }, + "Knightsbridge": { + "Contributor": "ImBenji", + "Location": "51.4991195, -0.1644394" + }, + "Westbourne Park": { + "Contributor": "ImBenji", + "Location": "51.51769299999999, -0.194941" + }, + "Ladbroke Grove, Sainsbury's": { + "Contributor": "ImBenji", + "Location": "51.5256365, -0.215718" + }, + "Notting Hill, Westbourne Grove": { + "Contributor": "ImBenji", + "Location": "51.5155424, -0.1893047" + }, + "Pimlico": { + "Contributor": "ImBenji", + "Location": "51.490744, -0.1403619" + }, + "Mornington Crescent": { + "Contributor": "ImBenji", + "Location": "51.5334445, -0.1404782" + }, + "Camden Town": { + "Contributor": "ImBenji", + "Location": "51.5390261, -0.1425516" + }, + "Chalk Farm": { + "Contributor": "ImBenji", + "Location": "51.5444834, -0.152158" + }, + "Hampstead Heath": { + "Contributor": "ImBenji", + "Location": "51.5608294, -0.1629416" + }, + "Bank": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Mile End": { + "Contributor": "ImBenji", + "Location": "51.52354529999999, -0.0330122" + }, + "Stratford": { + "Contributor": "ImBenji", + "Location": "51.5426313, -0.0010369" + }, + "Forest Gate, Police Station": { + "Contributor": "ImBenji", + "Location": "51.5467822, 0.0309995" + }, + "Manor Park": { + "Contributor": "ImBenji", + "Location": "51.550487, 0.0514117" + }, + "Ilford Broadway": { + "Contributor": "ImBenji", + "Location": "51.5584078, 0.07077839999999999" + }, + "Ilford": { + "Contributor": "ImBenji", + "Location": "51.556619, 0.076251" + }, + "Hackney Wick": { + "Contributor": "ImBenji", + "Location": "51.544579, -0.0256935" + }, + "Hackney, Well Street": { + "Contributor": "ImBenji", + "Location": "51.5424028, -0.0488388" + }, + "Ash Grove": { + "Contributor": "ImBenji", + "Location": "51.5358094, -0.0581907" + }, + "Chiswick, Business Park": { + "Contributor": "ImBenji", + "Location": "51.4930604, -0.2748696" + }, + "Stamford Brook, Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.493069, -0.2493815" + }, + "Notting Hill Gate": { + "Contributor": "ImBenji", + "Location": "51.5090534, -0.1966727" + }, + "North End Road, Lillie Road": { + "Contributor": "ImBenji", + "Location": "51.4857738, -0.2013501" + }, + "New Kings Road": { + "Contributor": "ImBenji", + "Location": "51.4733974, -0.1978029" + }, + "Wandsworth Bridge, South Side": { + "Contributor": "ImBenji", + "Location": "51.4651939, -0.1880094" + }, + "Wandsworth, Town Hall": { + "Contributor": "ImBenji", + "Location": "51.4570227, -0.191114" + }, + "Wandsworth": { + "Contributor": "ImBenji", + "Location": "51.45837299999999, -0.1891356" + }, + "Wood Green": { + "Contributor": "ImBenji", + "Location": "51.5971722, -0.1098021" + }, + "Turnpike Lane Station": { + "Contributor": "ImBenji", + "Location": "51.5904278, -0.1027587" + }, + "Islington Angel": { + "Contributor": "ImBenji", + "Location": "51.5346761, -0.1042905" + }, + "Mildmay Park": { + "Contributor": "ImBenji", + "Location": "51.5488355, -0.0843157" + }, + "Hackney Central": { + "Contributor": "ImBenji", + "Location": "51.5482344, -0.05738749999999999" + }, + "South Hampstead Station": { + "Contributor": "ImBenji", + "Location": "51.5412969, -0.1790611" + }, + "Kilburn Park": { + "Contributor": "ImBenji", + "Location": "51.53504119999999, -0.1938988" + }, + "Maida Hill, The Chippenham": { + "Contributor": "ImBenji", + "Location": "51.5243627, -0.2017331" + }, + "Holland Park Roundabout": { + "Contributor": "ImBenji", + "Location": "51.5042925, -0.217039" + }, + "White City": { + "Contributor": "ImBenji", + "Location": "51.51146199999999, -0.2376332" + }, + "Edgware": { + "Contributor": "ImBenji", + "Location": "51.61548819999999, -0.2609598" + }, + "Burnt Oak Broadway": { + "Contributor": "ImBenji", + "Location": "51.602753, -0.2700278" + }, + "Colindale, Superstores": { + "Contributor": "ImBenji", + "Location": "51.5942575, -0.2607018" + }, + "West Hendon Broadway": { + "Contributor": "ImBenji", + "Location": "51.5772325, -0.2392682" + }, + "Staples Corner": { + "Contributor": "ImBenji", + "Location": "51.5714404, -0.2319415" + }, + "Fulwell, Stanley Road": { + "Contributor": "ImBenji", + "Location": "51.43500909999999, -0.3471814" + }, + "Teddington": { + "Contributor": "ImBenji", + "Location": "51.4268694, -0.3338681" + }, + "Twickenham": { + "Contributor": "ImBenji", + "Location": "51.4453043, -0.3375429" + }, + "Richmond": { + "Contributor": "ImBenji", + "Location": "51.6017398, -0.1148607" + }, + "East Sheen, Queen's Road": { + "Contributor": "ImBenji", + "Location": "51.4663301, -0.2595362" + }, + "Barnes Common": { + "Contributor": "ImBenji", + "Location": "51.4681254, -0.2413995" + }, + "Barnes, Red Lion": { + "Contributor": "ImBenji", + "Location": "51.4755063, -0.2389859" + }, + "Barnet Church": { + "Contributor": "ImBenji", + "Location": "51.6526856, -0.1992227" + }, + "Barnet, Odeon": { + "Contributor": "ImBenji", + "Location": "51.64663059999999, -0.1865655" + }, + "Whetstone": { + "Contributor": "ImBenji", + "Location": "51.6300102, -0.1747954" + }, + "New Southgate": { + "Contributor": "ImBenji", + "Location": "51.61100099999999, -0.135469" + }, + "Arnos Grove": { + "Contributor": "ImBenji", + "Location": "51.619799, -0.1296871" + }, + "Palmers Green, North Circular Road": { + "Contributor": "ImBenji", + "Location": "51.6122666, -0.1091537" + }, + "Edmonton, Cambridge Roundabout": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "North Middlesex Hospital": { + "Contributor": "ImBenji", + "Location": "51.6131618, -0.0735832" + }, + "Edmonton, Angel": { + "Contributor": "ImBenji", + "Location": "51.6100108, -0.0474714" + }, + "Angel Road, Eleys Estate": { + "Contributor": "ImBenji", + "Location": "51.6169024, -0.0460262" + }, + "Walthamstow, Crooked Billet": { + "Contributor": "ImBenji", + "Location": "51.60092149975336, -0.016466425026484634" + }, + "Clapham Junction": { + "Contributor": "ImBenji", + "Location": "51.4651737, -0.1708113" + }, + "Clapham Common": { + "Contributor": "ImBenji", + "Location": "51.4556465, -0.1385544" + }, + "Herne Hill": { + "Contributor": "ImBenji", + "Location": "51.4609208, -0.0985404" + }, + "East Dulwich": { + "Contributor": "ImBenji", + "Location": "51.4545635, -0.0732101" + }, + "Clapton Pond": { + "Contributor": "ImBenji", + "Location": "51.5561061, -0.05490830000000001" + }, + "Southfields, Granville Road": { + "Contributor": "ImBenji", + "Location": "51.4497918, -0.2017799" + }, + "Hornsey Rise": { + "Contributor": "ImBenji", + "Location": "51.5721143, -0.12519" + }, + "Crouch End": { + "Contributor": "ImBenji", + "Location": "51.5819979, -0.1221464" + }, + "Hornsey": { + "Contributor": "ImBenji", + "Location": "51.5872715, -0.1103806" + }, + "West Green": { + "Contributor": "ImBenji", + "Location": "51.586254, -0.0867628" + }, + "Green Lanes, West Green Road": { + "Contributor": "ImBenji", + "Location": "51.5889244, -0.1020963" + }, + "Seven Sisters": { + "Contributor": "ImBenji", + "Location": "51.582652, -0.0747232" + }, + "Tottenham Hale": { + "Contributor": "ImBenji", + "Location": "51.5892808, -0.06105049999999999" + }, + "East Dulwich, Sainsburys": { + "Contributor": "ImBenji", + "Location": "51.4624191, -0.0834805" + }, + "Tower Gateway": { + "Contributor": "ImBenji", + "Location": "51.5106312, -0.0737553" + }, + "Friern Barnet": { + "Contributor": "ImBenji", + "Location": "51.6141967, -0.1540148" + }, + "Muswell Hill": { + "Contributor": "ImBenji", + "Location": "51.5911816, -0.1443015" + }, + "Angel": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Old Street Station": { + "Contributor": "ImBenji", + "Location": "51.5256719, -0.0874922" + }, + "Moorgate": { + "Contributor": "ImBenji", + "Location": "51.5163044, -0.0890892" + }, + "Bank Station": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Battersea Park Station": { + "Contributor": "ImBenji", + "Location": "51.47696, -0.14751" + }, + "Battersea, Latchmere Road": { + "Contributor": "ImBenji", + "Location": "51.4646957, -0.161959" + }, + "Garratt Lane, Wimbledon Road": { + "Contributor": "ImBenji", + "Location": "51.4409636, -0.1869488" + }, + "Tooting Broadway": { + "Contributor": "ImBenji", + "Location": "51.427867, -0.1678142" + }, + "Tooting Station": { + "Contributor": "ImBenji", + "Location": "51.41986989999999, -0.16136" + }, + "Farringdon Street, Smithfield": { + "Contributor": "ImBenji", + "Location": "51.5151388, -0.1048555" + }, + "Clapham Park": { + "Contributor": "ImBenji", + "Location": "51.4476066, -0.1431943" + }, + "Warwick Avenue": { + "Contributor": "ImBenji", + "Location": "51.5063258, -0.3039068" + }, + "St Bartholomew's Hospital": { + "Contributor": "ImBenji", + "Location": "51.51749599999999, -0.1000463" + }, + "Bellingham, Catford Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.434704, -0.017839" + }, + "Deptford, Church Street": { + "Contributor": "ImBenji", + "Location": "51.4807988, -0.0231099" + }, + "Deptford Bridge": { + "Contributor": "ImBenji", + "Location": "51.4744304, -0.0224546" + }, + "Tower Bridge Road, Druid Street": { + "Contributor": "ImBenji", + "Location": "51.4996634, -0.07507899999999999" + }, + "Leyton Bakers Arms": { + "Contributor": "ImBenji", + "Location": "51.5749185, -0.013549" + }, + "Hackney Well Street": { + "Contributor": "ImBenji", + "Location": "51.5424028, -0.0488388" + }, + "Monument": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Croydon Town Centre": { + "Contributor": "ImBenji", + "Location": "51.3769529, -0.0956895" + }, + "West Croydon": { + "Contributor": "ImBenji", + "Location": "51.3769529, -0.0956895" + }, + "Thornton Heath, High Street": { + "Contributor": "ImBenji", + "Location": "51.3976238, -0.0930168" + }, + "Norbury": { + "Contributor": "ImBenji", + "Location": "51.4085878, -0.1213899" + }, + "Streatham, Green Lane": { + "Contributor": "ImBenji", + "Location": "51.4147104, -0.1158693" + }, + "Streatham Station": { + "Contributor": "ImBenji", + "Location": "51.4259857, -0.131308" + }, + "Streatham Hill Station": { + "Contributor": "ImBenji", + "Location": "51.4382009, -0.1270706" + }, + "Woolwich": { + "Contributor": "ImBenji", + "Location": "51.4894752, 0.06758829999999999" + }, + "Plumstead Common": { + "Contributor": "ImBenji", + "Location": "51.4829577, 0.07860199999999999" + }, + "Welling Station": { + "Contributor": "ImBenji", + "Location": "51.4648, 0.10172" + }, + "Welling Corner": { + "Contributor": "ImBenji", + "Location": "51.4626258, 0.1081541" + }, + "Sidcup Station": { + "Contributor": "ImBenji", + "Location": "51.4339345, 0.1038351" + }, + "Foots Cray": { + "Contributor": "ImBenji", + "Location": "51.4174447, 0.1210622" + }, + "St Mary Cray Station": { + "Contributor": "ImBenji", + "Location": "51.3957762, 0.1071945" + }, + "Orpington, Perry Hall Road": { + "Contributor": "ImBenji", + "Location": "51.3823992, 0.0998353" + }, + "Orpington War Memorial": { + "Contributor": "ImBenji", + "Location": "51.373203, 0.09753479999999999" + }, + "Orpington Station": { + "Contributor": "ImBenji", + "Location": "51.37329, 0.08911999999999999" + }, + "Plumstead Station": { + "Contributor": "ImBenji", + "Location": "51.4896774, 0.0847463" + }, + "Charlton Village": { + "Contributor": "ImBenji", + "Location": "51.4900403, 0.0307737" + }, + "Blackheath, Royal Standard": { + "Contributor": "ImBenji", + "Location": "51.4658393, 0.0090338" + }, + "New Cross": { + "Contributor": "ImBenji", + "Location": "51.4769047, -0.0336897" + }, + "Elmers End": { + "Contributor": "ImBenji", + "Location": "51.39749, -0.0474767" + }, + "Beckenham, War Memorial": { + "Contributor": "ImBenji", + "Location": "51.406914, -0.0320175" + }, + "Catford, Town Centre": { + "Contributor": "ImBenji", + "Location": "51.4453954, -0.0160913" + }, + "Lewisham Shopping Centre": { + "Contributor": "ImBenji", + "Location": "51.46175909999999, -0.0119106" + }, + "Blackheath Village": { + "Contributor": "ImBenji", + "Location": "51.4657729, 0.0091238" + }, + "Clerkenwell Green": { + "Contributor": "ImBenji", + "Location": "51.522739, -0.1060289" + }, + "Dalston Junction": { + "Contributor": "ImBenji", + "Location": "51.5459999, -0.0751485" + }, + "Kingston": { + "Contributor": "ImBenji", + "Location": "51.41233, -0.300689" + }, + "Kingston Hospital": { + "Contributor": "ImBenji", + "Location": "51.4148229, -0.2824061" + }, + "Coombe Lane": { + "Contributor": "ImBenji", + "Location": "51.4098586, -0.2361138" + }, + "Raynes Park": { + "Contributor": "ImBenji", + "Location": "51.4084257, -0.2298751" + }, + "Wimbledon": { + "Contributor": "ImBenji", + "Location": "51.42103488003488, -0.20687213124646678" + }, + "Colliers Wood": { + "Contributor": "ImBenji", + "Location": "51.41704439999999, -0.1778555" + }, + "Merton, Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.4165431, -0.1813083" + }, + "Streatham, St Leonard's Church": { + "Contributor": "ImBenji", + "Location": "51.4307467, -0.1294977" + }, + "East Ham, Central Park": { + "Contributor": "ImBenji", + "Location": "51.5293175, 0.0527634" + }, + "Wanstead Park": { + "Contributor": "ImBenji", + "Location": "51.568725, 0.0433573" + }, + "Leyton, Downsell Road": { + "Contributor": "ImBenji", + "Location": "51.55411369999999, 0.0003557" + }, + "Leyton, Grange Park Road": { + "Contributor": "ImBenji", + "Location": "51.5672498, -0.0167708" + }, + "Markhouse Corner": { + "Contributor": "ImBenji", + "Location": "51.57048119055958, -0.023738066398279176" + }, + "Streatham Hill, Telford Avenue": { + "Contributor": "ImBenji", + "Location": "51.4421746, -0.1300019" + }, + "Russell Square": { + "Contributor": "ImBenji", + "Location": "51.5221667, -0.1249807" + }, + "Old Coulsdon": { + "Contributor": "ImBenji", + "Location": "51.298482, -0.114175" + }, + "Coulsdon, Chaldon Way": { + "Contributor": "ImBenji", + "Location": "51.3107704, -0.1340667" + }, + "Coulsdon": { + "Contributor": "ImBenji", + "Location": "51.319941, -0.141267" + }, + "Purley": { + "Contributor": "ImBenji", + "Location": "51.339228, -0.119711" + }, + "South Croydon, Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.3544903, -0.0968822" + }, + "South Croydon, South End": { + "Contributor": "ImBenji", + "Location": "51.3650199, -0.099012" + }, + "Thornton Heath Pond": { + "Contributor": "ImBenji", + "Location": "51.3941232, -0.1146955" + }, + "Pollards Hill": { + "Contributor": "ImBenji", + "Location": "51.4000406, -0.1332582" + }, + "Streatham Vale": { + "Contributor": "ImBenji", + "Location": "51.4165952, -0.1384217" + }, + "Chislehurst": { + "Contributor": "ImBenji", + "Location": "51.412626, 0.077487" + }, + "Orpington Walnuts Centre": { + "Contributor": "ImBenji", + "Location": "51.3773656, 0.1007092" + }, + "Locksbottom": { + "Contributor": "ImBenji", + "Location": "51.3673231, 0.0547259" + }, + "Bromley Common, Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.38774, 0.0363217" + }, + "Bromley Common, Crown Lane": { + "Contributor": "ImBenji", + "Location": "51.3895022, 0.0355797" + }, + "Bromley South": { + "Contributor": "ImBenji", + "Location": "51.406025, 0.013156" + }, + "Bromley North": { + "Contributor": "ImBenji", + "Location": "51.406025, 0.013156" + }, + "Marks Gate": { + "Contributor": "ImBenji", + "Location": "51.5901971, 0.1424532" + }, + "Chadwell Heath": { + "Contributor": "ImBenji", + "Location": "51.5722283, 0.141995" + }, + "Becontree, Green Lane": { + "Contributor": "ImBenji", + "Location": "51.5589129, 0.08329829999999999" + }, + "Ripple Road, Lodge Avenue": { + "Contributor": "ImBenji", + "Location": "51.5416682, 0.1129179" + }, + "Barking, Gascoigne Estate": { + "Contributor": "ImBenji", + "Location": "51.529678, 0.08277400000000001" + }, + "Honor Oak": { + "Contributor": "ImBenji", + "Location": "51.4489977, -0.0457341" + }, + "NO BLIND DESCRIPTION (Departs only)": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "East Croydon": { + "Contributor": "ImBenji", + "Location": "51.3769529, -0.0956895" + }, + "Selsdon": { + "Contributor": "ImBenji", + "Location": "51.34372279999999, -0.061975" + }, + "Addington Village": { + "Contributor": "ImBenji", + "Location": "51.358673, -0.0312539" + }, + "New Addington": { + "Contributor": "ImBenji", + "Location": "51.348184, -0.017094" + }, + "Chessington": { + "Contributor": "ImBenji", + "Location": "51.363583, -0.296254" + }, + "Kingston, Cromwell Road": { + "Contributor": "ImBenji", + "Location": "51.4123016, -0.2986358" + }, + "Ham": { + "Contributor": "ImBenji", + "Location": "51.4299232, -0.2984002" + }, + "Brentford, County Court": { + "Contributor": "ImBenji", + "Location": "51.4842409, -0.3043609" + }, + "Great West Road, Ealing Road": { + "Contributor": "ImBenji", + "Location": "51.4913803, -0.3039856" + }, + "Ealing Broadway": { + "Contributor": "ImBenji", + "Location": "51.5146192, -0.3022912" + }, + "Newbury Park": { + "Contributor": "ImBenji", + "Location": "51.5734779, 0.08897669999999999" + }, + "Gants Hill": { + "Contributor": "ImBenji", + "Location": "51.5767812, 0.0661732" + }, + "Redbridge Station": { + "Contributor": "ImBenji", + "Location": "51.5763264, 0.0453986" + }, + "Wanstead": { + "Contributor": "ImBenji", + "Location": "51.5767971, 0.0249881" + }, + "Leytonstone": { + "Contributor": "ImBenji", + "Location": "51.5833118, -0.1236257" + }, + "Stamford Hill": { + "Contributor": "ImBenji", + "Location": "51.5696514, -0.0750199" + }, + "Stoke Newington": { + "Contributor": "ImBenji", + "Location": "51.561175, -0.08349229999999999" + }, + "Dalston": { + "Contributor": "ImBenji", + "Location": "51.54704, -0.06940349999999999" + }, + "Plaistow": { + "Contributor": "ImBenji", + "Location": "51.5268317, 0.0308143" + }, + "Canning Town, Hermit Road": { + "Contributor": "ImBenji", + "Location": "51.5209368, 0.0125057" + }, + "Acton, High Street": { + "Contributor": "ImBenji", + "Location": "51.5071042, -0.270558" + }, + "East Acton Lane": { + "Contributor": "ImBenji", + "Location": "51.5123715, -0.2543317" + }, + "Queensway": { + "Contributor": "ImBenji", + "Location": "51.51257870000001, -0.1873839" + }, + "Copt Gilders": { + "Contributor": "ImBenji", + "Location": "51.35919000000001, -0.29498" + }, + "Hook, Bridge Road": { + "Contributor": "ImBenji", + "Location": "51.420021, -0.1940527" + }, + "Hook Junction": { + "Contributor": "ImBenji", + "Location": "51.3751056, -0.3042808" + }, + "Surbiton": { + "Contributor": "ImBenji", + "Location": "51.39400999999999, -0.302662" + }, + "Wood Lane, Du Cane Road": { + "Contributor": "ImBenji", + "Location": "51.5151603, -0.2492864" + }, + "Shepherd's Bush": { + "Contributor": "ImBenji", + "Location": "51.5051913, -0.22469" + }, + "Brook Green": { + "Contributor": "ImBenji", + "Location": "51.4963863, -0.2217637" + }, + "Hammersmith Bridge, North Side": { + "Contributor": "ImBenji", + "Location": "51.48972029999999, -0.2289675" + }, + "Castelnau": { + "Contributor": "ImBenji", + "Location": "51.4803332, -0.2367515" + }, + "Roehampton": { + "Contributor": "ImBenji", + "Location": "51.4484339, -0.2397592" + }, + "Roehampton, Bessborough Road": { + "Contributor": "ImBenji", + "Location": "51.445746, -0.2391544" + }, + "Albion Road": { + "Contributor": "ImBenji", + "Location": "51.5609591, -0.0832395" + }, + "Putney, High Street": { + "Contributor": "ImBenji", + "Location": "51.4642989, -0.2153882" + }, + "West Brompton": { + "Contributor": "ImBenji", + "Location": "51.483494, -0.196802" + }, + "Earl's Court": { + "Contributor": "ImBenji", + "Location": "51.490331, -0.1958417" + }, + "Lewisham Station": { + "Contributor": "ImBenji", + "Location": "51.4652098, -0.0131213" + }, + "Catford, St. Dunstan's": { + "Contributor": "ImBenji", + "Location": "51.4430327, -0.0237655" + }, + "Penge": { + "Contributor": "ImBenji", + "Location": "51.41388490000001, -0.0570112" + }, + "Norwood Junction": { + "Contributor": "ImBenji", + "Location": "51.39731, -0.07501000000000001" + }, + "Tottenham Hale Bus Station": { + "Contributor": "ImBenji", + "Location": "51.58841109999999, -0.061242" + }, + "Tottenham Town Hall": { + "Contributor": "ImBenji", + "Location": "51.5872187, -0.0725467" + }, + "St Thomas' Hospital": { + "Contributor": "ImBenji", + "Location": "51.4991539, -0.1188859" + }, + "Lambeth College": { + "Contributor": "ImBenji", + "Location": "51.4587037, -0.1410873" + }, + "Old Kent Road, Tesco": { + "Contributor": "ImBenji", + "Location": "51.4854662, -0.0700918" + }, + "Nunhead": { + "Contributor": "ImBenji", + "Location": "51.4657341, -0.054919" + }, + "Alperton, Sainsbury's": { + "Contributor": "ImBenji", + "Location": "51.5383862, -0.3028583" + }, + "Alperton": { + "Contributor": "ImBenji", + "Location": "51.539601, -0.2988365" + }, + "Wembley Central": { + "Contributor": "ImBenji", + "Location": "51.550501, -0.3048409" + }, + "Wembley High Road": { + "Contributor": "ImBenji", + "Location": "51.5534192, -0.2873889" + }, + "Preston Road, East Lane": { + "Contributor": "ImBenji", + "Location": "51.5632313, -0.3134248000000001" + }, + "Preston Road Station": { + "Contributor": "ImBenji", + "Location": "51.57197, -0.29508" + }, + "Kingsbury Circle": { + "Contributor": "ImBenji", + "Location": "51.5853429, -0.2812115" + }, + "Queensbury": { + "Contributor": "ImBenji", + "Location": "51.5942132, -0.2853683" + }, + "Canons Park": { + "Contributor": "ImBenji", + "Location": "51.6076736, -0.2962361" + }, + "Edgware Station": { + "Contributor": "ImBenji", + "Location": "51.6134923, -0.2753661" + }, + "Belmont, High Down & Downview": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Sutton Station": { + "Contributor": "ImBenji", + "Location": "51.3614279, -0.193961" + }, + "Sutton, Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.369469, -0.1985923" + }, + "Morden": { + "Contributor": "ImBenji", + "Location": "51.394943, -0.19446" + }, + "St Helier": { + "Contributor": "ImBenji", + "Location": "51.395985, -0.1875555" + }, + "Hackbridge, Reynold's Close": { + "Contributor": "ImBenji", + "Location": "51.3751002, -0.1556286" + }, + "Slough": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Langley Fire Station": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Colnbrook": { + "Contributor": "ImBenji", + "Location": "51.4973363, -0.1045651" + }, + "Poyle": { + "Contributor": "ImBenji", + "Location": "51.4754669, -0.5118773000000001" + }, + "Bath Road, Hatch Lane": { + "Contributor": "ImBenji", + "Location": "51.4816932, -0.475493" + }, + "Bath Road, Sipson Road": { + "Contributor": "ImBenji", + "Location": "51.4876827, -0.4558443" + }, + "Bath Road, Nobel Drive": { + "Contributor": "ImBenji", + "Location": "51.4806378, -0.4287598" + }, + "Cranford": { + "Contributor": "ImBenji", + "Location": "51.4720623, -0.4055896" + }, + "Hounslow West": { + "Contributor": "ImBenji", + "Location": "51.469435, -0.3837709" + }, + "Hounslow, Bell Corner": { + "Contributor": "ImBenji", + "Location": "51.468569, -0.3666325" + }, + "Hounslow, Bus Station": { + "Contributor": "ImBenji", + "Location": "51.4708688, -0.3546457" + }, + "Hendon, Queens Road": { + "Contributor": "ImBenji", + "Location": "51.5833703, -0.222686" + }, + "Kingsbury Green": { + "Contributor": "ImBenji", + "Location": "51.5814409, -0.2619577" + }, + "Wembley Arena": { + "Contributor": "ImBenji", + "Location": "51.550501, -0.3048409" + }, + "Kingston Hill, Queens Road": { + "Contributor": "ImBenji", + "Location": "51.4386928, -0.2909764" + }, + "Roehampton Vale": { + "Contributor": "ImBenji", + "Location": "51.4388194, -0.2491381" + }, + "Woodgrange Park, Katherine Road": { + "Contributor": "ImBenji", + "Location": "51.5391367, 0.0407963" + }, + "Ilford Hill": { + "Contributor": "ImBenji", + "Location": "51.5586041, 0.07009270000000001" + }, + "Romford, North Street": { + "Contributor": "ImBenji", + "Location": "51.5805763, 0.1780317" + }, + "Shooters Hill Road, Sun-in-the-Sands": { + "Contributor": "ImBenji", + "Location": "51.4751637, 0.025465" + }, + "Shooters Hill, Eaglesfield Road": { + "Contributor": "ImBenji", + "Location": "51.4686795, 0.06966449999999999" + }, + "Bexleyheath, Shopping Centre": { + "Contributor": "ImBenji", + "Location": "51.45334099999999, 0.13822" + }, + "Bexleyheath, Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.46006930000001, 0.1534245" + }, + "Northend Road, Thames Road": { + "Contributor": "ImBenji", + "Location": "51.4686147, 0.1810608" + }, + "Slade Green": { + "Contributor": "ImBenji", + "Location": "51.4695282, 0.1928854" + }, + "Northolt": { + "Contributor": "ImBenji", + "Location": "51.546615, -0.373103" + }, + "Yeading, White Hart": { + "Contributor": "ImBenji", + "Location": "51.536823, -0.389446" + }, + "Hayes End, Lansbury Drive": { + "Contributor": "ImBenji", + "Location": "51.537245, -0.423534" + }, + "Hayes End": { + "Contributor": "ImBenji", + "Location": "51.5257, -0.4357732" + }, + "Hayes & Harlington Station": { + "Contributor": "ImBenji", + "Location": "51.5029848, -0.4203779" + }, + "Harlington Corner": { + "Contributor": "ImBenji", + "Location": "51.4809415, -0.434335" + }, + "Hatton Cross": { + "Contributor": "ImBenji", + "Location": "51.4651031, -0.4157165" + }, + "Feltham": { + "Contributor": "ImBenji", + "Location": "51.44414800000001, -0.410772" + }, + "Ealing Hospital": { + "Contributor": "ImBenji", + "Location": "51.5075205, -0.3465216" + }, + "Greenford, Iron Bridge": { + "Contributor": "ImBenji", + "Location": "51.50977899999999, -0.357687" + }, + "Greenford Broadway": { + "Contributor": "ImBenji", + "Location": "51.5279556, -0.3540139" + }, + "Greenford Station": { + "Contributor": "ImBenji", + "Location": "51.5255068, 0.05870810000000001" + }, + "Sudbury Town": { + "Contributor": "ImBenji", + "Location": "51.5503085, -0.316207" + }, + "Wembley Trading Estate": { + "Contributor": "ImBenji", + "Location": "51.550501, -0.3048409" + }, + "Brent Park": { + "Contributor": "ImBenji", + "Location": "51.5742449, -0.2287648" + }, + "St Raphael's North": { + "Contributor": "ImBenji", + "Location": "51.55207859999999, -0.2622574" + }, + "North Cheam": { + "Contributor": "ImBenji", + "Location": "51.3619271, -0.2189255" + }, + "Sutton Common Road, Woodstock": { + "Contributor": "ImBenji", + "Location": "51.3795675, -0.2014588" + }, + "Wimbledon Village": { + "Contributor": "ImBenji", + "Location": "51.41833889999999, -0.2206288" + }, + "Acton Green": { + "Contributor": "ImBenji", + "Location": "51.5030641, -0.2663253" + }, + "Goldhawk Road Station": { + "Contributor": "ImBenji", + "Location": "51.5018056, -0.2264944" + }, + "Lancaster Gate": { + "Contributor": "ImBenji", + "Location": "51.5115786, -0.1802482" + }, + "Southall, Town Hall": { + "Contributor": "ImBenji", + "Location": "51.5113272, -0.3751471" + }, + "Perivale, Central Parade": { + "Contributor": "ImBenji", + "Location": "51.5847721, -0.3324285" + }, + "Hanger Lane Station": { + "Contributor": "ImBenji", + "Location": "51.530061, -0.2929893000000001" + }, + "North Acton, Gipsy Corner": { + "Contributor": "ImBenji", + "Location": "51.5219526, -0.2580821" + }, + "East Acton, Savoy Circus": { + "Contributor": "ImBenji", + "Location": "51.5140035, -0.247772" + }, + "Bluewater": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Dartford": { + "Contributor": "ImBenji", + "Location": "51.44621, 0.216872" + }, + "Crayford": { + "Contributor": "ImBenji", + "Location": "51.4501131, 0.1822046" + }, + "Plumstead, Lakedale Road": { + "Contributor": "ImBenji", + "Location": "51.4827083, 0.0910057" + }, + "Woolwich Market": { + "Contributor": "ImBenji", + "Location": "51.4894752, 0.06758829999999999" + }, + "Chingford Station": { + "Contributor": "ImBenji", + "Location": "51.6320667, 0.007362700000000001" + }, + "Chingford Mount": { + "Contributor": "ImBenji", + "Location": "51.6185735, -0.0180318" + }, + "Leyton Green": { + "Contributor": "ImBenji", + "Location": "51.5754944, -0.0083377" + }, + "Stratford City": { + "Contributor": "ImBenji", + "Location": "51.5440354, -0.0053088" + }, + "Willesden Lane, Coverdale Road": { + "Contributor": "ImBenji", + "Location": "51.5441689, -0.2143084" + }, + "Plumstead Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.4913502, 0.084419" + }, + "Upper Belvedere": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Erith": { + "Contributor": "ImBenji", + "Location": "51.480818, 0.174675" + }, + "Northend Road": { + "Contributor": "ImBenji", + "Location": "51.4694963, 0.1812364" + }, + "London Wall, Museum of London": { + "Contributor": "ImBenji", + "Location": "51.5176183, -0.0967782" + }, + "Wapping": { + "Contributor": "ImBenji", + "Location": "51.5041774, -0.0563736" + }, + "Shadwell": { + "Contributor": "ImBenji", + "Location": "51.51450620000001, -0.05711619999999999" + }, + "Aldersbrook": { + "Contributor": "ImBenji", + "Location": "51.5582903, 0.0432123" + }, + "East Ham Station": { + "Contributor": "ImBenji", + "Location": "51.5393698, 0.0510659" + }, + "East Ham, Ron Leighton Way": { + "Contributor": "ImBenji", + "Location": "51.5370071, 0.05151679999999999" + }, + "Beckton Alps": { + "Contributor": "ImBenji", + "Location": "51.5192628, 0.0612645" + }, + "Beckton Station": { + "Contributor": "ImBenji", + "Location": "51.5144016, 0.06153319999999999" + }, + "Cyprus": { + "Contributor": "ImBenji", + "Location": "51.5091192, 0.0633823" + }, + "Gallions Reach Station": { + "Contributor": "ImBenji", + "Location": "51.5090228, 0.07172769999999999" + }, + "Gallions Reach, Shopping Park": { + "Contributor": "ImBenji", + "Location": "51.5166002, 0.0783827" + }, + "Edmonton Green": { + "Contributor": "ImBenji", + "Location": "51.6248126, -0.0581806" + }, + "East Finchley": { + "Contributor": "ImBenji", + "Location": "51.592468, -0.1664342" + }, + "Henley's Corner": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Cricklewood, Pennine Drive": { + "Contributor": "ImBenji", + "Location": "51.5645787, -0.2144717" + }, + "Brent Cross": { + "Contributor": "ImBenji", + "Location": "51.5763589, -0.2236956" + }, + "Chase Cross": { + "Contributor": "ImBenji", + "Location": "51.60164, 0.17854" + }, + "Romford, Parkside Avenue": { + "Contributor": "ImBenji", + "Location": "51.5885038, 0.1772523" + }, + "Romford North Street Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.5823836, 0.1761951" + }, + "Dagenham East": { + "Contributor": "ImBenji", + "Location": "51.5402631, 0.1482103" + }, + "South Hornchurch, Newtons Corner": { + "Contributor": "ImBenji", + "Location": "51.53084699999999, 0.1871649" + }, + "Rainham Interchange": { + "Contributor": "ImBenji", + "Location": "51.5168805, 0.1911589" + }, + "Upton Park Station": { + "Contributor": "ImBenji", + "Location": "51.5353424, 0.0352766" + }, + "Southall, Brent Road": { + "Contributor": "ImBenji", + "Location": "51.5007727, -0.3997526" + }, + "Heathrow Central": { + "Contributor": "ImBenji", + "Location": "51.62810440000001, -0.0559765" + }, + "Whitechapel": { + "Contributor": "ImBenji", + "Location": "51.5148198, -0.0650534" + }, + "Borehamwood Station": { + "Contributor": "ImBenji", + "Location": "51.657728, -0.272308" + }, + "Borehamwood, Tesco": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Borehamwood, Warwick Road": { + "Contributor": "ImBenji", + "Location": "51.49182570000001, -0.1990845" + }, + "Stirling Corner": { + "Contributor": "ImBenji", + "Location": "51.643381, -0.2551272" + }, + "Barnet, Arkley Hotel": { + "Contributor": "ImBenji", + "Location": "51.6522231, -0.2204527" + }, + "New Barnet": { + "Contributor": "ImBenji", + "Location": "51.649276, -0.176187" + }, + "Stratford International Bus Station": { + "Contributor": "ImBenji", + "Location": "51.5453665, -0.0099022" + }, + "North Greenwich": { + "Contributor": "ImBenji", + "Location": "51.4859576, 0.007494900000000001" + }, + "East Greenwich": { + "Contributor": "ImBenji", + "Location": "51.4859576, 0.007494900000000001" + }, + "Hounslow Bus Station": { + "Contributor": "ImBenji", + "Location": "51.4708688, -0.3546457" + }, + "Hospital Bridge Roundabout": { + "Contributor": "ImBenji", + "Location": "51.44267, -0.3652385" + }, + "West Middlesex Hospital": { + "Contributor": "ImBenji", + "Location": "51.4734184, -0.3244425" + }, + "Hampton Wick": { + "Contributor": "ImBenji", + "Location": "51.413541, -0.321331" + }, + "Hampton Court Roundabout": { + "Contributor": "ImBenji", + "Location": "51.4051753, -0.3417169" + }, + "Hampton Station": { + "Contributor": "ImBenji", + "Location": "51.4158208, -0.3719119" + }, + "Hanworth, Main Street": { + "Contributor": "ImBenji", + "Location": "51.4489479, -0.3829269" + }, + "Heston": { + "Contributor": "ImBenji", + "Location": "51.48420170000001, -0.3719867" + }, + "Neasden Junction": { + "Contributor": "ImBenji", + "Location": "51.5626819, -0.2536987" + }, + "Apex Corner": { + "Contributor": "ImBenji", + "Location": "51.4369075, -0.3784005" + }, + "Hendon Central": { + "Contributor": "ImBenji", + "Location": "51.583202, -0.226399" + }, + "Mill Hill Broadway": { + "Contributor": "ImBenji", + "Location": "51.6129292, -0.2487871" + }, + "Burnt Oak": { + "Contributor": "ImBenji", + "Location": "51.4484998, 0.0997395" + }, + "Kenton, Library": { + "Contributor": "ImBenji", + "Location": "51.59262649999999, -0.3111454" + }, + "Harrow": { + "Contributor": "ImBenji", + "Location": "51.61493060000001, -0.0765796" + }, + "South Harrow": { + "Contributor": "ImBenji", + "Location": "51.5683717, -0.3553483" + }, + "Field End Road, Victoria Road": { + "Contributor": "ImBenji", + "Location": "51.5696578, -0.3900522" + }, + "South Ruislip, Ruislip Manor": { + "Contributor": "ImBenji", + "Location": "51.55507919999999, -0.399575" + }, + "Ruislip": { + "Contributor": "ImBenji", + "Location": "51.5758719, -0.421236" + }, + "Plaistow, Balaam street": { + "Contributor": "ImBenji", + "Location": "51.5260131, 0.0238468" + }, + "Ashford Hospital": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Bedfont Green": { + "Contributor": "ImBenji", + "Location": "51.45109910000001, -0.4402292" + }, + "Hounslow Heath": { + "Contributor": "ImBenji", + "Location": "51.4563954, -0.3849625" + }, + "Isleworth": { + "Contributor": "ImBenji", + "Location": "51.467121, -0.329003" + }, + "Hounslow": { + "Contributor": "ImBenji", + "Location": "51.46092179999999, -0.373149" + }, + "Lower Feltham": { + "Contributor": "ImBenji", + "Location": "51.436601, -0.426105" + }, + "Ashford": { + "Contributor": "ImBenji", + "Location": "51.5288186, -0.0827738" + }, + "Fordbridge Park": { + "Contributor": "ImBenji", + "Location": "51.4269571, -0.4764696" + }, + "Staines": { + "Contributor": "ImBenji", + "Location": "51.4555302, -0.4223853" + }, + "Streatham Hill, Christchurch Road": { + "Contributor": "ImBenji", + "Location": "51.4402956, -0.1089125" + }, + "Streatham": { + "Contributor": "ImBenji", + "Location": "51.4307467, -0.1294977" + }, + "Rowan Road, Manor Road": { + "Contributor": "ImBenji", + "Location": "51.4039785, -0.136848" + }, + "Mitcham": { + "Contributor": "ImBenji", + "Location": "51.402869, -0.166709" + }, + "Hayes Station": { + "Contributor": "ImBenji", + "Location": "51.37633599999999, 0.010589" + }, + "Shirley": { + "Contributor": "ImBenji", + "Location": "51.3751931, -0.0488993" + }, + "Shirley Inn": { + "Contributor": "ImBenji", + "Location": "51.3744006, -0.05023610000000001" + }, + "Addiscombe Road, Shirley Road": { + "Contributor": "ImBenji", + "Location": "51.3750364, -0.0761587" + }, + "Purley Way, Colonnades": { + "Contributor": "ImBenji", + "Location": "51.3563828, -0.1135816" + }, + "Lampton Corner": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Norwood Green": { + "Contributor": "ImBenji", + "Location": "51.4966737, -0.3743679" + }, + "Southall, The Green": { + "Contributor": "ImBenji", + "Location": "51.5035525, -0.3802476" + }, + "Lady Margaret Road, Ruislip Rd": { + "Contributor": "ImBenji", + "Location": "51.5220189, -0.3747392" + }, + "Northolt, Western Avenue": { + "Contributor": "ImBenji", + "Location": "51.5152423, -0.2565013" + }, + "Enfield Island Village": { + "Contributor": "ImBenji", + "Location": "51.66612199999999, -0.015382" + }, + "Enfield Lock Station": { + "Contributor": "ImBenji", + "Location": "51.6708436, -0.0284106" + }, + "Enfield Highway": { + "Contributor": "ImBenji", + "Location": "51.652918, -0.041145" + }, + "Ponders End Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.6452225, -0.04863729999999999" + }, + "Enfield": { + "Contributor": "ImBenji", + "Location": "51.6522994, -0.0807119" + }, + "Oakwood": { + "Contributor": "ImBenji", + "Location": "51.6481224, -0.1309298" + }, + "Southgate": { + "Contributor": "ImBenji", + "Location": "51.62476119999999, -0.1240456" + }, + "Palmers Green": { + "Contributor": "ImBenji", + "Location": "51.6214872, -0.1075657" + }, + "Well Hall Roundabout": { + "Contributor": "ImBenji", + "Location": "51.4549092, 0.0512893" + }, + "Eltham Green": { + "Contributor": "ImBenji", + "Location": "51.4533383, 0.0356381" + }, + "Brockley Rise": { + "Contributor": "ImBenji", + "Location": "51.4473951, -0.0416563" + }, + "Forest Hill": { + "Contributor": "ImBenji", + "Location": "51.4397781, -0.0546416" + }, + "Sydenham": { + "Contributor": "ImBenji", + "Location": "51.4267225, -0.0412072" + }, + "Lordship Lane": { + "Contributor": "ImBenji", + "Location": "51.44687709999999, -0.07245370000000001" + }, + "Tottenham, Town Hall": { + "Contributor": "ImBenji", + "Location": "51.5872187, -0.0725467" + }, + "Tottenham Hale Station": { + "Contributor": "ImBenji", + "Location": "51.5890318, -0.05979599999999999" + }, + "Walthamstow, Beacontree Avenue": { + "Contributor": "ImBenji", + "Location": "51.59333445282759, 0.004954695513338766" + }, + "Waterworks Corner": { + "Contributor": "ImBenji", + "Location": "51.5961326, 0.0104878" + }, + "Charlie Brown's Roundabout": { + "Contributor": "ImBenji", + "Location": "51.5934938, 0.0370989" + }, + "Catford, St Dunstan's College": { + "Contributor": "ImBenji", + "Location": "51.4434815, -0.0283657" + }, + "Downham, Shroffold Road": { + "Contributor": "ImBenji", + "Location": "51.425638, 0.0015921" + }, + "Grove Park": { + "Contributor": "ImBenji", + "Location": "51.4329249, 0.021203" + }, + "Dunkery Road, Mottingham Road": { + "Contributor": "ImBenji", + "Location": "51.4288147, 0.050542" + }, + "Mottingham": { + "Contributor": "ImBenji", + "Location": "51.4335607, 0.0484827" + }, + "Eltham Church": { + "Contributor": "ImBenji", + "Location": "51.4506338, 0.0570862" + }, + "Eltham, Southend Crescent": { + "Contributor": "ImBenji", + "Location": "51.44825729999999, 0.0632853" + }, + "Winchmore Hill": { + "Contributor": "ImBenji", + "Location": "51.6320279, -0.09580219999999999" + }, + "Eversley Park Road": { + "Contributor": "ImBenji", + "Location": "51.64383729999999, -0.109846" + }, + "Hampden Square": { + "Contributor": "ImBenji", + "Location": "51.6323276, -0.1417747" + }, + "Finchley Central": { + "Contributor": "ImBenji", + "Location": "51.5971434, -0.1979547" + }, + "Bromley Town Centre": { + "Contributor": "ImBenji", + "Location": "51.406025, 0.013156" + }, + "Plaistow Green": { + "Contributor": "ImBenji", + "Location": "51.4139535, 0.0168425" + }, + "Eltham, High Street": { + "Contributor": "ImBenji", + "Location": "51.4507726, 0.0561761" + }, + "Woodcote Green": { + "Contributor": "ImBenji", + "Location": "51.3479553, -0.1474798" + }, + "Wallington": { + "Contributor": "ImBenji", + "Location": "51.363978, -0.151845" + }, + "Wrythe Green": { + "Contributor": "ImBenji", + "Location": "51.3768184, -0.1780163" + }, + "Hackbridge Corner": { + "Contributor": "ImBenji", + "Location": "51.379288, -0.156685" + }, + "Romford, The Brewery": { + "Contributor": "ImBenji", + "Location": "51.5757212, 0.1798406" + }, + "Romford Queens Hospital": { + "Contributor": "ImBenji", + "Location": "51.5688117, 0.1807796" + }, + "Goodmayes, Mayfield Road": { + "Contributor": "ImBenji", + "Location": "51.564386, 0.1293136" + }, + "Barkingside, Tesco": { + "Contributor": "ImBenji", + "Location": "51.58605319999999, 0.08191999999999999" + }, + "Barkingside, Fullwell Cross": { + "Contributor": "ImBenji", + "Location": "51.59451199999999, 0.08571999999999999" + }, + "Claybury Broadway": { + "Contributor": "ImBenji", + "Location": "51.5886482, 0.0519222" + }, + "Greenwich, Cutty Sark": { + "Contributor": "ImBenji", + "Location": "51.4828646, -0.0095917" + }, + "Shirley Park": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Thornton Heath, Parchmore Road": { + "Contributor": "ImBenji", + "Location": "51.4044757, -0.1019415" + }, + "New Malden, Foundation Roundabout": { + "Contributor": "ImBenji", + "Location": "51.40066299999999, -0.259263" + }, + "New Malden, Fountain Roundabout": { + "Contributor": "ImBenji", + "Location": "51.40066299999999, -0.259263" + }, + "Shannon Corner": { + "Contributor": "ImBenji", + "Location": "51.3993558, -0.2429132" + }, + "Eltham Station": { + "Contributor": "ImBenji", + "Location": "51.45564, 0.0525" + }, + "Eltham": { + "Contributor": "ImBenji", + "Location": "51.4506338, 0.0570862" + }, + "Blendon": { + "Contributor": "ImBenji", + "Location": "51.6359737, -0.1002426" + }, + "Bexley": { + "Contributor": "ImBenji", + "Location": "51.439933, 0.154327" + }, + "Kentish Town": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Tottenham Court Road Station": { + "Contributor": "ImBenji", + "Location": "51.5162811, -0.1300406" + }, + "Crossharbour": { + "Contributor": "ImBenji", + "Location": "51.4958465, -0.0145118" + }, + "Canary Wharf": { + "Contributor": "ImBenji", + "Location": "51.5054306, -0.0235333" + }, + "Downham, Bromley Road": { + "Contributor": "ImBenji", + "Location": "51.4249009, -0.0042485" + }, + "Queenstown Road Station": { + "Contributor": "ImBenji", + "Location": "51.4749596, -0.1466578" + }, + "Coney Hall": { + "Contributor": "ImBenji", + "Location": "51.3711435, -0.0014082" + }, + "Finchley Road, Hendon Way": { + "Contributor": "ImBenji", + "Location": "51.5824058, -0.2269962" + }, + "Yeading, Willow Tree Lane": { + "Contributor": "ImBenji", + "Location": "51.52749319999999, -0.3991509" + }, + "Northolt, Target Roundabout": { + "Contributor": "ImBenji", + "Location": "51.5433066, -0.3777375" + }, + "Harrow & Wealdstone Station": { + "Contributor": "ImBenji", + "Location": "51.59172359999999, -0.3343587" + }, + "Harrow Weald": { + "Contributor": "ImBenji", + "Location": "51.6052581, -0.3380395" + }, + "Harringay, Salisbury Road": { + "Contributor": "ImBenji", + "Location": "51.5814632, -0.0989471" + }, + "Green Lanes, Gloucester Drive": { + "Contributor": "ImBenji", + "Location": "51.5670684, -0.0945309" + }, + "Moorgate, Finsbury Circus": { + "Contributor": "ImBenji", + "Location": "51.5185065, -0.0883728" + }, + "Watford Junction": { + "Contributor": "ImBenji", + "Location": "51.66371280000001, -0.3964488" + }, + "Bushey Station": { + "Contributor": "ImBenji", + "Location": "51.64583529999999, -0.3853817" + }, + "Bushey Heath": { + "Contributor": "ImBenji", + "Location": "51.640213, -0.344442" + }, + "Stanmore Station": { + "Contributor": "ImBenji", + "Location": "51.617676, -0.311451" + }, + "East Finchley Schools": { + "Contributor": "ImBenji", + "Location": "51.592468, -0.1664342" + }, + "Highgate Village": { + "Contributor": "ImBenji", + "Location": "51.5717035, -0.1501241" + }, + "Alexandra Park, Park Road": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Lordship Lane, Downhills Way": { + "Contributor": "ImBenji", + "Location": "51.5975545, -0.0922026" + }, + "Edmonton": { + "Contributor": "ImBenji", + "Location": "51.6241533, -0.0603899" + }, + "Dagenham, Asda": { + "Contributor": "ImBenji", + "Location": "51.5299749, 0.1425747" + }, + "Dagenham, New Road": { + "Contributor": "ImBenji", + "Location": "51.5275921, 0.1595252" + }, + "Dagenham Village": { + "Contributor": "ImBenji", + "Location": "51.5362298, 0.1408327" + }, + "Becontree, Martins Corner": { + "Contributor": "ImBenji", + "Location": "51.5625977, 0.1224296" + }, + "Wanstead Station": { + "Contributor": "ImBenji", + "Location": "51.5756323, 0.0287819" + }, + "Downe": { + "Contributor": "ImBenji", + "Location": "51.3286548, 0.0553793" + }, + "Little Ilford Lane, Romford Road": { + "Contributor": "ImBenji", + "Location": "51.55046249999999, 0.059298" + }, + "Prince Regent": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Snells Park, Sainsburys": { + "Contributor": "ImBenji", + "Location": "51.609054, -0.0691713" + }, + "Dalston, Downham Road": { + "Contributor": "ImBenji", + "Location": "51.5394454, -0.0887965" + }, + "Ilford, High Road": { + "Contributor": "ImBenji", + "Location": "51.55918, 0.0747613" + }, + "Hainault, The Lowe": { + "Contributor": "ImBenji", + "Location": "51.6099517, 0.1092883" + }, + "Chigwell Row": { + "Contributor": "ImBenji", + "Location": "51.50930289999999, -0.0601111" + }, + "Hackbridge": { + "Contributor": "ImBenji", + "Location": "51.3751002, -0.1556286" + }, + "St Helier, Rose Hill": { + "Contributor": "ImBenji", + "Location": "51.3881851, -0.1893768" + }, + "Sutton, Bushey Road": { + "Contributor": "ImBenji", + "Location": "51.3697877, -0.1980526" + }, + "Sutton Town Centre": { + "Contributor": "ImBenji", + "Location": "51.3614279, -0.193961" + }, + "Cheam": { + "Contributor": "ImBenji", + "Location": "51.3619271, -0.2189255" + }, + "Worcester Park": { + "Contributor": "ImBenji", + "Location": "51.38029, -0.24468" + }, + "Eastfields": { + "Contributor": "ImBenji", + "Location": "51.4076056, -0.1545941" + }, + "Raynes Park High School": { + "Contributor": "ImBenji", + "Location": "51.4032764, -0.2394806" + }, + "Holloway, Nags Head": { + "Contributor": "ImBenji", + "Location": "51.55724250000001, -0.1204364" + }, + "Barnsbury, Offord Road": { + "Contributor": "ImBenji", + "Location": "51.5441596, -0.1096795" + }, + "Stafford Road, The Chase": { + "Contributor": "ImBenji", + "Location": "51.3637156, -0.1194076" + }, + "St Helier Station": { + "Contributor": "ImBenji", + "Location": "51.3899, -0.19875" + }, + "Tooting, St George's Hospital": { + "Contributor": "ImBenji", + "Location": "51.42656299999999, -0.1752284" + }, + "Balham": { + "Contributor": "ImBenji", + "Location": "51.4439889, -0.1494105" + }, + "Haydons Road, Plough Lane": { + "Contributor": "ImBenji", + "Location": "51.42148840000001, -0.18782" + }, + "Nine Elms": { + "Contributor": "ImBenji", + "Location": "51.4801974, -0.1396819" + }, + "Anerley Station": { + "Contributor": "ImBenji", + "Location": "51.4121559, -0.06571779999999999" + }, + "St James's Street": { + "Contributor": "ImBenji", + "Location": "51.5051953, -0.138084" + }, + "Catford Bridge": { + "Contributor": "ImBenji", + "Location": "51.4448458, -0.0247399" + }, + "Hither Green": { + "Contributor": "ImBenji", + "Location": "51.45059, -0.005551899999999999" + }, + "Eltham, Yorkshire Grey": { + "Contributor": "ImBenji", + "Location": "51.4530696, 0.0357541" + }, + "New Eltham Station": { + "Contributor": "ImBenji", + "Location": "51.43806, 0.07056" + }, + "Chislehurst, War Memorial": { + "Contributor": "ImBenji", + "Location": "51.4124839, 0.07390759999999999" + }, + "Queen Mary's Hospital": { + "Contributor": "ImBenji", + "Location": "51.4556562, -0.2426609" + }, + "Queen Elizabeth Hospital": { + "Contributor": "ImBenji", + "Location": "51.4778139, 0.0505587" + }, + "Charlton Station": { + "Contributor": "ImBenji", + "Location": "51.4867404, 0.0310491" + }, + "Beckenham Junction": { + "Contributor": "ImBenji", + "Location": "51.40817, -0.025813" + }, + "Park Langley": { + "Contributor": "ImBenji", + "Location": "51.385466, -0.0087119" + }, + "New Eltham, Fiveways": { + "Contributor": "ImBenji", + "Location": "51.4350775, 0.0646125" + }, + "Avery Hill Road,Halfway Street": { + "Contributor": "ImBenji", + "Location": "51.4449166, 0.0820603" + }, + "Lower Morden": { + "Contributor": "ImBenji", + "Location": "51.3893002, -0.2219715" + }, + "Sutton Green": { + "Contributor": "ImBenji", + "Location": "51.5480724, 0.2172356" + }, + "Bushey Road, Botsford Road": { + "Contributor": "ImBenji", + "Location": "51.40868529999999, -0.2155818" + }, + "Hornchurch Town Centre": { + "Contributor": "ImBenji", + "Location": "51.562254, 0.218605" + }, + "Elm Park": { + "Contributor": "ImBenji", + "Location": "51.548497, 0.1999531" + }, + "Rainham Tesco": { + "Contributor": "ImBenji", + "Location": "51.5200061, 0.1907802" + }, + "Rainham War Memorial": { + "Contributor": "ImBenji", + "Location": "51.5185366, 0.1902033" + }, + "Rainham, Abbey Wood Lane": { + "Contributor": "ImBenji", + "Location": "51.5292975, 0.2137483" + }, + "Epsom Hospital": { + "Contributor": "ImBenji", + "Location": "51.3251497, -0.2732057" + }, + "Banstead": { + "Contributor": "ImBenji", + "Location": "51.3221909, -0.205046" + }, + "Chipstead Valley": { + "Contributor": "ImBenji", + "Location": "51.3194573, -0.145129" + }, + "Buckhurst Hill": { + "Contributor": "ImBenji", + "Location": "51.627572, 0.034513" + }, + "Clayhall": { + "Contributor": "ImBenji", + "Location": "51.5918921, 0.05992909999999999" + }, + "Barkingside": { + "Contributor": "ImBenji", + "Location": "51.5833118, -0.1236257" + }, + "Roehampton, Danebury Avenue": { + "Contributor": "ImBenji", + "Location": "51.451943, -0.247966" + }, + "Wandsworth, East Hill": { + "Contributor": "ImBenji", + "Location": "51.4573489, -0.1880728" + }, + "Battersea Bridge, North Side": { + "Contributor": "ImBenji", + "Location": "51.4811674, -0.1725411" + }, + "Catford Town Centre": { + "Contributor": "ImBenji", + "Location": "51.4453954, -0.0160913" + }, + "Brockley Cross": { + "Contributor": "ImBenji", + "Location": "51.465303, -0.0363334" + }, + "New Kent Road": { + "Contributor": "ImBenji", + "Location": "51.4938526, -0.0906279" + }, + "Ripple Road": { + "Contributor": "ImBenji", + "Location": "51.53527949999999, 0.0898127" + }, + "Dagenham, Kent Avenue": { + "Contributor": "ImBenji", + "Location": "51.5235188, 0.1516733" + }, + "Little Heath": { + "Contributor": "ImBenji", + "Location": "51.583227, 0.120603" + }, + "King George Hospital": { + "Contributor": "ImBenji", + "Location": "51.5802748, 0.1115243" + }, + "Harold Hill, Dagnam Park Square": { + "Contributor": "ImBenji", + "Location": "51.6049149, 0.2445527" + }, + "Harold Hill, Gooshays Drive": { + "Contributor": "ImBenji", + "Location": "51.6081419, 0.2227947" + }, + "Gallows Corner": { + "Contributor": "ImBenji", + "Location": "51.59188200000001, 0.214546" + }, + "Gallows Corner, Main Road": { + "Contributor": "ImBenji", + "Location": "51.5922565, 0.2142701" + }, + "Dagenham Road, Eastbrook School": { + "Contributor": "ImBenji", + "Location": "51.55144010000001, 0.1635667" + }, + "Dagenham Hthway": { + "Contributor": "ImBenji", + "Location": "51.53813710000001, 0.1485571" + }, + "Dagenham, Marsh Way": { + "Contributor": "ImBenji", + "Location": "51.5170612, 0.1696416" + }, + "Hillrise Estate": { + "Contributor": "ImBenji", + "Location": "51.60715159999999, 0.1723829" + }, + "Collier Row": { + "Contributor": "ImBenji", + "Location": "51.5996927, 0.1745949" + }, + "Romford, Queen's Hospital": { + "Contributor": "ImBenji", + "Location": "51.5688117, 0.1807796" + }, + "Dagenham Heathway": { + "Contributor": "ImBenji", + "Location": "51.5378261, 0.1479616" + }, + "Thamesmead": { + "Contributor": "ImBenji", + "Location": "51.50575809999999, 0.1100586" + }, + "Thamesmead, Boiler House": { + "Contributor": "ImBenji", + "Location": "51.50575809999999, 0.1100586" + }, + "Charlton": { + "Contributor": "ImBenji", + "Location": "51.4900403, 0.0307737" + }, + "Greenwich Station": { + "Contributor": "ImBenji", + "Location": "51.4780469, -0.013361" + }, + "Kidbrooke": { + "Contributor": "ImBenji", + "Location": "51.46199840000001, 0.0277477" + }, + "Lee Green": { + "Contributor": "ImBenji", + "Location": "51.4493331, 0.0204837" + }, + "South Woodford": { + "Contributor": "ImBenji", + "Location": "51.5912671, 0.0264721" + }, + "Ilford Station": { + "Contributor": "ImBenji", + "Location": "51.556619, 0.076251" + }, + "Belvedere, Industrial Area": { + "Contributor": "ImBenji", + "Location": "51.48516499999999, 0.14827" + }, + "Abbey Wood": { + "Contributor": "ImBenji", + "Location": "51.4926116, 0.1188182" + }, + "Thamesmead East": { + "Contributor": "ImBenji", + "Location": "51.50575809999999, 0.1100586" + }, + "Ladywell": { + "Contributor": "ImBenji", + "Location": "51.45589709999999, -0.0219523" + }, + "Catford": { + "Contributor": "ImBenji", + "Location": "51.4453954, -0.0160913" + }, + "Catford, St Dunstan's": { + "Contributor": "ImBenji", + "Location": "51.4430327, -0.0237655" + }, + "Lower Sydenham": { + "Contributor": "ImBenji", + "Location": "51.42603219999999, -0.0325314" + }, + "Harrow Weald, Oxhey Lane": { + "Contributor": "ImBenji", + "Location": "51.6155169, -0.3609869" + }, + "Wembley Stadium Station": { + "Contributor": "ImBenji", + "Location": "51.55418960000001, -0.286004" + }, + "Brent Town Hall": { + "Contributor": "ImBenji", + "Location": "51.5665579, -0.2736435" + }, + "Neasden, Shopping Centre": { + "Contributor": "ImBenji", + "Location": "51.5626819, -0.2536987" + }, + "Kingsbury, The Mall": { + "Contributor": "ImBenji", + "Location": "51.5853499, -0.2782546" + }, + "Northwick Park Station": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "North Harrow": { + "Contributor": "ImBenji", + "Location": "51.58412800000001, -0.3644343" + }, + "Pinner": { + "Contributor": "ImBenji", + "Location": "51.595172, -0.378002" + }, + "Alexandra Park School": { + "Contributor": "ImBenji", + "Location": "51.602153, -0.1365257" + }, + "Barnet, Chesterfield Road": { + "Contributor": "ImBenji", + "Location": "51.64658110000001, -0.2149842" + }, + "Northwick Park Hospital": { + "Contributor": "ImBenji", + "Location": "51.5753935, -0.3201711" + }, + "Belmont Circle": { + "Contributor": "ImBenji", + "Location": "51.6010493, -0.3180225" + }, + "Central Middlesex Hospital": { + "Contributor": "ImBenji", + "Location": "51.530944, -0.2690778" + }, + "Queens Park": { + "Contributor": "ImBenji", + "Location": "51.5345448, -0.2043853" + }, + "Finchley Road, O2 Centre": { + "Contributor": "ImBenji", + "Location": "51.5478286, -0.1814281" + }, + "Deptford Church Street": { + "Contributor": "ImBenji", + "Location": "51.4778325, -0.0227861" + }, + "North Sheen": { + "Contributor": "ImBenji", + "Location": "51.4644443, -0.2733717" + }, + "Chiswick, Edensor Road": { + "Contributor": "ImBenji", + "Location": "51.4821173, -0.255696" + }, + "Ponders End, Nag's Head Road": { + "Contributor": "ImBenji", + "Location": "51.6452225, -0.04863729999999999" + }, + "Southbury, Dearsley Road": { + "Contributor": "ImBenji", + "Location": "51.64991610000001, -0.06317049999999999" + }, + "Carterhatch": { + "Contributor": "ImBenji", + "Location": "51.66345949999999, -0.0658526" + }, + "Brimsdown": { + "Contributor": "ImBenji", + "Location": "51.65642219999999, -0.0272713" + }, + "Enfield Town Station": { + "Contributor": "ImBenji", + "Location": "51.6520903, -0.07934469999999999" + }, + "Great Cambridge Road": { + "Contributor": "ImBenji", + "Location": "51.6466396, -0.06045279999999999" + }, + "Bush Hill Park": { + "Contributor": "ImBenji", + "Location": "51.6445559, -0.06559659999999999" + }, + "Angel Road, Superstores": { + "Contributor": "ImBenji", + "Location": "51.6130441, -0.0522623" + }, + "Romford, Queens Hospital": { + "Contributor": "ImBenji", + "Location": "51.5688117, 0.1807796" + }, + "Hornchurch, Town Centre": { + "Contributor": "ImBenji", + "Location": "51.562254, 0.218605" + }, + "Hornchurch Station": { + "Contributor": "ImBenji", + "Location": "51.55406929999999, 0.2190275" + }, + "Hornchurch, Bevan Way": { + "Contributor": "ImBenji", + "Location": "51.5504909, 0.2293935" + }, + "County Park Estate": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Elmers End Green": { + "Contributor": "ImBenji", + "Location": "51.3987339, -0.0436577" + }, + "Eden Park": { + "Contributor": "ImBenji", + "Location": "51.3959047, -0.0312291" + }, + "Charville Lane Estate": { + "Contributor": "ImBenji", + "Location": "51.5378301, -0.4293177" + }, + "Hayes North, Brook House": { + "Contributor": "ImBenji", + "Location": "51.5323301, -0.4196085" + }, + "Uxbridge Road, Lansbury Drive": { + "Contributor": "ImBenji", + "Location": "51.52294149999999, -0.422019" + }, + "Bull's Bridge": { + "Contributor": "ImBenji", + "Location": "51.4999134, -0.4066811" + }, + "Hanwell Broadway": { + "Contributor": "ImBenji", + "Location": "51.5090444, -0.3376352" + }, + "Great West Road": { + "Contributor": "ImBenji", + "Location": "51.4761743, -0.3832373" + }, + "Upper Norwood": { + "Contributor": "ImBenji", + "Location": "51.41376716037048, -0.09204081941649297" + }, + "Lower Addiscombe Road": { + "Contributor": "ImBenji", + "Location": "51.38227269999999, -0.0674548" + }, + "Shrublands": { + "Contributor": "ImBenji", + "Location": "51.3660734, -0.0295354" + }, + "Thornton Heath Station": { + "Contributor": "ImBenji", + "Location": "51.3985835, -0.1000937" + }, + "Pepys Estate": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Lewisham Centre": { + "Contributor": "ImBenji", + "Location": "51.4606377, -0.0109996" + }, + "Copse Hill": { + "Contributor": "ImBenji", + "Location": "51.414603, -0.2468798" + }, + "Phipp's Bridge": { + "Contributor": "ImBenji", + "Location": "51.4954779, -0.1463109" + }, + "Staines, Crooked Billet Roundabout": { + "Contributor": "ImBenji", + "Location": "51.43148, -0.515525" + }, + "Colindale": { + "Contributor": "ImBenji", + "Location": "51.5896908, -0.2491029" + }, + "Grahame Park": { + "Contributor": "ImBenji", + "Location": "51.6017283, -0.2444205" + }, + "Wembley Park, The Paddocks": { + "Contributor": "ImBenji", + "Location": "51.5677761, -0.2721636" + }, + "Brent Park, Superstores": { + "Contributor": "ImBenji", + "Location": "51.55263000000001, -0.2568869" + }, + "Hayes By-Pass": { + "Contributor": "ImBenji", + "Location": "51.51593, -0.398889" + }, + "Southall Town Hall": { + "Contributor": "ImBenji", + "Location": "51.5113272, -0.3751471" + }, + "Acton Vale": { + "Contributor": "ImBenji", + "Location": "51.5065594, -0.2567913" + }, + "Shepherd's Bush Market Station": { + "Contributor": "ImBenji", + "Location": "51.5056503, -0.2262516" + }, + "Bromley, Market Square": { + "Contributor": "ImBenji", + "Location": "51.4056858, 0.0148563" + }, + "Petts Wood": { + "Contributor": "ImBenji", + "Location": "51.389636, 0.08195" + }, + "Orpington, War Memorial": { + "Contributor": "ImBenji", + "Location": "51.373203, 0.09753479999999999" + }, + "Mortlake": { + "Contributor": "ImBenji", + "Location": "51.4687363, -0.2627417" + }, + "Barnes Pond": { + "Contributor": "ImBenji", + "Location": "51.4731208, -0.2468688" + }, + "Chelsea, Redcliffe Gardens": { + "Contributor": "ImBenji", + "Location": "51.4867031, -0.1875171" + }, + "Chingford Hatch": { + "Contributor": "ImBenji", + "Location": "51.420389, -0.1287668" + }, + "Highams Park": { + "Contributor": "ImBenji", + "Location": "51.6083754, 0.0014712" + }, + "St James Street": { + "Contributor": "ImBenji", + "Location": "51.581118791593234, -0.0328839757764101" + }, + "New Malden, Coombe Road": { + "Contributor": "ImBenji", + "Location": "51.4094312, -0.2586718" + }, + "Parliament Hill Fields": { + "Contributor": "ImBenji", + "Location": "51.5594043, -0.151707" + }, + "Lee Valley Camp Site": { + "Contributor": "ImBenji", + "Location": "51.65514599999999, -0.007160000000000001" + }, + "Yardley Lane": { + "Contributor": "ImBenji", + "Location": "51.6418904, -0.0087819" + }, + "Sunbury, Tesco": { + "Contributor": "ImBenji", + "Location": "51.414472, -0.4167217" + }, + "Sunbury Cross": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Sunbury Village": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Hampton Court": { + "Contributor": "ImBenji", + "Location": "51.4036128, -0.3377623" + }, + "Waltham Cross": { + "Contributor": "ImBenji", + "Location": "51.68584389999999, -0.0330964" + }, + "St Ignatius College": { + "Contributor": "ImBenji", + "Location": "51.6739451, -0.0549748" + }, + "Enfield Retail Park": { + "Contributor": "ImBenji", + "Location": "51.6541066, -0.0578729" + }, + "Tooting Bec": { + "Contributor": "ImBenji", + "Location": "51.436753, -0.1618404" + }, + "Wandsworth Common": { + "Contributor": "ImBenji", + "Location": "51.4581475, -0.1792287" + }, + "Willesden Junction": { + "Contributor": "ImBenji", + "Location": "51.53211630000001, -0.2433689" + }, + "College Park, Scrubs Lane": { + "Contributor": "ImBenji", + "Location": "51.5206904, -0.2288875" + }, + "Mill Hill East": { + "Contributor": "ImBenji", + "Location": "51.6078622, -0.2082474" + }, + "Holders Hill Circus": { + "Contributor": "ImBenji", + "Location": "51.6051942, -0.2078155" + }, + "Uxbridge": { + "Contributor": "ImBenji", + "Location": "51.5485, -0.479611" + }, + "Cowley": { + "Contributor": "ImBenji", + "Location": "51.525848, -0.4820508999999999" + }, + "West Drayton": { + "Contributor": "ImBenji", + "Location": "51.502985, -0.4654099999999999" + }, + "Wembley Park": { + "Contributor": "ImBenji", + "Location": "51.5585935, -0.2796126" + }, + "Park Royal, Asda": { + "Contributor": "ImBenji", + "Location": "51.52781, -0.26989" + }, + "St. Raphael's": { + "Contributor": "ImBenji", + "Location": "51.55207859999999, -0.2622574" + }, + "Hanger Lane": { + "Contributor": "ImBenji", + "Location": "51.531478, -0.2932577000000001" + }, + "Park Royal, First Central": { + "Contributor": "ImBenji", + "Location": "51.5326143, -0.2854417" + }, + "Penge West": { + "Contributor": "ImBenji", + "Location": "51.41388490000001, -0.0570112" + }, + "Belvedere": { + "Contributor": "ImBenji", + "Location": "51.48516499999999, 0.14827" + }, + "Upper Walthamstow": { + "Contributor": "ImBenji", + "Location": "51.5877489, 0.0037911" + }, + "Enfield Chase": { + "Contributor": "ImBenji", + "Location": "51.65326, -0.09067" + }, + "St Raphael's": { + "Contributor": "ImBenji", + "Location": "51.55207859999999, -0.2622574" + }, + "North Circular, Colney Hatch": { + "Contributor": "ImBenji", + "Location": "51.6034922, -0.1482548" + }, + "Colney Hatch Lane": { + "Contributor": "ImBenji", + "Location": "51.6034922, -0.1482548" + }, + "New Eltham": { + "Contributor": "ImBenji", + "Location": "51.4322522, 0.0658314" + }, + "Foots Cray, Ruxley Corner": { + "Contributor": "ImBenji", + "Location": "51.4155255, 0.1253275" + }, + "Swanley, Asda": { + "Contributor": "ImBenji", + "Location": "51.396609, 0.17656" + }, + "Swanley": { + "Contributor": "ImBenji", + "Location": "51.396531, 0.177326" + }, + "Barnet, The Spires": { + "Contributor": "ImBenji", + "Location": "51.655492, -0.2033422" + }, + "Highgate Wood": { + "Contributor": "ImBenji", + "Location": "51.5827374, -0.1491754" + }, + "Busch Corner": { + "Contributor": "ImBenji", + "Location": "51.4788665, -0.3231269" + }, + "Sunbury Village, Three Fishes": { + "Contributor": "ImBenji", + "Location": "51.4191935, -0.4191503" + }, + "North Brentford Quarter": { + "Contributor": "ImBenji", + "Location": "51.4835374, -0.3063676" + }, + "Homerton": { + "Contributor": "ImBenji", + "Location": "51.5478609, -0.0425903" + }, + "Brentford, Brent Lea": { + "Contributor": "ImBenji", + "Location": "51.48131739999999, -0.3135051" + }, + "Brentford, Half Acre": { + "Contributor": "ImBenji", + "Location": "51.4844289, -0.3068293" + }, + "Chiswick Roundabout": { + "Contributor": "ImBenji", + "Location": "51.4910362, -0.2816861" + }, + "Turnham Green": { + "Contributor": "ImBenji", + "Location": "51.49203019999999, -0.2663174" + }, + "Goldhawk Road": { + "Contributor": "ImBenji", + "Location": "51.4999246, -0.2373253" + }, + "Upton Park, Green Street": { + "Contributor": "ImBenji", + "Location": "51.539482, 0.0325224" + }, + "East Ham, Ron Leighton Wat": { + "Contributor": "ImBenji", + "Location": "51.5370273, 0.0515902" + }, + "Plaistow Abbey Arms": { + "Contributor": "ImBenji", + "Location": "51.5222296, 0.0225853" + }, + "Keir Hardie Estate": { + "Contributor": "ImBenji", + "Location": "51.5678758, -0.0607466" + }, + "Homerton Hospital": { + "Contributor": "ImBenji", + "Location": "51.5478609, -0.0425903" + }, + "Clapton Park, Millfields": { + "Contributor": "ImBenji", + "Location": "51.5575011, -0.0424329" + }, + "Belmarsh": { + "Contributor": "ImBenji", + "Location": "51.4967407, 0.0927968" + }, + "Broadwater Estate": { + "Contributor": "ImBenji", + "Location": "51.5944339, -0.0812275" + }, + "North Wembley": { + "Contributor": "ImBenji", + "Location": "51.5625616, -0.3175595" + }, + "Hayes": { + "Contributor": "ImBenji", + "Location": "51.516758, -0.436786" + }, + "Biggin Hill": { + "Contributor": "ImBenji", + "Location": "51.312059, 0.032802" + }, + "Westerham": { + "Contributor": "ImBenji", + "Location": "51.2945922, 0.05822480000000001" + }, + "Chartwell": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Upminster": { + "Contributor": "ImBenji", + "Location": "51.55591399999999, 0.248894" + }, + "Upminster Park Estate": { + "Contributor": "ImBenji", + "Location": "51.570667, 0.26893" + }, + "Cranham": { + "Contributor": "ImBenji", + "Location": "51.5679469, 0.2673702" + }, + "Streatham, St Leonards Church": { + "Contributor": "ImBenji", + "Location": "51.42926610000001, -0.1311095" + }, + "Norwood, Crown Point": { + "Contributor": "ImBenji", + "Location": "41.4169806, -87.3653135" + }, + "Totteridge & Whetstone": { + "Contributor": "ImBenji", + "Location": "51.630241, -0.179144" + }, + "Highwood Hill": { + "Contributor": "ImBenji", + "Location": "51.6268074, -0.2399921" + }, + "Sanders Draper School": { + "Contributor": "ImBenji", + "Location": "51.5499174, 0.215173" + }, + "Manor House": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Camden Road, Brecknock Road": { + "Contributor": "ImBenji", + "Location": "51.5488418, -0.1290968" + }, + "Hornchurch, Miramar Way": { + "Contributor": "ImBenji", + "Location": "51.5472385, 0.2158209" + }, + "Harold Wood": { + "Contributor": "ImBenji", + "Location": "51.5910397, 0.2328613" + }, + "Emerson Park": { + "Contributor": "ImBenji", + "Location": "51.57201, 0.225394" + }, + "Noak Hill": { + "Contributor": "ImBenji", + "Location": "51.6218055, 0.2263263" + }, + "Hornchurch, St George's Hospital": { + "Contributor": "ImBenji", + "Location": "51.562254, 0.218605" + }, + "Maryland": { + "Contributor": "ImBenji", + "Location": "51.5477587, 0.0005166999999999999" + }, + "Leytonstone, Harrow Green": { + "Contributor": "ImBenji", + "Location": "51.5582955, 0.007356" + }, + "Snells Park, Sainsbury's": { + "Contributor": "ImBenji", + "Location": "51.609054, -0.0691713" + }, + "North Acton": { + "Contributor": "ImBenji", + "Location": "51.5219526, -0.2580821" + }, + "Princess Royal Hospital": { + "Contributor": "ImBenji", + "Location": "51.3661498, 0.05819390000000001" + }, + "East Beckton, Sainsbury's": { + "Contributor": "ImBenji", + "Location": "51.5212249, 0.0669226" + }, + "Gallions Reach Shopping Park": { + "Contributor": "ImBenji", + "Location": "51.5166002, 0.0783827" + }, + "Plaistow, Greengate Street": { + "Contributor": "ImBenji", + "Location": "51.527444, 0.027621" + }, + "Holloway Nags Head": { + "Contributor": "ImBenji", + "Location": "51.55724250000001, -0.1204364" + }, + "Barnet Hospital": { + "Contributor": "ImBenji", + "Location": "51.6508236, -0.2137361" + }, + "Mitcham Road, Purley Way": { + "Contributor": "ImBenji", + "Location": "51.38380189999999, -0.1175218" + }, + "Tolworth": { + "Contributor": "ImBenji", + "Location": "51.3801004, -0.2861237" + }, + "Seven Stars Corner": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Ravenscourt Park": { + "Contributor": "ImBenji", + "Location": "51.4952687, -0.2397848" + }, + "Stamford Brook, Chiswick Lane": { + "Contributor": "ImBenji", + "Location": "51.49492, -0.24568" + }, + "London Road, Chertsey Road": { + "Contributor": "ImBenji", + "Location": "51.4483827, -0.3549402" + }, + "Fulwell": { + "Contributor": "ImBenji", + "Location": "51.6017398, -0.1148607" + }, + "Whitestone Pond": { + "Contributor": "ImBenji", + "Location": "51.5614553, -0.1799757" + }, + "Bexleyheath Library": { + "Contributor": "ImBenji", + "Location": "51.45587399999999, 0.1439466" + }, + "Albany Park, Foots Cray Lane": { + "Contributor": "ImBenji", + "Location": "51.4372375, 0.1193106" + }, + "Chiswick, Grove Park": { + "Contributor": "ImBenji", + "Location": "51.481631, -0.272505" + }, + "Shepherds Bush": { + "Contributor": "ImBenji", + "Location": "51.5051913, -0.22469" + }, + "Lewisham, Tesco": { + "Contributor": "ImBenji", + "Location": "51.4414579, -0.0117006" + }, + "St Marys Cray": { + "Contributor": "ImBenji", + "Location": "51.385993, 0.113061" + }, + "Caledonian Road, Copenhagen Street": { + "Contributor": "ImBenji", + "Location": "51.5389986, -0.1164184" + }, + "Market Road": { + "Contributor": "ImBenji", + "Location": "51.5455568, -0.1249446" + }, + "London Zoo": { + "Contributor": "ImBenji", + "Location": "51.5352875, -0.1534303" + }, + "Lord's Cricket Ground": { + "Contributor": "ImBenji", + "Location": "51.52983099999999, -0.1721564" + }, + "Mill lane": { + "Contributor": "ImBenji", + "Location": "51.5521985, -0.1932197" + }, + "Woodford Bridge": { + "Contributor": "ImBenji", + "Location": "51.6057309, 0.0544589" + }, + "Newham Hospital": { + "Contributor": "ImBenji", + "Location": "51.5222415, 0.0325405" + }, + "West Ham Station": { + "Contributor": "ImBenji", + "Location": "51.5278232, 0.0042832" + }, + "Highbury Corner": { + "Contributor": "ImBenji", + "Location": "51.54602329999999, -0.1022688" + }, + "South Hackney, Church Crescent": { + "Contributor": "ImBenji", + "Location": "51.5882451, -0.1449718" + }, + "Ponders End, Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.6452225, -0.04863729999999999" + }, + "Tooting, St. George's Hospital": { + "Contributor": "ImBenji", + "Location": "51.42656299999999, -0.1752284" + }, + "Belmont": { + "Contributor": "ImBenji", + "Location": "51.601249, -0.3192749" + }, + "Tolworth, Red Lion Road": { + "Contributor": "ImBenji", + "Location": "51.3807794, -0.2901602" + }, + "Kingston, Brook Street": { + "Contributor": "ImBenji", + "Location": "51.41233, -0.300689" + }, + "Twickenham, Rugby Stadium": { + "Contributor": "ImBenji", + "Location": "51.4453043, -0.3375429" + }, + "Whitton Church": { + "Contributor": "ImBenji", + "Location": "51.4538478, -0.3732651" + }, + "Iron Bridge, Uxbridge Road": { + "Contributor": "ImBenji", + "Location": "51.509837, -0.3549224" + }, + "Eastcote": { + "Contributor": "ImBenji", + "Location": "51.5512622, -0.3732052" + }, + "Northwood Hills": { + "Contributor": "ImBenji", + "Location": "51.6004243, -0.4098652" + }, + "Northwood Station": { + "Contributor": "ImBenji", + "Location": "51.6112297, -0.423889" + }, + "Mount Vernon Hospital": { + "Contributor": "ImBenji", + "Location": "51.6153975, -0.4455072" + }, + "White City, Leisure Centre": { + "Contributor": "ImBenji", + "Location": "51.51146199999999, -0.2376332" + }, + "Downham": { + "Contributor": "ImBenji", + "Location": "51.4243854, 0.0122988" + }, + "Grove Park Cemetery": { + "Contributor": "ImBenji", + "Location": "51.4246215, 0.0364068" + }, + "Feltham Station": { + "Contributor": "ImBenji", + "Location": "51.4480215, -0.4090095" + }, + "Hanworth, Apex Corner": { + "Contributor": "ImBenji", + "Location": "51.4369075, -0.3784005" + }, + "Hampton, Sainsbury's": { + "Contributor": "ImBenji", + "Location": "51.4264198, -0.3776108" + }, + "Avery Hill": { + "Contributor": "ImBenji", + "Location": "51.451434, 0.076128" + }, + "Barking, London Road": { + "Contributor": "ImBenji", + "Location": "51.5738007, 0.1543557" + }, + "Queensbury, Morrison's": { + "Contributor": "ImBenji", + "Location": "51.5942132, -0.2853683" + }, + "Broadfields Estate": { + "Contributor": "ImBenji", + "Location": "51.6267303, -0.2729243" + }, + "Long Lane": { + "Contributor": "ImBenji", + "Location": "51.5501784, -0.4490557" + }, + "Ashburton Park": { + "Contributor": "ImBenji", + "Location": "51.3855119, -0.0654191" + }, + "Thornton Hth Pd": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Waddon Marsh": { + "Contributor": "ImBenji", + "Location": "51.3769818, -0.1179077" + }, + "Ashford, Woodthorpe Road": { + "Contributor": "ImBenji", + "Location": "51.4269867, -0.4801537999999999" + }, + "Woodlands Estate": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Borehamwood, Rossington Avenue": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Ewell Village": { + "Contributor": "ImBenji", + "Location": "51.3506319, -0.2533376" + }, + "Epsom": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Havering Park": { + "Contributor": "ImBenji", + "Location": "51.607707, 0.157121" + }, + "Gidea Park Station": { + "Contributor": "ImBenji", + "Location": "51.5792473, 0.2076649" + }, + "Harold wood": { + "Contributor": "ImBenji", + "Location": "51.5910397, 0.2328613" + }, + "Harold Wood, Gooshays Drive": { + "Contributor": "ImBenji", + "Location": "51.6081419, 0.2227947" + }, + "Latimer Road Station": { + "Contributor": "ImBenji", + "Location": "51.5134548, -0.2177014" + }, + "Perivale Station": { + "Contributor": "ImBenji", + "Location": "51.53667979999999, -0.3237969" + }, + "West Ealing, Scotch Common": { + "Contributor": "ImBenji", + "Location": "51.5248572, -0.3210551" + }, + "Cockfosters": { + "Contributor": "ImBenji", + "Location": "51.647851, -0.151255" + }, + "Potters Bar Station": { + "Contributor": "ImBenji", + "Location": "51.696636, -0.175948" + }, + "Potters Bar, Cranborne Road": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Bounds Green": { + "Contributor": "ImBenji", + "Location": "51.6086813, -0.1274673" + }, + "Southbury, Great Cambridge Road": { + "Contributor": "ImBenji", + "Location": "51.6492397, -0.0591129" + }, + "Aberfeldy Estate": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Poplar, Cordelia Street": { + "Contributor": "ImBenji", + "Location": "51.5137347, -0.0174897" + }, + "Stepney High Street": { + "Contributor": "ImBenji", + "Location": "51.517287, -0.0426262" + }, + "Bethnal Green, Chest Hospital": { + "Contributor": "ImBenji", + "Location": "51.53196500000001, -0.0497284" + }, + "Ponders End, Mollison Avenue": { + "Contributor": "ImBenji", + "Location": "51.6792707, -0.0252251" + }, + "Chase Farm Hospital": { + "Contributor": "ImBenji", + "Location": "51.66689239999999, -0.1028125" + }, + "Dame Alice Owen's School": { + "Contributor": "ImBenji", + "Location": "51.6907953, -0.2071661" + }, + "Eltham, Footscray Road": { + "Contributor": "ImBenji", + "Location": "51.440054, 0.0695436" + }, + "Five Ways, Green Lane": { + "Contributor": "ImBenji", + "Location": "51.6193019, -0.1068853" + }, + "Elmstead Woods": { + "Contributor": "ImBenji", + "Location": "51.42242050000001, 0.04166810000000001" + }, + "Streatham, St. Leonard's Church": { + "Contributor": "ImBenji", + "Location": "51.42926610000001, -0.1311095" + }, + "North Kensington": { + "Contributor": "ImBenji", + "Location": "51.5246698, -0.2138884" + }, + "Northumberland Park": { + "Contributor": "ImBenji", + "Location": "51.6024517, -0.0676958" + }, + "Chelsea, Beaufort Street": { + "Contributor": "ImBenji", + "Location": "51.4846097, -0.1758684" + }, + "Biggin Hill Valley": { + "Contributor": "ImBenji", + "Location": "51.312059, 0.032802" + }, + "Biggin Hill Airport": { + "Contributor": "ImBenji", + "Location": "51.312059, 0.032802" + }, + "Foots Cray, Tesco": { + "Contributor": "ImBenji", + "Location": "51.4127689, 0.121733" + }, + "Sidcup, Police Station": { + "Contributor": "ImBenji", + "Location": "51.4336673, 0.1024815" + }, + "Gipsy Hill": { + "Contributor": "ImBenji", + "Location": "51.4238202, -0.0835265" + }, + "Clapham North": { + "Contributor": "ImBenji", + "Location": "51.4658813, -0.1413263" + }, + "East London Mail Centre": { + "Contributor": "ImBenji", + "Location": "51.55633, 0.0655092" + }, + "Queensbury Station": { + "Contributor": "ImBenji", + "Location": "51.5942415, -0.2861271" + }, + "Kingsbury": { + "Contributor": "ImBenji", + "Location": "51.5853499, -0.2782546" + }, + "Brent Cross, Tesco": { + "Contributor": "ImBenji", + "Location": "51.5741621, -0.2146762" + }, + "East Ham, Plashet Grove": { + "Contributor": "ImBenji", + "Location": "51.540111, 0.0488804" + }, + "Plaistow, Broadway": { + "Contributor": "ImBenji", + "Location": "51.529163, 0.024332" + }, + "Dollis Valley": { + "Contributor": "ImBenji", + "Location": "51.5957933, -0.209576" + }, + "Elsinge Estate": { + "Contributor": "ImBenji", + "Location": "51.6793634, -0.04655339999999999" + }, + "West Hampstead": { + "Contributor": "ImBenji", + "Location": "51.5490183, -0.1971205" + }, + "Kilburn, Quex Road": { + "Contributor": "ImBenji", + "Location": "51.5404545, -0.1937492" + }, + "Kensington, High Street": { + "Contributor": "ImBenji", + "Location": "51.4976157, -0.2037023" + }, + "Kensington, Cromwell Road": { + "Contributor": "ImBenji", + "Location": "51.4949065, -0.1953115" + }, + "Palmers Green, Hedge Lane": { + "Contributor": "ImBenji", + "Location": "51.6224407, -0.0997349" + }, + "Wanstead Park Station": { + "Contributor": "ImBenji", + "Location": "51.551239, 0.0251455" + }, + "Ruislip Lido": { + "Contributor": "ImBenji", + "Location": "51.59114049999999, -0.4304918" + }, + "Brixton Hill, Christchurch Road": { + "Contributor": "ImBenji", + "Location": "51.4458253, -0.124245" + }, + "Bickley": { + "Contributor": "ImBenji", + "Location": "51.38994700000001, 0.0492904" + }, + "Thatched House, Crownfield Road": { + "Contributor": "ImBenji", + "Location": "51.5511521, -0.0040387" + }, + "Bow, Fish Island": { + "Contributor": "ImBenji", + "Location": "51.5363622, -0.0238479" + }, + "Stanmore Broadway": { + "Contributor": "ImBenji", + "Location": "51.6176414, -0.3095879" + }, + "Harrow Weald Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.606117, -0.3400905" + }, + "Holborn Circus": { + "Contributor": "ImBenji", + "Location": "51.5177959, -0.1075978" + }, + "City Hall": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Brockley": { + "Contributor": "ImBenji", + "Location": "51.46377160000001, -0.0366031" + }, + "Upminster Station": { + "Contributor": "ImBenji", + "Location": "51.5589642, 0.2506216" + }, + "Ockendon": { + "Contributor": "ImBenji", + "Location": "51.5444086, -0.0888143" + }, + "Angel, Edmonton": { + "Contributor": "ImBenji", + "Location": "51.6100108, -0.0474714" + }, + "Hayes, Asda": { + "Contributor": "ImBenji", + "Location": "51.516758, -0.436786" + }, + "Stockley Park": { + "Contributor": "ImBenji", + "Location": "51.51153850000001, -0.444799" + }, + "Harmondsworth": { + "Contributor": "ImBenji", + "Location": "51.487453, -0.475554" + }, + "Heathrow Terminal 5": { + "Contributor": "ImBenji", + "Location": "51.471466, -0.4879806" + }, + "Ramsden Estate": { + "Contributor": "ImBenji", + "Location": "51.3754771, 0.1224719" + }, + "Orpington, Walnuts Centre": { + "Contributor": "ImBenji", + "Location": "51.3773656, 0.1007092" + }, + "Forestdale": { + "Contributor": "ImBenji", + "Location": "51.345018, -0.0380398" + }, + "Upper Sydenham": { + "Contributor": "ImBenji", + "Location": "51.43066, -0.071188" + }, + "Whipps Cross Hospital": { + "Contributor": "ImBenji", + "Location": "51.5778196, 0.0032545" + }, + "Green Street Green": { + "Contributor": "ImBenji", + "Location": "51.3535363, 0.0890088" + }, + "Grange Hill": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Goodmayes": { + "Contributor": "ImBenji", + "Location": "51.5662262, 0.1102974" + }, + "Orchard Village": { + "Contributor": "ImBenji", + "Location": "51.5296853, 0.1699365" + }, + "South Hornchurch, Cherry Tree Lane": { + "Contributor": "ImBenji", + "Location": "51.5288841, 0.1890788" + }, + "Redbridge": { + "Contributor": "ImBenji", + "Location": "51.5748179, 0.0507539" + }, + "Monks Orchard": { + "Contributor": "ImBenji", + "Location": "51.385291, -0.037641" + }, + "Beckenham, High Street": { + "Contributor": "ImBenji", + "Location": "51.40687, -0.0318188" + }, + "Lodge Avenue, Ripple Road": { + "Contributor": "ImBenji", + "Location": "51.53554829999999, 0.0936497" + }, + "Barking, Harts Lane": { + "Contributor": "ImBenji", + "Location": "51.5414506, 0.0726712" + }, + "Corbets Tey": { + "Contributor": "ImBenji", + "Location": "51.543329, 0.2505335" + }, + "Lakeside": { + "Contributor": "ImBenji", + "Location": "51.403305, -0.0200916" + }, + "Richmond Hill": { + "Contributor": "ImBenji", + "Location": "51.4539315, -0.2997198" + }, + "Richmond, Manor Circus": { + "Contributor": "ImBenji", + "Location": "51.4677844, -0.2883524" + }, + "Averley": { + "Contributor": "ImBenji", + "Location": "51.499018, 0.2519159" + }, + "Wennington": { + "Contributor": "ImBenji", + "Location": "51.5075862, 0.2137575" + }, + "Passingford Bridge": { + "Contributor": "ImBenji", + "Location": "51.656024, 0.168335" + }, + "Winsor Park": { + "Contributor": "ImBenji", + "Location": "51.4818292, -0.4225758" + }, + "Rotherhithe": { + "Contributor": "ImBenji", + "Location": "51.49628999999999, -0.0411931" + }, + "Southwark Bridge Road": { + "Contributor": "ImBenji", + "Location": "51.4968084, -0.1000501" + }, + "Millbrook Park": { + "Contributor": "ImBenji", + "Location": "51.6112324, -0.2073392" + }, + "Oakleigh Park": { + "Contributor": "ImBenji", + "Location": "51.62524879999999, -0.1697717" + }, + "Woodside Park": { + "Contributor": "ImBenji", + "Location": "51.6162352, -0.1874339" + }, + "Barnet, Quinta Drive": { + "Contributor": "ImBenji", + "Location": "51.6467413, -0.2233541" + }, + "New Barnet Station": { + "Contributor": "ImBenji", + "Location": "51.64857, -0.17297" + }, + "New Barnet, Castlewood Road": { + "Contributor": "ImBenji", + "Location": "51.6540941, -0.16659" + }, + "Crooked Billet, Sainsbury's": { + "Contributor": "ImBenji", + "Location": "51.601088, -0.0159737" + }, + "Woolwich Road, Vanbrugh Hill": { + "Contributor": "ImBenji", + "Location": "51.48505249999999, 0.0081975" + }, + "Blackfriars": { + "Contributor": "ImBenji", + "Location": "51.51199200000001, -0.1038617" + }, + "Barnet, Western Way": { + "Contributor": "ImBenji", + "Location": "51.6405093, -0.1874788" + }, + "North Sheen, Manor Circus": { + "Contributor": "ImBenji", + "Location": "51.4653637, -0.2863842" + }, + "Kew Gardens Station": { + "Contributor": "ImBenji", + "Location": "51.47714509999999, -0.2850662" + }, + "Stamford Brook Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.493069, -0.2493815" + }, + "Fulham, Sands End": { + "Contributor": "ImBenji", + "Location": "51.4731566, -0.1822545" + }, + "Highbury New Park": { + "Contributor": "ImBenji", + "Location": "51.5598259, -0.0919793" + }, + "Greenford, Westway Cross": { + "Contributor": "ImBenji", + "Location": "51.5424454, -0.3406048" + }, + "Rayners Lane Station": { + "Contributor": "ImBenji", + "Location": "51.5762173, -0.3702536" + }, + "Wood End": { + "Contributor": "ImBenji", + "Location": "51.3486429, -0.1545569" + }, + "Hadley Wood Station": { + "Contributor": "ImBenji", + "Location": "51.668411, -0.1764367" + }, + "Sanderstead Church": { + "Contributor": "ImBenji", + "Location": "51.33693299999999, -0.07585349999999999" + }, + "Warlingham Green": { + "Contributor": "ImBenji", + "Location": "51.3093239, -0.055901" + }, + "Warlingham": { + "Contributor": "ImBenji", + "Location": "51.3093239, -0.055901" + }, + "Caterham-on-the-Hill": { + "Contributor": "ImBenji", + "Location": "51.28029600000001, -0.08161589999999999" + }, + "Redhill": { + "Contributor": "ImBenji", + "Location": "51.4210856, 0.0635313" + }, + "Hooley": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Ewell": { + "Contributor": "ImBenji", + "Location": "51.3812341, -0.2811869" + }, + "Carshalton, High Street": { + "Contributor": "ImBenji", + "Location": "51.365212, -0.1614104" + }, + "Beddington Library": { + "Contributor": "ImBenji", + "Location": "51.3669545, -0.1318798" + }, + "Whyteleafe": { + "Contributor": "ImBenji", + "Location": "51.3017577, -0.079251" + }, + "Whyteleafe South": { + "Contributor": "ImBenji", + "Location": "51.3033428, -0.0769221" + }, + "Caterham": { + "Contributor": "ImBenji", + "Location": "51.28029600000001, -0.08161589999999999" + }, + "Davidson Road": { + "Contributor": "ImBenji", + "Location": "51.3875213, -0.08113229999999999" + }, + "Kingston Bridge, West Side": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "West Molesey": { + "Contributor": "ImBenji", + "Location": "51.400766, -0.3562949" + }, + "Fulham Palace Road": { + "Contributor": "ImBenji", + "Location": "51.4789858, -0.2177446" + }, + "Chelsea & Westminster Hospital": { + "Contributor": "ImBenji", + "Location": "51.4839583, -0.1813397" + }, + "Crown Dale, Norwood School": { + "Contributor": "ImBenji", + "Location": "51.4228251, -0.0995052" + }, + "Mortlake, High Street": { + "Contributor": "ImBenji", + "Location": "51.4698327, -0.2611355" + }, + "Plumstead": { + "Contributor": "ImBenji", + "Location": "51.4873853, 0.08650139999999999" + }, + "East Wickham, Brampton Road": { + "Contributor": "ImBenji", + "Location": "51.4771799, 0.1236485" + }, + "Putney High Street": { + "Contributor": "ImBenji", + "Location": "51.4596431, -0.2141257" + }, + "Hurlingham": { + "Contributor": "ImBenji", + "Location": "51.4701125, -0.2048867" + }, + "Fulham, Craven Cottage": { + "Contributor": "ImBenji", + "Location": "51.47490029999999, -0.2216078" + }, + "Hackney, Lauriston Road": { + "Contributor": "ImBenji", + "Location": "51.5394045, -0.0455494" + }, + "Clapton, Nightingale Road": { + "Contributor": "ImBenji", + "Location": "51.5589881, -0.0597757" + }, + "Coney Green": { + "Contributor": "ImBenji", + "Location": "51.534156, -0.4588592" + }, + "Southall Park": { + "Contributor": "ImBenji", + "Location": "51.5094438, -0.3697251" + }, + "Darenth Valley Hospital": { + "Contributor": "ImBenji", + "Location": "51.4353592, 0.2586714" + }, + "Coulsdon, Ridgemount Avenue": { + "Contributor": "ImBenji", + "Location": "51.3140905, -0.1559805" + }, + "Chiswick Power Road": { + "Contributor": "ImBenji", + "Location": "51.4933973, -0.2809573" + }, + "Acton, Horn Lane": { + "Contributor": "ImBenji", + "Location": "51.5150958, -0.2686528" + }, + "Hall Lane, Cork Tree Retail Park": { + "Contributor": "ImBenji", + "Location": "51.6130849, -0.03223" + }, + "Edmonton, Sterling Way": { + "Contributor": "ImBenji", + "Location": "51.6146137, -0.0702872" + }, + "Westwood Hill, Fountain Drive": { + "Contributor": "ImBenji", + "Location": "51.4268086, -0.0652016" + }, + "Great Portland Street": { + "Contributor": "ImBenji", + "Location": "51.5199714, -0.1426427" + }, + "Purley, Old Lodge Lane": { + "Contributor": "ImBenji", + "Location": "51.3156465, -0.1147698" + }, + "Valley Park": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Beddington, Asda": { + "Contributor": "ImBenji", + "Location": "51.375982, -0.1309075" + }, + "Roundshaw": { + "Contributor": "ImBenji", + "Location": "51.3533066, -0.1269329" + }, + "Wallington Station": { + "Contributor": "ImBenji", + "Location": "51.36038, -0.15081" + }, + "Limes Farm Estate": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Coulsdon South": { + "Contributor": "ImBenji", + "Location": "51.31583, -0.13786" + }, + "Clockhouse Farm": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Tatsfield": { + "Contributor": "ImBenji", + "Location": "51.290898, 0.02795" + }, + "Leatherhead": { + "Contributor": "ImBenji", + "Location": "51.33560139999999, -0.3202492" + }, + "Dorking": { + "Contributor": "ImBenji", + "Location": "51.232202, -0.332378" + }, + "Coulsdon, Lacey Drive": { + "Contributor": "ImBenji", + "Location": "51.2994337, -0.1144192" + }, + "Hinchley Wood School": { + "Contributor": "ImBenji", + "Location": "51.37953599999999, -0.3322176" + }, + "Hook": { + "Contributor": "ImBenji", + "Location": "51.3682509, -0.305081" + }, + "Ewell East": { + "Contributor": "ImBenji", + "Location": "51.3452748, -0.2415609" + }, + "North Woolwich": { + "Contributor": "ImBenji", + "Location": "51.5008658, 0.0626916" + }, + "London City Airport": { + "Contributor": "ImBenji", + "Location": "51.5048437, 0.049518" + }, + "East Ham": { + "Contributor": "ImBenji", + "Location": "51.5333972, 0.04991139999999999" + }, + "Ivybridge, Tesco": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Convent Way": { + "Contributor": "ImBenji", + "Location": "51.4945787, -0.3939649" + }, + "Heathrow Terminal 4": { + "Contributor": "ImBenji", + "Location": "51.4596965, -0.4473622" + }, + "Frendsbury Road": { + "Contributor": "ImBenji", + "Location": "51.4602263, -0.0435112" + }, + "Northolt Park": { + "Contributor": "ImBenji", + "Location": "51.555711, -0.3594899" + }, + "Bromley-By-Bow Tesco": { + "Contributor": "ImBenji", + "Location": "51.5266315, -0.0097847" + }, + "Richmond, Pools on the Park": { + "Contributor": "ImBenji", + "Location": "51.4650191, -0.306508" + }, + "Richmond Bus Station": { + "Contributor": "ImBenji", + "Location": "51.4591284, -0.3044753000000001" + }, + "Hanworth, , Apex Corner": { + "Contributor": "ImBenji", + "Location": "51.4369075, -0.3784005" + }, + "Heathrow Cargo Area": { + "Contributor": "ImBenji", + "Location": "51.46351809999999, -0.4558444" + }, + "Innova Business Park": { + "Contributor": "ImBenji", + "Location": "51.6768385, -0.0221269" + }, + "Brimsdown, Suez Road": { + "Contributor": "ImBenji", + "Location": "51.6526403, -0.029266" + }, + "Bexley Village": { + "Contributor": "ImBenji", + "Location": "51.439933, 0.154327" + }, + "Wimbledon Stadium": { + "Contributor": "ImBenji", + "Location": "51.41833889999999, -0.2206288" + }, + "Brentwood": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Gallows Corner, Tesco": { + "Contributor": "ImBenji", + "Location": "51.5922522, 0.219687" + }, + "Heath Park Estate": { + "Contributor": "ImBenji", + "Location": "51.5664718, 0.1367814" + }, + "Millbank": { + "Contributor": "ImBenji", + "Location": "51.4917605, -0.1298473" + }, + "Wansted Park": { + "Contributor": "ImBenji", + "Location": "51.568725, 0.0433573" + }, + "Wilmington Schools": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Townley Grammar School": { + "Contributor": "ImBenji", + "Location": "51.4505566, 0.1410445" + }, + "Burnt Oak Station": { + "Contributor": "ImBenji", + "Location": "51.6028241, -0.2640713" + }, + "Mill Hill County High School": { + "Contributor": "ImBenji", + "Location": "51.6301469, -0.2484735" + }, + "Totteridge & Whetstone Station": { + "Contributor": "ImBenji", + "Location": "51.63030699999999, -0.1782731" + }, + "Totteridge Academy": { + "Contributor": "ImBenji", + "Location": "51.6393804, -0.1997726" + }, + "Hillingdon Heath": { + "Contributor": "ImBenji", + "Location": "51.5302584, -0.4469482" + }, + "Hayes End, Angel Lane": { + "Contributor": "ImBenji", + "Location": "51.5257, -0.4357732" + }, + "Shenfield High School": { + "Contributor": "ImBenji", + "Location": "51.6383612, 0.3294556" + }, + "Harrodian School": { + "Contributor": "ImBenji", + "Location": "51.4817443, -0.2469094" + }, + "Wallington Grammar School": { + "Contributor": "ImBenji", + "Location": "51.3692254, -0.1488237" + }, + "Glenthorne School": { + "Contributor": "ImBenji", + "Location": "51.38058789999999, -0.2004546" + }, + "Avanti House School": { + "Contributor": "ImBenji", + "Location": "51.60847620000001, -0.3036894" + }, + "Crown Woods School": { + "Contributor": "ImBenji", + "Location": "51.4538453, 0.07588829999999999" + }, + "Crown Woods College": { + "Contributor": "ImBenji", + "Location": "51.4538453, 0.07588829999999999" + }, + "Wallington High School": { + "Contributor": "ImBenji", + "Location": "51.3692254, -0.1488237" + }, + "Henrietta Barnett School": { + "Contributor": "ImBenji", + "Location": "51.5812815, -0.1886809" + }, + "Grahame Park, Corner Mead": { + "Contributor": "ImBenji", + "Location": "51.6017283, -0.2444205" + }, + "Beddington Church": { + "Contributor": "ImBenji", + "Location": "51.3692339, -0.1270687" + }, + "St. Paul's School": { + "Contributor": "ImBenji", + "Location": "51.4884697, -0.2387089" + }, + "Kemnal Technology College": { + "Contributor": "ImBenji", + "Location": "51.4121053, 0.1104831" + }, + "Eltham College": { + "Contributor": "ImBenji", + "Location": "51.43804009999999, 0.038777" + }, + "Beaverwood School": { + "Contributor": "ImBenji", + "Location": "51.418709, 0.089561" + }, + "St John Bosco College": { + "Contributor": "ImBenji", + "Location": "51.4750653, -0.1714743" + }, + "Bentley Wood School": { + "Contributor": "ImBenji", + "Location": "51.6173654, -0.3323515" + }, + "Teddington Schools": { + "Contributor": "ImBenji", + "Location": "51.423413, -0.3112775" + }, + "London Academy": { + "Contributor": "ImBenji", + "Location": "51.6227086, -0.2894634" + }, + "Campion School": { + "Contributor": "ImBenji", + "Location": "51.5813295, 0.2311271" + }, + "Emerson Park School": { + "Contributor": "ImBenji", + "Location": "51.5692864, 0.2427946" + }, + "Bower Park School": { + "Contributor": "ImBenji", + "Location": "51.6054757, 0.1802434" + }, + "Bancroft's School": { + "Contributor": "ImBenji", + "Location": "51.6196768, 0.0266543" + }, + "Surbiton Station": { + "Contributor": "ImBenji", + "Location": "51.39255679999999, -0.3044465" + }, + "Holy Cross School": { + "Contributor": "ImBenji", + "Location": "51.3979182, -0.2616608" + }, + "Purley, Harris Academy": { + "Contributor": "ImBenji", + "Location": "51.353583, -0.1092537" + }, + "Charles Darwin School": { + "Contributor": "ImBenji", + "Location": "51.3161242, 0.0438115" + }, + "New Addington, Homestead Way": { + "Contributor": "ImBenji", + "Location": "51.3353819, -0.010778" + }, + "West Hatch School": { + "Contributor": "ImBenji", + "Location": "51.6124802, 0.0629344" + }, + "Erith Station": { + "Contributor": "ImBenji", + "Location": "51.4816474, 0.1753649" + }, + "Cleeve Park School": { + "Contributor": "ImBenji", + "Location": "51.4289531, 0.1195632" + }, + "Tiffin Girls' School": { + "Contributor": "ImBenji", + "Location": "51.4251983, -0.3030517" + }, + "Chessington South": { + "Contributor": "ImBenji", + "Location": "51.3565368, -0.3080208" + }, + "Woodbridge School": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "St Edward's School": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Dagenham Park School": { + "Contributor": "ImBenji", + "Location": "51.5402631, 0.1482103" + }, + "Burntwood School": { + "Contributor": "ImBenji", + "Location": "51.4383279, -0.1797715" + }, + "Hayes, Bourne Avenue": { + "Contributor": "ImBenji", + "Location": "51.5026304, -0.438024" + }, + "Bishop Ramsey School": { + "Contributor": "ImBenji", + "Location": "51.5792096, -0.4080951" + }, + "Ickenham": { + "Contributor": "ImBenji", + "Location": "51.563966, -0.442299" + }, + "Riverhill": { + "Contributor": "ImBenji", + "Location": "51.3768604, -0.2692885" + }, + "Kingston, Sainsburys": { + "Contributor": "ImBenji", + "Location": "51.4098232, -0.303191" + }, + "Whitton, Gladstone Avenue": { + "Contributor": "ImBenji", + "Location": "51.5961721, -0.1019864" + }, + "Stockley Business Park": { + "Contributor": "ImBenji", + "Location": "51.5979514, -0.0744009" + }, + "East Wickham": { + "Contributor": "ImBenji", + "Location": "51.474263, 0.112381" + }, + "Joydens Wood": { + "Contributor": "ImBenji", + "Location": "51.4269166, 0.1566507" + }, + "St. Mary Cray": { + "Contributor": "ImBenji", + "Location": "51.385993, 0.113061" + }, + "Orpington": { + "Contributor": "ImBenji", + "Location": "51.374843, 0.09421399999999999" + }, + "Horn Park": { + "Contributor": "ImBenji", + "Location": "51.45056599999999, 0.029106" + }, + "Falconwood": { + "Contributor": "ImBenji", + "Location": "51.4585461, 0.0946553" + }, + "Eltham High Street": { + "Contributor": "ImBenji", + "Location": "51.4507726, 0.0561761" + }, + "Earl's Court, Tesco": { + "Contributor": "ImBenji", + "Location": "51.490331, -0.1958417" + }, + "Berkeley Square": { + "Contributor": "ImBenji", + "Location": "51.5098475, -0.1453298" + }, + "Chelsea Harbour": { + "Contributor": "ImBenji", + "Location": "51.476111, -0.1826413" + }, + "St George's Circus": { + "Contributor": "ImBenji", + "Location": "51.4984377, -0.1045086" + }, + "Tate Britain": { + "Contributor": "ImBenji", + "Location": "51.4910621, -0.1277886" + }, + "Pimlico Station": { + "Contributor": "ImBenji", + "Location": "51.4891, -0.13374" + }, + "Victoria Coach Station": { + "Contributor": "ImBenji", + "Location": "51.49554149999999, -0.1435602" + }, + "Finchley Road Station": { + "Contributor": "ImBenji", + "Location": "51.5469174, -0.179986" + }, + "Bethnal Green, Bonner Road": { + "Contributor": "ImBenji", + "Location": "51.5320692, -0.0509221" + }, + "Leamouth": { + "Contributor": "ImBenji", + "Location": "51.512039, 0.001899" + }, + "Cubitt Town": { + "Contributor": "ImBenji", + "Location": "51.497186, -0.009047" + }, + "Bromley-By-Bow": { + "Contributor": "ImBenji", + "Location": "51.5278208, -0.0128373" + }, + "Drayton Green": { + "Contributor": "ImBenji", + "Location": "51.515364, -0.3257264" + }, + "West Ealing, Sutherland Avenue": { + "Contributor": "ImBenji", + "Location": "51.5165248, -0.3208564" + }, + "Brentford, Commerce Road": { + "Contributor": "ImBenji", + "Location": "51.4836006, -0.313864" + }, + "West Ealing": { + "Contributor": "ImBenji", + "Location": "51.5728525, 0.0176348" + }, + "Southall, Toplocks Estate": { + "Contributor": "ImBenji", + "Location": "51.511073, -0.377232" + }, + "Perivale, Medway Estate": { + "Contributor": "ImBenji", + "Location": "51.5364116, -0.3327652" + }, + "Perivale Tesco": { + "Contributor": "ImBenji", + "Location": "51.532222, -0.324477" + }, + "Glencoe Road, Tesco": { + "Contributor": "ImBenji", + "Location": "51.524364, -0.3880442" + }, + "Hayes, Grapes": { + "Contributor": "ImBenji", + "Location": "51.5255068, 0.05870810000000001" + }, + "Ruislip Gardens": { + "Contributor": "ImBenji", + "Location": "51.5518094, 0.0293728" + }, + "West Ealing Broadway": { + "Contributor": "ImBenji", + "Location": "51.514042, -0.3015746" + }, + "Hounslow Bell Corner": { + "Contributor": "ImBenji", + "Location": "51.468569, -0.3666325" + }, + "Brentford Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.4845841, -0.3155602000000001" + }, + "West Ealing,Scotch Common": { + "Contributor": "ImBenji", + "Location": "51.5248572, -0.3210551" + }, + "Yeading, Barnhill Estate": { + "Contributor": "ImBenji", + "Location": "51.52291, -0.3880247000000001" + }, + "Northolt, Islip Manor": { + "Contributor": "ImBenji", + "Location": "51.5473716, -0.379684" + }, + "Smiths Farm": { + "Contributor": "ImBenji", + "Location": "51.5649619, -0.0146911" + }, + "Ealing, Warwick Dene": { + "Contributor": "ImBenji", + "Location": "51.507913, -0.2956596" + }, + "River Road, Waverley Gardens": { + "Contributor": "ImBenji", + "Location": "51.5343317, -0.2891878" + }, + "Barking Riverside": { + "Contributor": "ImBenji", + "Location": "51.519303731473705, 0.11590257503355633" + }, + "Dagenham Dock": { + "Contributor": "ImBenji", + "Location": "51.5402631, 0.1482103" + }, + "Goodmayes, Goodmayes Lane": { + "Contributor": "ImBenji", + "Location": "51.5620979, 0.1095257" + }, + "Creekmouth": { + "Contributor": "ImBenji", + "Location": "51.517381, 0.102234" + }, + "Springfield Hospital": { + "Contributor": "ImBenji", + "Location": "51.4385846, -0.1718014" + }, + "Battersea, Shaftesbury Estate": { + "Contributor": "ImBenji", + "Location": "51.47220069999999, -0.165547" + }, + "Wealdstone": { + "Contributor": "ImBenji", + "Location": "51.5960603, -0.3334858" + }, + "Stanmore Church": { + "Contributor": "ImBenji", + "Location": "51.6164857, -0.3153133" + }, + "Northwood Hills, St Vincent's": { + "Contributor": "ImBenji", + "Location": "51.6004243, -0.4098652" + }, + "Hatch End": { + "Contributor": "ImBenji", + "Location": "51.6104236, -0.370708" + }, + "Courtenay Avenue": { + "Contributor": "ImBenji", + "Location": "51.5747587, -0.1682409" + }, + "Sudbury Hill": { + "Contributor": "ImBenji", + "Location": "51.5539267, -0.337085" + }, + "Harrow Weald, Long Elmes": { + "Contributor": "ImBenji", + "Location": "51.6044001, -0.3401289" + }, + "Hounslow, Civic Centre": { + "Contributor": "ImBenji", + "Location": "51.4737233, -0.36638" + }, + "Whitton Dene": { + "Contributor": "ImBenji", + "Location": "51.4576828, -0.3517485" + }, + "Hospital Bridge": { + "Contributor": "ImBenji", + "Location": "51.44267, -0.3652385" + }, + "Butts Farm": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Hanworth, Sunbury Way": { + "Contributor": "ImBenji", + "Location": "51.4311625, -0.4003865" + }, + "Feltham, Sparrow Farm": { + "Contributor": "ImBenji", + "Location": "51.4525059, -0.3975703" + }, + "Bedfont Lakes": { + "Contributor": "ImBenji", + "Location": "51.4469846, -0.4441649" + }, + "Osterly": { + "Contributor": "ImBenji", + "Location": "51.4819722, -0.3494553" + }, + "Osterley Tesco": { + "Contributor": "ImBenji", + "Location": "51.48580430000001, -0.3301428" + }, + "Hounslow, Blenheim Centre": { + "Contributor": "ImBenji", + "Location": "51.4706766, -0.3621538" + }, + "Isleworth, Fire Station": { + "Contributor": "ImBenji", + "Location": "51.467121, -0.329003" + }, + "St Margarets, Chertsey Road": { + "Contributor": "ImBenji", + "Location": "51.4567895, -0.3273389" + }, + "Osterley Station": { + "Contributor": "ImBenji", + "Location": "51.48103039999999, -0.3519527" + }, + "Great West Road, Syon Lane": { + "Contributor": "ImBenji", + "Location": "51.4832374, -0.326929" + }, + "Hayes, Church End": { + "Contributor": "ImBenji", + "Location": "51.516758, -0.436786" + }, + "New Malden": { + "Contributor": "ImBenji", + "Location": "51.40066299999999, -0.259263" + }, + "Malden Manor Station": { + "Contributor": "ImBenji", + "Location": "51.38473639999999, -0.2611812000000001" + }, + "Berrylands": { + "Contributor": "ImBenji", + "Location": "51.3922147, -0.2932239" + }, + "Tolworth Broadway": { + "Contributor": "ImBenji", + "Location": "51.3806898, -0.2823801" + }, + "Chessington, Industrial Estate": { + "Contributor": "ImBenji", + "Location": "51.3681597, -0.2865138" + }, + "Kingston Vale, Robin Hood Way": { + "Contributor": "ImBenji", + "Location": "51.4253374, -0.2551612" + }, + "Claygate": { + "Contributor": "ImBenji", + "Location": "51.360219, -0.340969" + }, + "Esher, Trinity School": { + "Contributor": "ImBenji", + "Location": "51.369487, -0.365927" + }, + "Esher": { + "Contributor": "ImBenji", + "Location": "51.369487, -0.365927" + }, + "Mansfield Park": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Forest Hill, Horniman Museum": { + "Contributor": "ImBenji", + "Location": "51.4410762, -0.0612925" + }, + "Dulwich Village": { + "Contributor": "ImBenji", + "Location": "51.4506584, -0.0855299" + }, + "North Dulwich": { + "Contributor": "ImBenji", + "Location": "51.4433257, -0.0675547" + }, + "Loughborough Junction": { + "Contributor": "ImBenji", + "Location": "51.4660641, -0.102184" + }, + "Patmore Estate": { + "Contributor": "ImBenji", + "Location": "51.4763262, -0.1396515" + }, + "South Bermondsey": { + "Contributor": "ImBenji", + "Location": "51.48697379999999, -0.0537171" + }, + "Brenchley Gardens": { + "Contributor": "ImBenji", + "Location": "51.4530377, -0.0506801" + }, + "St Paul's Cray": { + "Contributor": "ImBenji", + "Location": "51.396136, 0.1103591" + }, + "St Mary Cray": { + "Contributor": "ImBenji", + "Location": "51.385993, 0.113061" + }, + "Chelsfield Station": { + "Contributor": "ImBenji", + "Location": "51.35728049999999, 0.1063505" + }, + "Pauls Cray Hill": { + "Contributor": "ImBenji", + "Location": "51.385307, 0.114227" + }, + "Cockmannings": { + "Contributor": "ImBenji", + "Location": "51.3819698, 0.1233517" + }, + "Knockholt": { + "Contributor": "ImBenji", + "Location": "51.311086, 0.1062" + }, + "Bickley, Aquila": { + "Contributor": "ImBenji", + "Location": "51.38994700000001, 0.0492904" + }, + "Chelsfield Village": { + "Contributor": "ImBenji", + "Location": "51.3562794, 0.1254019" + }, + "Orpington Station.": { + "Contributor": "ImBenji", + "Location": "51.37329, 0.08911999999999999" + }, + "Kew Retail Park": { + "Contributor": "ImBenji", + "Location": "51.4778962, -0.2791853" + }, + "Hampton Church": { + "Contributor": "ImBenji", + "Location": "51.4133939, -0.366712" + }, + "Hampton, The Avenue": { + "Contributor": "ImBenji", + "Location": "51.4133939, -0.366712" + }, + "Fulwell, Cock & Bull": { + "Contributor": "ImBenji", + "Location": "51.4331018, -0.3520137" + }, + "Woolwich Pier": { + "Contributor": "ImBenji", + "Location": "51.4894752, 0.06758829999999999" + }, + "North Greenwich Pier": { + "Contributor": "ImBenji", + "Location": "51.5022201, 0.0091621" + }, + "Westminster Pier": { + "Contributor": "ImBenji", + "Location": "51.4974948, -0.1356583" + }, + "London Bridge Pier": { + "Contributor": "ImBenji", + "Location": "51.4966529, -0.0299834" + }, + "Bankside": { + "Contributor": "ImBenji", + "Location": "51.5081373, -0.0951836" + }, + "Hilton Pier": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Woolwich Arsenal": { + "Contributor": "ImBenji", + "Location": "51.4894752, 0.06758829999999999" + }, + "Putney": { + "Contributor": "ImBenji", + "Location": "51.4596431, -0.2141257" + }, + "Plantation Wharf": { + "Contributor": "ImBenji", + "Location": "51.46679899999999, -0.1810273" + }, + "Tower Pier": { + "Contributor": "ImBenji", + "Location": "51.5073034, -0.07875549999999999" + }, + "Greenwich Pier": { + "Contributor": "ImBenji", + "Location": "51.4933675, 0.0098214" + }, + "St. Katherine's Pier": { + "Contributor": "ImBenji", + "Location": "51.5064168, -0.0718167" + }, + "Bankside Pier": { + "Contributor": "ImBenji", + "Location": "51.5085251, -0.0962555" + }, + "Embankment": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "St George Wharf": { + "Contributor": "ImBenji", + "Location": "51.4848424, -0.1274566" + }, + "Covent Garden": { + "Contributor": "ImBenji", + "Location": "51.5116571, -0.1240436" + }, + "St Helier Hospital": { + "Contributor": "ImBenji", + "Location": "51.3805311, -0.18442" + }, + "Middleton Circle": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Lavender Fields": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Sutton Hospital": { + "Contributor": "ImBenji", + "Location": "51.3614279, -0.193961" + }, + "North Cheam, Sainsbury's": { + "Contributor": "ImBenji", + "Location": "51.3723635, -0.2259143" + }, + "Worchester Park": { + "Contributor": "ImBenji", + "Location": "51.38029, -0.24468" + }, + "Malden Manor": { + "Contributor": "ImBenji", + "Location": "51.40066299999999, -0.259263" + }, + "Hillingdon Hospital": { + "Contributor": "ImBenji", + "Location": "51.5252078, -0.4612385" + }, + "Brunel University": { + "Contributor": "ImBenji", + "Location": "51.5321389, -0.4727493" + }, + "Hillingdon Station": { + "Contributor": "ImBenji", + "Location": "51.5537882, -0.4499684" + }, + "Uxbridge, Lees Road": { + "Contributor": "ImBenji", + "Location": "51.5285284, -0.4494669" + }, + "Hayes, Prologis Park": { + "Contributor": "ImBenji", + "Location": "51.516758, -0.436786" + }, + "Hayes, Station Road": { + "Contributor": "ImBenji", + "Location": "51.501625, -0.4236355" + }, + "Hayes, Barra Hall Circus": { + "Contributor": "ImBenji", + "Location": "51.516758, -0.436786" + }, + "Hillingdon, Kingston Lane": { + "Contributor": "ImBenji", + "Location": "51.532082, -0.4665415" + }, + "Stockley Estate": { + "Contributor": "ImBenji", + "Location": "51.5053199, -0.4501722" + }, + "Hillingdon, Pield Heath Road": { + "Contributor": "ImBenji", + "Location": "51.5266189, -0.4608675" + }, + "Hayes, Sainsbury's": { + "Contributor": "ImBenji", + "Location": "51.516758, -0.436786" + }, + "Harefield Hospital": { + "Contributor": "ImBenji", + "Location": "51.6067699, -0.4827023999999999" + }, + "Ickenham High Road": { + "Contributor": "ImBenji", + "Location": "51.5670568, -0.4417871" + }, + "Ruislip, Heathfield Rise": { + "Contributor": "ImBenji", + "Location": "51.5764892, -0.4378024" + }, + "Baker Street": { + "Contributor": "ImBenji", + "Location": "51.520568, -0.1567804" + }, + "Camden Road": { + "Contributor": "ImBenji", + "Location": "51.5479475, -0.1303297" + }, + "Gunnersbury": { + "Contributor": "ImBenji", + "Location": "51.49335199999999, -0.278887" + }, + "High Barnet": { + "Contributor": "ImBenji", + "Location": "51.6569225, -0.1949252" + }, + "Acton": { + "Contributor": "ImBenji", + "Location": "51.50837199999999, -0.27444" + }, + "Willesden Green": { + "Contributor": "ImBenji", + "Location": "51.5476301, -0.2369246" + }, + "Gospel Oak": { + "Contributor": "ImBenji", + "Location": "51.5563205, -0.1492765" + }, + "Hackney Downs": { + "Contributor": "ImBenji", + "Location": "51.5553095, -0.06908249999999999" + }, + "Snaresbrook": { + "Contributor": "ImBenji", + "Location": "51.58567859999999, 0.0084531" + }, + "Leyton": { + "Contributor": "ImBenji", + "Location": "51.4964278, -0.2085211" + }, + "Harrow-on-the-Hill": { + "Contributor": "ImBenji", + "Location": "51.5706321, -0.3396363" + }, + "Romford": { + "Contributor": "ImBenji", + "Location": "51.577076, 0.178319" + }, + "Enfield Town": { + "Contributor": "ImBenji", + "Location": "51.6522994, -0.0807119" + }, + "Cheshunt": { + "Contributor": "ImBenji", + "Location": "51.70264050000001, -0.0343787" + }, + "Dalston Kingsland": { + "Contributor": "ImBenji", + "Location": "51.5481846, -0.05471409999999999" + }, + "Osterley": { + "Contributor": "ImBenji", + "Location": "51.4819722, -0.3494553" + }, + "Boston Manor": { + "Contributor": "ImBenji", + "Location": "51.495767, -0.3247429000000001" + }, + "South Wimbledon": { + "Contributor": "ImBenji", + "Location": "51.41570919999999, -0.192514" + }, + "All Saints": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Finchley Road": { + "Contributor": "ImBenji", + "Location": "51.5611866, -0.197096" + }, + "Finsbury Park": { + "Contributor": "ImBenji", + "Location": "51.56457839999999, -0.1047257" + }, + "Chingford": { + "Contributor": "ImBenji", + "Location": "51.6320667, 0.007362700000000001" + }, + "White Hart Lane Station": { + "Contributor": "ImBenji", + "Location": "51.6061468, -0.0884635" + }, + "White Hart Lane, Fenton Road": { + "Contributor": "ImBenji", + "Location": "51.6067192, -0.0913817" + }, + "Oakthorpe Park": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Wood Green, Wolves Lane": { + "Contributor": "ImBenji", + "Location": "51.6058398, -0.1036382" + }, + "Bruce Grove": { + "Contributor": "ImBenji", + "Location": "51.596249, -0.0723585" + }, + "Tottenham Hale, Ferry Lane": { + "Contributor": "ImBenji", + "Location": "51.5880499, -0.0605514" + }, + "Harringay Station": { + "Contributor": "ImBenji", + "Location": "51.5773498, -0.1050857" + }, + "Harringay, Superstores": { + "Contributor": "ImBenji", + "Location": "51.582426, -0.09966" + }, + "Edmonton, Cambridge": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Lee Valley Leisure Complex": { + "Contributor": "ImBenji", + "Location": "51.6318241, -0.0376722" + }, + "Highlands Village": { + "Contributor": "ImBenji", + "Location": "51.6464013, -0.1111452" + }, + "Crews Hill": { + "Contributor": "ImBenji", + "Location": "51.6843047, -0.1105717" + }, + "Enfield Town, Cecil Road": { + "Contributor": "ImBenji", + "Location": "51.6507162, -0.0802953" + }, + "Chingford Hall Estate": { + "Contributor": "ImBenji", + "Location": "51.609421, -0.025236" + }, + "Walthamstow, Coppermill Lane": { + "Contributor": "ImBenji", + "Location": "51.57971212736639, -0.04181739859525259" + }, + "Green Man Roundabout": { + "Contributor": "ImBenji", + "Location": "51.5705591, 0.0145584" + }, + "Leyton, Superstores": { + "Contributor": "ImBenji", + "Location": "51.5558965, -0.0093311" + }, + "Higham Hill, Cogan Avenue": { + "Contributor": "ImBenji", + "Location": "51.6012336, -0.0363719" + }, + "Forest Road, Palmerston Road": { + "Contributor": "ImBenji", + "Location": "51.588898351903815, -0.030623848707334166" + }, + "Leyton, Town Hall": { + "Contributor": "ImBenji", + "Location": "51.5702225, -0.0146938" + }, + "Spitalfields Market": { + "Contributor": "ImBenji", + "Location": "51.5197441, -0.07606879999999999" + }, + "Hackney Town Hall": { + "Contributor": "ImBenji", + "Location": "51.54507210000001, -0.0563459" + }, + "Walthamstow, Wood Street": { + "Contributor": "ImBenji", + "Location": "51.5864747, -0.0026968" + }, + "Walthamstow, Argall Avenue": { + "Contributor": "ImBenji", + "Location": "51.56983981605058, -0.039797757902795536" + }, + "Wanstead, Centre Road": { + "Contributor": "ImBenji", + "Location": "51.5596482, 0.0253062" + }, + "Wallington Green": { + "Contributor": "ImBenji", + "Location": "51.3669885, -0.1543945" + }, + "West Croydon, Limited Stop": { + "Contributor": "ImBenji", + "Location": "51.3769529, -0.0956895" + }, + "Russell Square, Limited Stop": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Bow Interchange": { + "Contributor": "ImBenji", + "Location": "51.52974, -0.0140839" + }, + "Northfields": { + "Contributor": "ImBenji", + "Location": "51.5041461, -0.3186474" + }, + "Upton Park": { + "Contributor": "ImBenji", + "Location": "51.53471750000001, 0.0337596" + }, + "Harrow Weald, Bus Garage": { + "Contributor": "ImBenji", + "Location": "51.6064297, -0.3405434" + }, + "Harrow Road, Police Station": { + "Contributor": "ImBenji", + "Location": "51.552225, -0.3025793" + }, + "South Hampstead Stn": { + "Contributor": "ImBenji", + "Location": "51.5412969, -0.1790611" + }, + "Kensington, Commonwealth Institute": { + "Contributor": "ImBenji", + "Location": "51.5010095, -0.1932794" + }, + "Earls Court Station": { + "Contributor": "ImBenji", + "Location": "51.4915677, -0.1939564" + }, + "Shooters Hill Road, Sun-In-The-Sands": { + "Contributor": "ImBenji", + "Location": "51.4745909, 0.0240901" + }, + "Wood Green Station": { + "Contributor": "ImBenji", + "Location": "51.5971722, -0.1098021" + }, + "/": { + "Contributor": "ImBenji", + "Location": "51.4309209, -0.0936496" + }, + "Hither Green Station": { + "Contributor": "ImBenji", + "Location": "51.4519061, -0.0007435" + }, + "Deptford": { + "Contributor": "ImBenji", + "Location": "51.4807988, -0.0231099" + }, + "Lewisham": { + "Contributor": "ImBenji", + "Location": "51.46115090000001, -0.0073177" + }, + "St. Mary Cray Station": { + "Contributor": "ImBenji", + "Location": "51.3957762, 0.1071945" + }, + "Leyton Downsell Road": { + "Contributor": "ImBenji", + "Location": "51.5533905, -0.0020391" + }, + "Limehouse": { + "Contributor": "ImBenji", + "Location": "51.5110598, -0.0366652" + } +} diff --git a/lib/backend/live_information.dart b/lib/backend/live_information.dart index e919dc9..dab4b2c 100644 --- a/lib/backend/live_information.dart +++ b/lib/backend/live_information.dart @@ -39,7 +39,7 @@ class LiveInformation { // By default, load the bus sequences from the assets print("Loading bus sequences from assets"); busSequences = BusSequences.fromCSV( - await rootBundle.loadString("assets/datasets/bus-blinds.csv"), + await rootBundle.loadString("assets/datasets/destinations.json"), await rootBundle.loadString("assets/datasets/bus-sequences.csv") ); print("Loaded bus sequences from assets"); @@ -49,7 +49,7 @@ class LiveInformation { http.Response response = await http.get(Uri.parse('https://tfl.gov.uk/bus-sequences.csv')); busSequences = BusSequences.fromCSV( - await rootBundle.loadString("assets/datasets/bus-blinds.csv"), + await rootBundle.loadString("assets/datasets/destinations.json"), response.body ); @@ -294,7 +294,7 @@ class LiveInformation { print("Created room with code $roomCode"); } - Future JoinRoom(String roomCode) async { + Future joinRoom(String roomCode) async { print("Joining room with code $roomCode"); // Disable host mode @@ -375,6 +375,45 @@ class LiveInformation { print("Joined room with code $roomCode"); } + Future leaveRoom() async { + + if (roomCode == null) { + throw Exception("Not in a room"); + } + + if (isHost) { + // Access the database + final client = auth.client; + final databases = appwrite.Databases(client); + + // Remove any existing documents + final existingDocuments = await databases.listDocuments( + databaseId: "6633e85400036415ab0f", + collectionId: "6633e85d0020f52f3771", + queries: [ + appwrite.Query.search("SessionID", roomCode!) + ] + ); + for (var document in existingDocuments.documents) { + await databases.deleteDocument( + databaseId: "6633e85400036415ab0f", + collectionId: "6633e85d0020f52f3771", + documentId: document.$id + ); + } + } + + roomCode = null; + roomDocumentID = null; + isHost = false; + + _keepAliveConnection?.close(); + _keepAliveConnection = null; + + // Reset stuff + setRouteVariant(null); + } + String? lastCommand; Future ServerListener(appwrite.RealtimeMessage response) async { print("Session update"); diff --git a/lib/backend/modules/announcement.dart b/lib/backend/modules/announcement.dart index fa47347..2fb50f8 100644 --- a/lib/backend/modules/announcement.dart +++ b/lib/backend/modules/announcement.dart @@ -175,7 +175,7 @@ class AnnouncementModule extends InfoModule { bool sendToServer = true }) async { - if (sendToServer) { + if (sendToServer && _shouldSendToServer()) { scheduledTime ??= liveInformation.syncedTimeModule.Now().add(Duration(seconds: defaultAnnouncementDelay)); @@ -230,7 +230,7 @@ class AnnouncementModule extends InfoModule { bool sendToServer = true }) { - if (sendToServer) { + if (sendToServer && _shouldSendToServer()) { scheduledTime ??= liveInformation.syncedTimeModule.Now().add(Duration(seconds: defaultAnnouncementDelay)); @@ -260,7 +260,7 @@ class AnnouncementModule extends InfoModule { bool sendToServer = true }) async { - if (sendToServer) { + if (sendToServer && _shouldSendToServer()) { scheduledTime ??= liveInformation.syncedTimeModule.Now().add(Duration(seconds: defaultAnnouncementDelay)); @@ -324,6 +324,14 @@ class AnnouncementModule extends InfoModule { queue.add(announcement); } + // Server check + bool _shouldSendToServer() { + bool condition = liveInformation.roomCode != null; + + print("Should send to server? " + (condition.toString())); + return condition; + } + // Constants final List manualAnnouncements = [ diff --git a/lib/remaster/dashboard.dart b/lib/remaster/dashboard.dart index a1c9b2e..6e39ed0 100644 --- a/lib/remaster/dashboard.dart +++ b/lib/remaster/dashboard.dart @@ -231,7 +231,7 @@ class RoutePage extends StatelessWidget { ], ), - + if (!kIsWeb) Text( "Nearby routes", style: ShadTheme.of(context).textTheme.h4, @@ -315,23 +315,23 @@ class _RouteSearchState extends State { return Expanded( child: Column( - + children: [ - + ShadInput( placeholder: const Text("Search for a route..."), controller: controller, onChanged: (value) { setState(() { - + }); }, ), - + const SizedBox( height: 4, ), - + Expanded( child: Scrollbar( interactive: true, @@ -347,7 +347,7 @@ class _RouteSearchState extends State { ), ), ) - + ], ), ); @@ -649,11 +649,23 @@ class _dash extends StatelessWidget { ], ), ), - ) + ), - // SizedBox( - // height: 8, - // ), + SizedBox( + height: 8, + ), + + Container( + padding: const EdgeInsets.all(8), + child: ShadButton( + text: const Text("Fullscreen display"), + onPressed: () { + Navigator.pushNamed(context, "/display"); + }, + icon: const Icon(Icons.fullscreen), + width: double.infinity, + ), + ), // // ShadCard( // title: Text("Stop announcements"), @@ -961,199 +973,83 @@ class _MultiModeEnrouteState extends State { LiveInformation liveInformation = LiveInformation(); - return Scaffold( + return PopScope( + canPop: false, + onPopInvoked: (didPop) { - body: Column( - children: [ + if (didPop){ + print("Compensating for pop"); + liveInformation.leaveRoom(); + return; + } - Container( - padding: const EdgeInsets.all(16), - - height: 200, - - child: ShadCard( - title: liveInformation.isHost ? const Text("Hosting group") : const Text("Joined group"), - border: Border.all( - color: Colors.amber, - width: 1 - ), - padding: const EdgeInsets.all(16), - width: double.infinity, - description: liveInformation.isHost ? const Text( - "You are hosting a group. \nShare the room code with others to join" - ) : const Text( - "You have joined a group." - ), - content: Column( - children: [ - const SizedBox( - height: 4, - ), - - FutureBuilder( - future: Future.delayed(const Duration(seconds: 1)), - builder: (context, snapshot) { - return Row( - children: [ - Expanded( - child: ShadButton( - text: Text( - liveInformation.roomCode!, - ), - - icon: const Icon(Icons.copy), - padding: const EdgeInsets.all(8), - onPressed: () { - Clipboard.setData(ClipboardData(text: liveInformation.roomCode!)); - ShadToaster.of(context).show( - const ShadToast( - title: Text("Copied to clipboard"), - description: Text("Room code copied to clipboard"), - duration: Duration(seconds: 5), - ) - ); - }, - ), - ), - ShadButton( - icon: const Icon(Icons.qr_code), - onPressed: () { - showShadDialog( - context: context, - builder: (context) { - return ShadDialog( - title: const Text("QR Code"), - content: Container( - - width: 200, - height: 225, - - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - QrImageView( - data: liveInformation.roomCode!, - size: 200, - backgroundColor: Colors.white, - ), - - const SizedBox( - height: 8, - ), - - Text("Scan QR code to join the group") - - ], - ), - ), - actions: [ - ShadButton( - text: const Text("Close"), - onPressed: () { - Navigator.pop(context); - }, - ) - ], - ); - } - ); - }, - ) - ], - ); + // return; + // Ask the user to confirm if they want to leave the group + showShadDialog( + context: context, + builder: (context) { + return ShadDialog( + title: const Text("Leave group?"), + content: const Text("Are you sure you want to leave the group?"), + actions: [ + ShadButton( + text: const Text("Leave"), + onPressed: () { + liveInformation.leaveRoom(); + Navigator.pop(context); + Navigator.pop(context); }, ), + ShadButton( + text: const Text("Cancel"), + onPressed: () { + Navigator.pop(context); + }, + ) ], + ); + } + ); + + }, + + child: Scaffold( + + body: Column( + children: [ + const Divider( + height: 1, + ), + + Container( + padding: EdgeInsets.all(8), + child: ibus_display() + ), + + const Divider( + height: 1, + ), + + Container( + padding: EdgeInsets.all(8), + child: Text( + "* Swipe left and right below for more options!", + textAlign: TextAlign.center, ), ), - ), - const Divider( - height: 1, - ), - - Container( - padding: EdgeInsets.all(8), - child: ibus_display() - ), - - const Divider( - height: 1, - ), - - Container( - padding: EdgeInsets.all(8), - child: Text( - "* Swipe left and right below for more options!", - textAlign: TextAlign.center, + const Divider( + height: 1, ), - ), - const Divider( - height: 1, - ), + SizedBox( + height: 16, + ), - SizedBox( - height: 16, - ), - - Expanded( - child: FlutterCarousel( - items: [ - Container( - decoration: BoxDecoration( - border: Border.all( - color: Colors.white, - width: 1 - ), - borderRadius: BorderRadius.circular(8) - ), - padding: const EdgeInsets.all(4), - margin: const EdgeInsets.only( - left: 16, - right: 16, - ), - width: double.infinity, - - child: Column( - - crossAxisAlignment: CrossAxisAlignment.start, - - children: [ - - Container( - padding: const EdgeInsets.only( - top: 4, - left: 8, - right: 8, - bottom: 4 - ), - child: Text( - "Nearby routes", - style: ShadTheme.of(context).textTheme.h4, - ), - ), - if (!kIsWeb) - Expanded( - child: Scrollbar( - interactive: true, - radius: const Radius.circular(8), - thickness: 8, - thumbVisibility: true, - child: GridView.count( - crossAxisCount: 3, - children: [ - ..._getNearbyRoutes(multiMode: true) - ], - shrinkWrap: true, - ), - ), - ) - - ], - ) - ), - Container( + Expanded( + child: FlutterCarousel( + items: [ + Container( decoration: BoxDecoration( border: Border.all( color: Colors.white, @@ -1166,160 +1062,321 @@ class _MultiModeEnrouteState extends State { left: 16, right: 16, ), + width: double.infinity, - child: Expanded(child: RouteSearch(multiMode: true,)) - ), - Container( - - decoration: BoxDecoration( - border: Border.all( - width: 1, - color: Colors.white - ), - borderRadius: BorderRadius.all(Radius.circular(8)) - ), - - margin: const EdgeInsets.only( - left: 16, - right: 16, - ), - - padding: EdgeInsets.all(8), - - child: SingleChildScrollView( child: Column( + + crossAxisAlignment: CrossAxisAlignment.start, + children: [ - EasyAnnouncementPicker( - announcements: LiveInformation().announcementModule.manualAnnouncements, - title: "Manual", - outlineColor: ShadTheme.of(context).colorScheme.secondary - ), - - if (liveInformation.getRouteVariant() != null) - SizedBox( - height: 16, + + if (!kIsWeb) + Container( + padding: const EdgeInsets.only( + top: 4, + left: 8, + right: 8, + bottom: 4 ), - - if (liveInformation.getRouteVariant() != null) - Container( - - child: StopAnnouncementPicker( - routeVariant: LiveInformation().getRouteVariant()!, - backgroundColor: Colors.transparent, - outlineColor: ShadTheme.of(context).colorScheme.secondary, - label: "Bus Stops", - ) + child: Text( + "Nearby routes", + style: ShadTheme.of(context).textTheme.h4, + ), + ), + if (!kIsWeb) + Expanded( + child: Scrollbar( + interactive: true, + radius: const Radius.circular(8), + thickness: 8, + thumbVisibility: true, + child: GridView.count( + crossAxisCount: 3, + children: [ + ..._getNearbyRoutes(multiMode: true) + ], + shrinkWrap: true, + ), + ), ) + ], + ) + ), + Container( + decoration: BoxDecoration( + border: Border.all( + color: Colors.white, + width: 1 + ), + borderRadius: BorderRadius.circular(8) + ), + padding: const EdgeInsets.all(4), + margin: const EdgeInsets.only( + left: 16, + right: 16, + ), + + child: Expanded(child: RouteSearch(multiMode: true,)) + ), + Container( + + decoration: BoxDecoration( + border: Border.all( + width: 1, + color: Colors.white + ), + borderRadius: BorderRadius.all(Radius.circular(8)) + ), + + margin: const EdgeInsets.only( + left: 16, + right: 16, + ), + + padding: EdgeInsets.all(8), + + child: SingleChildScrollView( + child: Column( + children: [ + EasyAnnouncementPicker( + announcements: LiveInformation().announcementModule.manualAnnouncements, + title: "Manual", + outlineColor: ShadTheme.of(context).colorScheme.secondary + ), + + if (liveInformation.getRouteVariant() != null) + SizedBox( + height: 16, + ), + + if (liveInformation.getRouteVariant() != null) + Container( + + child: StopAnnouncementPicker( + routeVariant: LiveInformation().getRouteVariant()!, + backgroundColor: Colors.transparent, + outlineColor: ShadTheme.of(context).colorScheme.secondary, + label: "Bus Stops", + ) + ) + ], + ), ), ), - ), - Container( - decoration: BoxDecoration( - color: Colors.transparent, - borderRadius: BorderRadius.circular(8), - border: Border.all( - color: ShadTheme.of(context).colorScheme.primary, - width: 1 - ) - ), - margin: const EdgeInsets.only( - left: 16, - right: 16, - ), - padding: const EdgeInsets.all(4), - child: Container( + Container( decoration: BoxDecoration( color: Colors.transparent, - borderRadius: BorderRadius.circular(4), + borderRadius: BorderRadius.circular(8), border: Border.all( color: ShadTheme.of(context).colorScheme.primary, width: 1 ) ), - child: Column( - children: [ + margin: const EdgeInsets.only( + left: 16, + right: 16, + ), + padding: const EdgeInsets.all(4), + child: Container( + decoration: BoxDecoration( + color: Colors.transparent, + borderRadius: BorderRadius.circular(4), + border: Border.all( + color: ShadTheme.of(context).colorScheme.primary, + width: 1 + ) + ), + child: Column( + children: [ + + if (!kIsWeb) + AnnouncementEntry( + label: "Display next stop", + index: 0, + outlineColor: ShadTheme.of(context).colorScheme.primary, + onPressed: () { + LiveInformation liveInformation = LiveInformation(); + TrackerModule trackerModule = liveInformation.trackerModule; + + BusRouteStop? stop = trackerModule.nearestStop; + + if (stop != null) { + liveInformation.announcementModule.queueAnnounceByAudioName(displayText: stop.formattedStopName); + } else { + ShadToaster.of(context).show( + const ShadToast( + title: Text("No bus stop found"), + description: Text("No bus stop found nearby"), + duration: Duration(seconds: 5), + ) + ); + } + }, + ), + + if (!kIsWeb) + Container( + height: 1, + color: ShadTheme.of(context).colorScheme.primary, + ), - if (!kIsWeb) AnnouncementEntry( - label: "Display next stop", - index: 0, + label: "Announce destination", + index: 1, outlineColor: ShadTheme.of(context).colorScheme.primary, onPressed: () { LiveInformation liveInformation = LiveInformation(); - TrackerModule trackerModule = liveInformation.trackerModule; - - BusRouteStop? stop = trackerModule.nearestStop; - - if (stop != null) { - liveInformation.announcementModule.queueAnnounceByAudioName(displayText: stop.formattedStopName); - } else { - ShadToaster.of(context).show( - const ShadToast( - title: Text("No bus stop found"), - description: Text("No bus stop found nearby"), - duration: Duration(seconds: 5), - ) - ); - } + liveInformation.announcementModule.queueAnnouncementByRouteVariant( + routeVariant: + liveInformation.getRouteVariant()! + ); }, ), - if (!kIsWeb) - Container( - height: 1, - color: ShadTheme.of(context).colorScheme.primary, - ), - - AnnouncementEntry( - label: "Announce destination", - index: 1, - outlineColor: ShadTheme.of(context).colorScheme.primary, - onPressed: () { - LiveInformation liveInformation = LiveInformation(); - liveInformation.announcementModule.queueAnnouncementByRouteVariant( - routeVariant: - liveInformation.getRouteVariant()! - ); - }, - ), - - Container( - height: 1, - color: ShadTheme.of(context).colorScheme.primary, - ), - ], + Container( + height: 1, + color: ShadTheme.of(context).colorScheme.primary, + ), + ], + ), ), ), + ], + options: CarouselOptions( + showIndicator: false, + viewportFraction: 1, + height: double.infinity, + enableInfiniteScroll: true ), - ], - options: CarouselOptions( - showIndicator: false, - viewportFraction: 1, - height: double.infinity, - enableInfiniteScroll: true ), ), - ), - Container( - padding: const EdgeInsets.all(8), - child: ShadButton( - text: const Text("Fullscreen display"), - onPressed: () { - Navigator.pushNamed(context, "/display"); - }, - icon: const Icon(Icons.fullscreen), - width: double.infinity, + Container( + padding: const EdgeInsets.all(8), + child: ShadButton( + text: const Text("Fullscreen display"), + onPressed: () { + Navigator.pushNamed(context, "/display"); + }, + icon: const Icon(Icons.fullscreen), + width: double.infinity, + ), + ), + const Divider( + height: 1, ), - ), - const Divider( - height: 1, - ), - NavigationBar() - ], - ), + Container( + padding: const EdgeInsets.all(16), + + // height: 200, + + child: ShadCard( + title: liveInformation.isHost ? const Text("Currently hosting group") : const Text("Successfully joined group"), + border: Border.all( + color: Colors.amber, + width: 1 + ), + padding: const EdgeInsets.all(16), + width: double.infinity, + description: liveInformation.isHost ? const Text( + "You are hosting a group. \nShare the room code with others to join" + ) : const Text( + "You have joined a group." + ), + content: Column( + children: [ + const SizedBox( + height: 4, + ), + + FutureBuilder( + future: Future.delayed(const Duration(seconds: 1)), + builder: (context, snapshot) { + return Row( + children: [ + Expanded( + child: ShadButton( + text: Text( + liveInformation.roomCode!, + ), + + icon: const Icon(Icons.copy), + padding: const EdgeInsets.all(8), + onPressed: () { + Clipboard.setData(ClipboardData(text: liveInformation.roomCode!)); + ShadToaster.of(context).show( + const ShadToast( + title: Text("Copied to clipboard"), + description: Text("Room code copied to clipboard"), + duration: Duration(seconds: 5), + ) + ); + }, + ), + ), + ShadButton( + icon: const Icon(Icons.qr_code), + onPressed: () { + showShadDialog( + context: context, + builder: (context) { + return ShadDialog( + title: const Text("QR Code"), + content: Container( + + width: 200, + height: 225, + + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + QrImageView( + data: liveInformation.roomCode!, + size: 200, + backgroundColor: Colors.white, + ), + + const SizedBox( + height: 8, + ), + + Text("Scan QR code to join the group") + + ], + ), + ), + actions: [ + ShadButton( + text: const Text("Close"), + onPressed: () { + Navigator.pop(context); + }, + ) + ], + ); + } + ); + }, + ) + ], + ); + }, + ), + ], + ), + ), + ), + + const Divider( + height: 1, + ), + NavigationBar() + ], + ), + + ), ); } @@ -1377,7 +1434,7 @@ class _MultiModeJoinState extends State { liveInformation.setRouteVariant(null); - await liveInformation.JoinRoom(controller.text); + await liveInformation.joinRoom(controller.text); Navigator.popAndPushNamed(context, "/multi/enroute"); @@ -1426,7 +1483,7 @@ class FullscreenDisplay extends StatefulWidget { class _FullscreenDisplayState extends State { - + @override Widget build(BuildContext context) { @@ -1447,12 +1504,12 @@ class _FullscreenDisplayState extends State { } }, child: Scaffold( - + body: Container( - + color: Colors.black, alignment: Alignment.center, - + child: Row( children: [ Expanded( @@ -1469,9 +1526,9 @@ class _FullscreenDisplayState extends State { ) ], ), - + ), - + ), ); } @@ -1616,17 +1673,17 @@ class MultiModeRegister extends StatelessWidget { child: SingleChildScrollView( child: Column( - + crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, - + children: [ - + Text( "Register", style: ShadTheme.of(context).textTheme.h2, ), - + ShadForm( key: formKey, child: Column( @@ -1685,7 +1742,7 @@ class MultiModeRegister extends StatelessWidget { ], ), ), - + ShadButton( text: const Text("Register"), width: double.infinity, @@ -1693,7 +1750,7 @@ class MultiModeRegister extends StatelessWidget { if (formKey.currentState!.validate()) { formKey.currentState!.save(); print("Logging in..."); - + LiveInformation liveInformation = LiveInformation(); await liveInformation.auth.createUser( displayName: formKey.currentState!.value["email"], @@ -1720,7 +1777,7 @@ class MultiModeRegister extends StatelessWidget { } }, ), - + Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.center, @@ -1734,9 +1791,9 @@ class MultiModeRegister extends StatelessWidget { ) ], ) - + ], - + ), ), @@ -1755,6 +1812,11 @@ class MultiModeRegister extends StatelessWidget { } class NavigationBar extends StatefulWidget { + + final Widget? content; + + NavigationBar({this.content = null}); + @override State createState() => _NavigationBarState(); } @@ -1807,7 +1869,7 @@ List _getNearbyRoutes({bool multiMode = false}) { if (kDebugMode) { - currentVector = OSGrid.toNorthingEasting(51.583781262560926, -0.020359583104595073); + // currentVector = OSGrid.toNorthingEasting(51.583781262560926, -0.020359583104595073); } for (BusRoute route in busSequences.routes.values) { diff --git a/lib/tfl_datasets.dart b/lib/tfl_datasets.dart index a5daadd..8514540 100644 --- a/lib/tfl_datasets.dart +++ b/lib/tfl_datasets.dart @@ -1,5 +1,6 @@ +import 'dart:convert'; import 'dart:typed_data'; import 'package:bus_infotainment/audio_cache.dart'; @@ -16,28 +17,24 @@ class BusSequences extends InfoModule { Map destinations = {}; - BusSequences.fromCSV(String destinationsCSV, String busSequencesCSV) { + BusSequences.fromCSV(String destinationsJson, String busSequencesCSV) { + + // Init the bus destinations - List> destinationRows = CsvConverter().convert(destinationsCSV); - destinationRows.removeAt(0); + Map destinationData = jsonDecode(destinationsJson); - print("Destination rows: ${destinationRows.length}"); + print("Destination rows: ${destinationData.length}"); - for (int i = 0; i < destinationRows.length; i++) { + for (String destinationName in destinationData.keys) { try { + Map destinationDetails = destinationData[destinationName]; - List entries = destinationRows[i]; - // print("Parsing destination row $i: $entries"); + String blind = destinationName; - String routeNumber = entries[0].toString(); - - BusRoute route = routes.containsKey(routeNumber) ? routes[routeNumber]! : BusRoute(routeNumber: routeNumber); - - String blind = entries[1].toString(); - - double lat = double.parse(entries[2].toString()); - double long = double.parse(entries[3].toString()); + List location = destinationDetails['Location'].split(', '); + double lat = double.parse(location[0]); + double long = double.parse(location[1]); Vector2 grid = OSGrid.toNorthingEasting(lat, long); @@ -46,11 +43,10 @@ class BusSequences extends InfoModule { destination.easting = grid.x; destination.northing = grid.y; - route.destinations.add(destination); - - routes[routeNumber] = route; destinations[blind] = destination; - } catch (e) {} + } catch (e) { + print("Error parsing destination: $e"); + } } print("Loaded ${destinations.length} destinations"); diff --git a/pubspec.yaml b/pubspec.yaml index 05acc91..efcd0f3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -97,6 +97,7 @@ flutter: - assets/datasets/tube_stations.json - assets/audio/rail_replacement/ - assets/audio/R_SPECIAL_SERVICE_001.mp3 + - assets/datasets/destinations.json # - images/a_dot_burr.jpeg # - images/a_dot_ham.jpeg