Files
LorenEteval_Furious/Furious/Data/maplibre/EndpointMap.html
T
2026-08-20 10:10:17 +08:00

124 lines
3.5 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta
http-equiv="Content-Security-Policy"
content="default-src 'none'; script-src 'self' qrc: blob:; style-src 'self' 'unsafe-inline'; connect-src https://tiles.openfreemap.org; img-src data: blob: https://tiles.openfreemap.org; font-src data: https://tiles.openfreemap.org; worker-src blob:; child-src blob:"
>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="maplibre-gl.css">
<style>
html, body, #map {
width: 100%;
height: 100%;
margin: 0;
overflow: hidden;
background: transparent;
}
:root {
--endpoint-attribution-background: rgb(255 255 255 / 92%);
--endpoint-attribution-foreground: #202020;
--endpoint-loading-background: rgb(255 255 255 / 32%);
--endpoint-loading-foreground: #202020;
--endpoint-font-family: sans-serif;
--endpoint-font-size: 11pt;
}
:root[data-theme="dark"] {
--endpoint-attribution-background: rgb(24 30 39 / 92%);
--endpoint-attribution-foreground: #f5f5f5;
--endpoint-loading-background: rgb(16 21 28 / 38%);
--endpoint-loading-foreground: #f5f5f5;
}
#endpoint-loading-overlay {
position: absolute;
inset: 0;
z-index: 10;
display: none;
align-items: center;
justify-content: center;
gap: 8px;
color: var(--endpoint-loading-foreground);
background: var(--endpoint-loading-background);
cursor: wait;
font-family: var(--endpoint-font-family);
font-size: var(--endpoint-font-size);
font-weight: 400;
user-select: none;
}
#endpoint-loading-overlay[data-visible="true"] {
display: flex;
}
.endpoint-loading-spinner {
width: 16px;
height: 16px;
box-sizing: border-box;
border: 2px solid currentColor;
border-right-color: transparent;
border-radius: 50%;
animation: endpoint-spinner-rotation 0.8s linear infinite;
}
@keyframes endpoint-spinner-rotation {
to {
transform: rotate(360deg);
}
}
.endpoint-marker {
width: 20px;
height: 20px;
box-sizing: border-box;
border: 3px solid white;
border-radius: 50%;
background: var(--endpoint-accent, #0f7bff);
box-shadow: 0 1px 5px rgb(0 0 0 / 45%);
}
.maplibregl-canvas:focus,
.maplibregl-canvas:focus-visible {
outline: none;
}
.maplibregl-ctrl-attrib.maplibregl-compact {
max-width: calc(100% - 20px);
color: var(--endpoint-attribution-foreground) !important;
background-color: var(--endpoint-attribution-background) !important;
box-shadow: 0 1px 4px rgb(0 0 0 / 24%);
}
.maplibregl-ctrl-attrib a {
color: inherit !important;
}
.maplibregl-ctrl-attrib.maplibregl-compact-show
.maplibregl-ctrl-attrib-button {
background-color: transparent !important;
}
:root[data-theme="dark"] .maplibregl-ctrl-attrib-button {
filter: invert(1) brightness(1.7);
}
</style>
<script src="qrc:///qtwebchannel/qwebchannel.js"></script>
<script src="maplibre-gl.js"></script>
</head>
<body>
<div id="map" aria-label="Approximate location map"></div>
<div
id="endpoint-loading-overlay"
data-visible="true"
aria-hidden="false"
>
<span class="endpoint-loading-spinner" aria-hidden="true"></span>
<span id="endpoint-loading-text"></span>
</div>
<script src="EndpointMap.js"></script>
</body>
</html>