~2.5M cities · ~375 MB served on demand from Cloudflare R2 · sub-second prefix queries · zero backend
Journal | Read More →
An aggregate FILTER made this DuckDB spatial query
84× faster than a plain WHERE,
with the same exact count and no index or precomputation.
While scoping out my next backpacking adventure via various PDF and web maps, I ran across these US Forest Service vector tile basemaps.
Journal | Read More →Why use a complex CMS when you can use GitHub Issues as a lightweight blogging engine!
Journal | Read More →ffprobe \
-v error \
-select_streams a:0 \
-show_entries stream \
-of default=noprint_wrappers=1 \
"input.m4a" | sed 's/=/:/'
for f in *.flac; do ffmpeg -v warning -i "$f" -map_metadata 0 -b:a 192k "${f%.flac}.mp3"; done
const layers = map.getLayers().getArray();
layers.forEach((layer) => {
const source = layer.getSource();
if (source && source.dispose) {
source.clear();
source.dispose();
}
if (layer.disposeInternal) {
layer.disposeInternal();
} else if (layer.dispose) {
layer.dispose();
}
map.removeLayer(layer);
});
const olCanvas = map.getViewport().querySelector("canvas");
if (olCanvas) {
const gl = olCanvas.getContext("webgl") || olCanvas.getContext("webgl2");
if (gl) {
const loseContext = gl.getExtension("WEBGL_lose_context");
if (loseContext) {
loseContext.loseContext();
}
}
}
map.getInteractions().clear();
map.getOverlays().clear();
map.dispose();
map.setTarget(null);
Techniques for Substring Matching in MapLibre GL JS and Mapbox GL JS
Tech Blog | Read More →
Preview, Convert, and Filter SHP, GPKG, GeoJSON & GeoParquet in the Browser
Tech Blog | Read More →
Find Open Satellite Imagery from Maxar, Capella, Umbra, and Wyvern
Tech Blog | Read More →
A Sample of Available Satellite Data for Post-Disaster Visual Assessment
Tech Blog | Read More →
Generate Colorized 3D Tiles from LiDAR and Ortho Imagery
Tech Blog | Read More →
Bearing, LineIntersect & Destination
Tech Blog | Read More →