47 lines
1.5 KiB
HTML
47 lines
1.5 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Yard Map</title>
|
|
<link rel="stylesheet" href="./vendor/maplibre/maplibre-gl.css" />
|
|
<link rel="stylesheet" href="./styles.css" />
|
|
</head>
|
|
<body>
|
|
<div class="app-shell">
|
|
<aside class="panel">
|
|
<p class="eyebrow">Static map</p>
|
|
<h1>Yard Atlas</h1>
|
|
<p class="intro">
|
|
MapLibre renders a local PMTiles vector map underneath a client-side
|
|
geometry pipeline. Source files stay as JavaScript so you can author
|
|
points and shapes with absolute coordinates or offset math.
|
|
</p>
|
|
<div class="legend" id="legend"></div>
|
|
<section class="notes">
|
|
<h2>Authoring style</h2>
|
|
<pre><code>new House()
|
|
.trace([
|
|
[-100.8988347540, 46.8268080234],
|
|
[-100.8986668041, 46.8268307100],
|
|
])
|
|
|
|
new Sprinkler("Front bed sprinkler")
|
|
.add(offset(lotCorner), south(ft(15)), east(ft(10)))</code></pre>
|
|
</section>
|
|
</aside>
|
|
<main>
|
|
<div class="map-frame">
|
|
<p id="map-status" class="map-status" role="status">Loading the map…</p>
|
|
<div id="map" aria-label="Map of yard"></div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
|
|
<script src="./src/error-overlay.js"></script>
|
|
<script src="./vendor/pmtiles.js"></script>
|
|
<script src="./vendor/basemaps.js"></script>
|
|
<script type="module" src="./src/main.js"></script>
|
|
</body>
|
|
</html>
|