{"schema":1,"meta":{"source":"OpenStreetMap leisure=track|pitch outlines and on-campus leisure=swimming_pool outlines via Overpass API","license":"ODbL 1.0 (c) OpenStreetMap contributors","attribution":"Sports grounds: © OpenStreetMap contributors (ODbL)","generated_by":"scripts/sports_publish.py","input":{"path":"data/raw/osm/sports.json","url":"https://overpass-api.de/api/interpreter","sha256":"9217a7316b8595ef8f84e2120e32e1f7a11d71fe5c7e561730ebebe8de340866","bytes":48892,"fetched_at":"2026-09-29T21:33:28.100681+00:00"},"pools_input":{"path":"data/raw/osm/pools.json","url":"https://overpass-api.de/api/interpreter","sha256":"e0610c3f2d1bf79692c8c89b40efdb9325e2d6240e384ae78ed72e5d436368e4","bytes":83098,"fetched_at":"2026-09-29T21:50:51.303101+00:00"},"campus_outline":"OSM relation 7802779","osm_base":"2026-09-29T21:31:51Z","rule":"leisure=track|pitch areas wholly inside the map extent (area=no track loops are lines) and swimming pools centred inside the CUHK campus outline; outlines unedited.","excluded":{"line":3,"outside_extent":0,"pool_off_campus":61}},"features":[{"id":"osm_relation_5759533","kind":"track","surface_class":"track","polygons":[{"outer":[[114.2115377,22.418213],[114.211537,22.4183837],[114.2115331,22.4194049],[114.2116415,22.419455],[114.2118021,22.4195293],[114.2118722,22.4195517],[114.2119453,22.4195632],[114.2120195,22.4195634],[114.2120928,22.4195523],[114.212163,22.4195302],[114.2122284,22.4194977],[114.2122871,22.4194557],[114.2124321,22.4193344],[114.212435,22.4183861],[114.2124355,22.418216],[114.2122913,22.4180836],[114.2122328,22.4180413],[114.2121677,22.4180085],[114.2120976,22.4179861],[114.2120244,22.4179746],[114.2119502,22.4179744],[114.211877,22.4179855],[114.2118067,22.4180076],[114.2117413,22.4180401],[114.2116826,22.418082],[114.2115377,22.418213]],"holes":[[[114.2123427,22.4183893],[114.212338,22.4183351],[114.2123237,22.4182822],[114.2123002,22.4182323],[114.2122681,22.4181866],[114.2122283,22.4181465],[114.212182,22.4181129],[114.2121302,22.4180868],[114.2120746,22.418069],[114.2120165,22.4180599],[114.2119576,22.4180597],[114.2118994,22.4180686],[114.2118437,22.4180861],[114.2117918,22.4181119],[114.2117452,22.4181452],[114.2117052,22.4181852],[114.2116728,22.4182307],[114.211649,22.4182805],[114.2116344,22.4183332],[114.2116293,22.4183875],[114.211627,22.4191484],[114.2116317,22.4192027],[114.211646,22.4192556],[114.2116695,22.4193055],[114.2117016,22.4193512],[114.2117414,22.4193913],[114.2117878,22.4194249],[114.2118395,22.4194509],[114.2118952,22.4194688],[114.2119533,22.4194779],[114.2120122,22.419478],[114.2120703,22.4194692],[114.2121261,22.4194517],[114.2121779,22.4194259],[114.2122245,22.4193926],[114.2122646,22.4193526],[114.2122969,22.4193071],[114.2123207,22.4192573],[114.2123354,22.4192046],[114.2123404,22.4191503],[114.2123427,22.4183893]]]}],"sport":"running"},{"id":"osm_relation_12861583","kind":"track","surface_class":"track","polygons":[{"outer":[[114.2089247,22.4154007],[114.2089261,22.4149144],[114.2089312,22.4144324],[114.208968,22.4143515],[114.2089977,22.4142972],[114.2090322,22.4142389],[114.2091114,22.4141654],[114.209201,22.4141165],[114.2092987,22.4140803],[114.2094381,22.4140677],[114.2095531,22.4140874],[114.2096693,22.4141421],[114.2097619,22.41419],[114.2098186,22.4142646],[114.2098532,22.4143414],[114.2098687,22.4143981],[114.2098784,22.4144721],[114.2098599,22.4149509],[114.2098213,22.4154157],[114.2098129,22.4154844],[114.2097899,22.4155438],[114.2097554,22.4156021],[114.2096842,22.4156791],[114.2095986,22.4157356],[114.209501,22.4157718],[114.2093676,22.4157853],[114.2092466,22.4157647],[114.2091303,22.4157099],[114.2090558,22.4156479],[114.2089991,22.4155732],[114.2089679,22.4155106],[114.2089305,22.4155059],[114.2089247,22.4154007]],"holes":[[[114.2089727,22.4153906],[114.2089901,22.4149178],[114.2090092,22.4144747],[114.2090334,22.4143806],[114.2090545,22.4143262],[114.2090865,22.4142722],[114.209142,22.414214],[114.2092138,22.4141812],[114.2093044,22.4141476],[114.2094355,22.4141358],[114.2095423,22.4141541],[114.209658,22.414198],[114.2097084,22.4142309],[114.2097749,22.4142921],[114.2098047,22.4143557],[114.2098191,22.4144084],[114.2098285,22.4144891],[114.209808,22.4149426],[114.2097922,22.4154138],[114.2097843,22.4154783],[114.2097632,22.4155327],[114.2097313,22.4155867],[114.2096644,22.4156591],[114.2095845,22.4157118],[114.2094939,22.4157454],[114.2093687,22.4157581],[114.2092561,22.4157389],[114.209147,22.4156875],[114.2090778,22.4156299],[114.2090247,22.41556],[114.2089949,22.4154963],[114.2089806,22.4154437],[114.2089727,22.4153906]]]}],"sport":"running"},{"id":"osm_relation_14120796","kind":"track","surface_class":"track","polygons":[{"outer":[[114.20069,22.4298716],[114.2006636,22.4298716],[114.2006324,22.4298068],[114.2005901,22.4297477],[114.2005379,22.4296958],[114.2004772,22.4296525],[114.2004097,22.4296189],[114.2003371,22.429596],[114.2002615,22.4295844],[114.2001848,22.4295844],[114.2001091,22.429596],[114.2000366,22.4296189],[114.199969,22.4296525],[114.1997563,22.4297695],[114.1997563,22.4310891],[114.1999084,22.4310891],[114.199969,22.4311324],[114.2000366,22.431166],[114.2001091,22.4311889],[114.2001848,22.4312005],[114.2002615,22.4312005],[114.2003371,22.4311889],[114.2004097,22.431166],[114.2004772,22.4311324],[114.2005379,22.4310891],[114.2005901,22.4310372],[114.2006324,22.4309781],[114.2006636,22.4309134],[114.200683,22.4308448],[114.2006856,22.4308183],[114.2007874,22.4308183],[114.2007874,22.4298352],[114.20069,22.4298352],[114.20069,22.4298716]],"holes":[[[114.1998681,22.4307699],[114.1998729,22.4308239],[114.1998873,22.4308765],[114.1999109,22.4309261],[114.1999429,22.4309715],[114.1999827,22.4310114],[114.2000289,22.4310447],[114.2000805,22.4310705],[114.200136,22.4310881],[114.2001938,22.431097],[114.2002524,22.431097],[114.2003103,22.4310881],[114.2003657,22.4310705],[114.2004173,22.4310447],[114.2004636,22.4310114],[114.2005033,22.4309715],[114.2005354,22.4309261],[114.2005589,22.4308765],[114.2005733,22.4308239],[114.2005782,22.4307699],[114.2005782,22.430015],[114.2005733,22.429961],[114.2005589,22.4299084],[114.2005354,22.4298588],[114.2005033,22.4298134],[114.2004636,22.4297735],[114.2004173,22.4297402],[114.2003657,22.4297144],[114.2003103,22.4296968],[114.2002524,22.4296879],[114.2001938,22.4296879],[114.200136,22.4296968],[114.2000805,22.4297144],[114.2000289,22.4297402],[114.2000232,22.4297443],[114.1999827,22.4297735],[114.1999429,22.4298134],[114.1999109,22.4298588],[114.1998873,22.4299084],[114.1998729,22.429961],[114.1998681,22.430015],[114.1998681,22.4307699]]]}],"sport":"athletics"},{"id":"osm_way_136637852","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2027634,22.4165626],[114.2026621,22.4165099],[114.2025569,22.416683],[114.2026582,22.4167356],[114.2027634,22.4165626]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_136641278","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2069496,22.409231],[114.2071196,22.40923],[114.2071173,22.4089027],[114.2069473,22.4089037],[114.2069496,22.409231]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_136641279","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2075244,22.4084099],[114.2075277,22.4083943],[114.2075352,22.4083807],[114.2075474,22.4083652],[114.2075634,22.4083577],[114.2076842,22.4083563],[114.2076812,22.4086302],[114.2076804,22.4086641],[114.2075234,22.4086669],[114.2075244,22.4084099]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_170336289","kind":"pitch","surface_class":"grass","polygons":[{"outer":[[114.2089901,22.4149178],[114.2090092,22.4144747],[114.2098285,22.4144891],[114.209808,22.4149426],[114.2089901,22.4149178]],"holes":[]}],"sport":"soccer"},{"id":"osm_way_170336290","kind":"pitch","surface_class":"grass","polygons":[{"outer":[[114.2089727,22.4153906],[114.2097922,22.4154138],[114.209808,22.4149426],[114.2089901,22.4149178],[114.2089727,22.4153906]],"holes":[]}],"sport":"soccer"},{"id":"osm_way_174133740","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2091941,22.4144624],[114.2093507,22.4144667],[114.2093591,22.4142059],[114.2092025,22.4142016],[114.2091941,22.4144624]],"holes":[]}],"sport":"basketball"},{"id":"osm_way_174133742","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2093507,22.4144667],[114.209507,22.414471],[114.2095154,22.4142102],[114.2093591,22.4142059],[114.2093507,22.4144667]],"holes":[]}],"sport":"basketball"},{"id":"osm_way_174133743","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.209507,22.414471],[114.2096632,22.4144753],[114.2096716,22.4142145],[114.2095154,22.4142102],[114.209507,22.414471]],"holes":[]}],"sport":"basketball"},{"id":"osm_way_174133745","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2060533,22.4243289],[114.206157,22.4242935],[114.2060759,22.4240901],[114.2059722,22.4241254],[114.2060533,22.4243289]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_174133751","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2059226,22.4243775],[114.2060256,22.4243407],[114.2059411,22.4241385],[114.2058381,22.4241752],[114.2059226,22.4243775]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_174133755","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2032672,22.4203065],[114.2035045,22.4202966],[114.2034995,22.4201955],[114.2032623,22.4202054],[114.2032672,22.4203065]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_174133756","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2057893,22.4244238],[114.2058924,22.4243877],[114.2058094,22.4241852],[114.2057062,22.4242213],[114.2057893,22.4244238]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_174133760","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2032634,22.4201871],[114.2035006,22.4201773],[114.2034957,22.4200762],[114.2032584,22.4200861],[114.2032634,22.4201871]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_174307348","kind":"pitch","surface_class":"grass","polygons":[{"outer":[[114.1998873,22.4299084],[114.2005589,22.4299084],[114.2005354,22.4298588],[114.2005033,22.4298134],[114.2004636,22.4297735],[114.2004173,22.4297402],[114.2003657,22.4297144],[114.2003103,22.4296968],[114.2002524,22.4296879],[114.2001938,22.4296879],[114.200136,22.4296968],[114.2000805,22.4297144],[114.2000232,22.4297443],[114.1999827,22.4297735],[114.1999429,22.4298134],[114.1999109,22.4298588],[114.1998873,22.4299084]],"holes":[]}],"sport":"athletics"},{"id":"osm_way_174307349","kind":"pitch","surface_class":"grass","polygons":[{"outer":[[114.1998873,22.4308765],[114.2005589,22.4308765],[114.2005354,22.4309261],[114.2005033,22.4309715],[114.2004636,22.4310114],[114.2004173,22.4310447],[114.2003657,22.4310705],[114.2003103,22.4310881],[114.2002524,22.431097],[114.2001938,22.431097],[114.200136,22.4310881],[114.2000805,22.4310705],[114.2000289,22.4310447],[114.1999827,22.4310114],[114.1999429,22.4309715],[114.1999109,22.4309261],[114.1998873,22.4308765]],"holes":[]}],"sport":"athletics"},{"id":"osm_way_174307352","kind":"pitch","surface_class":"grass","polygons":[{"outer":[[114.2002965,22.4294393],[114.2012514,22.4299283],[114.2015727,22.4293921],[114.2006178,22.4289031],[114.2002965,22.4294393]],"holes":[]}],"sport":"soccer"},{"id":"osm_way_174307353","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.1999846,22.4292856],[114.2000932,22.4292839],[114.2000893,22.4290665],[114.1999807,22.4290681],[114.1999846,22.4292856]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_174307354","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2002996,22.4289508],[114.2004082,22.4289491],[114.2004043,22.4287316],[114.2002957,22.4287333],[114.2002996,22.4289508]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_174307355","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2001222,22.4292835],[114.2002308,22.4292818],[114.2002269,22.4290644],[114.2001182,22.429066],[114.2001222,22.4292835]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_174307356","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.1997704,22.4295331],[114.199879,22.4295314],[114.1998751,22.4293139],[114.1997665,22.4293156],[114.1997704,22.4295331]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_174307357","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.200162,22.4289529],[114.2002706,22.4289512],[114.2002667,22.4287338],[114.2001581,22.4287354],[114.200162,22.4289529]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_174307358","kind":"pitch","surface_class":"grass","polygons":[{"outer":[[114.1999019,22.430863],[114.2005444,22.430863],[114.2005444,22.4299219],[114.1999019,22.4299219],[114.1999019,22.430863]],"holes":[]}],"sport":"soccer"},{"id":"osm_way_198965339","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2128523,22.4190994],[114.2126756,22.4191083],[114.2126951,22.4194399],[114.2127045,22.4194394],[114.2128718,22.4194311],[114.2128556,22.4191559],[114.2128523,22.4190994]],"holes":[]}],"name":"University Tennis Court No. 7","name_zh":"大學七號網球場","sport":"tennis"},{"id":"osm_way_199150259","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.1958591,22.4312856],[114.1956064,22.4310129],[114.1957863,22.4308704],[114.1960391,22.4311431],[114.1958591,22.4312856]],"holes":[]}]},{"id":"osm_way_199150262","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.197042,22.4316735],[114.1969132,22.4315818],[114.197089,22.4313709],[114.1972178,22.4314626],[114.197042,22.4316735]],"holes":[]}]},{"id":"osm_way_199150263","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.19707,22.4311797],[114.1972234,22.4309996],[114.1971148,22.4309206],[114.1969614,22.4311007],[114.19707,22.4311797]],"holes":[]}]},{"id":"osm_way_199150265","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.1959806,22.4315918],[114.1964199,22.4315133],[114.1963753,22.4313004],[114.1959361,22.4313788],[114.1959806,22.4315918]],"holes":[]}]},{"id":"osm_way_199150266","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.1969001,22.4313838],[114.1967949,22.4313093],[114.1969427,22.431131],[114.1970478,22.4312054],[114.1969001,22.4313838]],"holes":[]}]},{"id":"osm_way_230088370","kind":"pitch","surface_class":"grass","polygons":[{"outer":[[114.2114648,22.4179625],[114.2114661,22.4177889],[114.2120615,22.4177927],[114.2120602,22.4179663],[114.2114648,22.4179625]],"holes":[]}],"sport":"archery"},{"id":"osm_way_230131247","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2045467,22.4236308],[114.2044335,22.4235208],[114.2044991,22.4234631],[114.2046123,22.4235731],[114.2045467,22.4236308]],"holes":[]}]},{"id":"osm_way_355111055","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2106152,22.4182562],[114.210614,22.4179334],[114.211073,22.4179319],[114.2110742,22.4182547],[114.2109044,22.4182552],[114.2106152,22.4182562]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_403202804","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.196241,22.4307253],[114.1963573,22.4308066],[114.1965098,22.4306201],[114.1963936,22.4305388],[114.196241,22.4307253]],"holes":[]}],"sport":"basketball"},{"id":"osm_way_421937239","kind":"pitch","surface_class":"grass","polygons":[{"outer":[[114.208521,22.4156363],[114.2085275,22.4155172],[114.2084312,22.4155128],[114.2084481,22.415201],[114.2084956,22.4152032],[114.2085033,22.4150617],[114.2088178,22.4150763],[114.2087866,22.4156487],[114.208521,22.4156363]],"holes":[]}]},{"id":"osm_way_584589628","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2080211,22.4104593],[114.2083443,22.4104504],[114.208338,22.4102545],[114.2080149,22.4102635],[114.2080211,22.4104593]],"holes":[]}]},{"id":"osm_way_696387726","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2058481,22.4241075],[114.2061151,22.4240129],[114.2062146,22.4239793],[114.2061434,22.4238055],[114.2057769,22.4239338],[114.2058481,22.4241075]],"holes":[]}],"sport":"basketball"},{"id":"osm_way_696387738","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2087089,22.4147236],[114.2088154,22.4147272],[114.2088239,22.4145134],[114.2087174,22.4145098],[114.2087089,22.4147236]],"holes":[]}]},{"id":"osm_way_755360164","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2111289,22.4108661],[114.2113001,22.4108509],[114.2112698,22.4105605],[114.2110986,22.4105758],[114.2111289,22.4108661]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_783103741","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2003341,22.426618],[114.200451,22.4266112],[114.2004362,22.426395],[114.2003193,22.4264018],[114.2003341,22.426618]],"holes":[]}],"name":"Cheung Shue Tan Heung Shu Yan Basketball Court","name_zh":"樟樹灘鄉樹人籃球場","sport":"basketball"},{"id":"osm_way_955764575","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2091518,22.4156752],[114.2093084,22.4156795],[114.2093168,22.4154187],[114.2091602,22.4154144],[114.2091518,22.4156752]],"holes":[]}],"sport":"basketball"},{"id":"osm_way_955764576","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2093084,22.4156795],[114.2094647,22.4156838],[114.2094731,22.415423],[114.2093168,22.4154187],[114.2093084,22.4156795]],"holes":[]}],"sport":"basketball"},{"id":"osm_way_955764577","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2094647,22.4156838],[114.2096209,22.4156881],[114.2096293,22.4154273],[114.2094731,22.415423],[114.2094647,22.4156838]],"holes":[]}],"sport":"basketball"},{"id":"osm_way_955764583","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2126997,22.4188488],[114.2128167,22.4188439],[114.2128276,22.4190632],[114.2127106,22.4190681],[114.2126997,22.4188488]],"holes":[]}],"name":"Chung Chi Tennis Court No. 1","name_zh":"崇基一號網球場","sport":"tennis"},{"id":"osm_way_955764584","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2126823,22.4185168],[114.2128069,22.4185104],[114.2128196,22.4187237],[114.2126951,22.41873],[114.2126823,22.4185168]],"holes":[]}],"name":"University Tennis Court No. 6","name_zh":"大學六號網球場","sport":"tennis"},{"id":"osm_way_955764586","kind":"pitch","surface_class":"grass","polygons":[{"outer":[[114.2116852,22.4191751],[114.2122929,22.4191804],[114.212301,22.4183919],[114.2116933,22.4183866],[114.2116852,22.4191751]],"holes":[]}],"sport":"soccer"},{"id":"osm_way_1316872000","kind":"pitch","surface_class":"court","polygons":[{"outer":[[114.2044646,22.4242115],[114.2045827,22.4242887],[114.2045437,22.4243396],[114.2044256,22.4242625],[114.2044646,22.4242115]],"holes":[]}],"sport":"tennis"},{"id":"osm_way_135266016","kind":"pool","surface_class":"pool","polygons":[{"outer":[[114.205217,22.4179055],[114.2057024,22.4179046],[114.2057027,22.4180694],[114.2052173,22.4180703],[114.205217,22.4179055]],"holes":[]}]}]}
