2 Commits

Author SHA1 Message Date
vcoppe 7f8751fa38 turn wikipedia tags into links, closes #354 2026-06-03 19:05:15 +02:00
vcoppe befcba00b4 hopefully more reliable initial fitBounds 2026-06-03 18:48:07 +02:00
6 changed files with 34 additions and 25 deletions
@@ -45,26 +45,6 @@
settings.initialize();
function applyOptions() {
let downloads: Promise<GPXFile | null>[] = getFilesFromEmbeddingOptions(options).map(
(url) => {
return fetch(url)
.then((response) => response.blob())
.then((blob) => new File([blob], url.split('/').pop() ?? url))
.then(loadFile);
}
);
Promise.all(downloads).then((answers) => {
const files = answers.filter((file) => file !== null) as GPXFile[];
let ids: string[] = [];
files.forEach((file, index) => {
let id = `gpx-${index}-embed`;
file._data.id = id;
ids.push(id);
});
fileStateCollection.setEmbeddedFiles(files);
$fileOrder = ids;
selection.selectAll();
});
if (allowedEmbeddingBasemaps.includes(options.basemap)) {
$currentBasemap = options.basemap;
}
@@ -90,6 +70,27 @@
].filter((dataset) => dataset !== null)
);
elevationFill.set(options.elevation.fill == 'none' ? undefined : options.elevation.fill);
let downloads: Promise<GPXFile | null>[] = getFilesFromEmbeddingOptions(options).map(
(url) => {
return fetch(url)
.then((response) => response.blob())
.then((blob) => new File([blob], url.split('/').pop() ?? url))
.then(loadFile);
}
);
Promise.all(downloads).then((answers) => {
const files = answers.filter((file) => file !== null) as GPXFile[];
let ids: string[] = [];
files.forEach((file, index) => {
let id = `gpx-${index}-embed`;
file._data.id = id;
ids.push(id);
});
fileStateCollection.setEmbeddedFiles(files);
$fileOrder = ids;
selection.selectAll();
});
}
$effect(() => {
@@ -88,6 +88,14 @@
<span class="font-mono">{key}</span>
{#if key === 'website' || key.startsWith('website:') || key.endsWith(':website') || key === 'contact:facebook' || key === 'contact:instagram' || key === 'contact:twitter'}
<a href={value} target="_blank" class="text-link underline">{value}</a>
{:else if key === 'wikipedia' || key.startsWith('wikipedia:') || key.endsWith(':wikipedia')}
<a
href="https://wikipedia.org/wiki/{value}"
target="_blank"
class="text-link underline"
>
{value}
</a>
{:else if key === 'phone' || key === 'contact:phone'}
<a href={'tel:' + value} class="text-link underline">{value}</a>
{:else if key === 'email' || key === 'contact:email'}
+1 -1
View File
@@ -59,7 +59,7 @@ title: 地图控件
<DocsLayers />
<span class="text-sm text-center mt-2">
鼠标悬停在地图上,可在地形图底图上方显示 <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails 徒步路线</a> 叠加层。
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
</span>
</div>
@@ -18,7 +18,7 @@ title: 请求海拔数据
<DocsNote>
海拔数据来自 <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>
查阅 <a href="https://mapterhorn.com/attribution/" target="_blank">官方文档</a> 以了解海拔数据来源及其准确度。
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
</DocsNote>
+1 -1
View File
@@ -75,7 +75,7 @@ export class BoundsManager {
this._unsubscribes.push(
map.subscribe((map_) => {
if (!map_) return;
map_.fitBounds(this._bounds, { padding: 80, linear: true, easing: () => 1 });
map_.fitBounds(this._bounds, { padding: 80, linear: true, animate: false });
this.reset();
})
);
+1 -1
View File
@@ -235,7 +235,7 @@
},
"elevation": {
"button": "请求海拔数据",
"help": "请求成功后将移除原有的海拔数据,并使用 Mapterhorn 的海拔数据替换原有数据。",
"help": "Requesting elevation data will erase the existing elevation data, if any, and replace it with data from Mapterhorn.",
"help_no_selection": "选择要请求海拔数据的文件。"
},
"waypoint": {