Why use a complex CMS when you can use GitHub Issues as a lightweight blogging engine!
Journal | Read More →A six-hour drive each way through the hills of West Virginia to our nation’s capital might not be on everyone's to do list, but for my visit to FOSS4GNA it was definitely worth it. The chance to meet and mingle with people who generously share their knowledge of coding, data, and theory in a niche field is something that's difficult to replicate via video meetups, forums or social media.
Journal | Read More →Techniques for Substring Matching in MapLibre GL JS and Mapbox GL JS
Tech Blog | 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
A look back on what I've been up to over the past four months.
Updates | Update →A look back on what I've been up to since my last update.
Updates | Update →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 →
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);
I originally created this site to be a simple web 2.0 blog site with text entries for thoughts that did not fit into my work-related geospatial blog. However, as I found myself creating more bespoke sites, both for a specific hobby and also as an outlet for my web development curiosity, I realized I needed a landing page for all the feeds to come together. To date I have a photo site, a geospatial blog, this site, and a music site which is still in development. So I thought why not combine all these feeds into one place, and tag on my esoteric journal entries - and what better place than my personal domain name (how lucky is that!).
Journal | Read More →Generate Colorized 3D Tiles from LiDAR and Ortho Imagery
Tech Blog | Read More →
Using whisper and AI to transcribe audio and generate thematic clips
Journal | Read More →Bearing, LineIntersect & Destination
Tech Blog | Read More →
Rendering Comparisons of Vector Tiles and COGs in Web Mapping Libraries
Tech Blog | Read More →
Trace a GeoJSON Linear Network in the Browser
Tech Blog | Read More →
A Responsive Map-Focused Store Finder
Tech Blog | Read More →
Using SQLite in the Browser and Service Workers to Power Web Maps from Object Storage
Tech Blog | Read More →
A NodeJS GTFS Feed & Interactive Map Generator
Tech Blog | Read More →
An Exporation of the Highest Mountain Peaks in the US
Tech Blog | Read More →
Query > Download > Copy > Paste!
Tech Blog | Read More →
Creating Cloud Optimized GeoTIFFs and Raster Tiles using GDAL and QGIS
Tech Blog | Read More →
TL;DR gdalbuildvrt, gdal_translate, gdal_warp and gdaladdo
Tech Blog | Read More →
A Single-Page Wedding Wedsite with an Interactive Map
Tech Blog | Read More →
What if all US COVID Deaths occurred in one geographic area?
Tech Blog | Read More →
A Presentation for the 2020 Virtual Ohio GIS Conference
Tech Blog | Read More →
An Exploration of a GIS Remote Work Toolkit
Tech Blog | Read More →
Using NodeJS and Batches to Transform an ArcGIS Online Feature Service to GeoJSON
Tech Blog | Read More →
A Simple, Client Side Tracking Dashboard for COVID-19 in Ohio
Tech Blog | Read More →
Transforming Coordinates with JavaScript using proj4.js
Tech Blog | Read More →
A Comparison of Filter and Feature-State
Tech Blog | Read More →
A Client Side Solution for Simple Upstream and Downstream Linear Network Analysis
Tech Blog | Read More →
A Client-Side Parcel Viewer built with Leaflet
Tech Blog | Read More →
A Leaflet Version of the Original Mapbox JS Store Locator Example
Tech Blog | Read More →
Geospatial Analysis for the Browser, Desktop & Server
Tech Blog | Read More →
An Introduction to Leaflet, GitHub & Jekyll
Tech Blog | Read More →
A County Parcel App: No GIS Server? No Problem!
Tech Blog | Read More →
A Locator Map with Search and Nearest Store Finder
Tech Blog | Read More →
A Presentation for the 2015 Ohio GIS Conference
Tech Blog | Read More →