Files
lidar_rendu/lidar_pipeline/web/map.html
Antoine fb892ea9f2 Translate the whole project to English and fix outdated comments and help
Comments, docstrings, logs, CLI help, map UI, legends, PDF sheet, scripts,
compose files and AGENTS.md are now English. Data keys stay unchanged
(relief_oriente, densite_sol, visualisations/, API JSON keys, link params).
Wrong comments and help defaults found along the way are corrected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 23:16:45 +02:00

151 lines
9.0 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
<title>LiDAR map</title>
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3E%3Crect width=%2716%27 height=%2716%27 rx=%273%27 fill=%27%230b0e13%27/%3E%3Cpath d=%27M2 11l4-5 3 4 2-2 3 3z%27 fill=%27%235aa9e6%27/%3E%3C/svg%3E">
<link rel="stylesheet" href="assets/vendor/leaflet/leaflet.css"/>
<link rel="stylesheet" href="assets/app.css?v=__ASSETS_V__"/>
</head>
<body>
<div id="map"></div>
<div id="compareBar" hidden title="Drag to move the divider"><span>⇆</span></div>
<aside id="panel" data-sheet="half" aria-label="Map settings">
<div id="sheetGrip" class="sheet-grip" title="Drag to expand or shrink"><span></span></div>
<div class="panel-head">
<nav id="panelTabs" class="panel-tabs" role="tablist">
<button role="tab" data-tab="view" title="Display (1)"><span class="tab-ico">◧</span><span class="tab-lbl">View</span></button>
<button role="tab" data-tab="tile" title="Tile (2)"><span class="tab-ico">▦</span><span class="tab-lbl" id="tileTabLbl">Tile</span></button>
<button role="tab" data-tab="print" title="PDF export (3)"><span class="tab-ico">⎙</span><span class="tab-lbl">PDF</span></button>
<button role="tab" data-tab="gen" title="Generation (4)" hidden><span class="tab-ico">+</span><span class="tab-lbl">Generate</span></button>
<button role="tab" data-tab="share" title="Share (5)"><span class="tab-ico">⎘</span><span class="tab-lbl">Share</span></button>
</nav>
<button id="panelCollapse" class="btn-icon" title="Collapse the panel">‹</button>
</div>
<div id="panelBody" class="panel-body">
<section id="tab-view" role="tabpanel" hidden>
<div class="base-row" id="baseRow">
<button class="eye on" id="baseToggle" title="Show / hide the base map"></button>
<span class="layer-name" id="baseName" title="Click: light / dimmed base map">OpenStreetMap base map</span>
<span class="pct" id="basePct"></span>
<div class="base-ctl">
<input type="range" id="baseOpacity" min="0" max="100" step="1" title="Base map opacity">
</div>
</div>
<div class="view-row">
<span class="view-label">Display</span>
<span class="layer-name" id="mainName"></span>
<select id="mainSel" class="field" title="Main display layer" hidden></select>
</div>
<div id="precBlock" hidden>
<div class="seg" id="modeSeg" role="group" aria-label="Relief, precision or comparison (P key)">
<button type="button" data-mode="relief" title="Relief only (P key: next mode)">Relief</button>
<button type="button" data-mode="precision" title="Geometric precision only: ground point density">Precision</button>
<button type="button" data-mode="compare" title="Compare two layers on either side of a sliding divider (P key: next mode)">Compare</button>
</div>
<div class="row" id="compareCtl" hidden>
<select id="compareLeft" class="field" title="Layer left of the divider"></select>
<span class="hint">⇆</span>
<select id="compareRight" class="field" title="Layer right of the divider"></select>
</div>
<div class="prec-legend" id="precLegend" hidden>
<div class="prec-bar" id="precBar"></div>
<div class="prec-ticks"><span>≤ 0.35</span><span>4</span><span>≥ 45 pts/m²</span></div>
</div>
</div>
<div class="row" id="intensityRow">
<label for="reliefIntensity" class="hint">Relief intensity</label>
<input type="range" id="reliefIntensity" min="0.5" max="2" step="0.1" value="1"
title="Relief contrast (1 = standard rendering; the PDF always uses the standard rendering)">
<span class="panel-stat" id="reliefIntensityVal">1×</span>
</div>
<div class="legend" id="legendBlock" title="Oriented relief: hue shows the slope direction, lightness the local relief">
<canvas id="roseCanvas" width="96" height="96"></canvas>
<div class="rose-cap">Slope facing…<br><span>light = bump · dark = hollow</span></div>
</div>
<details id="readingBlock" class="reading">
<summary>How to read the map</summary>
<ul id="readingList"></ul>
</details>
</section>
<section id="tab-tile" role="tabpanel" hidden>
<p class="hint" id="tileHint">Click a tile on the map to select it.</p>
<div id="tileCard" hidden>
<div class="row tile-head"><span class="sec-title" id="tileTitle">Tile</span></div>
<div id="tileBody"></div>
</div>
</section>
<section id="tab-print" role="tabpanel" hidden>
<div class="panel-stat" id="printInfo"></div>
<div class="row"><select id="printPaper" class="field" title="Paper size">
<option value="A4" selected>A4</option><option value="A3">A3</option></select>
<select id="printOrient" class="field" title="Orientation">
<option value="paysage" selected>Landscape</option><option value="portrait">Portrait</option></select>
<select id="printScale" class="field" title="Print scale">
<option value="1000">1:1,000</option><option value="2000" selected>1:2,000</option>
<option value="5000">1:5,000</option><option value="10000">1:10,000</option></select></div>
<div class="row"><input id="printTitle" class="field" type="text" maxlength="120"
placeholder="Title (optional)" title="Title printed in the title block"></div>
<p class="hint">Drag the ✥ handle to place the yellow frame over the area to print.</p>
<div class="row"><button id="printHere" class="btn"
title="Place the frame at the centre of the view">⌖ Centre here</button>
<button id="printFit" class="btn" title="Zoom to the frame">⤢ Show frame</button></div>
<div class="row"><button id="printGo" class="btn btn-primary">Export PDF</button>
<span id="printMsg" class="print-msg"></span></div>
</section>
<section id="tab-gen" role="tabpanel" hidden>
<div class="row"><button id="btnZone" class="btn" title="Generate a new area: draw a rectangle, IGN download + processing">+ Area</button>
<button id="btnComplete" class="btn" title="Complete: process every already-downloaded tile missing the chosen layers">⤒ Complete</button></div>
<div class="panel-stat" id="genBadge"></div>
<div id="genMsg" class="meta">Draw an area (+) or complete the existing tiles (⤒).</div>
<div id="genOpts">
<div class="gen-row"><span class="gen-lbl">Layers</span>
<select id="genViz" class="field" multiple size="4" title="Leave empty for the panel layers"></select></div>
<label class="chk"><input type="checkbox" id="genRegen"> Regenerate existing tiles</label>
<div class="meta">Ground: IGN classification · edges stitched to neighbouring tiles (100 m band)</div>
</div>
<div class="row" id="genActions">
<button id="genGo" class="btn btn-primary" title="Downloads (IGN Géoplateforme) then processes the selected tiles">Generate</button>
<button id="genClear" title="Clear the tile selection">Clear selection</button>
</div>
<div id="genRun" hidden>
<div class="meta" id="genProgress"></div>
<pre id="genLog" class="gen-log"></pre>
<div class="row">
<button id="genStop" title="SIGTERM to the pipeline (clean shutdown), SIGKILL as a fallback">Stop</button>
<button id="genQueueClear" title="Remove pending requests (the current run continues)">Clear queue</button>
</div>
</div>
</section>
<section id="tab-share" role="tabpanel" hidden>
<div class="row"><button id="btnShare" class="btn btn-primary" title="Copy a link to this view">⎘ Copy link to this view</button></div>
<h4 class="sec-title">XYZ imagery background (JOSM, QGIS, iD…)</h4>
<div id="useBody"></div>
<h4 class="sec-title">Default configuration</h4>
<div class="row"><button id="btnDefault" class="btn" title="Save the current display (main layer, mode, base map) as the default configuration for every browser">★ Set as default</button>
<button id="btnReset" class="btn" title="Revert to the default configuration">↺ Reset</button></div>
</section>
</div>
</aside>
<nav id="tools">
<button id="zoomIn" title="Zoom in">+</button>
<button id="zoomOut" title="Zoom out">−</button>
<button id="zoomFit" title="Zoom to the data">⤢</button>
<button id="gps" title="Centre on my location">⌖</button>
<button id="btnTheme" class="btn-icon" title="Theme">◐</button>
</nav>
<div id="toast" class="toast" hidden></div>
<div id="tileload" class="tileload" hidden aria-live="polite">
<span class="tl-spin"></span>
<span id="tileloadText"></span>
<span class="tl-bar"><span id="tileloadBar"></span></span>
</div>
<script src="assets/vendor/leaflet/leaflet.js"></script>
<script src="assets/app.js?v=__ASSETS_V__"></script>
</body>
</html>