asoria HF staff commited on
Commit
9629857
1 Parent(s): ac40620

Upload index.html with huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +293 -18
index.html CHANGED
@@ -1,19 +1,294 @@
1
- <!doctype html>
 
2
  <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <!DOCTYPE html>
3
  <html>
4
+ <head>
5
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
6
+ <title>svjack/pokemon-blip-captions-en-zh</title>
7
+
8
+ <link rel="preconnect" href="https://fonts.googleapis.com">
9
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
+ <link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
11
+
12
+
13
+
14
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css" />
15
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" />
16
+ <script src="https://unpkg.com/deck.gl@latest/dist.min.js"></script>
17
+
18
+ <script src="https://unpkg.com/fflate@0.8.0"></script>
19
+
20
+ <style>
21
+ body {
22
+ margin: 0;
23
+ padding: 0;
24
+ overflow: hidden;
25
+ background: #ffffff;
26
+ }
27
+
28
+ #deck-container {
29
+ width: 100vw;
30
+ height: 100vh;
31
+ }
32
+
33
+ #deck-container canvas {
34
+ z-index: 1;
35
+ background: #ffffff;
36
+ }
37
+
38
+ .deck-tooltip {
39
+
40
+ font-size: 0.8em;
41
+ font-family: Roboto;
42
+ font-weight: 300;
43
+ color: #000000 !important;
44
+ background-color: #ffffffaa !important;
45
+ border-radius: 12px;
46
+ box-shadow: 2px 3px 10px #aaaaaa44;
47
+ max-width: 25%;
48
+ }
49
+
50
+ #loading {
51
+ width: 100%;
52
+ height: 100%;
53
+ top: 0px;
54
+ left: 0px;
55
+ position: absolute;
56
+ display: block;
57
+ z-index: 99
58
+ }
59
+
60
+ #loading-image {
61
+ position: absolute;
62
+ top: 45%;
63
+ left: 47.5%;
64
+ z-index: 100
65
+ }
66
+
67
+ #title-container {
68
+ position: absolute;
69
+ top: 0;
70
+ left: 0;
71
+ margin: 16px;
72
+ padding: 12px;
73
+ border-radius: 16px;
74
+ line-height: 0.95;
75
+ z-index: 2;
76
+ font-family: Roboto;
77
+ color: #000000;
78
+ background: #ffffffaa;
79
+ box-shadow: 2px 3px 10px #aaaaaa44;
80
+ }
81
+
82
+
83
+ #search-container{
84
+ position: absolute;
85
+ left: -16px;
86
+ margin: 16px;
87
+ padding: 12px;
88
+ border-radius: 16px;
89
+ z-index: 2;
90
+ font-family: Roboto;
91
+ color: #000000;
92
+ background: #ffffffaa;
93
+ width: fit-content;
94
+ box-shadow: 2px 3px 10px #aaaaaa44;
95
+ }
96
+ input {
97
+ margin: 2px;
98
+ padding: 4px;
99
+ border-radius: 8px;
100
+ color: #000000;
101
+ background: #ffffffdd;
102
+ border: 1px solid #ddddddff;
103
+ transition: 0.5s;
104
+ outline: none;
105
+ }
106
+ input:focus {
107
+ border: 2px solid #555;
108
+ }
109
+
110
+
111
+ </style>
112
+ </head>
113
+ <body>
114
+ <div id="loading">
115
+ <img id="loading-image" src="https://i.gifer.com/ZKZg.gif" alt="Loading..." width="5%"/>
116
+ </div>
117
+
118
+ <div id="title-container">
119
+ <span style="font-family:Roboto;font-size:36pt;color:#000000">
120
+ svjack/pokemon-blip-captions-en-zh
121
+ </span><br/>
122
+ <span style="font-family:Roboto;font-size:18pt;color:#777777">
123
+ Data map for the entire <a href='https://huggingface.co/datasets/svjack/pokemon-blip-captions-en-zh/viewer/default/train' target='_blank'>dataset</a> (833 rows) using the column 'en_text'
124
+ </span>
125
+
126
+ <div id="search-container">
127
+ <input autocomplete="off" type="search" id="search" placeholder="🔍">
128
+ </div>
129
+
130
+ </div>
131
+
132
+
133
+ <div id="deck-container">
134
+ </div>
135
+
136
+ </body>
137
+ <script type="module">
138
+ import { ArrowLoader } from 'https://cdn.jsdelivr.net/npm/@loaders.gl/arrow@4.1.0-alpha.10/+esm'
139
+ import { JSONLoader } from 'https://cdn.jsdelivr.net/npm/@loaders.gl/json@4.0.5/+esm'
140
+
141
+
142
+
143
+ const pointDataBase64 = "QVJST1cxAAD/////0AUAABAAAAAAAAoADgAGAAUACAAKAAAAAAEEABAAAAAAAAoADAAAAAQACAAKAAAASAQAAAQAAAABAAAADAAAAAgADAAEAAgACAAAACAEAAAEAAAAEAQAAHsiaW5kZXhfY29sdW1ucyI6IFt7ImtpbmQiOiAicmFuZ2UiLCAibmFtZSI6IG51bGwsICJzdGFydCI6IDAsICJzdG9wIjogODMzLCAic3RlcCI6IDF9XSwgImNvbHVtbl9pbmRleGVzIjogW3sibmFtZSI6IG51bGwsICJmaWVsZF9uYW1lIjogbnVsbCwgInBhbmRhc190eXBlIjogInVuaWNvZGUiLCAibnVtcHlfdHlwZSI6ICJvYmplY3QiLCAibWV0YWRhdGEiOiB7ImVuY29kaW5nIjogIlVURi04In19XSwgImNvbHVtbnMiOiBbeyJuYW1lIjogIngiLCAiZmllbGRfbmFtZSI6ICJ4IiwgInBhbmRhc190eXBlIjogImZsb2F0MzIiLCAibnVtcHlfdHlwZSI6ICJmbG9hdDMyIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJ5IiwgImZpZWxkX25hbWUiOiAieSIsICJwYW5kYXNfdHlwZSI6ICJmbG9hdDMyIiwgIm51bXB5X3R5cGUiOiAiZmxvYXQzMiIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiciIsICJmaWVsZF9uYW1lIjogInIiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiZyIsICJmaWVsZF9uYW1lIjogImciLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiYiIsICJmaWVsZF9uYW1lIjogImIiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiYSIsICJmaWVsZF9uYW1lIjogImEiLCAicGFuZGFzX3R5cGUiOiAidWludDgi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AAAAAPUA9a+vAACsrwCvr4rLr/XLrPX1rKyvAK+vrwCsy8uv5gCsAMv1r68AAAAAAAAAywCvr4qvAMsAr/UAr68AAAAAy68AAKzm9cuvr6+s9QD1AACsANcAAK8AAAAAAADLr4oAr8vmANfXrwCKrwAAAAAAAIoA1wAAAIrLy9ev1wAAAIoAAK+s9df19cuvr4qK5qwA18vLAK8AAAD1rwAAr/UAAACvAK8AAAAAAPXLAACsAAAArwCvAPUAAK8A9YqKANfXy6/Ly9fXrwCsy/X1AKyvy6+vr8vLr8usAKzLrwAAAK8Aiq+vrwAAAACvr68AAAAAr9evAACKAACvAACs9QAAAACvAAAAr/X19QD19a+vAIrL9QDLAAAAr6wAAAAAigAAAK+vAACvAAAArAAAy/UAAACvAAD19fWsAObm5ubm5ubm5ubm5ubm5ubm5ubm5q/XAAAAr/XLr6+vy8vLr9evrPWvAAD1r68AAAAAAK8Ay6z1rwAAAPWvr68A9QAA9QAArwCvAPX1AK+sAK8A9a+vAAAAAK8AAK+vy8sAAAAAAPWv9a+sAK8ArwAAr9fLigAA1wAAAAAAAAAAAG7a2qbapm6mptpu2qbIn26i2m7an5/a2oDa2qam1qbapsja2pqf2tqmAJ9uANbWptbapp+f2qJuoqLan4CAppqmmtpu2qIAptpuom7W2qbaptra2tra2tqm2tpubqKi1tqi2m6m2qampqba2qaa2tqm2qammm6iptran6am2qbayKban9qi2qbayNrapm7a2tbaotbWbtraotqfptba2trapqLW1qampsimbsjamqLapqZu2m7ayKbapqaioqban9qm2m5uptrIn26a2tqibtqA1qYAoqKm2qbaoqLaosimmtra2qLWbqai2m7WyKKmpp/apqaibm5u2pqmbp/W1p9u1qbapp/aAG6myNoApqbW2trabtra2qLa2tra1qban5/a2qKi2m6m2tqmbqampqbWbqambtpuoqbappqa2tpu2m5ubqammpqmoqKm2qLa2qKmmqKfbtran6ba2ppuAKJuotqfn5+fptqmpqba2taapqYAoqKioqKi1qbWptam2pqapqYA2trWn6ampqKmotrapm7I2p/a2gDW2qLWyKKiyMjaptra2m7I1tbagKbIptai2tqfbm6mbm6m1qba2gDaptam2qJu2tpupqam1tqmpsiAotba2trIoqaipqbIppqmptqmbm5ubm7W2gBu2taAppqa2m4A2m6fpqZupgCmmm6mpgDW1pramqZubgCmptrIopqiotba2gAAgMimmtbWptqmpqai2qam2qKmbqbaptqmpqZupqLWpp/Ipqam2qbapqKmptpuogAAppqa1trW1pqa2qbI1qKipsja1tra2tbW2tbIpsjW2qamptpuANra2p+fn6ba2tqmn6am2prapm4An6babqbIoqampp/apqam2qKiom6iotrabgDWom7Wpm6m2simbp+mAG5ubtrapqbapm6myKZu1qKmpqbapqaioqLIpoCAgICAgICAgICAgICAgICAgICAgNqapqam2qLW2tra1tbW2prayKLapqai2tqmpqamptqm1sii2qafn6La2tpuoqZuoqaf2qbapqKiptrIn9qfotrapqamn9qmptra1tZupm6mpqLaotrIptqm2qam2prWAJ9umqamAAAAAAAAAN/d3WbdZt9mZt3f3WaGnd+i3d/dnZ3d3aPd3WZm8GbdZobd3Uyd3d1msJ3fsPDwZvDdZp2d3aLfoqLdnaOjZkxmTN3f3aKwZt3fot/w3WbdZt3d3d3d3d1m3d3f36Ki8N2i3d9m3WZmZmbd3WZM3d1m3WZmTN+iZt3dnWZm3Wbdhmbdnd2i3Wbdht3dZt/d3fDdovDw393dot2dZvDd3d3dZqLw8GZmZoZm34bdTKLdZmbf3d/dhmbdZmaiombdnd1m3d/fZt2Gnd9M3d2i392j8GawoqJm3WbdoqLdooZmTN3d3aLw32ai3d/whqJmZp3dZmai39/f3Uxm353w8J3f8GbdZp3dsN9mht2wZmbw3d3d393d3aLd3d3d8GbdnZ3d3aKi3d9m3d1m32ZmZmbw32Zm393fombdZkxM3d3f3d/f32ZmTExmoqJm3aLd3aJmTKKd393dnWbd3UzfsKLfot2dnZ2dZt1mZmbd3fBMZmawoqKioqKi8GbwZvBm3UxMZmaw3d3wnWZmZqJmot3dZt+G3Z3d3bDw3aLwhqKihobdZt3d3d+G8PDdo2aGZvCi3d2d399m399m8Gbd3bDdZvBm3aLf3d3fZmZm8N1mZoajovDd3d2GomaiZmaGZkxmZt1m39/f39/w3bDf3fCjZkxM3d+w3d+dZmbfZrBmTN9mZrDw8EzdTGbf37BmZt2GokyiovDd3bCwo4ZmTPDwZt1mZmai3WZm3aJm32bdZt1mZmbfZqLwZp2GZmZm3WbdZqJmZt3forCwZkxM8N3w8ExM3WaG8KKiZobd8N3d3fDw3fCGZobw3WZmZt3fsN3d3Z2dnWbd3d1mnWZm3UzdZt+wnWbd32aGomZmZp3dZmZm3aKiot+iot3d37Dwot/wZt9m3YZm351msN/f393dZmbdZt9mhmbf8KJmZmbdZmaioqKGZqOjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo91MZmZm3aLw3d3d8PDw3UzdhqLdZmai3d1mZmZmZt1m8Iai3WadnaLd3d3fombfomad3WbdZqKiZt2Gnd2dot3dZmZmnd1mZt3d8PDfZt9mZqLdot2GZt1m3WZm3UzwsJ3fTGZmAAAAAAAAALS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0AAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAP////8AAAAAEAAAAAwAFAAGAAgADAAQAAwAAAAAAAQAPAAAACgAAAAEAAAAAQAAAOAFAAAAAAAAsAEAAAAAAAB4KgAAAAAAAAAAAAAAAAAAAAAKAAwAAAAEAAgACgAAAEgEAAAEAAAAAQAAAAwAAAAIAAwABAAIAAgAAAAgBAAABAAAABAEAAB7ImluZGV4X2NvbHVtbnMiOiBbeyJraW5kIjogInJhbmdlIiwgIm5hbWUiOiBudWxsLCAic3RhcnQiOiAwLCAic3RvcCI6IDgzMywgInN0ZXAiOiAxfV0sICJjb2x1bW5faW5kZXhlcyI6IFt7Im5hbWUiOiBudWxsLCAiZmllbGRfbmFtZSI6IG51bGwsICJwYW5kYXNfdHlwZSI6ICJ1bmljb2RlIiwgIm51bXB5X3R5cGUiOiAib2JqZWN0IiwgIm1ldGFkYXRhIjogeyJlbmNvZGluZyI6ICJVVEYtOCJ9fV0sICJjb2x1bW5zIjogW3sibmFtZSI6ICJ4IiwgImZpZWxkX25hbWUiOiAieCIsICJwYW5kYXNfdHlwZSI6ICJmbG9hdDMyIiwgIm51bXB5X3R5cGUiOiAiZmxvYXQzMiIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAieSIsICJmaWVsZF9uYW1lIjogInkiLCAicGFuZGFzX3R5cGUiOiAiZmxvYXQzMiIsICJudW1weV90eXBlIjogImZsb2F0MzIiLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogInIiLCAiZmllbGRfbmFtZSI6ICJyIiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDgiLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogImciLCAiZmllbGRfbmFtZSI6ICJnIiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDgiLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogImIiLCAiZmllbGRfbmFtZSI6ICJiIiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDgiLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogImEiLCAiZmllbGRfbmFtZSI6ICJhIiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDgiLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogInNlbGVjdGVkIiwgImZpZWxkX25hbWUiOiAic2VsZWN0ZWQiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9XSwgImNyZWF0b3IiOiB7ImxpYnJhcnkiOiAicHlhcnJvdyIsICJ2ZXJzaW9uIjogIjE3LjAuMCJ9LCAicGFuZGFzX3ZlcnNpb24iOiAiMi4yLjIifQAAAAAGAAAAcGFuZGFzAAAHAAAAKAEAAOwAAAC8AAAAkAAAAGQAAAA4AAAABAAAAAT///8AAAECEAAAABwAAAAEAAAAAAAAAAgAAABzZWxlY3RlZAAAAABi////CAAAADT///8AAAECEAAAABQAAAAEAAAAAAAAAAEAAABhAAAAiv///wgAAABc////AAABAhAAAAAUAAAABAAAAAAAAAABAAAAYgAAALL///8IAAAAhP///wAAAQIQAAAAFAAAAAQAAAAAAAAAAQAAAGcAAADa////CAAAAKz///8AAAECEAAAABgAAAAEAAAAAAAAAAEAAAByAAYACAAEAAYAAAAIAAAA2P///wAAAQMQAAAAFAAAAAQAAAAAAAAAAQAAAHkAAADK////AAABABAAFAAIAAYABwAMAAAAEAAQAAAAAAABAxAAAAAYAAAABAAAAAAAAAABAAAAeAAGAAgABgAGAAAAAAABAPgFAABBUlJPVzE=";
144
+ const pointDataBuffer = fflate.strToU8(atob(pointDataBase64), true);
145
+ const pointData = await loaders.parse(pointDataBuffer, ArrowLoader);
146
+ const hoverDataBase64 = "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";
147
+ const hoverDataBuffer = fflate.strToU8(atob(hoverDataBase64), true);
148
+ const unzippedHoverData = fflate.gunzipSync(hoverDataBuffer);
149
+ const hoverData = await loaders.parse(unzippedHoverData, ArrowLoader);
150
+ const labelDataBase64 = "H4sIACvwIGcC/33TwW7bMAwG4FcpdHYFiZQo0rctu/TWw27LDm5mJEYTu7AdbNmwdx9tpa2zBL0aCT7+5K9vf8wvU96DRU/iQxLiwpz0S7DORcfMjqAw++qp3pvSfGqbQ7Vftw/7/XEY+2psutYUZmh+16b0YgEYJEJMWJhev4D+d2tKpsI8mRKlMJUpKfwtZtZb/QGTSyyYVW8dC6Wks8SP1eGNBW8JGchHCT6zDmd25tX15P6Hg5BnASTKMNmgg8cgOI3yCq+qfuy6dt2udlVfbca6Hz5IKzmsn0ZXddrbEgWrZkohcsqos8zASbcc5Mq8W3X7bsGB02WF5ERvFDKXV8szxukSQ0uM0QfvGXJC1MwcKQaM4UbCzWvCddvcOi4kKyFAZIIpn/oQ5gHEzwNEvloxpZiAHb/fNoEwMvlbfl9X47GvF4nZuhmilPeKLl8TwyV17yw5LS/rfGm20AIRiNf8ixo9Ns/VZne823TDeDzU75d8hVKGzozzl4yzibVRFNO0wNMUUSgyOPSwVLrn+nDRmXX7pa9+Nu32PRrq65KAkETyMt0s05kGvkqol/SI2p1s64t12jvSg8ZFeb52L82mvPvc9D+GpebBQRQgkfxAQk7KuanT87zgvE26QIms7c6ctk8fh8cUEa+4h3aoN+O6fdx1Y7ftq5fdabncCOKmtxXPOOTmplwceVvz93/mBfpwjQQAAA==";
151
+ const labelDataBuffer = fflate.strToU8(atob(labelDataBase64), true);
152
+ const unzippedLabelData = fflate.gunzipSync(labelDataBuffer);
153
+ const labelData = await loaders.parse(unzippedLabelData, JSONLoader);
154
+
155
+
156
+ const DATA = {src: pointData.data, length: pointData.data.x.length}
157
+
158
+ const container = document.getElementById('deck-container');
159
+ const pointLayer = new deck.ScatterplotLayer({
160
+ id: 'dataPointLayer',
161
+ data: DATA,
162
+ getPosition: (object, {index, data}) => {
163
+ return [data.src.x[index], data.src.y[index]];
164
+ },
165
+
166
+ getRadius: 0.1,
167
+
168
+ getFillColor: (object, {index, data}) => {
169
+ return [
170
+ data.src.r[index],
171
+ data.src.g[index],
172
+ data.src.b[index],
173
+ 180
174
+ ]
175
+ },
176
+ getLineColor: (object, {index, data}) => {
177
+ return [
178
+ data.src.r[index],
179
+ data.src.g[index],
180
+ data.src.b[index],
181
+ 32
182
+ ]
183
+ },
184
+ getLineColor: [250, 250, 250, 128],
185
+ getLineWidth: 0.001,
186
+ highlightColor: [170, 0, 0, 187],
187
+ lineWidthMaxPixels: 8,
188
+ lineWidthMinPixels: 0.1,
189
+ radiusMaxPixels: 24,
190
+ radiusMinPixels: 0.01,
191
+ radiusUnits: "common",
192
+ lineWidthUnits: "common",
193
+ autoHighlight: true,
194
+ pickable: true,
195
+ stroked: true
196
+ });
197
+ const labelLayer = new deck.TextLayer({
198
+ id: "textLabelLayer",
199
+ data: labelData,
200
+ pickable: false,
201
+ getPosition: d => [d.x, d.y],
202
+ getText: d => d.label,
203
+ getColor: d => [d.r, d.g, d.b],
204
+ getSize: d => d.size,
205
+ sizeScale: 1,
206
+ sizeMinPixels: 18,
207
+ sizeMaxPixels: 36,
208
+ outlineWidth: 8,
209
+ outlineColor: [238, 238, 238, 221],
210
+ getBackgroundColor: [255, 255, 255, 64],
211
+ getBackgroundPadding: [15, 15, 15, 15],
212
+ background: true,
213
+ characterSet: "auto",
214
+ fontFamily: "Roboto",
215
+ fontWeight: 900,
216
+ lineHeight: 0.95,
217
+ fontSettings: {"sdf": true},
218
+ getTextAnchor: "middle",
219
+ getAlignmentBaseline: "center",
220
+ lineHeight: 0.95,
221
+ elevation: 100,
222
+ // CollideExtension options
223
+ collisionEnabled: true,
224
+ getCollisionPriority: d => d.size,
225
+ collisionTestProps: {
226
+ sizeScale: 3,
227
+ sizeMaxPixels: 36 * 2,
228
+ sizeMinPixels: 18 * 2
229
+ },
230
+ extensions: [new deck.CollisionFilterExtension()],
231
+ });
232
+
233
+
234
+ const deckgl = new deck.DeckGL({
235
+ container: container,
236
+ initialViewState: {
237
+ latitude: -1.5728743,
238
+ longitude: 1.4921168,
239
+ zoom: 5.4288593314523546
240
+ },
241
+ controller: true,
242
+
243
+ layers: [pointLayer, labelLayer],
244
+
245
+
246
+ getTooltip: ({index}) => hoverData.data.hover_text[index]
247
+ });
248
+
249
+ document.getElementById("loading").style.display = "none";
250
+
251
+
252
+ function selectPoints(item, conditional) {
253
+ var layerId;
254
+ if (item) {
255
+ for (var i = 0; i < DATA.length; i++) {
256
+ if (conditional(i)) {
257
+ DATA.src.selected[i] = 1;
258
+ } else {
259
+ DATA.src.selected[i] = 0;
260
+ }
261
+ }
262
+ layerId = 'selectedPointLayer' + item;
263
+ } else {
264
+ for (var i = 0; i < DATA.length; i++) {
265
+ DATA.src.selected[i] = 1;
266
+ }
267
+ layerId = 'dataPointLayer';
268
+ }
269
+ const selectedPointLayer = pointLayer.clone(
270
+ {
271
+ id: layerId,
272
+ data: DATA,
273
+ getFilterValue: (object, {index, data}) => data.src.selected[index],
274
+ filterRange: [1, 2],
275
+ extensions: [new deck.DataFilterExtension({filterSize: 1})]
276
+ }
277
+ );
278
+ deckgl.setProps(
279
+ {layers:
280
+ [selectedPointLayer].concat(deckgl.props.layers.slice(1,))
281
+ }
282
+ );
283
+ }
284
+
285
+ const search = document.getElementById("search");
286
+ search.addEventListener("input", (event) => {
287
+ const search_term = event.target.value.toLowerCase();
288
+ selectPoints(search_term, (i) => hoverData.data.hover_text[i].toLowerCase().includes(search_term));
289
+ }
290
+ );
291
+
292
+
293
+ </script>
294
+ </html>