Kyle Walker
banner
kylewalker.bsky.social
Kyle Walker
@kylewalker.bsky.social
Demographics | Geospatial | Data Science | Open Source
Visualizing US electric power transmission lines for Day 26 of #30DayMapChallenge: Transport

A few mapgl tips in this one:

- To achieve a "glow effect" for the lines, first add a blurred line using the `line_blur` parameter then add the same layer over it as an opaque line
November 26, 2025 at 2:00 PM
I've been working with Claude Opus 4.5 for a day now...

...and it's causing me to question a lot of my assumptions about what's possible with AI.

If you have an idea but you have been waiting to build it, now is absolutely the time to get moving on it
November 25, 2025 at 6:53 PM
Video tutorial: mapping wind turbines with H3 hexagons, #rstats, and @maplibre.org

riverside.fm/shared/expor...

Code / links on the next post
Map Challenge: Hexagons | Nov 25, 2025 001 - Riverside - HD Podcast & Video Software
riverside.fm
November 25, 2025 at 5:11 PM
Mapping US wind energy infrastructure with H3 hexagons for #30DayMapChallenge Day 25.

Turbines and their capacity are aggregated by H3 level; we apply a "fade effect" as the user zooms to reveal smaller hexagons then individual turbines.

Posting a tutorial later today!
November 25, 2025 at 2:14 PM
Over the past 2.5 years I've been hosting Census data, web mapping, and Shiny workshops.

I'm giving my biggest discount ever on all the recordings + tutorials this week - I appreciate you checking them out!

This year: walkerdata.gumroad.c...

Past years: walkerdata.gumroad.c...
November 24, 2025 at 9:54 PM
For Day 24 of #30DayMapChallenge: Places and their names, a labeling trick in mapgl you can try.

Use the TurfJS integration in the package to dynamically compute centroids for your layer then use them as a symbol layer to label your polygons.

Try it: gist.github.com/walkerke/b77...
November 24, 2025 at 1:12 PM
The story map feature in the #rstats mapgl package is a tremendous teaching tool.

Teach your students geographic concepts while visualizing those concepts in real-time.

Check out this Census mapping story map tutorial for #30DayMapChallenge Day 23: Process.
November 23, 2025 at 7:44 PM
My career advice for 2026.

You probably have a skill or idea sitting on your computer that solves someone’s exact problem, but no one knows about it.

You are one post about this from changing your life.

November 23, 2025 at 2:51 PM
For Day 22 of #30DayMapChallenge, Natural Earth, a shout-out to Martijn Tennekes and the tmap.mapgl package.

tmap.mapgl wraps mapgl, allowing you to make performant interactive maps with the same tmap syntax you know and love!

Try it out: r-tmap.github.io/tmap.mapgl/i...
November 22, 2025 at 6:18 PM
Are you intrigued by the latest innovations in open-source geospatial, but you're committed to your Esri #GIS stack?

Not to worry. You can have both.

Shown here: 5 million US oil & gas wells, stored as PMTiles, served as a ZXY endpoint and consumed by the ArcGIS JavaScript API.
November 21, 2025 at 7:05 PM
A new version (0.4.3) of the mapgl #rstats package, your R interface to @mapbox.com and @maplibre.org maps, is now on CRAN!

Mostly quality-of-life improvements in this release; the biggest change is that MapLibre maps now default to a globe projection.

Install / update today!
November 21, 2025 at 5:54 PM
Today's mapgl tip: use `add_image()` to add a local or remote image to your map, then pass the image ID to `icon_image` in `add_symbol_layer()` to use custom icons on your maps.

You can even cluster your icons too!

#30DayMapChallenge Day 21: Icons
November 21, 2025 at 3:04 PM
If you have maritime mapping needs, consider using the beautiful Ocean map style from @maptiler.bsky.social.

It's available in mapgl with `maptiler_style("ocean")`.

#30DayMapChallenge Day 20: Water
November 20, 2025 at 2:58 PM
A bonus one for Day 19 of #30DayMapChallenge: Projections

I tested out Gemini 3.0 Pro by asking it to make an animated visualization of how tigris::shift_geometry() moves Alaska / Hawaii / Puerto Rico for US thematic mapping.

Gemini 3 one-shotted this one!
November 19, 2025 at 8:16 PM
When you make interactive world maps, your choice of projection matters.

Use this app to see how the traditional Mercator projection grossly distorts area near the poles relative to the Equator.

#30DayMapChallenge Day 19: Projections

walkerke-projections.share.connect.posit.cloud
November 19, 2025 at 11:23 AM
With the new Antigravity release, my #coding hot take:

I don't care for VSCode.

So many new IDEs are built on it (Cursor, Positron, now Antigravity) but I find VSCode clunky and really crowded without a big monitor.

My IDE of choice these days: @zeddotdev
November 18, 2025 at 10:19 PM
For #30DayMapChallenge Day 18: Out of this world, use the `fill_z_offset` param in mapgl to "elevate" your data.

Just be careful - if you choose a value too high, you might lose your data in the sky!

#rstats
November 18, 2025 at 7:03 PM
5 million oil & gas wells mapped across the US.

Smoothly aggregated heatmap when zoomed out, fading to individual wells when zoomed in.

High-precision energy industry insights, modern geospatial infrastructure.
November 17, 2025 at 9:35 PM
For Day 17 of #30DayMapChallenge: A New Tool, try out the newest addition to mapgl: `palette_to_lut()` for theming the @mapbox.com Standard Style.

You'll get Mapbox's rendered 3D buildings styled with any color theme you want - all you need is a vector of colors!
November 17, 2025 at 3:31 PM
Reposted by Kyle Walker
Maplibre in storymap mode showing changes in fuel-types for power generation in the UK.

Kudos to @kylewalker.bsky.social for the {mapgl} package and examples 😁

Data: www.gov.uk/government/c...

#30DayMapChallenge | Day 15 - Fire #rstats
November 15, 2025 at 8:57 PM
For Day 16 of #30DayMapChallenge: Cell, use mapgl's `turf_voronoi()` to create Voronoi "cells" from input points.

Even better - make your Voronoi polygons interactive and dynamic in Shiny!

#rstats #GIS
November 16, 2025 at 11:08 PM
In the #rstats mapgl package, use `add_heatmap_layer()` to create a smooth heatmap from point data - and style it with a "fiery" palette like the viridis Inferno color scale!

Day 15 of #30DayMapChallenge: Fire
November 15, 2025 at 3:19 PM
On the blog: visualize massive spatial datasets — fast and performantly, and even in 3D — with PMTiles.

Also, keep an eye out: a follow-up post on deploying PMTiles mapping apps is in the works!
Mapping 650,000+ Texas Census blocks with PMTiles – WALKER DATA
GIS, demographics, and data science consulting
walker-data.com
November 14, 2025 at 10:24 PM
#30DayMapChallenge Day 14: OpenStreetMap

Choose from dozens of basemaps in #rstats mapgl based on OpenStreetMap. Use:

- `mapbox_style()` for @Mapbox styles;
- `maptiler_style()` for @MapTiler;
- `carto_style()` for @CARTO styles;
- `openfreemap_style()` for @OpenFreeMapOrg
November 14, 2025 at 3:31 PM
An interactive map of Census data from start-to-finish in 10 minutes.

For #30DayMapChallenge Day 13: 10 minute map, I recorded an impromptu, unedited tutorial on how to find and map Census tract-level data using R and Positron.

riverside.fm/shared/expor...
Kyle | Nov 13, 2025 001 - Riverside - HD Podcast & Video Software
riverside.fm
November 13, 2025 at 5:47 PM