HisRoom.net Blog Fitness Australian Sportswear Brand LSKD Brings the ‘1% Better Hub’ to Singapore for SGIM Marathon Week 2026
Fitness

Australian Sportswear Brand LSKD Brings the ‘1% Better Hub’ to Singapore for SGIM Marathon Week 2026

Australian Sportswear Brand LSKD Brings the ‘1% Better Hub’ to Singapore for SGIM Marathon Week 2026

Australian Sportswear Brand LSKD Brings the ‘1% Better Hub’ to Singapore for SGIM Marathon Week 2026
– SportPlus.sg
Skip to content

November 12, 2026|By John Yeong
Skip the short versionPhoto: LSKD
LSKD pop-up · 3–6 Dec 2026
LSKD’s 1%
Better Hub
Event details
Where and
when
VenueF45 Tanjong Rhu, Kallang Wave Mall
DatesThu 3 Dec to Sun 6 Dec 2026
Thu–FriFrom 2pm into the evening
Sat–Sun6am to 2pm
EntryFree, open to the public
Steps from the race precinct
A clubhouse,
not a shop
Shakeout before the race
Refuelafter your run
Connectwith fellow runners
Drop in before or after training, or around race day: it is built as a laid-back community clubhouse.
What’s inside
Four days
of it
Try the gear on
Fit, form and fabrics in person, including the Accelerate Short.
Recovery station
Complimentary protein smoothies with Tundra, Dr.Hydrate, Rokeby and more.
Hangout zone
For race participants and supporters alike.
Turf Games Singapore, August 2026
200+runners
LSKD’s community 5km shakeout at Singapore Expo drew more than 200 local runners and hybrid athletes.
Grassroots first
Built with
local crews
CrewsDivision Run Club
AlsoUrban Milers, Pure Fitness
GymsRagTag Training, REVL, ELVTE
LSKD has worked directly with local gyms and run crews rather than relying only on retail launches.
Race weekend
Your SGIM
race guide
Picking up your race pack nearby or tapering for Sunday’s marathon? Everything on the race is on the SGIM page.
BYD SGIM 2026
Read the full article
Join the communityContinue the conversation on TelegramComments are off — the chat lives on Telegram. Join the SportPlus community for match talk, breaking news and exclusive drops.Join our Telegram
‘
+ ”
+ ‘At ‘+hourLbl(hour)+’ start
‘+r0(w.start)+’°C
‘
+ ‘Night low
‘+r0(w.lo)+’°C
‘
+ ‘Humidity
‘+r0(w.hum)+’%
‘
+ ”+(w.live ? ‘Rain chance’ : ‘Rainy days’)+’
‘+r0(w.rain)+’%
‘
+ ‘
‘
+ (tips.length ? ‘

‘+(p.name ? p.name+’ · ‘ : ”)+’Data: Open-Meteo

‘;
}

function loadWx(info){
if(info.getAttribute(‘data-wx-done’)) return;
info.setAttribute(‘data-wx-done’, ‘1’);
var box = info.querySelector(‘.sp-ev-wx’); if(!box) return;
var date = info.getAttribute(‘data-wx-date’), hour = parseInt(info.getAttribute(‘data-wx-hour’),10);
if(isNaN(hour)) hour = 7;
var daysOut = (parseInt(info.getAttribute(‘data-wx-epoch’),10) – Date.now()/1000) / 86400;
var live = daysOut <= 14;
resolvePlace(info.getAttribute(‘data-wx-loc’), info.getAttribute(‘data-wx-region’)).then(function(p){
if(!p) throw new Error(‘no place’);
var key = ‘spwx2_’+(live?’f’:’h’)+’_’+p.lat.toFixed(2)+’_’+p.lon.toFixed(2)+’_’+date+’_’+hour;
var hit = recall(key, live ? 3*36e5 : 30*864e5);
return (hit ? Promise.resolve(hit) : (live ? forecast : history)(p, date, hour).then(function(w){ remember(key, w); return w; }))
.then(function(w){ renderWx(box, w, p, hour); showTz(info, w.tz);
info.dispatchEvent(new CustomEvent(‘sp:wx’, { bubbles:true, detail:{ w:w, place:p } })); });
}).catch(function(){
box.innerHTML = ‘Weather isn’t available for this race yet.
‘;
});
}

// —- key dates: registration closes / early bird (Singapore time) —-
var MON = [‘Jan’,’Feb’,’Mar’,’Apr’,’May’,’Jun’,’Jul’,’Aug’,’Sep’,’Oct’,’Nov’,’Dec’];
// “2026-11-15 00:00” → epoch; a bare date (00:00) stays open until 23:59:59 SGT that day
function whenEnd(s){
if(!s) return 0;
var p = s.split(‘ ‘), t = p[1] || ’00:00′;
var ms = Date.parse(p[0]+’T’+(t === ’00:00′ ? ’23:59:59′ : t+’:00′)+’+08:00′);
return isNaN(ms) ? 0 : ms/1000;
}
function sgDay(ep){ return Math.floor((ep + 28800) / 86400); }
function dayDiff(ep){ return sgDay(ep) – sgDay(Date.now()/1000); }
function relDays(n){ return n <= 0 ? ‘today’ : n === 1 ? ‘tomorrow‘ : ‘in ‘+n+’ days’; }
function shortDate(s){ var p = (s||”).split(‘ ‘)[0].split(‘-‘); return p.length === 3 ? (+p[2])+’ ‘+MON[+p[1]-1] : ”; }
function flag(cls, html){ return ”+html+”; }

// —- flight estimate from Changi (great-circle; no network) —-
var CHANGI = [1.3644, 103.9915];
function parseLatLng(s){ var m = (s||”).trim().match(/^(-?d+(?:.d+)?)s*,s*(-?d+(?:.d+)?)$/); return m ? [+m[1], +m[2]] : null; }
function flightFromSG(ll){
var r = Math.PI/180, a = CHANGI[0]*r, b = ll[0]*r, dl = (ll[1]-CHANGI[1])*r;
var km = 6371 * Math.acos(Math.min(1, Math.sin(a)*Math.sin(b) + Math.cos(a)*Math.cos(b)*Math.cos(dl)));
var stop = km > 9500; // beyond ~9,500 km most SIN routings connect
var h = km/780 + 0.6 + (stop ? 2.5 : 0); // cruise + taxi/climb buffer + typical layover
return { km:km, h:h, stop:stop, near: km < 350 };
}
function hm(h){ var m = Math.round(h*12)*5, hh = Math.floor(m/60), mm = m%60; return hh+’h’+(mm ? ‘ ‘+mm+’m’ : ”); }
function tzLbl(sec){
var d = (sec – 28800) / 3600; if(d === 0) return ‘Same as Singapore’;
var a = Math.abs(d), t = (a % 1 ? a.toFixed(1) : a)+’h’;
return t + (d > 0 ? ‘ ahead of’ : ‘ behind’) + ‘ Singapore’;
}
function showTz(info, tz){
var row = info.querySelector(‘.sp-ev-travel .tz’); if(!row || tz == null) return;
row.querySelector(‘b’).textContent = tzLbl(tz); row.hidden = false;
}

function flagsFor(el){
if(el.hasAttribute(‘data-done’)) return; el.setAttribute(‘data-done’, ‘1’);
var now = Date.now()/1000, out = ”;
var reg = el.getAttribute(‘data-reg’), eb = el.getAttribute(‘data-eb’), geo = parseLatLng(el.getAttribute(‘data-geo’));
if(eb){ var ee = whenEnd(eb);
if(ee > now){ var en = dayDiff(ee);
out += flag(‘eb’, en <= 14 ? ‘Early bird ends ‘+relDays(en) : ‘Early bird till ‘+shortDate(eb)); } }
if(reg){ var re = whenEnd(reg);
if(re <= now) out += flag(‘off’, ‘Registration closed’);
else { var rn = dayDiff(re);
out += rn <= 14 ? flag(‘hot’, ‘Reg closes ‘+relDays(rn)) : flag(‘muted’, ‘Reg closes ‘+shortDate(reg)); } }
if(geo){ var f = flightFromSG(geo);
if(!f.near) out += flag(‘fly’, ‘✈ ~’+hm(f.h)+(f.stop ? ‘ · 1+ stop’ : ”)+’ from SG’); }
el.innerHTML = out;
}

function decorate(scope){
var now = Date.now()/1000;
each(scope, ‘.sp-ev-flags’, flagsFor);
// drawer: key-date status + travel box
each(scope, ‘.sp-ev-dates li[data-when]:not([data-done])’, function(li){
li.setAttribute(‘data-done’, ‘1’);
var e = whenEnd(li.getAttribute(‘data-when’)), lbl = li.querySelector(‘span’);
if(e <= now){ li.classList.add(‘past’); lbl.insertAdjacentHTML(‘beforeend’, ‘ Passed
‘); }
else { var n = dayDiff(e); if(n <= 14) lbl.insertAdjacentHTML(‘beforeend’, ‘ ‘+relDays(n)+’
‘); }
});
each(scope, ‘.sp-ev-travel:not([data-done])’, function(tb){
tb.setAttribute(‘data-done’, ‘1’);
var tl = parseLatLng(tb.getAttribute(‘data-geo’)); if(!tl) return;
var t = flightFromSG(tl);
tb.innerHTML = t.near
? ‘From SingaporeShort hop · ‘+Math.round(t.km)+’ km
‘
: ‘Flight from Changi~’+hm(t.h)+(t.stop ? ‘ · usually 1+ stop’ : ‘ non-stop’)+’
‘
+ ‘Distance‘+Math.round(t.km).toLocaleString(‘en-SG’)+’ km
‘;
tb.insertAdjacentHTML(‘beforeend’, ‘Time difference
‘
+ (t.near ? ” : ‘

Flight time is an estimate from distance — check airlines for real schedules.

‘));
});
}

// —- foreign entry fees → approx SGD (open.er-api.com, free, no key; lazy on drawer open) —-
// Only unambiguous markers convert; plain “$” / “S$” / “SGD” are treated as Singapore dollars.
var CUR = [
[/HK$|HKD/i,’HKD’], [/MOP$?|MOP/i,’MOP’], [/A$|AU$|AUD/i,’AUD’], [/NZ$|NZD/i,’NZD’], [/US$|USD/i,’USD’],
[/฿|THB|baht/i,’THB’], [/RM|MYR/,’MYR’], [/Rp.?|IDR/,’IDR’], [/€|EUR/i,’EUR’], [/£|GBP/i,’GBP’],
[/JPY|円/i,’JPY’], [/CNY|RMB|元/i,’CNY’], [/KRW|₩/i,’KRW’], [/PHP|₱/i,’PHP’], [/VND|₫/i,’VND’],
[/TWD|NT$/i,’TWD’], [/INR|₹/i,’INR’], [/ZAR|^s*Rs?d/,’ZAR’], [/CHF/i,’CHF’], [/CAD|C$/i,’CAD’]
];
function parseFee(s){
if(!s || /(^|[^A-Z])S$|SGD/i.test(s)) return null;
var cur = null; for(var i=0; i≈ S$’+(sgd < 100 ? sgd.toFixed(0) : Math.round(sgd/5)*5)+”);
});
var note = info.querySelector(‘.sp-ev-fx-note’);
if(any && note){ note.textContent = ‘≈ S$ at today’s rate · rates by ExchangeRate-API’; note.hidden = false; }
}).catch(function(){ info.removeAttribute(‘data-fx-done’); });
}

// —- Location map: glowing country outline + blinking venue dot (d3-geo + Natural Earth 50m via jsDelivr, loaded on first use)
var GEO_CDN = ‘https://cdn.jsdelivr.net/npm/’, geoLib = null, geoAtlas = null;
var GEO_SHORT = {‘United States of America’:’USA’, ‘United Kingdom’:’UK’, ‘United Arab Emirates’:’UAE’, ‘Hong Kong S.A.R.’:’Hong Kong’, ‘Macao S.A.R’:’Macau’, ‘Dem. Rep. Korea’:’North Korea’};
// Singapore: smoothed coastline baked in (URA Master Plan 2014 via geoBoundaries, ODbL 1.0; simplified + Chaikin-smoothed; credited under the map)
var GEO_SG = {type:’Feature’, properties:{name:’Singapore’}, geometry:{type:’MultiPolygon’, coordinates:[[[[103.7188,1.2127],[103.7205,1.2129],[103.722,1.2128],[103.7231,1.2123],[103.7239,1.2115],[103.7247,1.2109],[103.7257,1.2106],[103.7266,1.2106],[103.7277,1.2108],[103.7285,1.2108],[103.7292,1.2105],[103.7297,1.2099],[103.7301,1.2091],[103.7302,1.2085],[103.7301,1.2081],[103.7297,1.2078],[103.729,1.2078],[103.7289,1.2075],[103.7293,1.207],[103.7302,1.2062],[103.7316,1.2051],[103.731,1.2043],[103.7283,1.2039],[103.7237,1.2039],[103.7171,1.2041],[103.7126,1.2047],[103.7101,1.2057],[103.7096,1.207],[103.7112,1.2087],[103.713,1.2101],[103.7148,1.2112],[103.7168,1.2121],[103.7188,1.2127]]],[[[103.7608,1.2137],[103.7618,1.2122],[103.7631,1.211],[103.7646,1.2101],[103.7664,1.2093],[103.7684,1.2088],[103.7708,1.2086],[103.7735,1.2087],[103.7766,1.209],[103.7789,1.2086],[103.7804,1.2076],[103.7811,1.206],[103.781,1.2037],[103.7803,1.2013],[103.7789,1.1988],[103.7769,1.1962],[103.7742,1.1935],[103.7719,1.1915],[103.7699,1.1903],[103.7682,1.1898],[103.7669,1.1901],[103.7663,1.1903],[103.7665,1.1905],[103.7673,1.1906],[103.7689,1.1906],[103.7703,1.1909],[103.7715,1.1917],[103.7726,1.1929],[103.7736,1.1945],[103.7738,1.196],[103.7731,1.1975],[103.7717,1.1989],[103.7695,1.2003],[103.7675,1.201],[103.7656,1.201],[103.7639,1.2002],[103.7625,1.1987],[103.7616,1.1973],[103.7614,1.1959],[103.7617,1.1946],[103.7627,1.1933],[103.7631,1.1927],[103.7631,1.1926],[103.7625,1.1931],[103.7614,1.1942],[103.7606,1.1964],[103.7599,1.1997],[103.7594,1.2041],[103.7591,1.2096],[103.7591,1.2133],[103.7594,1.2152],[103.7599,1.2153],[103.7608,1.2137]]],[[[103.8475,1.2313],[103.8487,1.2311],[103.8503,1.2311],[103.8523,1.2313],[103.8547,1.2316],[103.8562,1.2315],[103.8568,1.2311],[103.8565,1.2303],[103.8552,1.2292],[103.8546,1.2278],[103.8546,1.2261],[103.8552,1.2241],[103.8565,1.2217],[103.8571,1.2203],[103.857,1.2196],[103.8562,1.2199],[103.8547,1.221],[103.8535,1.2212],[103.8527,1.2206],[103.8522,1.2191],[103.8521,1.2168],[103.8514,1.2157],[103.8503,1.2156],[103.8486,1.2167],[103.8464,1.2189],[103.8453,1.2205],[103.8452,1.2214],[103.8462,1.2217],[103.8482,1.2214],[103.8498,1.2217],[103.8509,1.2224],[103.8516,1.2236],[103.8518,1.2253],[103.8517,1.2265],[103.8511,1.2272],[103.8502,1.2273],[103.8489,1.227],[103.8481,1.2269],[103.8477,1.2271],[103.8479,1.2276],[103.8485,1.2284],[103.8487,1.2291],[103.8485,1.2298],[103.848,1.2305],[103.847,1.2311],[103.8465,1.2315],[103.8464,1.2316],[103.8467,1.2316],[103.8475,1.2313]]],[[[103.7448,1.2365],[103.7467,1.2367],[103.7485,1.2367],[103.7502,1.2362],[103.7519,1.2355],[103.7533,1.2351],[103.7545,1.235],[103.7555,1.2352],[103.7563,1.2358],[103.757,1.2359],[103.7577,1.2355],[103.7584,1.2346],[103.759,1.2331],[103.7602,1.2318],[103.7619,1.2307],[103.7641,1.2296],[103.7668,1.2287],[103.7687,1.2279],[103.7698,1.2271],[103.7701,1.2264],[103.7696,1.2258],[103.7687,1.2254],[103.7674,1.2251],[103.7656,1.2251],[103.7635,1.2252],[103.7606,1.2258],[103.757,1.2267],[103.7528,1.2281],[103.7478,1.2299],[103.744,1.2314],[103.7415,1.2326],[103.7402,1.2335],[103.7401,1.2341],[103.7405,1.2347],[103.7414,1.2353],[103.7429,1.2359],[103.7448,1.2365]]],[[[103.7626,1.2401],[103.7643,1.2393],[103.7667,1.2374],[103.7698,1.2343],[103.7735,1.2303],[103.7751,1.2277],[103.7747,1.2267],[103.7722,1.2272],[103.7676,1.2293],[103.7641,1.2313],[103.7617,1.2332],[103.7604,1.2351],[103.7602,1.2369],[103.7603,1.2383],[103.7607,1.2393],[103.7615,1.2399],[103.7626,1.2401]]],[[[103.8082,1.2598],[103.8107,1.2595],[103.8151,1.2587],[103.8214,1.2576],[103.8295,1.256],[103.8355,1.2546],[103.8395,1.2534],[103.8414,1.2523],[103.8412,1.2514],[103.8414,1.2509],[103.842,1.2509],[103.8428,1.2512],[103.8441,1.252],[103.8451,1.2525],[103.846,1.2527],[103.8468,1.2525],[103.8474,1.252],[103.8474,1.251],[103.8468,1.2497],[103.8457,1.2479],[103.8441,1.2456],[103.8428,1.2443],[103.8418,1.2438],[103.8413,1.2443],[103.841,1.2456],[103.8408,1.2462],[103.8406,1.2459],[103.8404,1.2449],[103.8401,1.2431],[103.8395,1.2416],[103.8385,1.2404],[103.8372,1.2395],[103.8355,1.2388],[103.8335,1.239],[103.8312,1.2402],[103.8286,1.2422],[103.8257,1.2451],[103.8228,1.2477],[103.8199,1.2499],[103.817,1.2519],[103.814,1.2534],[103.8116,1.2549],[103.8098,1.2561],[103.8085,1.2572],[103.8077,1.2581],[103.8073,1.2588],[103.8072,1.2593],[103.8076,1.2596],[103.8082,1.2598]]],[[[103.8401,1.2601],[103.8409,1.2587],[103.8409,1.2576],[103.8402,1.2566],[103.8386,1.2559],[103.8368,1.2557],[103.8345,1.256],[103.8318,1.2568],[103.8288,1.2581],[103.8272,1.2593],[103.8272,1.2605],[103.8287,1.2615],[103.8316,1.2625],[103.8343,1.2628],[103.8365,1.2625],[103.8385,1.2616],[103.8401,1.2601]]],[[[103.7119,1.2936],[103.7129,1.2926],[103.7146,1.2917],[103.7169,1.2909],[103.7201,1.2903],[103.7227,1.2893],[103.7248,1.288],[103.7265,1.2862],[103.7276,1.2841],[103.7292,1.282],[103.7311,1.28],[103.7334,1.278],[103.7361,1.276],[103.7377,1.2743],[103.7381,1.2728],[103.7374,1.2716],[103.7356,1.2706],[103.7338,1.2701],[103.7321,1.2699],[103.7304,1.2701],[103.7288,1.2707],[103.7274,1.271],[103.7262,1.2709],[103.7252,1.2706],[103.7244,1.2698],[103.7241,1.2691],[103.7245,1.2682],[103.7254,1.2674],[103.7268,1.2665],[103.7275,1.2655],[103.7273,1.2645],[103.7264,1.2635],[103.7247,1.2625],[103.7226,1.2622],[103.7202,1.2628],[103.7175,1.2641],[103.7145,1.2663],[103.7121,1.2679],[103.7101,1.2689],[103.7088,1.2693],[103.7079,1.2691],[103.7071,1.2687],[103.7065,1.2682],[103.7059,1.2675],[103.7054,1.2667],[103.7057,1.2656],[103.7066,1.2644],[103.7082,1.2629],[103.7105,1.2613],[103.7111,1.2595],[103.71,1.2577],[103.7073,1.2559],[103.7028,1.2539],[103.6994,1.2531],[103.6968,1.2533],[103.6952,1.2546],[103.6946,1.257],[103.6936,1.2592],[103.6922,1.2614],[103.6904,1.2635],[103.6882,1.2654],[103.6863,1.2666],[103.6846,1.2669],[103.6832,1.2664],[103.682,1.265],[103.6814,1.2637],[103.6816,1.2623],[103.6823,1.261],[103.6838,1.2597],[103.6851,1.2576],[103.6864,1.2548],[103.6876,1.2511],[103.6887,1.2467],[103.6884,1.2423],[103.6867,1.2379],[103.6836,1.2336],[103.6792,1.2292],[103.6757,1.2263],[103.6731,1.2248],[103.6714,1.2248],[103.6707,1.2262],[103.6703,1.227],[103.6702,1.2271],[103.6705,1.2266],[103.6711,1.2254],[103.6717,1.2247],[103.6726,1.2247],[103.6735,1.2252],[103.6745,1.2263],[103.6746,1.228],[103.6738,1.2304],[103.672,1.2334],[103.6692,1.2371],[103.6674,1.24],[103.6665,1.2422],[103.6666,1.2436],[103.6676,1.2443],[103.6676,1.2464],[103.6665,1.25],[103.6644,1.255],[103.6612,1.2614],[103.6608,1.2674],[103.6631,1.2731],[103.6682,1.2783],[103.676,1.2832],[103.6824,1.2869],[103.6873,1.2893],[103.6908,1.2904],[103.6927,1.2903],[103.6935,1.2894],[103.693,1.2876],[103.6914,1.285],[103.6884,1.2816],[103.6865,1.2787],[103.6856,1.2765],[103.6857,1.2748],[103.6868,1.2738],[103.6884,1.2739],[103.6904,1.2749],[103.6929,1.277],[103.6958,1.2802],[103.6985,1.2819],[103.701,1.2823],[103.7033,1.2813],[103.7053,1.279],[103.707,1.2773],[103.7084,1.2765],[103.7094,1.2763],[103.71,1.2769],[103.71,1.2782],[103.7094,1.28],[103.7082,1.2825],[103.7063,1.2857],[103.7054,1.2881],[103.7055,1.2898],[103.7064,1.2909],[103.7084,1.2912],[103.7098,1.2918],[103.7108,1.2925],[103.7113,1.2935],[103.7113,1.2948],[103.7114,1.2954],[103.7115,1.2954],[103.7117,1.2948],[103.7119,1.2936]]],[[[103.9317,1.4261],[103.9347,1.4261],[103.9388,1.4252],[103.9439,1.4234],[103.9499,1.4206],[103.9552,1.4188],[103.9595,1.4178],[103.9631,1.4177],[103.9657,1.4185],[103.969,1.4189],[103.9728,1.4191],[103.9772,1.419],[103.9822,1.4187],[103.9861,1.4178],[103.9889,1.4164],[103.9907,1.4144],[103.9914,1.412],[103.991,1.4101],[103.9896,1.4088],[103.9872,1.4082],[103.9837,1.4081],[103.9806,1.4077],[103.9779,1.4069],[103.9756,1.4058],[103.9736,1.4042],[103.9714,1.4029],[103.9688,1.4019],[103.966,1.401],[103.9629,1.4003],[103.9599,1.4005],[103.9572,1.4015],[103.9546,1.4033],[103.9522,1.4059],[103.9491,1.4085],[103.9454,1.4109],[103.941,1.4133],[103.9359,1.4156],[103.932,1.4177],[103.9293,1.4194],[103.9276,1.4209],[103.9272,1.4221],[103.9273,1.4232],[103.9281,1.4242],[103.9296,1.4252],[103.9317,1.4261]]],[[[104.0549,1.4305],[104.0565,1.431],[104.0586,1.4309],[104.0613,1.4303],[104.0646,1.4291],[104.0677,1.4277],[104.0707,1.4261],[104.0736,1.4243],[104.0764,1.4222],[104.0787,1.4201],[104.0808,1.418],[104.0824,1.4157],[104.0837,1.4135],[104.0846,1.4116],[104.085,1.4101],[104.0849,1.4089],[104.0844,1.4082],[104.0843,1.4074],[104.0847,1.4066],[104.0854,1.4059],[104.0865,1.4051],[104.0865,1.4019],[104.0854,1.3962],[104.0831,1.388],[104.0797,1.3774],[104.0777,1.3682],[104.0772,1.3602],[104.0782,1.3535],[104.0806,1.3482],[104.0823,1.344],[104.0833,1.341],[104.0836,1.3392],[104.0833,1.3386],[104.0823,1.3386],[104.0808,1.3393],[104.0787,1.3406],[104.0761,1.3425],[104.0748,1.3436],[104.0749,1.3437],[104.0764,1.343],[104.0793,1.3413],[104.0809,1.3411],[104.0813,1.3424],[104.0803,1.3452],[104.0781,1.3494],[104.0764,1.3531],[104.0753,1.3561],[104.0746,1.3586],[104.0745,1.3605],[104.0748,1.3631],[104.0754,1.3664],[104.0764,1.3705],[104.0778,1.3754],[104.0793,1.3799],[104.081,1.3842],[104.0828,1.3881],[104.0848,1.3917],[104.0862,1.395],[104.0871,1.3978],[104.0875,1.4003],[104.0873,1.4024],[104.087,1.404],[104.0864,1.4051],[104.0857,1.4058],[104.0848,1.406],[104.0839,1.405],[104.0828,1.4026],[104.0817,1.399],[104.0806,1.3941],[104.0782,1.3898],[104.0744,1.386],[104.0693,1.3827],[104.063,1.38],[104.0572,1.3791],[104.0521,1.3803],[104.0477,1.3833],[104.0438,1.3883],[104.0408,1.3926],[104.0385,1.3963],[104.0371,1.3994],[104.0364,1.4019],[104.035,1.4033],[104.0327,1.4037],[104.0295,1.4029],[104.0256,1.4011],[104.0224,1.3999],[104.02,1.3993],[104.0184,1.3993],[104.0175,1.3998],[104.0176,1.3992],[104.0185,1.3975],[104.0202,1.3946],[104.0228,1.3906],[104.0246,1.3876],[104.0255,1.3858],[104.0256,1.3852],[104.0248,1.3857],[104.0237,1.387],[104.0223,1.3891],[104.0206,1.3921],[104.0186,1.3959],[104.0179,1.3989],[104.0185,1.4009],[104.0205,1.4021],[104.0238,1.4024],[104.0264,1.4032],[104.0283,1.4045],[104.0294,1.4061],[104.0297,1.4083],[104.029,1.4097],[104.0271,1.4105],[104.0241,1.4106],[104.0201,1.41],[104.0167,1.4101],[104.0141,1.411],[104.0122,1.4127],[104.011,1.4151],[104.0101,1.4172],[104.0096,1.4191],[104.0094,1.4207],[104.0095,1.4221],[104.01,1.4235],[104.0109,1.4248],[104.0122,1.4261],[104.0138,1.4273],[104.0158,1.4273],[104.0179,1.4259],[104.0204,1.4231],[104.0231,1.4191],[104.0253,1.416],[104.0271,1.4139],[104.0284,1.4128],[104.0293,1.4127],[104.0298,1.4135],[104.03,1.415],[104.0299,1.4173],[104.0295,1.4205],[104.0297,1.4229],[104.0305,1.4244],[104.032,1.4252],[104.0342,1.4251],[104.0362,1.4255],[104.0379,1.4262],[104.0395,1.4274],[104.0408,1.429],[104.0424,1.43],[104.0443,1.4304],[104.0464,1.4301],[104.0488,1.4293],[104.0508,1.4289],[104.0525,1.429],[104.0539,1.4295],[104.0549,1.4305]]],[[[104.0424,1.4389],[104.0443,1.438],[104.0464,1.437],[104.0486,1.436],[104.051,1.4348],[104.0518,1.4342],[104.0508,1.4342],[104.0483,1.4347],[104.044,1.4357],[104.0397,1.4363],[104.0353,1.4363],[104.0308,1.4358],[104.0262,1.4348],[104.0239,1.4345],[104.024,1.4349],[104.0263,1.4361],[104.031,1.438],[104.035,1.4392],[104.0382,1.4398],[104.0407,1.4397],[104.0424,1.4389]]],[[[103.8134,1.4704],[103.8161,1.4705],[103.8182,1.4704],[103.8198,1.4701],[103.8208,1.4697],[103.8213,1.469],[103.8214,1.4681],[103.8209,1.4671],[103.8199,1.4658],[103.8194,1.465],[103.8194,1.4647],[103.8198,1.4649],[103.8207,1.4656],[103.8215,1.4659],[103.8223,1.4658],[103.823,1.4654],[103.8236,1.4646],[103.8243,1.4643],[103.825,1.4645],[103.8257,1.4653],[103.8264,1.4666],[103.8274,1.4674],[103.8287,1.4675],[103.8301,1.4671],[103.8318,1.4662],[103.833,1.4652],[103.8336,1.4641],[103.8338,1.4629],[103.8334,1.4617],[103.8334,1.4611],[103.8337,1.461],[103.8342,1.4615],[103.8351,1.4626],[103.8367,1.4628],[103.8389,1.4623],[103.8417,1.4609],[103.8452,1.4587],[103.848,1.4568],[103.8499,1.4552],[103.8511,1.4539],[103.8515,1.4529],[103.8515,1.4519],[103.8512,1.4512],[103.8506,1.4505],[103.8496,1.4499],[103.8487,1.4498],[103.8479,1.4502],[103.8472,1.451],[103.8467,1.4522],[103.8463,1.4528],[103.846,1.4526],[103.8458,1.4517],[103.8457,1.4502],[103.8463,1.4491],[103.8474,1.4483],[103.8491,1.448],[103.8514,1.4481],[103.8536,1.4474],[103.8557,1.4458],[103.8577,1.4433],[103.8597,1.44],[103.8608,1.4369],[103.8611,1.4341],[103.8606,1.4314],[103.8593,1.429],[103.8587,1.427],[103.8588,1.4255],[103.8596,1.4244],[103.8612,1.4237],[103.8627,1.4233],[103.8642,1.4232],[103.8657,1.4234],[103.8673,1.4239],[103.8684,1.4245],[103.8692,1.4252],[103.8696,1.4261],[103.8697,1.4271],[103.8702,1.428],[103.8711,1.429],[103.8725,1.4299],[103.8743,1.4307],[103.8764,1.431],[103.8787,1.4306],[103.8813,1.4297],[103.884,1.4281],[103.886,1.4268],[103.8872,1.4257],[103.8876,1.4249],[103.8872,1.4244],[103.887,1.4241],[103.8871,1.4241],[103.8874,1.4243],[103.888,1.4248],[103.8889,1.4249],[103.8902,1.4245],[103.8919,1.4237],[103.8939,1.4225],[103.8955,1.4212],[103.8966,1.4198],[103.8974,1.4184],[103.8976,1.4169],[103.8981,1.4162],[103.8989,1.4161],[103.9,1.4167],[103.9013,1.418],[103.9028,1.419],[103.9047,1.4198],[103.9067,1.4204],[103.909,1.4207],[103.9109,1.4207],[103.9122,1.4202],[103.9131,1.4194],[103.9135,1.4182],[103.9139,1.4173],[103.9144,1.4168],[103.9149,1.4167],[103.9155,1.4169],[103.9168,1.4163],[103.9189,1.4147],[103.9218,1.4123],[103.9254,1.409],[103.9281,1.4062],[103.9298,1.404],[103.9306,1.4023],[103.9304,1.4012],[103.9308,1.3997],[103.9316,1.398],[103.933,1.3959],[103.9349,1.3935],[103.9371,1.3913],[103.9394,1.3893],[103.942,1.3874],[103.9448,1.3857],[103.948,1.3842],[103.9517,1.383],[103.9557,1.382],[103.9601,1.3813],[103.9638,1.3812],[103.9666,1.3816],[103.9686,1.3827],[103.9698,1.3843],[103.971,1.3855],[103.9723,1.3863],[103.9735,1.3866],[103.9747,1.3865],[103.9755,1.3866],[103.9758,1.3871],[103.9755,1.3878],[103.9748,1.3888],[103.9748,1.3898],[103.9754,1.3906],[103.9767,1.3914],[103.9787,1.392],[103.9813,1.3923],[103.9844,1.3921],[103.9882,1.3915],[103.9925,1.3905],[103.9964,1.3888],[103.9998,1.3864],[104.0027,1.3832],[104.0052,1.3794],[104.0068,1.3762],[104.0077,1.3739],[104.0079,1.3722],[104.0072,1.3713],[104.0072,1.3706],[104.0078,1.3702],[104.0091,1.37],[104.0109,1.3701],[104.0142,1.3691],[104.0188,1.3672],[104.0248,1.3642],[104.0322,1.3602],[104.0377,1.357],[104.0412,1.3547],[104.0428,1.3533],[104.0425,1.3528],[104.0417,1.3528],[104.0404,1.3533],[104.0385,1.3544],[104.0362,1.356],[104.0345,1.3567],[104.0333,1.3566],[104.0327,1.3555],[104.0327,1.3536],[104.0325,1.3521],[104.0322,1.3509],[104.0317,1.3501],[104.0311,1.3497],[104.0307,1.3497],[104.0306,1.3501],[104.0307,1.3508],[104.0311,1.352],[104.0308,1.3517],[104.0298,1.3498],[104.0281,1.3466],[104.0257,1.3418],[104.0239,1.3377],[104.0225,1.3344],[104.0217,1.3317],[104.0214,1.3298],[104.0219,1.3283],[104.0232,1.327],[104.0252,1.3262],[104.0281,1.3257],[104.0302,1.3248],[104.0317,1.3234],[104.0325,1.3216],[104.0326,1.3194],[104.0324,1.3178],[104.032,1.3166],[104.0313,1.316],[104.0303,1.3159],[104.0296,1.3161],[104.0291,1.3166],[104.0288,1.3174],[104.0288,1.3185],[104.0284,1.3193],[104.0277,1.3198],[104.0266,1.3201],[104.0251,1.32],[104.024,1.3197],[104.0232,1.3191],[104.0227,1.3183],[104.0226,1.3171],[104.0218,1.3163],[104.0204,1.3157],[104.0183,1.3154],[104.0155,1.3153],[104.0128,1.315],[104.0101,1.3144],[104.0074,1.3134],[104.0047,1.3122],[104.002,1.3115],[103.9994,1.3113],[103.9969,1.3117],[103.9944,1.3126],[103.9921,1.3132],[103.99,1.3134],[103.9882,1.3133],[103.9865,1.3128],[103.9852,1.3127],[103.9843,1.3131],[103.9837,1.3139],[103.9836,1.315],[103.9823,1.3158],[103.9797,1.3161],[103.9758,1.316],[103.9707,1.3154],[103.9626,1.3137],[103.9514,1.3108],[103.9371,1.3067],[103.9197,1.3014],[103.9057,1.2967],[103.895,1.2924],[103.8877,1.2887],[103.8837,1.2855],[103.8803,1.2831],[103.8775,1.2815],[103.8754,1.2807],[103.8738,1.2806],[103.8726,1.2804],[103.8719,1.2799],[103.8715,1.2792],[103.8716,1.2783],[103.8709,1.277],[103.8695,1.2754],[103.8673,1.2735],[103.8644,1.2712],[103.8622,1.2693],[103.8609,1.2678],[103.8603,1.2666],[103.8605,1.2659],[103.8601,1.2658],[103.8591,1.2664],[103.8574,1.2678],[103.8551,1.2698],[103.8533,1.2706],[103.8521,1.2701],[103.8515,1.2683],[103.8514,1.2652],[103.851,1.2633],[103.8502,1.2626],[103.8491,1.263],[103.8478,1.2646],[103.8467,1.2654],[103.846,1.2655],[103.8457,1.2649],[103.8457,1.2636],[103.8454,1.263],[103.8446,1.2631],[103.8435,1.2639],[103.842,1.2654],[103.8396,1.2662],[103.8363,1.2662],[103.8322,1.2655],[103.8273,1.2641],[103.8234,1.2633],[103.8207,1.2632],[103.819,1.2637],[103.8184,1.2649],[103.8179,1.2656],[103.8174,1.2658],[103.817,1.2656],[103.8166,1.2649],[103.8158,1.2645],[103.8144,1.2644],[103.8126,1.2647],[103.8102,1.2653],[103.8084,1.2655],[103.807,1.2653],[103.8061,1.2647],[103.8057,1.2638],[103.8048,1.2636],[103.8034,1.2643],[103.8015,1.2658],[103.799,1.2681],[103.7965,1.2688],[103.7941,1.2679],[103.7916,1.2654],[103.7892,1.2612],[103.7869,1.2584],[103.7848,1.2568],[103.7829,1.2566],[103.7812,1.2576],[103.7804,1.2593],[103.7806,1.2617],[103.7818,1.2647],[103.7839,1.2683],[103.7851,1.2714],[103.7853,1.2739],[103.7846,1.2759],[103.783,1.2774],[103.7816,1.2785],[103.7805,1.2794],[103.7797,1.28],[103.7791,1.2804],[103.7782,1.2799],[103.7769,1.2784],[103.7754,1.2762],[103.7735,1.273],[103.7708,1.2714],[103.7673,1.2713],[103.763,1.2728],[103.7579,1.2759],[103.7544,1.2785],[103.7526,1.2807],[103.7525,1.2825],[103.7541,1.2838],[103.7561,1.2844],[103.7585,1.2841],[103.7612,1.283],[103.7644,1.2812],[103.767,1.2801],[103.7689,1.2798],[103.7703,1.2804],[103.7711,1.2817],[103.771,1.2831],[103.77,1.2847],[103.768,1.2863],[103.7651,1.288],[103.763,1.2896],[103.7619,1.2909],[103.7616,1.2921],[103.7622,1.2931],[103.7623,1.2942],[103.7619,1.2954],[103.7611,1.2967],[103.7597,1.298],[103.7582,1.2988],[103.7565,1.299],[103.7545,1.2987],[103.7524,1.2977],[103.7504,1.2973],[103.7486,1.2974],[103.747,1.2981],[103.7455,1.2993],[103.7442,1.3001],[103.7431,1.3004],[103.7423,1.3003],[103.7417,1.2997],[103.7405,1.2993],[103.7386,1.2992],[103.736,1.2993],[103.7328,1.2996],[103.7294,1.3004],[103.7259,1.3017],[103.7222,1.3034],[103.7184,1.3056],[103.7161,1.3066],[103.7154,1.3066],[103.7162,1.3053],[103.7185,1.303],[103.7196,1.3012],[103.7195,1.3001],[103.7182,1.2995],[103.7157,1.2995],[103.7137,1.2994],[103.7124,1.2991],[103.7117,1.2987],[103.7115,1.2981],[103.7114,1.2983],[103.7113,1.2994],[103.7111,1.3014],[103.711,1.3042],[103.7108,1.3063],[103.7104,1.3076],[103.7099,1.3081],[103.7093,1.3079],[103.7089,1.3074],[103.7086,1.3066],[103.7085,1.3055],[103.7086,1.3041],[103.7082,1.3031],[103.7075,1.3024],[103.7063,1.302],[103.7048,1.3019],[103.7031,1.3022],[103.7014,1.303],[103.6997,1.3041],[103.6979,1.3056],[103.6964,1.3062],[103.6953,1.3061],[103.6946,1.3051],[103.6943,1.3033],[103.6934,1.3019],[103.692,1.3008],[103.6901,1.3001],[103.6876,1.2997],[103.6856,1.3001],[103.684,1.3012],[103.6829,1.3032],[103.6823,1.3059],[103.6819,1.3072],[103.6816,1.3071],[103.6816,1.3055],[103.6817,1.3025],[103.6816,1.3003],[103.6811,1.2991],[103.6804,1.2986],[103.6794,1.299],[103.6786,1.2992],[103.6782,1.299],[103.6781,1.2985],[103.6782,1.2977],[103.678,1.2978],[103.6773,1.2987],[103.6763,1.3004],[103.6749,1.303],[103.6735,1.3048],[103.6723,1.3061],[103.6712,1.3066],[103.6702,1.3065],[103.6698,1.3057],[103.67,1.3043],[103.6709,1.3022],[103.6723,1.2994],[103.6727,1.2968],[103.6722,1.2944],[103.6707,1.2921],[103.6682,1.2901],[103.6664,1.2888],[103.6652,1.2884],[103.6646,1.2888],[103.6647,1.29],[103.6643,1.2913],[103.6635,1.2926],[103.6623,1.2939],[103.6607,1.2952],[103.6592,1.2961],[103.658,1.2966],[103.657,1.2966],[103.6561,1.2962],[103.6557,1.2961],[103.6556,1.2961],[103.6558,1.2965],[103.6564,1.2971],[103.6566,1.2975],[103.6564,1.2978],[103.6557,1.2979],[103.6547,1.2979],[103.6539,1.298],[103.6535,1.2984],[103.6533,1.299],[103.6535,1.2998],[103.6535,1.3003],[103.6533,1.3005],[103.653,1.3004],[103.6525,1.3],[103.6522,1.2999],[103.6522,1.3001],[103.6524,1.3006],[103.6528,1.3014],[103.6528,1.3019],[103.6526,1.3022],[103.652,1.3023],[103.6511,1.302],[103.6509,1.3024],[103.6514,1.3035],[103.6525,1.3052],[103.6543,1.3076],[103.6552,1.3089],[103.6551,1.3092],[103.654,1.3084],[103.652,1.3066],[103.6503,1.3055],[103.6489,1.3052],[103.6479,1.3057],[103.6472,1.307],[103.647,1.3084],[103.6474,1.3099],[103.6483,1.3115],[103.6497,1.3132],[103.6506,1.3145],[103.651,1.3156],[103.651,1.3163],[103.6505,1.3167],[103.6497,1.3167],[103.6486,1.3161],[103.6473,1.3151],[103.6457,1.3136],[103.6441,1.3128],[103.6426,1.3127],[103.6412,1.3132],[103.6398,1.3145],[103.6385,1.3151],[103.6375,1.3151],[103.6367,1.3144],[103.6361,1.313],[103.6366,1.3102],[103.6381,1.3059],[103.6407,1.3003],[103.6444,1.2932],[103.647,1.2877],[103.6485,1.2837],[103.6489,1.2813],[103.6482,1.2805],[103.6473,1.2799],[103.6461,1.2795],[103.6446,1.2792],[103.6429,1.2792],[103.6416,1.2783],[103.6406,1.2766],[103.64,1.2741],[103.6398,1.2708],[103.6392,1.2681],[103.6382,1.2661],[103.6368,1.2648],[103.635,1.2641],[103.6341,1.2638],[103.6349,1.2642],[103.6365,1.265],[103.6377,1.2658],[103.6385,1.2667],[103.6389,1.2676],[103.6388,1.2686],[103.6376,1.2688],[103.6355,1.2683],[103.6323,1.267],[103.628,1.2649],[103.6248,1.2631],[103.6227,1.2616],[103.6217,1.2603],[103.6217,1.2594],[103.6222,1.2588],[103.6231,1.2587],[103.6245,1.259],[103.6263,1.2598],[103.6269,1.2599],[103.6261,1.2595],[103.624,1.2584],[103.6206,1.2568],[103.6184,1.2545],[103.6175,1.2517],[103.6178,1.2483],[103.6194,1.2443],[103.6203,1.2412],[103.6205,1.2389],[103.6201,1.2375],[103.6191,1.237],[103.6184,1.2361],[103.618,1.2347],[103.6181,1.2329],[103.6184,1.2307],[103.6182,1.2286],[103.6173,1.2265],[103.6158,1.2244],[103.6136,1.2225],[103.6141,1.2205],[103.6173,1.2185],[103.6231,1.2165],[103.6315,1.2145],[103.6355,1.2136],[103.635,1.2137],[103.6301,1.2148],[103.6207,1.217],[103.6136,1.2189],[103.6089,1.2206],[103.6065,1.222],[103.6065,1.2231],[103.6066,1.2237],[103.6069,1.2236],[103.6074,1.2229],[103.608,1.2216],[103.609,1.2211],[103.6104,1.2214],[103.6122,1.2225],[103.6145,1.2244],[103.616,1.2264],[103.6169,1.2286],[103.6172,1.231],[103.6168,1.2335],[103.6162,1.2353],[103.6155,1.2366],[103.6146,1.2372],[103.6136,1.2373],[103.6128,1.2375],[103.6122,1.238],[103.6118,1.2388],[103.6116,1.2398],[103.6111,1.2405],[103.6103,1.2409],[103.6092,1.2411],[103.6078,1.2411],[103.6068,1.2412],[103.606,1.2416],[103.6056,1.2421],[103.6055,1.2429],[103.6059,1.2435],[103.6067,1.244],[103.608,1.2445],[103.6098,1.2448],[103.611,1.2451],[103.6114,1.2454],[103.6112,1.2457],[103.6103,1.2459],[103.6096,1.2465],[103.609,1.2474],[103.6087,1.2485],[103.6085,1.25],[103.6087,1.2513],[103.6094,1.2524],[103.6104,1.2535],[103.6118,1.2544],[103.6129,1.2558],[103.6136,1.2577],[103.6139,1.2602],[103.6139,1.2632],[103.6136,1.2655],[103.6131,1.267],[103.6124,1.2679],[103.6114,1.268],[103.6105,1.2677],[103.6095,1.2671],[103.6085,1.2661],[103.6075,1.2647],[103.6072,1.2645],[103.6074,1.2656],[103.6083,1.2679],[103.6099,1.2714],[103.6115,1.2744],[103.6132,1.2771],[103.6151,1.2792],[103.6171,1.2809],[103.6184,1.2831],[103.6192,1.2856],[103.6193,1.2886],[103.6188,1.292],[103.6195,1.2973],[103.6214,1.3044],[103.6244,1.3135],[103.6285,1.3244],[103.6315,1.3327],[103.6334,1.3384],[103.6342,1.3415],[103.6338,1.342],[103.6337,1.3425],[103.6339,1.3431],[103.6344,1.3438],[103.6352,1.3445],[103.6357,1.3453],[103.6358,1.3461],[103.6356,1.3469],[103.6351,1.3478],[103.6349,1.3485],[103.6351,1.3491],[103.6357,1.3496],[103.6368,1.3499],[103.639,1.3525],[103.6424,1.3575],[103.647,1.3648],[103.6528,1.3743],[103.6572,1.3826],[103.6602,1.3895],[103.6619,1.395],[103.6621,1.3993],[103.6629,1.403],[103.6644,1.4061],[103.6664,1.4087],[103.669,1.4108],[103.6711,1.4131],[103.6726,1.4155],[103.6735,1.4181],[103.6739,1.4209],[103.6743,1.4232],[103.675,1.4251],[103.6757,1.4265],[103.6766,1.4275],[103.6784,1.4286],[103.6811,1.4299],[103.6846,1.4312],[103.689,1.4327],[103.693,1.4345],[103.6966,1.4366],[103.6998,1.439],[103.7025,1.4418],[103.7054,1.4442],[103.7083,1.4462],[103.7114,1.4478],[103.7146,1.4491],[103.7172,1.4499],[103.7192,1.4501],[103.7207,1.4499],[103.7216,1.4492],[103.7227,1.4487],[103.7241,1.4485],[103.7257,1.4486],[103.7275,1.449],[103.7294,1.4488],[103.7312,1.4482],[103.7329,1.447],[103.7346,1.4453],[103.7359,1.4438],[103.7367,1.4424],[103.737,1.4412],[103.7368,1.4402],[103.7372,1.4396],[103.738,1.4393],[103.7394,1.4393],[103.7412,1.4397],[103.7432,1.4397],[103.7452,1.4393],[103.7473,1.4386],[103.7495,1.4375],[103.7512,1.4368],[103.7525,1.4366],[103.7534,1.4368],[103.7539,1.4375],[103.7547,1.438],[103.756,1.4382],[103.7576,1.4383],[103.7597,1.4381],[103.7613,1.4383],[103.7626,1.439],[103.7636,1.44],[103.7641,1.4415],[103.7647,1.4426],[103.7654,1.4432],[103.766,1.4434],[103.7667,1.4432],[103.7673,1.4436],[103.7678,1.4447],[103.7682,1.4463],[103.7686,1.4486],[103.769,1.45],[103.7694,1.4507],[103.7698,1.4507],[103.7703,1.4498],[103.771,1.4494],[103.772,1.4493],[103.7732,1.4496],[103.7748,1.4502],[103.7776,1.4518],[103.7816,1.4544],[103.7869,1.4579],[103.7933,1.4624],[103.7985,1.4655],[103.8023,1.4673],[103.8048,1.4678],[103.8059,1.4669],[103.8066,1.4666],[103.8069,1.4666],[103.8068,1.4672],[103.8062,1.4682],[103.8066,1.469],[103.8079,1.4697],[103.8102,1.4701],[103.8134,1.4704]]]]}};
function geoScript(src){ return new Promise(function(ok, no){ var e = document.createElement(‘script’); e.src = src; e.onload = ok; e.onerror = no; document.head.appendChild(e); }); }
function geoLibs(){
return geoLib || (geoLib = (window.d3 && window.d3.geoMercator && window.topojson) ? Promise.resolve() :
geoScript(GEO_CDN + ‘d3-array@3.2.4/dist/d3-array.min.js’)
.then(function(){ return geoScript(GEO_CDN + ‘d3-geo@3.1.1/dist/d3-geo.min.js’); })
.then(function(){ return geoScript(GEO_CDN + ‘topojson-client@3.1.0/dist/topojson-client.min.js’); }));
}
function geoFeatures(){
return geoAtlas || (geoAtlas = fetch(GEO_CDN + ‘world-atlas@2.0.2/countries-50m.json’).then(function(r){ return r.json(); })
.then(function(t){ return topojson.feature(t, t.objects.countries).features; }));
}
function geoPolys(f){ var g = f.geometry; if (!g) return []; return g.type === ‘Polygon’ ? [g.coordinates] : g.coordinates; }
function geoPoly(p){ return {type:’Polygon’, coordinates:p}; }
function geoTrim(f, pt){ // keep the landmass holding the venue + reasonably near islands (no Alaska, overseas France…)
var ps = geoPolys(f); if (ps.length < 2) return f;
var home = null, far = 0;
ps.forEach(function(p){ if (!home && d3.geoContains(geoPoly(p), pt)) home = p; });
if (!home){ var bd = Infinity; ps.forEach(function(p){ var d = d3.geoDistance(d3.geoCentroid(geoPoly(p)), pt); if (d < bd){ bd = d; home = p; } }); }
home[0].forEach(function(c){ far = Math.max(far, d3.geoDistance(c, pt)); });
var R = Math.max(0.39, far), homeA = d3.geoArea(geoPoly(home));
var keep = ps.filter(function(p){
if (p === home) return true;
var d = d3.geoDistance(d3.geoCentroid(geoPoly(p)), pt);
return d <= R && (d < 0.157 || d3.geoArea(geoPoly(p)) > homeA * 0.005);
});
return {type:’Feature’, properties:f.properties, geometry:{type:’MultiPolygon’, coordinates:keep}};
}
function geoDraw(box, f, pt, exact){
var W = 400, H = box.closest(‘.sp-ev-locrow’) && box.clientWidth ? Math.round(400 * box.clientHeight / box.clientWidth) || 300 : 300, NS = ‘http://www.w3.org/2000/svg’;
var shape = geoTrim(f, pt);
var proj = d3.geoMercator().rotate([-pt[0], 0]).fitExtent([[8, 8], [W – 8, H – 8]], shape);
var svg = document.createElementNS(NS, ‘svg’); svg.setAttribute(‘viewBox’, ‘0 0 ‘ + W + ‘ ‘ + H);
var land = document.createElementNS(NS, ‘path’); land.setAttribute(‘class’, ‘land’); land.setAttribute(‘d’, d3.geoPath(proj)(shape));
svg.appendChild(land);
if (exact){
var xy = proj(pt);
[‘ring’, ‘dot’].forEach(function(k){
var c = document.createElementNS(NS, ‘circle’); c.setAttribute(‘class’, k);
c.setAttribute(‘cx’, xy[0]); c.setAttribute(‘cy’, xy[1]); c.setAttribute(‘r’, 5); svg.appendChild(c);
});
}
box.innerHTML = ”; box.appendChild(svg);
var cname = GEO_SHORT[f.properties.name] || f.properties.name || ”;
var row = box.closest(‘.sp-ev-locrow’), slot = row && row.querySelector(‘[data-geo-name]’);
if (slot) slot.textContent = cname; // panel: name sits in the side card
else { var cap = document.createElement(‘div’); cap.className = ‘sp-ev-geo-cap’; cap.textContent = cname; box.appendChild(cap); }
if (f === GEO_SG){ var cr = document.createElement(‘div’); cr.className = ‘sp-ev-geo-credit’; cr.textContent = ‘Outline: URA via geoBoundaries, ODbL’; box.appendChild(cr); }
try { box.style.setProperty(‘–len’, Math.ceil(land.getTotalLength())); box.classList.add(‘draw’); } catch(e){}
}
// —- link the venue dot to the matching 3D route (Play Map for Singapore, travel map abroad)
// Route = name match first (the event’s distinctive words must be in the route name, as on the event hubs),
// else the nearest route within ~60 km of the venue. Routes come from the public Storefront API (no 50 cap).
var SF_TOKEN = ‘f10ed48d976345d052e0b5d1c7033ab3’, SF_API = ‘2026-07’, routesP = null;
var ROUTE_PAGE_SG = ‘/pages/the-play-map’, ROUTE_PAGE_WORLD = ‘/pages/travel’; // both read ?route=

Exit mobile version