Skip to content

Instantly share code, notes, and snippets.

@rmrfus
Created March 29, 2026 23:05
Show Gist options
  • Select an option

  • Save rmrfus/337efa1984617c44a3be9e680cc591f5 to your computer and use it in GitHub Desktop.

Select an option

Save rmrfus/337efa1984617c44a3be9e680cc591f5 to your computer and use it in GitHub Desktop.
2026 Sierras Basecamp map
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>2026 Sierras — Basecamp Variant</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"/>
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<style>
body { margin: 0; font-family: sans-serif; }
#map { height: 100vh; }
.legend { background: white; padding: 8px 12px; border-radius: 4px; line-height: 1.8; }
.legend-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: 6px; vertical-align: middle; }
.rl { background: white; border: 1px solid #e8820a; border-radius: 4px; padding: 1px 5px; font-size: 11px; font-weight: bold; color: #e8820a; box-shadow: none; }
</style>
</head>
<body>
<div id="map"></div>
<script>
var map = L.map('map').setView([37.2, -118.2], 8);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',
maxZoom: 19
}).addTo(map);
function addMarker(lat, lon, name, desc, color) {
var icon = L.divIcon({
html: '<div style="width:14px;height:14px;border-radius:50%;background:' + color + ';border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,0.4)"></div>',
iconSize: [14, 14],
iconAnchor: [7, 7],
className: ''
});
L.marker([lat, lon], {icon: icon})
.bindPopup('<b>' + name + '</b>' + (desc ? '<br><br>' + desc : ''))
.addTo(map);
}
// route: LAS → Lone Pine → Mammoth → LAS
var route = L.polyline([
[36.1147, -115.1728],
[36.5673, -118.0747],
[37.6488, -119.0328],
[36.1147, -115.1728]
], {color: '#e8820a', weight: 3, opacity: 0.8}).addTo(map);
// drive time labels
L.marker([36.34, -116.62], {icon:L.divIcon({className:'',iconSize:[0,0],iconAnchor:[0,0]}),interactive:false}).bindTooltip('~4h',{permanent:true,direction:'center',className:'rl',offset:[0,0]}).addTo(map);
L.marker([37.12, -118.56], {icon:L.divIcon({className:'',iconSize:[0,0],iconAnchor:[0,0]}),interactive:false}).bindTooltip('~1.5h',{permanent:true,direction:'center',className:'rl',offset:[0,0]}).addTo(map);
L.marker([36.85, -116.65], {icon:L.divIcon({className:'',iconSize:[0,0],iconAnchor:[0,0]}),interactive:false}).bindTooltip('~4.5h',{permanent:true,direction:'center',className:'rl',offset:[0,0]}).addTo(map);
// base camps
addMarker(36.5673, -118.0747, 'База 1 — Lone Pine (авг 21–23, 2 ночи)', 'Tuttle Creek BLM (бесплатно) или Lone Pine CG.<br>Душ: Whitney Portal Store ~$10.<br>~4ч от LAS.', '#4a90d9');
addMarker(37.6488, -119.0328, 'База 2 — Mammoth Lakes (авг 23–29, 6 ночей)', 'Convict Lake CG или Lake Mary CG.<br>Душ: Reds Meadow $5 / Camp High Sierra $8.<br>~1.5ч от Lone Pine.', '#4a90d9');
// LAS
addMarker(36.1147, -115.1728, 'LAS — Las Vegas (прилёт/вылет)', 'Все слетаются сюда: Ваня+Вова из SEA/BOS, Лелик из DEN.<br>Рент машины тут.', '#888888');
// activities from Lone Pine
addMarker(36.6, -118.1167, 'Alabama Hills', 'Арки, Movie Flat Rd. Iconic. ~10 мин от Lone Pine CG.', '#27ae60');
addMarker(36.5862, -118.2393, 'Whitney Portal', 'Walk-up permit с утра в Lone Pine ranger station.<br>Portal Trail → Lone Pine Lake ~6mi, ~1000ft.', '#27ae60');
// activities from Mammoth
addMarker(37.5333, -118.7833, 'Wild Willy\'s Hot Springs', 'Free. У Crowley Lake, ~30 мин от Mammoth.<br>Оппортунистически.', '#e8402a');
addMarker(37.6312, -119.0847, 'Devils Postpile + Rainbow Falls', 'Shuttle от Mammoth Mountain. ~5mi хайк.', '#27ae60');
addMarker(37.6565, -119.1218, 'Emerald Lake Trail', '~4.5mi, ~700ft. Из Mammoth.', '#27ae60');
addMarker(37.782, -119.085, 'June Lake Loop', 'Parker Lake Trail ~7.5mi, ~900ft. Или просто проехать.', '#27ae60');
addMarker(37.9, -119.005, 'Mono Lake South Tufa', 'Туфовые башни, инопланетно. ~1-3mi, плоско. Закат.', '#27ae60');
addMarker(37.6313, -119.0519, 'Convict Lake', 'Loop ~2.5mi если стоим в Convict Lake CG. Красиво.', '#27ae60');
addMarker(37.8167, -118.4833, 'Benton Hot Springs', 'Day trip ~1.5ч от Mammoth.<br>Кемп с private hot spring tubs — резервировать заранее!', '#e8402a');
var legend = L.control({position: 'bottomleft'});
legend.onAdd = function() {
var div = L.DomUtil.create('div', 'legend');
div.innerHTML =
'<b>2026 Sierras — Basecamp</b><br>' +
'<span class="legend-dot" style="background:#4a90d9"></span>base camp<br>' +
'<span class="legend-dot" style="background:#e8402a"></span>hot spring<br>' +
'<span class="legend-dot" style="background:#27ae60"></span>activity<br>' +
'<span class="legend-dot" style="background:#888888"></span>airport';
return div;
};
legend.addTo(map);
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment