Skip to content

Commit 6264d35

Browse files
committed
Use a dynamic list of available example areas
1 parent 3c5f1d7 commit 6264d35

File tree

1 file changed

+19
-33
lines changed

1 file changed

+19
-33
lines changed

web/src/title/MapLoader.svelte

+19-33
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,22 @@
1616
1717
let msg: string | null = null;
1818
let useLocalVite = false;
19+
let exampleAreas: [string, [string, string][]][] = [];
1920
2021
onMount(async () => {
2122
// When running locally if a vite public/ directory is set up, load from that for speed
2223
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+
}
2635
2736
// For quicker dev
2837
//$example = "bristol";
@@ -119,36 +128,13 @@
119128
Load an example:
120129
<select bind:value={$example} on:change={() => loadExample($example)}>
121130
<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}
152138
</select>
153139
</label>
154140
</div>

0 commit comments

Comments
 (0)