|
16 | 16 |
|
17 | 17 | let msg: string | null = null;
|
18 | 18 | let useLocalVite = false;
|
| 19 | + let exampleAreas: [string, [string, string][]][] = []; |
19 | 20 |
|
20 | 21 | onMount(async () => {
|
21 | 22 | // When running locally if a vite public/ directory is set up, load from that for speed
|
22 | 23 | try {
|
23 |
| - let resp = await fetch("/osm/kowloon.pbf", { method: "HEAD" }); |
24 |
| - useLocalVite = resp.ok; |
25 |
| - console.log("Using local cache, not od2net.org"); |
| 24 | + let resp = await fetch("/osm/areas.json"); |
| 25 | + if (resp.ok) { |
| 26 | + useLocalVite = true; |
| 27 | + console.log("Using local cache, not od2net.org"); |
| 28 | + exampleAreas = await resp.json(); |
| 29 | + } else { |
| 30 | + let resp = await fetch( |
| 31 | + `https://assets.od2net.org/severance_pbfs/areas.json`, |
| 32 | + ); |
| 33 | + exampleAreas = await resp.json(); |
| 34 | + } |
26 | 35 |
|
27 | 36 | // For quicker dev
|
28 | 37 | //$example = "bristol";
|
|
119 | 128 | Load an example:
|
120 | 129 | <select bind:value={$example} on:change={() => loadExample($example)}>
|
121 | 130 | <option value="">Custom file loaded</option>
|
122 |
| - <optgroup label="England"> |
123 |
| - <option value="bristol">Bristol</option> |
124 |
| - <option value="elephant_castle">Elephant & Castle</option> |
125 |
| - <option value="westminster">Westminster</option> |
126 |
| - </optgroup> |
127 |
| - <optgroup label="France"> |
128 |
| - <option value="strasbourg">Strasbourg</option> |
129 |
| - <option value="lyon">Lyon</option> |
130 |
| - <option value="brest">Brest</option> |
131 |
| - </optgroup> |
132 |
| - <optgroup label="Scotland"> |
133 |
| - <option value="edinburgh">Edinburgh</option> |
134 |
| - <option value="inverness">Inverness</option> |
135 |
| - </optgroup> |
136 |
| - <optgroup label="Hong Kong"> |
137 |
| - <option value="hong_kong">Hong Kong</option> |
138 |
| - <option value="kowloon">Kowloon</option> |
139 |
| - </optgroup> |
140 |
| - <optgroup label="Japan"> |
141 |
| - <option value="akihabara">Akihabara</option> |
142 |
| - <option value="hanegi">Hanegi Park</option> |
143 |
| - <option value="harujuku">Harujuku</option> |
144 |
| - </optgroup> |
145 |
| - <optgroup label="Taiwan"> |
146 |
| - <option value="taipei_main_station">Taipei main station</option> |
147 |
| - <option value="ximending">Ximending</option> |
148 |
| - </optgroup> |
149 |
| - <optgroup label="USA"> |
150 |
| - <option value="montlake">Montlake</option> |
151 |
| - </optgroup> |
| 131 | + {#each exampleAreas as [country, areas]} |
| 132 | + <optgroup label={country}> |
| 133 | + {#each areas as [value, label]} |
| 134 | + <option {value}>{label}</option> |
| 135 | + {/each} |
| 136 | + </optgroup> |
| 137 | + {/each} |
152 | 138 | </select>
|
153 | 139 | </label>
|
154 | 140 | </div>
|
|
0 commit comments