webgl-B37p1J_D.js 70 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. import"./modulepreload-polyfill-B5Qt9EMX.js";function k(t,a,i,e,r){var s=a,u=a+e,d=i,x=i+r;t.bufferData(t.ARRAY_BUFFER,new Float32Array([s,d,u,d,s,x,s,x,u,d,u,x]),t.STATIC_DRAW)}class C{constructor(a){this.color=a,this.parts=new Uint8Array(4);let i=new Uint32Array(this.parts.buffer);i[0]=a}float(){let a=this.parts;return[a[0]/255,a[1]/255,a[2]/255,a[3]/255]}css(){let a=this.parts;return`rgba(${a[0]},${a[1]},${a[2]},${a[3]})`}}class V{constructor(a,i){this.x=a,this.y=i}}class L{constructor(a,i,e,r){this.x=a,this.y=i,this.width=e,this.height=r}get center(){return new V(this.x+this.width/2,this.y+this.height/2)}static fromCenter(a,i,e){return new L(a.x-i/2,a.y-e/2,i,e)}toString(){return`Rect(${this.x}, ${this.y},${this.width}, ${this.height})`}vertex(){var a=this.x,i=this.x+this.width,e=this.y,r=this.y+this.height;return[a,e,i,e,a,r,a,r,i,e,i,r]}coverRadius(a,i){let e=[this.x,this.y,this.x+this.width,this.y,this.x,this.y+this.height,this.x+this.width,this.y+this.height],r=0,s=0;for(var u=0;u<e.length;u+=2)s=$(a,i,e[u],e[u+1]),console.log(`dist=${s}`),s>r&&(r=s);return r}}function M(t,a,i,e){return new L(t,a,i,e).vertex()}function $(t,a,i,e){let r=t-i,s=a-e;return Math.sqrt(r*r+s*s)}const z={1:{labelPoints:[{x:908,y:1715,radius:15},{x:658,y:1406,radius:22.135943621178654},{x:669,y:1903,radius:31},{x:375,y:1175,radius:37.33630940518894},{x:979,y:1655,radius:17},{x:442,y:1573,radius:12},{x:735,y:1793,radius:28.071337695236398},{x:342,y:1853,radius:11.40175425099138},{x:614,y:958,radius:15.524174696260024}],areaIndexs:[4281174682,4283083396,4285710113,4286316621,4286748709,4287142409,4294069497,4294876076,4294942767],color:4287515600,maxRadius:37.33630940518894},2:{labelPoints:[{x:919,y:1148,radius:17.88854381999832},{x:124,y:1222,radius:27.85677655436824},{x:413,y:456,radius:17},{x:345,y:1693,radius:13.892443989449804},{x:515,y:1352,radius:28.071337695236398},{x:381,y:1831,radius:21},{x:1012,y:194,radius:19.235384061671343}],areaIndexs:[4283810311,4290815562,4291544004,4291752442,4292621284,4293987665,4294075704],color:4287054787,maxRadius:28.071337695236398},3:{labelPoints:[{x:932,y:1389,radius:10.770329614269007},{x:782,y:1353,radius:12.041594578792296},{x:408,y:1609,radius:15.811388300841896},{x:773,y:1749,radius:26.627053911388696},{x:1045,y:1033,radius:15.556349186104045},{x:974,y:1588,radius:18.973665961010276},{x:505,y:1305,radius:8.06225774829855},{x:99,y:1150,radius:3},{x:588,y:997,radius:11.180339887498949}],areaIndexs:[4278872795,4280176770,4283726700,4285266143,4286567926,4288894834,4292415341,4293459915,4294218247],color:4285215351,maxRadius:26.627053911388696},4:{labelPoints:[{x:812,y:1533,radius:7},{x:235,y:1242,radius:8.54400374531753},{x:732,y:1987,radius:9.486832980505138},{x:532,y:737,radius:7.810249675906654},{x:882,y:1660,radius:11.180339887498949},{x:1064,y:278,radius:23.259406699226016}],areaIndexs:[4279358261,4281858651,4285437067,4285875204,4288348408,4291641483],color:4285146255,maxRadius:23.259406699226016},5:{labelPoints:[{x:1003,y:347,radius:9.848857801796104},{x:770,y:1678,radius:33.83784863137726},{x:209,y:1485,radius:22.561028345356956},{x:426,y:1146,radius:19.72308292331602},{x:545,y:679,radius:7.810249675906654}],areaIndexs:[4278548830,4280733903,4286760238,4290025850,4290366856],color:4284159349,maxRadius:33.83784863137726},6:{labelPoints:[{x:163,y:1340,radius:15.297058540778355},{x:233,y:1412,radius:20.518284528683193},{x:321,y:1206,radius:10.770329614269007},{x:577,y:931,radius:9.848857801796104},{x:566,y:1337,radius:19.924858845171276},{x:736,y:1398,radius:13},{x:168,y:1222,radius:14},{x:793,y:1950,radius:28.460498941515414},{x:329,y:1743,radius:13.92838827718412}],areaIndexs:[4280715517,4282983456,4283837767,4287547033,4288349655,4289193001,4289279001,4289404236,4292938336],color:4289029112,maxRadius:28.460498941515414},7:{labelPoints:[{x:435,y:1943,radius:10},{x:870,y:1105,radius:8.48528137423857},{x:996,y:1798,radius:11.40175425099138},{x:880,y:1907,radius:10},{x:938,y:1814,radius:7.280109889280518},{x:624,y:287,radius:21.93171219946131},{x:1005,y:968,radius:9},{x:905,y:1231,radius:13.416407864998739}],areaIndexs:[4278664185,4281899146,4283970738,4287385457,4288086018,4288700333,4292222520,4294368658],color:4288041950,maxRadius:21.93171219946131},8:{labelPoints:[{x:886,y:1308,radius:8.94427190999916},{x:847,y:1361,radius:12},{x:636,y:1509,radius:9.055385138137417},{x:689,y:1423,radius:11.180339887498949},{x:782,y:1506,radius:11.40175425099138},{x:305,y:1292,radius:7},{x:372,y:1687,radius:8},{x:625,y:1389,radius:13.416407864998739},{x:316,y:1972,radius:23}],areaIndexs:[4278810549,4279711524,4279911465,4282432337,4284601424,4285474807,4289047582,4289913347,4291899467],color:4288502762,maxRadius:23},9:{labelPoints:[{x:1110,y:249,radius:21.633307652783937},{x:495,y:479,radius:21},{x:776,y:251,radius:22}],areaIndexs:[4283179358,4284207855,4288046017],color:4286133161,maxRadius:22},10:{labelPoints:[{x:1020,y:313,radius:23.259406699226016},{x:548,y:720,radius:12.041594578792296}],areaIndexs:[4283949255,4294628090],color:4284685697,maxRadius:23.259406699226016},11:{labelPoints:[{x:567,y:397,radius:17.4928556845359},{x:896,y:305,radius:16.55294535724685}],areaIndexs:[4281204704,4294386784],color:4285607068,maxRadius:17.4928556845359},12:{labelPoints:[{x:596,y:360,radius:13.892443989449804}],areaIndexs:[4282045505],color:4288303320,maxRadius:13.892443989449804},13:{labelPoints:[{x:1009,y:424,radius:13.601470508735444},{x:860,y:201,radius:32.01562118716424},{x:1605,y:721,radius:14.317821063276353},{x:488,y:358,radius:23.259406699226016}],areaIndexs:[4279360034,4283672650,4283949394,4285289395],color:4286528438,maxRadius:32.01562118716424},14:{labelPoints:[{x:1581,y:571,radius:22.360679774997898},{x:1454,y:331,radius:44.27188724235731},{x:618,y:232,radius:25.059928172283335}],areaIndexs:[4286698117,4291782585,4293504321],color:4288107992,maxRadius:44.27188724235731},15:{labelPoints:[{x:1419,y:434,radius:13},{x:607,y:189,radius:13.892443989449804}],areaIndexs:[4285480968,4285920427],color:4291256573,maxRadius:13.892443989449804},16:{labelPoints:[{x:1645,y:710,radius:11.180339887498949},{x:964,y:448,radius:12.165525060596439}],areaIndexs:[4280309542,4288082125],color:4291795843,maxRadius:12.165525060596439},17:{labelPoints:[{x:1472,y:418,radius:14.212670403551895}],areaIndexs:[4278422296],color:4292389737,maxRadius:14.212670403551895},18:{labelPoints:[{x:1545,y:684,radius:12.041594578792296},{x:1378,y:460,radius:13},{x:1496,y:599,radius:23.345235059857504},{x:1182,y:500,radius:18.788294228055936},{x:1460,y:689,radius:6},{x:1300,y:444,radius:20},{x:1052,y:516,radius:9.848857801796104},{x:1525,y:757,radius:7.211102550927978},{x:1073,y:439,radius:13.601470508735444}],areaIndexs:[4278505448,4282245365,4282608419,4288254865,4288338992,4288880321,4289189162,4290773092,4294463655],color:4282134344,maxRadius:23.345235059857504},19:{labelPoints:[{x:1496,y:660,radius:32},{x:1559,y:711,radius:9.433981132056603},{x:1004,y:530,radius:14},{x:1173,y:449,radius:13.892443989449804},{x:1046,y:664,radius:20},{x:1420,y:494,radius:19.697715603592208}],areaIndexs:[4278547939,4279172180,4282141286,4285839478,4291320644,4293463525],color:4284043107,maxRadius:32},20:{labelPoints:[{x:1137,y:602,radius:8.06225774829855},{x:1472,y:545,radius:29.410882339705484},{x:1140,y:433,radius:18.35755975068582},{x:1009,y:612,radius:17.69180601295413},{x:1208,y:398,radius:7.280109889280518},{x:1342,y:443,radius:11.313708498984761},{x:1554,y:623,radius:10.44030650891055},{x:1269,y:588,radius:9.433981132056603}],areaIndexs:[4282717081,4285008317,4286525835,4287767726,4290479550,4290986666,4292900195,4293061801],color:4286017150,maxRadius:29.410882339705484},21:{labelPoints:[{x:1308,y:570,radius:6},{x:1117,y:591,radius:8.94427190999916},{x:1058,y:478,radius:21.400934559032695}],areaIndexs:[4279854025,4282153164,4288533943],color:4287925913,maxRadius:21.400934559032695},22:{labelPoints:[{x:1244,y:418,radius:24.413111231467404}],areaIndexs:[4285529900],color:4287267728,maxRadius:24.413111231467404},23:{labelPoints:[{x:1208,y:469,radius:6.708203932499369}],areaIndexs:[4287892067],color:4280818230,maxRadius:6.708203932499369},24:{labelPoints:[{x:875,y:333,radius:3},{x:1068,y:828,radius:13.601470508735444},{x:983,y:362,radius:7.0710678118654755},{x:601,y:487,radius:10.63014581273465},{x:603,y:600,radius:7.810249675906654},{x:716,y:374,radius:20},{x:985,y:672,radius:10.63014581273465},{x:794,y:387,radius:14.866068747318506}],areaIndexs:[4283266180,4285574589,4286081226,4288717640,4289896662,4290091887,4290754779,4293165634],color:4286934131,maxRadius:20},25:{labelPoints:[{x:553,y:629,radius:18.027756377319946},{x:643,y:399,radius:18.973665961010276},{x:945,y:521,radius:9.433981132056603},{x:562,y:559,radius:8.94427190999916},{x:940,y:338,radius:8.54400374531753}],areaIndexs:[4282578962,4284712659,4289085685,4289143362,4293790500],color:4291607481,maxRadius:18.973665961010276},26:{labelPoints:[{x:892,y:461,radius:16},{x:545,y:496,radius:7.615773105863909},{x:610,y:520,radius:6},{x:835,y:520,radius:5},{x:602,y:573,radius:6.324555320336759},{x:693,y:516,radius:3.605551275463989},{x:602,y:626,radius:6.082762530298219},{x:762,y:373,radius:8.94427190999916},{x:680,y:419,radius:15.811388300841896}],areaIndexs:[4278635646,4282478252,4283831782,4284651551,4285182304,4286639376,4289371942,4293624525,4294520210],color:4289303446,maxRadius:16},27:{labelPoints:[{x:658,y:334,radius:27.459060435491963},{x:679,y:510,radius:6.082762530298219},{x:749,y:442,radius:7.0710678118654755},{x:575,y:675,radius:13.601470508735444},{x:849,y:510,radius:6.708203932499369},{x:912,y:382,radius:7.0710678118654755},{x:556,y:586,radius:12.649110640673518},{x:566,y:449,radius:12.041594578792296}],areaIndexs:[4280272131,4280558878,4281572999,4284697552,4285529127,4289992165,4290069821,4293089855],color:4293976796,maxRadius:27.459060435491963},28:{labelPoints:[{x:854,y:308,radius:5.830951894845301},{x:1025,y:869,radius:11.313708498984761},{x:950,y:833,radius:7.0710678118654755},{x:1047,y:718,radius:5}],areaIndexs:[4278523949,4287806753,4292783760,4294276482],color:4286144360,maxRadius:11.313708498984761},29:{labelPoints:[{x:753,y:599,radius:5},{x:999,y:853,radius:8},{x:627,y:841,radius:15.231546211727817}],areaIndexs:[4279030905,4280212175,4292080812],color:4281376738,maxRadius:15.231546211727817},30:{labelPoints:[{x:688,y:540,radius:5},{x:587,y:633,radius:5},{x:914,y:588,radius:5},{x:1371,y:626,radius:5},{x:948,y:623,radius:5.830951894845301},{x:1103,y:608,radius:5},{x:1027,y:718,radius:5},{x:1248,y:694,radius:5},{x:788,y:652,radius:5}],areaIndexs:[4278255711,4278437117,4280257390,4280933753,4281816891,4283157374,4287167423,4289580664,4291478221],color:4281183688,maxRadius:5.830951894845301},31:{labelPoints:[{x:1109,y:743,radius:5},{x:1155,y:667,radius:5},{x:1224,y:672,radius:5.830951894845301},{x:882,y:677,radius:5},{x:684,y:662,radius:5},{x:1363,y:719,radius:5.656854249492381},{x:936,y:617,radius:4.47213595499958},{x:1433,y:655,radius:4.123105625617661}],areaIndexs:[4283883049,4283984010,4286991459,4287520663,4287893519,4288832771,4289116639,4292651333],color:4280849347,maxRadius:5.830951894845301},32:{labelPoints:[{x:1191,y:666,radius:5.830951894845301},{x:817,y:551,radius:5},{x:1408,y:651,radius:6},{x:602,y:547,radius:5},{x:1277,y:607,radius:5},{x:1466,y:798,radius:6.708203932499369},{x:979,y:860,radius:10.770329614269007},{x:1032,y:629,radius:5}],areaIndexs:[4279160859,4288860031,4290007738,4290016308,4290357103,4292048464,4292471308,4294665179],color:4282053621,maxRadius:10.770329614269007},33:{labelPoints:[{x:692,y:467,radius:11.045361017187261},{x:845,y:601,radius:14},{x:962,y:778,radius:11.180339887498949},{x:707,y:883,radius:6.324555320336759},{x:639,y:560,radius:19.79898987322333}],areaIndexs:[4279292610,4280275515,4280693035,4292529113,4294018645],color:4286684113,maxRadius:19.79898987322333},34:{labelPoints:[{x:132,y:783,radius:9.486832980505138},{x:814,y:922,radius:8.94427190999916},{x:98,y:846,radius:10.63014581273465},{x:534,y:1155,radius:34.713109915419565},{x:766,y:538,radius:30.265491900843113},{x:860,y:815,radius:38.8329756778952},{x:152,y:1133,radius:21.587033144922902},{x:96,y:911,radius:13.416407864998739}],areaIndexs:[4278936478,4279233782,4279784365,4279948942,4283825151,4285155649,4287474511,4291406040],color:4288790783,maxRadius:38.8329756778952},35:{labelPoints:[{x:447,y:1029,radius:11.180339887498949},{x:90,y:1025,radius:10.63014581273465},{x:1001,y:719,radius:11.180339887498949},{x:126,y:1160,radius:14.866068747318506},{x:481,y:1200,radius:22.80350850198276},{x:453,y:953,radius:10},{x:792,y:908,radius:15.556349186104045},{x:522,y:917,radius:13.152946437965905},{x:62,y:917,radius:12.36931687685298}],areaIndexs:[4280110399,4281839116,4282675181,4283405561,4284095774,4287340941,4289233049,4291176546,4292168795],color:4285958340,maxRadius:22.80350850198276},36:{labelPoints:[{x:735,y:814,radius:8},{x:617,y:699,radius:21.95449840010015},{x:903,y:699,radius:18.027756377319946}],areaIndexs:[4281084527,4286284165,4293712007],color:4287598575,maxRadius:21.95449840010015},37:{labelPoints:[{x:747,y:740,radius:5}],areaIndexs:[4287586146],color:4286743277,maxRadius:5},38:{labelPoints:[{x:733,y:660,radius:7.615773105863909},{x:761,y:811,radius:4.47213595499958},{x:161,y:775,radius:3},{x:422,y:819,radius:4},{x:743,y:861,radius:14},{x:135,y:882,radius:4.47213595499958},{x:367,y:990,radius:5.830951894845301}],areaIndexs:[4279946321,4280124675,4281565378,4282207508,4282285945,4292383255,4293283713],color:4288926709,maxRadius:14},39:{labelPoints:[{x:773,y:694,radius:9.433981132056603}],areaIndexs:[4293631422],color:4287409629,maxRadius:9.433981132056603},40:{labelPoints:[{x:521,y:871,radius:12.041594578792296}],areaIndexs:[4287719152],color:4289117940,maxRadius:12.041594578792296},41:{labelPoints:[{x:86,y:865,radius:10.44030650891055},{x:75,y:807,radius:11.40175425099138}],areaIndexs:[4289956113,4292475422],color:4285167032,maxRadius:11.40175425099138},42:{labelPoints:[{x:756,y:791,radius:7.0710678118654755}],areaIndexs:[4294075101],color:4281677503,maxRadius:7.0710678118654755},43:{labelPoints:[{x:607,y:1084,radius:19.6468827043885}],areaIndexs:[4280446681],color:4283997046,maxRadius:19.6468827043885},44:{labelPoints:[{x:581,y:1097,radius:6},{x:663,y:1123,radius:5},{x:587,y:1173,radius:10},{x:467,y:1377,radius:16.55294535724685}],areaIndexs:[4280033916,4292624888,4293699810,4293827388],color:4282410828,maxRadius:16.55294535724685},45:{labelPoints:[{x:433,y:1411,radius:25},{x:905,y:962,radius:18.35755975068582}],areaIndexs:[4285624494,4292961403],color:4285252502,maxRadius:25},46:{labelPoints:[{x:504,y:1542,radius:12},{x:693,y:915,radius:13.341664064126334}],areaIndexs:[4278705828,4288457080],color:4284393857,maxRadius:13.341664064126334},47:{labelPoints:[{x:566,y:1552,radius:8.06225774829855},{x:531,y:1489,radius:5},{x:727,y:1102,radius:9.848857801796104},{x:700,y:953,radius:18.35755975068582},{x:502,y:1493,radius:5}],areaIndexs:[4279464790,4283435088,4284359294,4289983023,4294873555],color:4282807638,maxRadius:18.35755975068582},48:{labelPoints:[{x:663,y:1020,radius:18.384776310850235},{x:858,y:1050,radius:7.211102550927978},{x:642,y:962,radius:5}],areaIndexs:[4278495483,4284496629,4290459358],color:4285980075,maxRadius:18.384776310850235},49:{labelPoints:[{x:711,y:1256,radius:33.83784863137726},{x:571,y:1757,radius:30.364452901377952}],areaIndexs:[4280023118,4285308544],color:4284657111,maxRadius:33.83784863137726},50:{labelPoints:[{x:479,y:1476,radius:12.041594578792296},{x:601,y:1597,radius:7.810249675906654},{x:675,y:1183,radius:15.231546211727817},{x:471,y:1697,radius:7.0710678118654755}],areaIndexs:[4278506248,4279815977,4281899145,4290323084],color:4280968343,maxRadius:15.231546211727817},51:{labelPoints:[{x:495,y:1646,radius:23.259406699226016}],areaIndexs:[4291145871],color:4282949072,maxRadius:23.259406699226016},52:{labelPoints:[{x:473,y:1929,radius:8},{x:488,y:1816,radius:13},{x:619,y:1945,radius:17},{x:522,y:1936,radius:9},{x:564,y:1946,radius:16}],areaIndexs:[4279499056,4280737443,4288376335,4290513760,4294683045],color:4281291164,maxRadius:17},53:{labelPoints:[{x:517,y:1820,radius:14}],areaIndexs:[4293296191],color:4281885116,maxRadius:14},54:{labelPoints:[{x:494,y:1900,radius:7},{x:614,y:1858,radius:10.63014581273465},{x:475,y:1771,radius:14.866068747318506}],areaIndexs:[4279109067,4286012710,4293997172],color:4280302710,maxRadius:14.866068747318506},55:{labelPoints:[{x:472,y:1854,radius:10},{x:572,y:1883,radius:9.486832980505138}],areaIndexs:[4290953899,4291987417],color:4279643744,maxRadius:10},56:{labelPoints:[{x:593,y:1883,radius:7}],areaIndexs:[4287557768],color:4279378758,maxRadius:7},57:{labelPoints:[{x:569,y:1828,radius:10.295630140987}],areaIndexs:[4286716771],color:4282922033,maxRadius:10.295630140987},58:{labelPoints:[{x:564,y:1843,radius:4.123105625617661}],areaIndexs:[4280180012],color:4281738276,maxRadius:4.123105625617661},59:{labelPoints:[{x:182,y:854,radius:10},{x:303,y:983,radius:4},{x:403,y:1088,radius:8.94427190999916},{x:437,y:893,radius:22}],areaIndexs:[4278886044,4278963351,4283858873,4289261866],color:4285016857,maxRadius:22},60:{labelPoints:[{x:326,y:835,radius:13.416407864998739},{x:220,y:875,radius:12}],areaIndexs:[4289104670,4293231333],color:4286744918,maxRadius:13.416407864998739},61:{labelPoints:[{x:289,y:978,radius:6},{x:259,y:804,radius:8},{x:395,y:893,radius:10},{x:131,y:952,radius:14.212670403551895},{x:316,y:967,radius:7.0710678118654755}],areaIndexs:[4279091296,4286787434,4292870405,4293100578,4293916246],color:4289764217,maxRadius:14.212670403551895},62:{labelPoints:[{x:253,y:827,radius:11},{x:153,y:856,radius:13.892443989449804},{x:151,y:1010,radius:13.152946437965905},{x:348,y:1058,radius:41.182520563948}],areaIndexs:[4282479080,4289187448,4290005645,4291042999],color:4281871661,maxRadius:41.182520563948},63:{labelPoints:[{x:319,y:902,radius:4},{x:390,y:849,radius:9},{x:117,y:824,radius:6}],areaIndexs:[4280463411,4288527675,4291775517],color:4288183663,maxRadius:9},64:{labelPoints:[{x:275,y:983,radius:5},{x:150,y:818,radius:8.94427190999916},{x:366,y:890,radius:13.601470508735444}],areaIndexs:[4284439794,4290796263,4294408008],color:4281477848,maxRadius:13.601470508735444},65:{labelPoints:[{x:181,y:982,radius:6.324555320336759},{x:235,y:1014,radius:9.848857801796104}],areaIndexs:[4292509329,4294795969],color:4286635510,maxRadius:9.848857801796104},66:{labelPoints:[{x:1377,y:831,radius:41.30375285612676},{x:1213,y:614,radius:32.202484376209235},{x:1640,y:1340,radius:33.24154027718932},{x:1383,y:938,radius:13.92838827718412}],areaIndexs:[4279086382,4279188986,4293390449,4294508091],color:4283593928,maxRadius:41.30375285612676},67:{labelPoints:[{x:1197,y:941,radius:7.615773105863909},{x:1241,y:489,radius:11},{x:1832,y:1334,radius:5},{x:1178,y:737,radius:13.341664064126334},{x:1824,y:1444,radius:15},{x:1871,y:1233,radius:7.615773105863909},{x:1088,y:631,radius:15},{x:1290,y:705,radius:16},{x:1451,y:777,radius:8.06225774829855}],areaIndexs:[4283636691,4285990835,4286679270,4287251280,4287333949,4288665422,4288674725,4292016229,4293290555],color:4282208922,maxRadius:16},68:{labelPoints:[{x:1358,y:749,radius:10},{x:1093,y:770,radius:12},{x:1720,y:1105,radius:5.656854249492381},{x:1446,y:1577,radius:36.87817782917155},{x:1807,y:1169,radius:7.280109889280518},{x:1487,y:709,radius:8.94427190999916},{x:1349,y:931,radius:18},{x:1788,y:1121,radius:5.830951894845301},{x:1661,y:1101,radius:8}],areaIndexs:[4279557147,4280975024,4284285894,4284891145,4291251844,4293181375,4293342209,4294163811,4294678543],color:4281747338,maxRadius:36.87817782917155},69:{labelPoints:[{x:1526,y:1438,radius:21.213203435596427},{x:1264,y:846,radius:6.324555320336759},{x:1261,y:905,radius:17.46424919657298},{x:1677,y:1125,radius:7.211102550927978},{x:1761,y:1227,radius:5.385164807134504},{x:1731,y:1203,radius:8.48528137423857},{x:1688,y:1169,radius:8.48528137423857},{x:1180,y:703,radius:6.708203932499369},{x:1694,y:1290,radius:39.35733730830886}],areaIndexs:[4279743129,4282880689,4283241870,4283708610,4286157411,4286178291,4288058154,4289325860,4292176035],color:4285040352,maxRadius:39.35733730830886},70:{labelPoints:[{x:1091,y:723,radius:13.92838827718412},{x:1334,y:709,radius:14.7648230602334}],areaIndexs:[4283570350,4291937789],color:4281285499,maxRadius:14.7648230602334},71:{labelPoints:[{x:1224,y:861,radius:15.524174696260024}],areaIndexs:[4279562368],color:4281152373,maxRadius:15.524174696260024},72:{labelPoints:[{x:1223,y:795,radius:16.15549442140351}],areaIndexs:[4283684057],color:4280823915,maxRadius:16.15549442140351},73:{labelPoints:[{x:1700,y:1099,radius:12.041594578792296},{x:1821,y:1141,radius:17}],areaIndexs:[4284477369,4289611586],color:4283132344,maxRadius:17},74:{labelPoints:[{x:1855,y:1193,radius:15},{x:1717,y:1147,radius:15.556349186104045}],areaIndexs:[4285663363,4291754740],color:4282670505,maxRadius:15.556349186104045},75:{labelPoints:[{x:1764,y:1758,radius:14},{x:1642,y:1130,radius:9.433981132056603},{x:1778,y:1389,radius:17},{x:1758,y:1594,radius:18},{x:1843,y:1286,radius:8.94427190999916}],areaIndexs:[4278972960,4282683363,4284820166,4290288071,4291974696],color:4280366737,maxRadius:18},76:{labelPoints:[{x:1628,y:1089,radius:18.867962264113206},{x:1761,y:1670,radius:14.317821063276353},{x:1842,y:1370,radius:6.708203932499369},{x:1803,y:1572,radius:19.924858845171276},{x:1596,y:1031,radius:9.486832980505138},{x:1836,y:1786,radius:22.561028345356956},{x:1885,y:1985,radius:14},{x:1852,y:1320,radius:9.219544457292887}],areaIndexs:[4282230824,4283937460,4285081780,4287707465,4288229864,4289096173,4291231641,4293830892],color:4280903116,maxRadius:22.561028345356956},77:{labelPoints:[{x:1882,y:1941,radius:6.708203932499369},{x:1848,y:1958,radius:10.44030650891055},{x:1816,y:1690,radius:14.317821063276353},{x:1850,y:1350,radius:7.615773105863909},{x:1802,y:1900,radius:14.866068747318506},{x:1602,y:1061,radius:8}],areaIndexs:[4285687670,4285891235,4286825538,4288103894,4292235506,4292902617],color:4284263154,maxRadius:14.866068747318506},78:{labelPoints:[{x:1845,y:1897,radius:19.924858845171276},{x:1810,y:1327,radius:9.848857801796104},{x:1773,y:1822,radius:13.038404810405298},{x:1746,y:1499,radius:15}],areaIndexs:[4281792858,4284337631,4291730303,4292407095],color:4282127976,maxRadius:19.924858845171276},79:{labelPoints:[{x:1417,y:1916,radius:35.510561809129406},{x:1116,y:1916,radius:24.515301344262525},{x:1170,y:1974,radius:13},{x:1075,y:1451,radius:40.24922359499622},{x:1612,y:1676,radius:14.866068747318506},{x:1239,y:1917,radius:26.476404589747453},{x:1655,y:1060,radius:11.180339887498949},{x:1908,y:1589,radius:37.013511046643494}],areaIndexs:[4283129032,4284982912,4286576413,4287723936,4289934529,4290171145,4291934542,4292612842],color:4291666283,maxRadius:40.24922359499622},80:{labelPoints:[{x:1729,y:1633,radius:6.324555320336759},{x:1009,y:1487,radius:32.7566787083184},{x:1789,y:1696,radius:5},{x:1279,y:1751,radius:17.11724276862369},{x:1182,y:1376,radius:4},{x:1589,y:1183,radius:12.36931687685298},{x:1161,y:1795,radius:12.806248474865697},{x:1883,y:1689,radius:23.769728648009426}],areaIndexs:[4278879517,4280133953,4280888625,4285500751,4290804338,4292203902,4293284556,4293623815],color:4287716424,maxRadius:32.7566787083184},81:{labelPoints:[{x:1280,y:1981,radius:13},{x:1695,y:1566,radius:23.53720459187964},{x:1256,y:1464,radius:18.788294228055936},{x:1363,y:1755,radius:13},{x:1161,y:1834,radius:14.866068747318506}],areaIndexs:[4282680559,4286425030,4289847265,4291829004,4292489594],color:4285741879,maxRadius:23.53720459187964},82:{labelPoints:[{x:1580,y:1902,radius:13.038404810405298},{x:1627,y:1633,radius:21.02379604162864},{x:1188,y:1829,radius:4.123105625617661},{x:1198,y:1983,radius:11}],areaIndexs:[4280122727,4287820924,4291496357,4293543779],color:4284820269,maxRadius:21.02379604162864},83:{labelPoints:[{x:1563,y:1962,radius:19.924858845171276},{x:1496,y:1952,radius:14.866068747318506}],areaIndexs:[4283646135,4283652332],color:4290544237,maxRadius:19.924858845171276},84:{labelPoints:[{x:1481,y:1880,radius:19.6468827043885}],areaIndexs:[4289657854],color:4285021766,maxRadius:19.6468827043885},85:{labelPoints:[{x:1569,y:1280,radius:23.53720459187964},{x:1966,y:1573,radius:13.416407864998739},{x:1624,y:1959,radius:8.94427190999916},{x:1712,y:1820,radius:11.180339887498949},{x:1658,y:1840,radius:20.615528128088304},{x:1929,y:1489,radius:4.123105625617661},{x:1491,y:1311,radius:34.40930106817051}],areaIndexs:[4283246345,4285152983,4286450050,4288269267,4290491808,4293836938,4294921853],color:4292588404,maxRadius:34.40930106817051},86:{labelPoints:[{x:1582,y:1554,radius:25},{x:1720,y:1521,radius:5},{x:1849,y:1550,radius:21.18962010041709},{x:1669,y:1665,radius:15.524174696260024},{x:1425,y:1267,radius:21.095023109728988},{x:1618,y:1901,radius:12.649110640673518}],areaIndexs:[4283651451,4285227746,4285868633,4286275267,4289493906,4290665549],color:4289691225,maxRadius:25},87:{labelPoints:[{x:1529,y:1249,radius:12.083045973594572},{x:1635,y:1550,radius:24}],areaIndexs:[4287277088,4288245914],color:4288769360,maxRadius:24},88:{labelPoints:[{x:1417,y:1651,radius:25.96150997149434},{x:1155,y:1193,radius:30.364452901377952},{x:1327,y:1928,radius:33.95585369269929},{x:1680,y:1440,radius:14.560219778561036},{x:1624,y:1164,radius:13.92838827718412}],areaIndexs:[4278205774,4279599418,4280843501,4283924520,4290759833],color:4290678882,maxRadius:33.95585369269929},89:{labelPoints:[{x:1354,y:1579,radius:24.596747752497688},{x:1093,y:1103,radius:25},{x:1247,y:1609,radius:13},{x:1193,y:1613,radius:7},{x:1133,y:1615,radius:15},{x:1153,y:1497,radius:8.54400374531753},{x:1023,y:1189,radius:29},{x:1082,y:1393,radius:13},{x:1873,y:1469,radius:12}],areaIndexs:[4281410768,4284519564,4285062066,4286659077,4287291863,4288714953,4289018746,4289197701,4294331508],color:4293576061,maxRadius:29},90:{labelPoints:[{x:1241,y:986,radius:21.93171219946131}],areaIndexs:[4287869330],color:4284053861,maxRadius:21.93171219946131},91:{labelPoints:[{x:1296,y:1035,radius:28.30194339616981}],areaIndexs:[4279738420],color:4283867263,maxRadius:28.30194339616981},92:{labelPoints:[{x:1422,y:1077,radius:13},{x:1455,y:1022,radius:8},{x:1346,y:1124,radius:9.848857801796104},{x:1509,y:936,radius:7},{x:1542,y:969,radius:3.605551275463989},{x:1084,y:1011,radius:6},{x:1129,y:1019,radius:4.123105625617661}],areaIndexs:[4280376145,4280762246,4280785755,4281316319,4282416789,4288185516,4290315431],color:4283877017,maxRadius:13},93:{labelPoints:[{x:1405,y:1214,radius:18.681541692269406},{x:1506,y:1734,radius:39.45883931389772},{x:1268,y:1208,radius:38.01315561749642},{x:1507,y:995,radius:13.341664064126334}],areaIndexs:[4283638971,4285065949,4286783882,4287125737],color:4283926381,maxRadius:39.45883931389772},94:{labelPoints:[{x:1486,y:947,radius:8.94427190999916},{x:1417,y:1845,radius:14.142135623730951},{x:1220,y:1077,radius:9.219544457292887}],areaIndexs:[4286629749,4287751486,4294263400],color:4284181852,maxRadius:14.142135623730951},95:{labelPoints:[{x:1331,y:1440,radius:25.495097567963924},{x:1472,y:1133,radius:11},{x:1461,y:1049,radius:7},{x:1521,y:1585,radius:13}],areaIndexs:[4278841376,4279983887,4284832404,4293238537],color:4284309587,maxRadius:25.495097567963924},96:{labelPoints:[{x:1515,y:1803,radius:20.808652046684813},{x:1451,y:933,radius:12.36931687685298},{x:1318,y:1132,radius:7.211102550927978}],areaIndexs:[4279553989,4285074041,4287689279],color:4283904048,maxRadius:20.808652046684813},97:{labelPoints:[{x:1470,y:1621,radius:4.242640687119285}],areaIndexs:[4283981070],color:4284165949,maxRadius:4.242640687119285},98:{labelPoints:[{x:1505,y:869,radius:9.899494936611665}],areaIndexs:[4288623717],color:4293240670,maxRadius:9.899494936611665},99:{labelPoints:[{x:1484,y:834,radius:16.64331697709324}],areaIndexs:[4283572159],color:4289017469,maxRadius:16.64331697709324},100:{labelPoints:[{x:1909,y:933,radius:3.1622776601683795},{x:1832,y:868,radius:43.01162633521314},{x:1749,y:952,radius:7.615773105863909}],areaIndexs:[4285437078,4285945032,4290419965],color:4283013433,maxRadius:43.01162633521314},101:{labelPoints:[{x:1904,y:900,radius:14.866068747318506},{x:1958,y:746,radius:16.401219466856727},{x:1834,y:780,radius:20.8806130178211},{x:1758,y:910,radius:15.652475842498529}],areaIndexs:[4278451802,4290416854,4291826470,4294545698],color:4289433068,maxRadius:20.8806130178211},102:{labelPoints:[{x:51,y:711,radius:15},{x:1691,y:760,radius:32.2490309931942},{x:386,y:762,radius:23.345235059857504},{x:1069,y:867,radius:13}],areaIndexs:[4279152710,4279325417,4280393843,4293669191],color:4286242767,maxRadius:32.2490309931942},103:{labelPoints:[{x:571,y:845,radius:30.59411708155671},{x:483,y:895,radius:7},{x:1581,y:894,radius:45.35416188179427},{x:1050,y:917,radius:22.80350850198276},{x:51,y:752,radius:4}],areaIndexs:[4281961979,4283793420,4285113764,4288427242,4293474940],color:4285847741,maxRadius:45.35416188179427},104:{labelPoints:[{x:1055,y:976,radius:24.839484696748443},{x:319,y:1122,radius:17.69180601295413},{x:34,y:1083,radius:33.28663395418648},{x:1819,y:983,radius:40.024992192379}],areaIndexs:[4278489705,4281871605,4286465449,4288027935],color:4285387436,maxRadius:40.024992192379},105:{labelPoints:[{x:1842,y:1064,radius:39.45883931389772}],areaIndexs:[4285458189],color:4283675492,maxRadius:39.45883931389772},106:{labelPoints:[{x:38,y:1191,radius:37.64306044943742},{x:1928,y:1171,radius:49.64876634922564},{x:252,y:1160,radius:16.1245154965971}],areaIndexs:[4278344153,4279926169,4284597386],color:4284926362,maxRadius:49.64876634922564},107:{labelPoints:[{x:1933,y:1300,radius:55.31726674375732}],areaIndexs:[4282911361],color:4283214930,maxRadius:55.31726674375732},108:{labelPoints:[{x:346,y:1477,radius:25},{x:1937,y:1398,radius:23.600847442411894},{x:79,y:1447,radius:34}],areaIndexs:[4281075725,4284418856,4286394760],color:4284531336,maxRadius:34},109:{labelPoints:[{x:36,y:1326,radius:36}],areaIndexs:[4285744228],color:4282955359,maxRadius:36},110:{labelPoints:[{x:168,y:1549,radius:43}],areaIndexs:[4282220169],color:4282357311,maxRadius:43},111:{labelPoints:[{x:1967,y:1703,radius:31.064449134018133},{x:1022,y:1722,radius:32.89376840679705},{x:298,y:1664,radius:30.4138126514911},{x:1793,y:1750,radius:6}],areaIndexs:[4281601156,4283359621,4285646944,4290315723],color:4284071542,maxRadius:32.89376840679705},112:{labelPoints:[{x:1981,y:1450,radius:17.804493814764857}],areaIndexs:[4282269583],color:4282553144,maxRadius:17.804493814764857},113:{labelPoints:[{x:1800,y:1809,radius:6.324555320336759},{x:270,y:1828,radius:11.180339887498949},{x:1063,y:1841,radius:34.92849839314596},{x:1905,y:1807,radius:32.984845004941285}],areaIndexs:[4282280431,4282626982,4286511997,4293015324],color:4284469677,maxRadius:34.92849839314596},114:{labelPoints:[{x:1954,y:1982,radius:16.492422502470642},{x:1972,y:1839,radius:18.867962264113206},{x:1962,y:1935,radius:12.083045973594572}],areaIndexs:[4278203767,4279522084,4286887887],color:4283733812,maxRadius:18.867962264113206},115:{labelPoints:[{x:1917,y:1942,radius:12.529964086141668},{x:1991,y:1771,radius:8},{x:1964,y:1891,radius:19.849433241279208}],areaIndexs:[4281830983,4286177150,4294163623],color:4287415141,maxRadius:19.849433241279208},116:{labelPoints:[{x:139,y:1634,radius:13.601470508735444},{x:108,y:1970,radius:26.1725046566048},{x:255,y:1862,radius:17},{x:21,y:1605,radius:19.6468827043885},{x:230,y:1711,radius:12.529964086141668},{x:64,y:1785,radius:37.94733192202055},{x:25,y:1897,radius:14.866068747318506}],areaIndexs:[4278937497,4281056628,4281880382,4282551744,4285504912,4286771143,4293631441],color:4283089798,maxRadius:37.94733192202055},117:{labelPoints:[{x:187,y:1907,radius:29},{x:222,y:1978,radius:20.615528128088304},{x:180,y:1691,radius:24.08318915758459},{x:47,y:1659,radius:25.495097567963924},{x:185,y:1820,radius:15.231546211727817},{x:84,y:1915,radius:26.076809620810597}],areaIndexs:[4281595789,4282034982,4288847361,4290280794,4292921912,4294014229],color:4282819651,maxRadius:29},118:{labelPoints:[{x:11,y:1714,radius:10.770329614269007},{x:11,y:1870,radius:10.295630140987},{x:235,y:1821,radius:13.416407864998739},{x:14,y:1956,radius:14}],areaIndexs:[4279843348,4286463163,4288964181,4293303832],color:4283000619,maxRadius:14},119:{labelPoints:[{x:109,y:1677,radius:16.97056274847714},{x:188,y:1768,radius:27.51363298439521},{x:103,y:1842,radius:15.652475842498529}],areaIndexs:[4285155314,4290262667,4294283226],color:4283731515,maxRadius:27.51363298439521},120:{labelPoints:[{x:24,y:1550,radius:15.264337522473747},{x:86,y:1593,radius:20.223748416156685},{x:109,y:1723,radius:24},{x:235,y:1664,radius:14.7648230602334},{x:240,y:1930,radius:17}],areaIndexs:[4278198140,4280420531,4283051631,4290533721,4292855438],color:4286111693,maxRadius:24},121:{labelPoints:[{x:23,y:487,radius:23}],areaIndexs:[4284709056],color:4284122281,maxRadius:23},122:{labelPoints:[{x:115,y:583,radius:36.40054944640259}],areaIndexs:[4283406747],color:4285045180,maxRadius:36.40054944640259},123:{labelPoints:[{x:305,y:636,radius:22.20360331117452}],areaIndexs:[4285790466],color:4285967825,maxRadius:22.20360331117452},124:{labelPoints:[{x:348,y:467,radius:32.526911934581186},{x:522,y:202,radius:11.180339887498949}],areaIndexs:[4287726293,4290244883],color:4285005012,maxRadius:32.526911934581186},125:{labelPoints:[{x:230,y:498,radius:5.385164807134504},{x:337,y:395,radius:23.323807579381203},{x:264,y:400,radius:8.06225774829855},{x:220,y:429,radius:11.180339887498949}],areaIndexs:[4283150613,4283447055,4283990726,4290435304],color:4285254247,maxRadius:23.323807579381203},126:{labelPoints:[{x:167,y:301,radius:20.248456731316587},{x:471,y:179,radius:31.622776601683793},{x:37,y:66,radius:22.80350850198276}],areaIndexs:[4278380362,4284072339,4287648594],color:4284525916,maxRadius:31.622776601683793},127:{labelPoints:[{x:241,y:265,radius:25},{x:448,y:258,radius:21.213203435596427},{x:16,y:165,radius:16},{x:354,y:133,radius:26.92582403567252}],areaIndexs:[4282556190,4288482756,4289846820,4293635865],color:4287815824,maxRadius:26.92582403567252},128:{labelPoints:[{x:309,y:197,radius:24.166091947189145}],areaIndexs:[4286877056],color:4286236514,maxRadius:24.166091947189145},129:{labelPoints:[{x:524,y:133,radius:21.02379604162864},{x:211,y:180,radius:21.587033144922902}],areaIndexs:[4279786784,4291629879],color:4284402056,maxRadius:21.587033144922902},130:{labelPoints:[{x:482,y:89,radius:27.459060435491963},{x:144,y:24,radius:24},{x:109,y:235,radius:30.364452901377952}],areaIndexs:[4278883224,4281517061,4294490733],color:4285063333,maxRadius:30.364452901377952},131:{labelPoints:[{x:41,y:15,radius:14.560219778561036},{x:306,y:15,radius:12.165525060596439}],areaIndexs:[4285608271,4286673078],color:4284528239,maxRadius:14.560219778561036},132:{labelPoints:[{x:445,y:15,radius:14.7648230602334},{x:87,y:95,radius:19.4164878389476}],areaIndexs:[4283080565,4290033079],color:4284584233,maxRadius:19.4164878389476},133:{labelPoints:[{x:184,y:101,radius:30.083217912982647}],areaIndexs:[4286031057],color:4285903423,maxRadius:30.083217912982647},134:{labelPoints:[{x:285,y:339,radius:30.675723300355934},{x:91,y:378,radius:26.870057685088806},{x:16,y:372,radius:16}],areaIndexs:[4278985767,4279366577,4283777508],color:4284644869,maxRadius:30.675723300355934},135:{labelPoints:[{x:192,y:485,radius:8},{x:58,y:508,radius:8.94427190999916},{x:140,y:497,radius:17.88854381999832}],areaIndexs:[4278881905,4282836219,4292898283],color:4287228069,maxRadius:17.88854381999832},136:{labelPoints:[{x:1795,y:660,radius:9.433981132056603},{x:248,y:680,radius:32.38826948140329},{x:1923,y:618,radius:9.848857801796104},{x:397,y:695,radius:38.8329756778952},{x:1686,y:704,radius:17.08800749063506},{x:53,y:649,radius:17}],areaIndexs:[4278683861,4283208709,4284089607,4288857507,4291513441,4294466353],color:4287414427,maxRadius:38.8329756778952},137:{labelPoints:[{x:1966,y:560,radius:32.57299494980466},{x:1762,y:670,radius:15}],areaIndexs:[4285204697,4294954678],color:4287412435,maxRadius:32.57299494980466},138:{labelPoints:[{x:1819,y:543,radius:32.31098884280702},{x:1956,y:445,radius:19.924858845171276}],areaIndexs:[4285942072,4293942088],color:4288261186,maxRadius:32.31098884280702},139:{labelPoints:[{x:1792,y:475,radius:30.886890422961002},{x:1888,y:434,radius:9}],areaIndexs:[4278755696,4280905713],color:4288332640,maxRadius:30.886890422961002},140:{labelPoints:[{x:1683,y:425,radius:34}],areaIndexs:[4286737175],color:4288412328,maxRadius:34},141:{labelPoints:[{x:1663,y:515,radius:37.013511046643494}],areaIndexs:[4279437318],color:4288338044,maxRadius:37.013511046643494},142:{labelPoints:[{x:1892,y:211,radius:23.08679276123039},{x:1878,y:390,radius:13.416407864998739},{x:1651,y:318,radius:30.083217912982647},{x:1963,y:394,radius:13.341664064126334},{x:1922,y:361,radius:14.035668847618199},{x:1693,y:41,radius:24.20743687382041}],areaIndexs:[4280524366,4281167031,4287651944,4287825134,4289786328,4293544175],color:4285629723,maxRadius:30.083217912982647},143:{labelPoints:[{x:1840,y:344,radius:15.231546211727817},{x:1896,y:314,radius:15.264337522473747},{x:1712,y:304,radius:23.706539182259394},{x:1957,y:301,radius:11}],areaIndexs:[4286157453,4287347587,4290865720,4293240165],color:4286213376,maxRadius:23.706539182259394},144:{labelPoints:[{x:1608,y:204,radius:26.92582403567252},{x:1812,y:100,radius:28},{x:1940,y:40,radius:36.796738985948195},{x:1949,y:215,radius:14.866068747318506}],areaIndexs:[4280506768,4291690293,4291799514,4294907054],color:4285712498,maxRadius:36.796738985948195},145:{labelPoints:[{x:1632,y:67,radius:24.186773244895647},{x:1744,y:32,radius:10.770329614269007},{x:1945,y:120,radius:26.1725046566048},{x:1978,y:249,radius:21},{x:1747,y:198,radius:19.209372712298546}],areaIndexs:[4283069516,4292069469,4294196742,4294348224,4294757383],color:4285638214,maxRadius:26.1725046566048},146:{labelPoints:[{x:1827,y:255,radius:21.93171219946131},{x:1817,y:37,radius:14.317821063276353}],areaIndexs:[4281883239,4286184498],color:4285706581,maxRadius:21.93171219946131},147:{labelPoints:[{x:1860,y:169,radius:19.6468827043885},{x:1747,y:10,radius:9.219544457292887},{x:1664,y:243,radius:28.0178514522438}],areaIndexs:[4289221031,4291687075,4293275997],color:4286161971,maxRadius:28.0178514522438},148:{labelPoints:[{x:362,y:534,radius:7.615773105863909},{x:384,y:605,radius:30.870698080866262},{x:1389,y:200,radius:52.3450093132096},{x:1211,y:278,radius:20},{x:53,y:575,radius:18.973665961010276},{x:217,y:590,radius:41.048751503547585},{x:1608,y:389,radius:14.7648230602334},{x:280,y:551,radius:13},{x:331,y:564,radius:8}],areaIndexs:[4278317461,4279037524,4280616516,4281725116,4286091109,4287305852,4288205581,4294343004,4294552072],color:4294967201,maxRadius:52.3450093132096},149:{labelPoints:[{x:1767,y:612,radius:8.246211251235321},{x:1697,y:649,radius:27.073972741361768},{x:1905,y:589,radius:15},{x:1731,y:603,radius:8},{x:1801,y:598,radius:6}],areaIndexs:[4278574266,4278719326,4289531858,4293150179,4294060819],color:4294770578,maxRadius:27.073972741361768},150:{labelPoints:[{x:1193,y:14,radius:14},{x:1482,y:232,radius:17.72004514666935},{x:570,y:41,radius:19.4164878389476},{x:1383,y:100,radius:41.97618372363071},{x:1005,y:143,radius:16.76305461424021},{x:1267,y:237,radius:28.460498941515414},{x:859,y:36,radius:34},{x:1577,y:338,radius:14.866068747318506}],areaIndexs:[4281612493,4282990221,4283441649,4286591424,4287032429,4289569070,4293147062,4293723254],color:4291491327,maxRadius:41.97618372363071}};function q(t,a,i=z){let e=document.createElement("canvas"),r=e.getContext("2d");e.width=t.width,e.height=t.height,r.imageSmoothingEnabled=!1,r.drawImage(t,0,0);let s=r.getImageData(0,0,e.width,e.height),u=new Uint32Array(s.data.buffer),d=new Map;for(var x,l,o,n,f=0;f<u.length;f++)o=u[f],l=Math.floor(f/t.width),x=f%t.width,n=d.get(o),n==null?(n=new j(x,l,o),d.set(o,n)):n.add(x,l);console.log("areas:",d.size);let c=[],y,h,R,m,v,_,A,P;return Object.values(i).forEach(E=>{y=[];for(var T=0;T<E.areaIndexs.length;T++){if(R=E.areaIndexs[T],m=E.labelPoints[T],m.x*=a,m.y*=a,m.radius*=a,n=d.get(R),n==null){console.error("this shoud not happen");return}v=n.toRect(),_=n.count,A={id:R,center:m,rect:v,count:_},y.push(A)}P=E.color,h={areas:y,color:P},c.push(h)}),c}class j{constructor(a,i,e){this.count=1,this.left=this.right=a,this.top=this.bottom=i,this.id=e}add(a,i){this.count++,a<this.left&&(this.left=a),a>this.right&&(this.right=a),i<this.top&&(this.top=i),i>this.bottom&&(this.bottom=i)}toRect(){return new L(this.left,this.top,this.right-this.left+1,this.bottom-this.top+1)}}function p(t,a,i){var e=t.createShader(a);t.shaderSource(e,i),t.compileShader(e);var r=t.getShaderParameter(e,t.COMPILE_STATUS);if(r)return e;console.log("error",t.getShaderInfoLog(e)),t.deleteShader(e)}function U(t,a,i){var e=t.createProgram();t.attachShader(e,a),t.attachShader(e,i),t.linkProgram(e);var r=t.getProgramParameter(e,t.LINK_STATUS);if(r)return e;console.log("error",t.getProgramInfoLog(e)),t.deleteProgram(e)}function Y(t){return new Promise((a,i)=>{let e=new Image;e.src=t,e.onload=()=>a(e),e.onerror=i})}function N(t,a,i){let e=document.createElement("canvas");e.width=a,e.height=i;let r=e.getContext("2d");return r.imageSmoothingEnabled=!1,r.drawImage(t,0,0,t.width,t.height,0,0,a,i),e}class K{constructor(a){this.vertexShaderCode=`
  2. attribute vec2 a_position;
  3. uniform mat3 u_matrix;
  4. void main() {
  5. gl_PointSize = 20.0;
  6. gl_Position = vec4(( u_matrix * vec3( a_position, 1)).xy, 0 , 1);
  7. }
  8. `,this.fragmentShaderCode=`
  9. precision mediump float;
  10. void main() {
  11. gl_FragColor = vec4(1, 0, 0, 1);
  12. }
  13. `,this.pv=[];let i=this.gl=a.gl;this.scene=a,this.gl=i;var e=this.program=U(i,p(i,i.VERTEX_SHADER,this.vertexShaderCode),p(i,i.FRAGMENT_SHADER,this.fragmentShaderCode));this.positionLocation=i.getAttribLocation(e,"a_position"),this.matrixLocation=i.getUniformLocation(this.program,"u_matrix");var r=this.positionBuffer=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,r),i.bufferData(i.ARRAY_BUFFER,new Float32Array(this.pv),i.STATIC_DRAW)}add(a,i){let e=this.gl;this.pv.push(a,i),e.bindBuffer(e.ARRAY_BUFFER,this.positionBuffer),e.bufferData(e.ARRAY_BUFFER,new Float32Array(this.pv),e.STATIC_DRAW)}draw(){if(!(this.pv.length<=0)){var a=this.gl;a.useProgram(this.program),a.enableVertexAttribArray(this.positionLocation),a.bindBuffer(a.ARRAY_BUFFER,this.positionBuffer),a.vertexAttribPointer(this.positionLocation,2,a.FLOAT,!1,0,0),a.uniformMatrix3fv(this.matrixLocation,!1,this.scene.theMatrix()),a.drawArrays(a.POINTS,0,this.pv.length/2)}}}const I={projection:function(t,a){return[2/t,0,0,0,-2/a,0,-1,1,1]},projectionNoflipY:function(t,a){return[2/t,0,0,0,2/a,0,-1,-1,1]},identity:function(){return[1,0,0,0,1,0,0,0,1]},translation:function(t,a){return[1,0,0,0,1,0,t,a,1]},rotation:function(t){var a=Math.cos(t),i=Math.sin(t);return[a,-i,0,i,a,0,0,0,1]},scaling:function(t,a){return[t,0,0,0,a,0,0,0,1]},scalingAt:function(t,a,i,e){return[t,0,0,0,a,0,-t*i+i,-a*e+e,1]},multiply:function(t,a){var i=t[0],e=t[0*3+1],r=t[0*3+2],s=t[1*3+0],u=t[1*3+1],d=t[1*3+2],x=t[2*3+0],l=t[2*3+1],o=t[2*3+2],n=a[0*3+0],f=a[0*3+1],c=a[0*3+2],y=a[1*3+0],h=a[1*3+1],R=a[1*3+2],m=a[2*3+0],v=a[2*3+1],_=a[2*3+2];return[n*i+f*s+c*x,n*e+f*u+c*l,n*r+f*d+c*o,y*i+h*s+R*x,y*e+h*u+R*l,y*r+h*d+R*o,m*i+v*s+_*x,m*e+v*u+_*l,m*r+v*d+_*o]},invert:function(t){let a=t[0],i=t[1],e=t[2],r=t[3],s=t[4],u=t[5],d=t[6],x=t[7],l=t[8],o=l*s-u*x,n=u*d-l*r,f=x*r-s*d,c=a*o+i*n+e*f;if(c===0)return[0,0,0,0,0,0,0,0,0];const y=1/c;let h=[];return h[0]=o*y,h[1]=(e*x-l*i)*y,h[2]=(u*i-e*s)*y,h[3]=n*y,h[4]=(l*a-e*d)*y,h[5]=(e*r-u*a)*y,h[6]=f*y,h[7]=(i*d-x*a)*y,h[8]=(s*a-i*r)*y,h},map:function(t,a){let i=[1,0,0,0,1,0,a[0],a[1],1],e=I.multiply(t,i);return[e[6],e[7]]}};class J{get width(){return this.mapImage.width}get height(){return this.mapImage.height}constructor(a,i){this.gl=a,this.mapImage=i;let e=this.texture=a.createTexture();a.bindTexture(a.TEXTURE_2D,e),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,i);let r=this.fb=a.createFramebuffer();a.bindFramebuffer(a.FRAMEBUFFER,r),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,e,0);let s=a.checkFramebufferStatus(a.FRAMEBUFFER)==a.FRAMEBUFFER_COMPLETE;console.log(`canRead=${s}`),a.bindFramebuffer(a.FRAMEBUFFER,null)}getPixel(a,i,e){if(a>this.mapImage.width||i>this.mapImage.height||a<0||i<0)return;a=Math.round(a),i=Math.round(i);const r=20;let s=a-r,u=i-r,d=r*2+1,x=r*2+1,l=d*x,o=new Uint8Array(l*4),n=this.gl,f=this.fb;n.bindFramebuffer(n.FRAMEBUFFER,f),n.readPixels(s,u,d,x,n.RGBA,n.UNSIGNED_BYTE,o),n.bindFramebuffer(n.FRAMEBUFFER,null);let c=new Uint32Array(o.buffer),y=new Map;for(var h=0;h<l;h++){let _=c[h],A=y.get(_);A?y.set(_,A+1):y.set(_,1)}let R=0,m,v;return y.forEach((_,A)=>{let P=e.areas.findIndex(E=>E.id==A);m=P>=0,m&&_>R&&(v=e.areas[P])}),v}check(a,i){let e=a.areas.findIndex(r=>r.id==i.color);if(!(e<0))return a.areas[e]}}function Q(t,a,i){console.time("createColored");const e=`
  14. attribute vec2 a_position;
  15. attribute vec2 a_texCoord;
  16. attribute vec4 a_color;
  17. attribute vec4 a_destColor;
  18. uniform mat3 u_matrix;
  19. varying vec2 v_texCoord;
  20. varying vec4 v_color;
  21. varying vec4 v_destColor;
  22. void main() {
  23. gl_Position = vec4(( u_matrix * vec3( a_position, 1)).xy, 0 , 1);
  24. v_texCoord = a_texCoord;
  25. v_color = a_color;
  26. v_destColor = a_destColor;
  27. }
  28. `,r=`
  29. precision mediump float;
  30. uniform sampler2D u_image;
  31. //uniform vec4 u_color;
  32. varying vec2 v_texCoord;
  33. varying vec4 v_color;
  34. varying vec4 v_destColor;
  35. void main() {
  36. vec4 color = texture2D(u_image, v_texCoord);
  37. float dist = distance(color, v_color);
  38. if(dist < 0.001) {
  39. gl_FragColor = v_destColor;
  40. }else{
  41. gl_FragColor = vec4(0,0,0,0);
  42. }
  43. }
  44. `;let s=a.mapImage,u=a.texture;const d=U(t,p(t,t.VERTEX_SHADER,e),p(t,t.FRAGMENT_SHADER,r)),x=t.createTexture();t.bindTexture(t.TEXTURE_2D,x),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,s.width,s.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE);const l=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,l),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,x,0);let o=t.getAttribLocation(d,"a_position"),n=t.getAttribLocation(d,"a_texCoord"),f=t.getAttribLocation(d,"a_color"),c=t.getAttribLocation(d,"a_destColor"),y=t.getUniformLocation(d,"u_matrix"),h=[],R=[],m=[],v=[],_,A,P;for(var E=0;E<i.length;E++){_=i[E];let W=new C(_.color);for(var T=0;T<_.areas.length;T++){A=_.areas[T];let H=new C(A.id);h=h.concat(A.rect.vertex()),P=new L(A.rect.x/s.width,A.rect.y/s.height,A.rect.width/s.width,A.rect.height/s.height),R=R.concat(P.vertex());for(var B=0;B<6;B++){let g=H.float();m=m.concat([g[0],g[1],g[2],g[3]]),g=W.float(),v=v.concat([g[0],g[1],g[2],g[3]])}}}t.useProgram(d);let w=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,w),t.bufferData(t.ARRAY_BUFFER,new Float32Array(m),t.STATIC_DRAW),t.enableVertexAttribArray(f),t.vertexAttribPointer(f,4,t.FLOAT,!1,0,0);let D=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,D),t.bufferData(t.ARRAY_BUFFER,new Float32Array(v),t.STATIC_DRAW),t.enableVertexAttribArray(c),t.vertexAttribPointer(c,4,t.FLOAT,!1,0,0);let S=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,S),t.bufferData(t.ARRAY_BUFFER,new Float32Array(h),t.STATIC_DRAW),t.enableVertexAttribArray(o),t.vertexAttribPointer(o,2,t.FLOAT,!1,0,0);let O=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,O),t.bufferData(t.ARRAY_BUFFER,new Float32Array(R),t.STATIC_DRAW),t.enableVertexAttribArray(n),t.vertexAttribPointer(n,2,t.FLOAT,!1,0,0),t.viewport(0,0,s.width,s.height),t.uniformMatrix3fv(y,!1,I.projectionNoflipY(s.width,s.height)),t.bindTexture(t.TEXTURE_2D,u),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),t.enable(t.BLEND),t.disable(t.DEPTH_TEST),t.drawArrays(t.TRIANGLES,0,h.length/2),t.bindFramebuffer(t.FRAMEBUFFER,null),t.deleteFramebuffer(l),console.timeEnd("createColored"),x}class Z{constructor(a,i){this.touches=[],this.distance=0,this.callbacks=i,this.el=a}removeTouch(a){let i=this.touches.findIndex(e=>e.identifier==a);i>=0&&this.touches.splice(i,1)}getTouch(a){let i=this.touches.findIndex(e=>e.identifier==a);return i>=0?this.touches[i]:null}getX(a){return a.pageX-this.el.offsetLeft}getY(a){return a.pageY-this.el.offsetTop}start(a){for(var i=0;i<a.length;i++){let e=a[i];this.removeTouch(e.identifier),this.touches.push({lastX:this.getX(e),lastY:this.getY(e),dx:0,dy:0,identifier:e.identifier})}this.touches.length==1&&(this.distance=0),this.updateFocus()}updateFocus(){if(this.touches.length<2){this.scaleTracker=void 0;return}let a=this.touches[0],i=this.touches[1],e=(a.lastX+i.lastX)/2,r=(a.lastY+i.lastY)/2,s=Math.sqrt(Math.pow(i.lastX-a.lastX,2)+Math.pow(i.lastY-a.lastY,2));this.scaleTracker={focusX:e,focusY:r,distance:s}}end(a){var e,r;console.log("end");for(var i=0;i<a.length;i++)this.removeTouch(a[i].identifier);if(this.updateFocus(),this.touches.length<=0&&this.distance==0){let s=a[0],u=s.target;(r=(e=this.callbacks)==null?void 0:e.tap)==null||r.call(e,s.clientX-u.offsetLeft,s.clientY-u.offsetTop)}}move(a){var e,r,s,u,d,x;for(var i=0;i<a.length;i++){let l=a[i],o=this.getTouch(l.identifier);if(o!=null)if(o.dx=this.getX(l)-o.lastX,o.dy=this.getY(l)-o.lastY,o.lastX=this.getX(l),o.lastY=this.getY(l),this.scaleTracker){let n=this.touches[0],f=this.touches[1],c=(n.lastX+f.lastX)/2,y=(n.lastY+f.lastY)/2,h=Math.sqrt(Math.pow(f.lastX-n.lastX,2)+Math.pow(f.lastY-n.lastY,2)),R=c-this.scaleTracker.focusX,m=y-this.scaleTracker.focusY,v=h/this.scaleTracker.distance;console.log(`dx=${R}, dy=${m}, scale=${v}, distance=${h}`),(r=(e=this.callbacks).drag)==null||r.call(e,R,m),(u=(s=this.callbacks).zoom)==null||u.call(s,v,c,y),this.scaleTracker.focusX=c,this.scaleTracker.focusY=y,this.scaleTracker.distance=h,this.distance+=Math.abs(R)+Math.abs(m)}else(x=(d=this.callbacks).drag)==null||x.call(d,o.dx,o.dy),this.distance+=Math.abs(o.dx)+Math.abs(o.dy)}}}class a1{constructor(a,i){var e,r,s=!1,u=0,d=0,x=0;a.addEventListener("mousedown",o=>{s=!0,u=o.clientX,d=o.clientY,x=0}),document.addEventListener("mouseup",o=>{var n;s=!1,x==0&&o.target==a&&((n=i.tap)==null||n.call(i,o.offsetX,o.offsetY))}),document.addEventListener("mousemove",o=>{var n;s&&(o.preventDefault(),e=o.clientX-u,r=o.clientY-d,u=o.clientX,d=o.clientY,x+=Math.abs(e)+Math.abs(r),(n=i==null?void 0:i.drag)==null||n.call(i,e,r))}),a.addEventListener("wheel",o=>{var f;o.preventDefault();let n=o.deltaY*-.01+1;(f=i.zoom)==null||f.call(i,n,o.offsetX,o.offsetY)}),a.addEventListener("click",o=>{o.preventDefault()});const l=new Z(a,i);a.addEventListener("touchstart",o=>{o.preventDefault(),l.start(o.changedTouches)}),a.addEventListener("touchmove",o=>{l.move(o.changedTouches)}),a.addEventListener("touchend",o=>{l.end(o.changedTouches)}),a.addEventListener("touchcancel",o=>{l.end(o.changedTouches)})}}class r1{constructor(a,i,e){this.vertexShaderCode=`
  45. attribute vec2 a_position;
  46. attribute vec2 a_texCoord;
  47. attribute vec4 a_colorId;
  48. uniform mat3 u_matrix;
  49. varying vec2 v_texCoord;
  50. varying vec4 v_colorId;
  51. void main() {
  52. gl_Position = vec4(( u_matrix * vec3( a_position, 1)).xy, 0 , 1);
  53. v_texCoord = a_texCoord;
  54. v_colorId = a_colorId;
  55. }
  56. `,this.fragmentShaderCode=`
  57. precision mediump float;
  58. uniform sampler2D u_image0;
  59. uniform sampler2D u_image1;
  60. varying vec4 v_colorId;
  61. varying vec2 v_texCoord;
  62. void main() {
  63. vec4 color = texture2D(u_image0, v_texCoord);
  64. vec4 mapColor = texture2D(u_image1, v_texCoord);
  65. float dist = distance(mapColor, v_colorId);
  66. if(dist < 0.01) {
  67. gl_FragColor = color;
  68. }else{
  69. gl_FragColor = vec4(0,0,0,0);
  70. }
  71. }
  72. `,this.pv=[],this.tv=[],this.colorId=[];let r=this.gl=a.gl;this.fillerMap=i,this.scene=a;let s=i.mapImage.width,u=i.mapImage.height;this.gl=r;var d=this.program=U(r,p(r,r.VERTEX_SHADER,this.vertexShaderCode),p(r,r.FRAGMENT_SHADER,this.fragmentShaderCode));this.areaGroup=e,this.positionBuffer=r.createBuffer(),this.texcoordBuffer=r.createBuffer(),this.colorIdBuffer=r.createBuffer(),this.updateBuffer(),this.positionLocation=r.getAttribLocation(d,"a_position"),this.texcoordLocation=r.getAttribLocation(d,"a_texCoord"),this.colorIdLocation=r.getAttribLocation(this.program,"a_colorId"),this.matrixLocation=r.getUniformLocation(this.program,"u_matrix"),this.colorLocation=r.getUniformLocation(this.program,"u_color");var x=this.texture=r.createTexture();r.bindTexture(r.TEXTURE_2D,x);const l=10,o=Math.floor(s/l),n=Math.floor(u/l),f=new Uint8Array(o*n);for(var c=0;c<n;c++){let h=c%2==0;for(var y=0;y<o;y++){h=!h;let R=c*o+y;f[R]=h?128:200}}r.pixelStorei(r.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.LUMINANCE,o,n,0,r.LUMINANCE,r.UNSIGNED_BYTE,f),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),this.u_image1Location=r.getUniformLocation(d,"u_image1"),this.u_image0Location=r.getUniformLocation(d,"u_image0")}updateBuffer(){this.pv=[],this.tv=[],this.colorId=[];let a=this.gl,i=this.areaGroup,e=this.fillerMap.mapImage.width,r=this.fillerMap.mapImage.height;for(var s=0;s<i.areas.length;s++){let o=i.areas[s],n=o.rect,f=new L(n.x/e,n.y/r,n.width/e,n.height/r);this.pv=this.pv.concat(n.vertex()),this.tv=this.tv.concat(f.vertex());let c=new C(o.id).float();for(var u=0;u<6;u++)this.colorId=this.colorId.concat([c[0],c[1],c[2],c[3]])}var d=this.positionBuffer=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,d),a.bufferData(a.ARRAY_BUFFER,new Float32Array(this.pv),a.STATIC_DRAW);var x=this.texcoordBuffer=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,x),a.bufferData(a.ARRAY_BUFFER,new Float32Array(this.tv),a.STATIC_DRAW);var l=this.colorIdBuffer=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,l),a.bufferData(a.ARRAY_BUFFER,new Float32Array(this.colorId),a.STATIC_DRAW)}draw(){if(this.areaGroup!=null){var a=this.gl;console.time("hint.draw"),a.useProgram(this.program),a.enableVertexAttribArray(this.positionLocation),a.bindBuffer(a.ARRAY_BUFFER,this.positionBuffer),a.vertexAttribPointer(this.positionLocation,2,a.FLOAT,!1,0,0),a.enableVertexAttribArray(this.texcoordLocation),a.bindBuffer(a.ARRAY_BUFFER,this.texcoordBuffer),a.vertexAttribPointer(this.texcoordLocation,2,a.FLOAT,!1,0,0),a.enableVertexAttribArray(this.colorIdLocation),a.bindBuffer(a.ARRAY_BUFFER,this.colorIdBuffer),a.vertexAttribPointer(this.colorIdLocation,4,a.FLOAT,!1,0,0),a.uniformMatrix3fv(this.matrixLocation,!1,this.scene.theMatrix()),a.uniform1i(this.u_image0Location,0),a.uniform1i(this.u_image1Location,1),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this.texture),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,this.fillerMap.texture),a.drawArrays(a.TRIANGLES,0,this.pv.length/2),console.timeEnd("hint.draw")}}setAreaGroup(a){this.areaGroup=a,this.updateBuffer()}}class e1{constructor(a,i){this.scene=a;var e=this.gl=a.gl;this.image=i;var r=document.querySelector("#vertex-shader-2d").text,s=document.querySelector("#fragment-shader-2d").text,u=p(e,e.VERTEX_SHADER,r),d=p(e,e.FRAGMENT_SHADER,s),x=this.program=U(e,u,d);this.positionLocation=e.getAttribLocation(x,"a_position"),this.texcoordLocation=e.getAttribLocation(x,"a_texCoord"),this.matrixLocation=e.getUniformLocation(this.program,"u_matrix"),this.resolutionLocation=e.getUniformLocation(x,"u_resolution");var l=this.positionBuffer=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,l),k(e,0,0,i.width,i.height);var o=this.texcoordBuffer=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,o),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),e.STATIC_DRAW);var n=this.texture=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i)}draw(){var a=this.gl;console.time("line-art.draw"),a.useProgram(this.program),a.enableVertexAttribArray(this.positionLocation),a.bindBuffer(a.ARRAY_BUFFER,this.positionBuffer);var i=2,e=a.FLOAT,r=!1,s=0,d=0;a.vertexAttribPointer(this.positionLocation,i,e,r,s,d),a.enableVertexAttribArray(this.texcoordLocation),a.bindBuffer(a.ARRAY_BUFFER,this.texcoordBuffer);var i=2,e=a.FLOAT,r=!1,s=0,d=0;a.vertexAttribPointer(this.texcoordLocation,i,e,r,s,d),a.uniform2f(this.resolutionLocation,a.canvas.width,a.canvas.height),a.uniformMatrix3fv(this.matrixLocation,!1,this.scene.theMatrix()),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this.texture);var u=a.TRIANGLES,d=0,x=6;a.drawArrays(u,d,x),console.timeEnd("line-art.draw")}}function t1(t,a,i){let e=`${t}`,r=e.length,s=i*r,u=1,d=Math.sqrt(s*s+u*u),x=a.radius*2*.6/d;s*=x,u*=x;let l=s/r,o=u,n=a.x-s/2,f=a.y-u/2;for(var c=[],y=[],h=0;h<r;h++){let R=new L(n+h*l,f,l,o);y=y.concat(R.vertex());let m=parseInt(e.charAt(h)),v=new L(m*.1,0,.1,1);c=c.concat(v.vertex())}return[y,c]}class i1{constructor(a,i,e){this.vertexShaderCode=`
  73. attribute vec2 a_position;
  74. attribute vec2 a_texCoord;
  75. uniform mat3 u_matrix;
  76. varying vec2 v_texCoord;
  77. void main() {
  78. gl_Position = vec4(( u_matrix * vec3( a_position, 1)).xy, 0 , 1);
  79. //gl_PointSize = 10.0;
  80. v_texCoord = a_texCoord;
  81. }
  82. `,this.fragmentShaderCode=`
  83. precision mediump float;
  84. uniform sampler2D u_image;
  85. varying vec2 v_texCoord;
  86. void main() {
  87. vec4 color = texture2D(u_image, v_texCoord);
  88. vec4 dest = vec4(0, 0, 0, 0);
  89. if(color.w >= 0.5 ) {
  90. dest = vec4(0.1, 0.1, 0.1, 1);
  91. }
  92. //gl_FragColor = vec4(1, 0, 0, 1);
  93. //gl_FragColor = dest;
  94. gl_FragColor = color;
  95. }
  96. `,this.centers=[];let r=this.gl=a.gl;this.scene=a,this.image=i,this.gl=r;var s=this.program=U(r,p(r,r.VERTEX_SHADER,this.vertexShaderCode),p(r,r.FRAGMENT_SHADER,this.fragmentShaderCode));this.pv=[],this.tv=[];let u=i.width/10/i.height,d,x;this.centers=[];for(var l=0;l<e.length;l++){d=e[l];for(var o=0;o<d.areas.length;o++){x=d.areas[o];let y=x.center;y.label=l+1,this.centers.push(y)}}this.centers=this.centers.sort((y,h)=>h.radius-y.radius);for(var l=0;l<this.centers.length;l++){let h=this.centers[l],[R,m]=t1(h.label,h,u);this.pv=this.pv.concat(R),this.tv=this.tv.concat(m),h.offset=this.pv.length/2}this.positionLocation=r.getAttribLocation(s,"a_position"),this.texcoordLocation=r.getAttribLocation(s,"a_texCoord"),this.matrixLocation=r.getUniformLocation(this.program,"u_matrix");var n=this.positionBuffer=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,n),r.bufferData(r.ARRAY_BUFFER,new Float32Array(this.pv),r.STATIC_DRAW);var f=this.texcoordBuffer=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,f),r.bufferData(r.ARRAY_BUFFER,new Float32Array(this.tv),r.STATIC_DRAW);var c=this.texture=r.createTexture();r.bindTexture(r.TEXTURE_2D,c),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.NEAREST),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,i)}draw(){let i=this.scene.uMatrix()[0],e=0;for(var r=this.centers.length-1;r>=1;r--)if(this.centers[r].radius*i>30){e=this.centers[r].offset;break}var s=this.gl;console.time("number.draw"),s.useProgram(this.program),s.enableVertexAttribArray(this.positionLocation),s.bindBuffer(s.ARRAY_BUFFER,this.positionBuffer),s.vertexAttribPointer(this.positionLocation,2,s.FLOAT,!1,0,0),s.enableVertexAttribArray(this.texcoordLocation),s.bindBuffer(s.ARRAY_BUFFER,this.texcoordBuffer),s.vertexAttribPointer(this.texcoordLocation,2,s.FLOAT,!1,0,0),s.uniformMatrix3fv(this.matrixLocation,!1,this.scene.theMatrix()),s.activeTexture(s.TEXTURE0),s.bindTexture(s.TEXTURE_2D,this.texture),s.drawArrays(s.TRIANGLES,0,e),console.timeEnd("number.draw")}}window.numberDemo=function(){let t=X();t.style.backgroundColor="white",document.body.appendChild(t),document.body.appendChild(document.createElement("br"));let a=X(!0);a.style.backgroundColor="white",document.body.appendChild(a)};function X(t=!1,a="400 150px Roboto Condensed",i=4,e=0){let r,s;function u(){s.font=a,s.textAlign="left",s.textBaseline="top",s.letterSpacing=`${e}px`}r=document.createElement("canvas"),s=r.getContext("2d");const d="0123456789";u();let x=s.measureText(d),l=-x.actualBoundingBoxLeft,o=x.actualBoundingBoxLeft+x.actualBoundingBoxRight+l*2+e,n=x.actualBoundingBoxAscent+x.actualBoundingBoxDescent+i*2,f=0,c=i,y=f-e/2,h=-x.actualBoundingBoxAscent;if(r.width=o,r.height=n,s.translate(-y,-h),console.log("mesure",x),u(),s.fillStyle="black",s.fillText(d,f,c),t){s.strokeStyle="red",s.strokeRect(y,h,o,n);let m=o/d.length,v=n;s.save(),s.strokeStyle="green";for(var R=0;R<d.length;R++)s.strokeRect(y,h,m,v),s.translate(m,0);s.restore()}return r}function G(t,a,i,e){return new L(t,a,i,e).vertex()}class s1{constructor(a,i){this.vertexShaderCode=`
  97. attribute vec2 a_position;
  98. attribute vec2 a_texCoord;
  99. uniform mat3 u_matrix;
  100. varying vec2 v_texCoord;
  101. void main() {
  102. gl_Position = vec4(( u_matrix * vec3( a_position, 1)).xy, 0 , 1);
  103. v_texCoord = a_texCoord;
  104. }
  105. `,this.fragmentShaderCode=`
  106. precision mediump float;
  107. uniform sampler2D u_image;
  108. uniform vec4 u_color;
  109. varying vec2 v_texCoord;
  110. void main() {
  111. vec4 color = texture2D(u_image, v_texCoord);
  112. float dist = distance(color, u_color);
  113. if(dist < 0.001) {
  114. gl_FragColor = vec4(0, 1, 1, 1);
  115. }else{
  116. gl_FragColor = vec4(0, 0, 0, 0);
  117. }
  118. }
  119. `,this.color=new Uint8Array([0,0,0,0]),this.gl=a,this.fillerMap=i,this.gl=a;var e=this.program=U(a,p(a,a.VERTEX_SHADER,this.vertexShaderCode),p(a,a.FRAGMENT_SHADER,this.fragmentShaderCode));this.pv=G(0,0,this.width,this.height),this.tv=G(0,0,1,1),this.positionLocation=a.getAttribLocation(e,"a_position"),this.texcoordLocation=a.getAttribLocation(e,"a_texCoord"),this.matrixLocation=a.getUniformLocation(this.program,"u_matrix"),this.colorLocation=a.getUniformLocation(this.program,"u_color");var r=this.positionBuffer=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,r),a.bufferData(a.ARRAY_BUFFER,new Float32Array(this.pv),a.STATIC_DRAW);var s=this.texcoordBuffer=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,s),a.bufferData(a.ARRAY_BUFFER,new Float32Array(this.tv),a.STATIC_DRAW);let u=this.workTexture=a.createTexture();a.bindTexture(a.TEXTURE_2D,u),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,this.width,this.height,0,a.RGBA,a.UNSIGNED_BYTE,null),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);let d=this.fb=a.createFramebuffer();a.bindFramebuffer(a.FRAMEBUFFER,d),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,u,0),a.bindFramebuffer(a.FRAMEBUFFER,null)}matrix(){return I.projectionNoflipY(this.width,this.height)}get width(){return this.fillerMap.mapImage.width}get height(){return this.fillerMap.mapImage.height}addColor(a){this.color=a,this.draw()}draw(){console.time("mask.draw");let a=this.gl;a.viewport(0,0,this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,this.fb),a.useProgram(this.program),a.enableVertexAttribArray(this.positionLocation),a.bindBuffer(a.ARRAY_BUFFER,this.positionBuffer),a.vertexAttribPointer(this.positionLocation,2,a.FLOAT,!1,0,0),a.enableVertexAttribArray(this.texcoordLocation),a.bindBuffer(a.ARRAY_BUFFER,this.texcoordBuffer),a.vertexAttribPointer(this.texcoordLocation,2,a.FLOAT,!1,0,0),a.uniformMatrix3fv(this.matrixLocation,!1,this.matrix()),a.uniform4f(this.colorLocation,this.color[0]/255,this.color[1]/255,this.color[2]/255,this.color[3]/255),a.bindTexture(a.TEXTURE_2D,this.fillerMap.texture),a.drawArrays(a.TRIANGLES,0,6),a.bindFramebuffer(a.FRAMEBUFFER,null),console.timeEnd("mask.draw")}}class o1{constructor(a,i,e){this.vertexShaderCode=`
  120. attribute vec2 a_position;
  121. attribute vec2 a_texCoord;
  122. uniform mat3 u_matrix;
  123. varying vec2 v_texCoord;
  124. varying vec2 v_position;
  125. void main() {
  126. gl_Position = vec4(( u_matrix * vec3( a_position, 1)).xy, 0 , 1);
  127. v_texCoord = a_texCoord;
  128. v_position = a_position;
  129. }
  130. `,this.fragmentShaderCode=`
  131. precision mediump float;
  132. uniform sampler2D u_image0;
  133. uniform sampler2D u_image1;
  134. uniform sampler2D u_image2;
  135. uniform vec4 u_areaId;
  136. uniform vec2 u_center;
  137. uniform float u_progress;
  138. uniform float u_maxRadius;
  139. varying vec2 v_texCoord;
  140. varying vec2 v_position;
  141. void main() {
  142. vec4 colored = texture2D(u_image0, v_texCoord);
  143. vec4 mapColor = texture2D(u_image1, v_texCoord);
  144. vec4 mask = texture2D(u_image2, v_texCoord);
  145. float dist = distance(mapColor, u_areaId);
  146. if(mask.z > 0.0) {
  147. if(dist < 0.01) { //match the area
  148. if(u_progress < 1.0) {
  149. dist = distance(v_position, u_center);
  150. if(dist < u_maxRadius * u_progress) {
  151. gl_FragColor = colored;
  152. }
  153. }else{
  154. gl_FragColor = colored;
  155. }
  156. }else{
  157. gl_FragColor = colored;
  158. }
  159. }
  160. }
  161. `,this.progress=0,this.maxRadius=0;let r=this.gl=a.gl;this.scene=a,this.colored=i,this.fillerMap=e,this.mask=new s1(r,e),this.gl=r;var s=this.program=U(r,p(r,r.VERTEX_SHADER,this.vertexShaderCode),p(r,r.FRAGMENT_SHADER,this.fragmentShaderCode));let u,d;u=M(0,0,e.width,e.height),d=M(0,0,1,1),this.u_image0Location=r.getUniformLocation(s,"u_image0"),this.u_image1Location=r.getUniformLocation(s,"u_image1"),this.u_image2Location=r.getUniformLocation(s,"u_image2"),this.areaIdLocation=r.getUniformLocation(s,"u_areaId"),this.u_centerLocation=r.getUniformLocation(s,"u_center"),this.u_progressLocation=r.getUniformLocation(s,"u_progress"),this.u_maxRadiusLocation=r.getUniformLocation(s,"u_maxRadius"),this.positionLocation=r.getAttribLocation(s,"a_position"),this.texcoordLocation=r.getAttribLocation(s,"a_texCoord"),this.matrixLocation=r.getUniformLocation(this.program,"u_matrix");var x=this.positionBuffer=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,x),r.bufferData(r.ARRAY_BUFFER,new Float32Array(u),r.STATIC_DRAW);var l=this.texcoordBuffer=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,l),r.bufferData(r.ARRAY_BUFFER,new Float32Array(d),r.STATIC_DRAW)}colorArea(a,i,e){console.log("colorArea",a);let r=new C(a.id);this.mask.addColor(r.parts),this.areaId=r.float(),this.center={x:i,y:e,radius:0},console.log("tap@",this.center),console.log("area@",a.center),this.maxRadius=a.rect.coverRadius(i,e)}updateProgress(a){this.progress=a,console.log(`progress=${a}`)}stopAnimation(){this.areaId=void 0,this.center=void 0,this.progress=0,this.maxRadius=0}draw(){var a=this.gl;console.time("image.draw"),a.useProgram(this.program),a.enableVertexAttribArray(this.positionLocation),a.bindBuffer(a.ARRAY_BUFFER,this.positionBuffer),a.vertexAttribPointer(this.positionLocation,2,a.FLOAT,!1,0,0),a.enableVertexAttribArray(this.texcoordLocation),a.bindBuffer(a.ARRAY_BUFFER,this.texcoordBuffer),a.vertexAttribPointer(this.texcoordLocation,2,a.FLOAT,!1,0,0),a.uniformMatrix3fv(this.matrixLocation,!1,this.scene.theMatrix()),this.areaId&&this.center&&(a.uniform4f(this.areaIdLocation,this.areaId[0],this.areaId[1],this.areaId[2],this.areaId[3]),a.uniform2f(this.u_centerLocation,this.center.x,this.center.y),a.uniform1f(this.u_progressLocation,this.progress),a.uniform1f(this.u_maxRadiusLocation,this.maxRadius)),a.uniform1i(this.u_image0Location,0),a.uniform1i(this.u_image1Location,1),a.uniform1i(this.u_image2Location,2),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this.colored),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,this.mask.fillerMap.texture),a.activeTexture(a.TEXTURE2),a.bindTexture(a.TEXTURE_2D,this.mask.workTexture),a.drawArrays(a.TRIANGLES,0,6),console.timeEnd("image.draw")}}var F,b;document.body.onload=function(){console.log("good"),d1()};async function d1(){var t=await Y("/webgl/page2.png"),a=await Y("/webgl/map.png");let i=1;t=N(t,t.width*i,t.height*i),a=N(a,a.width*i,a.height*i);let e=q(a,i),r=e[0];F=document.querySelector("#canvas");var s=window.devicePixelRatio;F.width=F.clientWidth*s,F.height=F.clientHeight*s,b=F.getContext("webgl",{preserveDrawingBuffer:!1});let u=new J(b,a),d=Q(b,u,e),x=10,l=Math.min((F.width-x*2)/t.width,(F.height-x*2)/t.height),o=(F.width-t.width*l)/2,n=(F.height-t.height*l)/2,f=[l,0,0,0,l,0,o,n,1],c=new x1(b,f),y=new r1(c,u,r);c.addLayer(y);let h=X(),R=new i1(c,h,e);c.addLayer(R);let m=new o1(c,d,u);c.addLayer(m);let v=new e1(c,t);c.addLayer(v),new K(c),P(0),n1(e),c.invalidate();let _;function A(E,T){console.log(`tap @(${E},${T})`),E*=window.devicePixelRatio,T*=window.devicePixelRatio;let[B,w]=I.map(I.invert(c.uMatrix()),[E,T]);if(!r)return;let D=u.getPixel(B,w,r);D&&D&&(_&&_.end(),m.colorArea(D,B,w),c.invalidate(),_=new u1(800,S=>{m.updateProgress(S),c.invalidate()},()=>{m.stopAnimation(),c.invalidate()}))}function P(E){r=e[E],y.setAreaGroup(e[E]),c.invalidate()}new a1(F,{drag:c.translate.bind(c),zoom:c.zoom.bind(c),tap:A}),window.selectColor=function(E,T,B){console.log("select",E,T,B),P(B),document.querySelectorAll(".color-btn").forEach(w=>{w.classList.remove("color-btn-selected")}),E.classList.add("color-btn-selected")}}class u1{constructor(a,i,e){this.ended=!1,this.startTS=Date.now(),this.duration=a,this.onUpdate=i,this.onEnd=e,this.run()}end(){var a;this.ended||(this.ended=!0,(a=this.onEnd)==null||a.call(this))}run(){return requestAnimationFrame(()=>{var r,s;if(this.ended)return;let i=Date.now()-this.startTS,e=Math.min(i/this.duration,1);(r=this.onUpdate)==null||r.call(this,e),i<this.duration?this.run():(s=this.onEnd)==null||s.call(this)}),this}}function n1(t){let a=[],i,e;for(var r=0;r<t.length;r++)i=t[r],e=new C(i.color),a.push(`<div class="color-btn" style="background-color:${e.css()}" onclick="selectColor(this, event, ${r})">`),a.push(`${r+1}`),a.push("</div>");let s=document.querySelector("#color-btns");s.innerHTML=a.join("")}class x1{constructor(a,i=I.identity()){this.layers=[],this.pendingDraw=!1,this.gl=a,this.projection=I.projection(a.canvas.width,a.canvas.height),this.bestFitMatrix=this.matrix=i}addLayer(a){this.layers.push(a)}invalidate(){this.pendingDraw||(this.pendingDraw=!0,requestAnimationFrame(()=>{this.draw()}))}draw(){console.time("scene.draw"),b.viewport(0,0,b.canvas.width,b.canvas.height),b.clearColor(0,0,0,0),b.clear(b.COLOR_BUFFER_BIT),b.blendFunc(b.SRC_ALPHA,b.ONE_MINUS_SRC_ALPHA),b.enable(b.BLEND),b.disable(b.DEPTH_TEST),this.layers.forEach(a=>a.draw()),console.timeEnd("scene.draw"),this.pendingDraw=!1}theMatrix(){return I.multiply(this.projection,this.matrix)}uMatrix(){return this.matrix}translate(a,i){let e=I.translation(a*window.devicePixelRatio,i*window.devicePixelRatio);this.matrix=I.multiply(e,this.matrix),this.invalidate()}zoom(a,i,e){console.log("zoom......"),i*=window.devicePixelRatio,e*=window.devicePixelRatio;let r=I.scalingAt(a,a,i,e);this.matrix=I.multiply(r,this.matrix),this.invalidate()}tap(a,i){}}