new logo! because...
Protomaps is moving from being "open-core", or partly proprietary, to an open source project.
The only closed part has been the basemap planet.pmtiles generation; an open source implementation is WIP here!
More updates soon!
New PMTiles demo!
@maplibre
+ Raster DEM
This page is powered by a single 30 gigabyte PMTiles v3 file on
@cloudflare
R2, which contains 350,000 Terrarium RGB-encoded terrain + bathymetry tiles - 10 zoom levels for the planet.
dataset via Mapzen Joerd!
Another sneak preview dataset...
Vector OSM basemap, entire world zoom 0-10
* 1.4 million addressed tiles
* 285,000 unique tile contents (80% redundancy!)
All packaged up in a single 2.4 GB file and served directly from R2 to your browser!
(Data ODbL)
Experimenting with
@stamen
's super slick Maperture cartography compare tool: here's a demo of PMTiles with a vector tileset read straight from Cloudflare R2 storage!
Lens is a map of Canadian wildfire data created by
@pathandfocus
+
@twostoryrobot
Explore wildfires interactively by date and area - built with a static set of pmtiles archives
@pwramsey
might find it interesting!
open sourced a small cost calculator: estimate the monthly bill of running
@protomaps
on AWS or Cloudflare based on usage, compared to Google Maps and hosted base map APIs. Now part of the Documentation site!
protomaps.js is a fully featured vector tile renderer and labeler that's a fraction of the size of alternatives.
This means it works with PostGIS vector tiles! Added an example using
@pwramsey
's pg_tileserv with Natural Earth data:
Added documentation around using pmtiles with MapLibre GL JS + React and optionally the react-map-gl library. A powerful combination with a ~3 line hook!
Full working example code sandbox at the docs:
Protomaps was accepted into GitHub Sponsors earlier this year, and has quietly hit the first goal - 20 monthly sponsors! Thanks all!
This has become the largest income stream for
@protomaps
this year. It's a lot of work to develop and maintain - a full time job at the minimum!
Launch week!
The
@protomaps
technical documentation has a new site, with a new tutorial, interactive maps, and client-side search:
and it's now open source on GitHub!
New blog post:
If your map is:
✅on the web
✅more than a few megabytes
✅infrequently changes
You should try PMTiles! If not, there's many alternatives, like
@GeoParquet
,
@postgis
,
@supabase
and the mighty GeoJSON
UNDP GeoHub is a visualization tool by Joseph Thuha and
@j_igarashi
using a hybrid of dynamic (PostGIS) and static (PMTiles) vector tiling
Thanks organizers for uploading all materials at !
3 new PMTiles use cases in the wild by independent developers!
1/3 Amanda McCann's (
@amapanda
@en
.osm.town) osm-river-basins for visualizing and QAing the topology of all waterways in OpenStreetMap, built with tippecanoe:
this seems like a good fit for
@protomaps
considering
@levelsio
already uses Cloudflare!
What if hoodmaps + nomadlist replaced their tiles APIs with a single file on Cloudflare R2... 👀10m requests (unique users or not) should be <$20
So
@Mapbox
's
@Marena_B
was very friendly and supportive in getting this resolved, thank you 🙏 😊
Now we'll have to try figure out how to make Hoodmaps work financially because $10,000-$100,000/mo is a bit much
I want every project I have to be able to be profitable stand
Presentation on map scarcity and the motivations for
@protomaps
as an open source project, recorded at
@NACIS
last month, now online!
New basemap shown here thanks to collaborators
@kelsosCorner
and
@sensescape
here's an alternative:
95% of OSM viewing use cases can be served by a planet-wide vector tileset stored as a single file on cloud storage - without restrictions on use or reproduction.
... and it exists right now!
Maintaining free mapping services for everyone on Earth is non-trivial. Making sure the map is also updated every minute is an additional large burden. It seems like maybe these services should be restricted to people using
#OpenStreetMap
Just shipped a new version of basemaps styles that links to files hosted on GitHub Pages
One-click zip download at
All powered by font-maker which has been upstreamed to the
@maplibre
org:
At
@sotmus
today?
here's the repo and slides for the "Protomaps from the Ground Up" workshop at 11AM.
We'll build a Great Outdoors interactive map from
@openstreetmap
trails and terrain data, hosted on your own GitHub Pages
pmtiles JS v2.8.0 released on npm
* DecompressionStream polyfill should make the map smoother when loading large tiles on Chrome and Safari
* Interact with MapLibre error reporting events correctly when exceptions happen
Protomaps offers a free hosted basemaps API for non-commercial use! Commercial use is supported through GitHub Sponsors.
You can now generate API keys on using GitHub or magic link login - no passwords required!
"I’m so excited about this: we now have the ability to entirely self-host vector maps of any location in the world, using openly licensed data, without depending on anything other than our own static file hosting web server. " -
@simonw
perfect use case for extract+basemaps!
I had the opportunity to be interviewed on the
@MapScaping
podcast about
@protomaps
!
Hear about the PMTiles tech, its relation to other geospatial concepts, and how this might make web mapping more accessible and creative.
Thanks Daniel for having me!
some repo/package renaming happening:
protomaps.js -> protomaps-leaflet
This project will have a slimmed down feature set and focus on what it's good at, which is drop-in vector and PMTiles rendering for existing Leaflet projects.
feedback in issues!
Going to FOSS4G in Prizren next week?
The "state of
@protomaps
" talk will be one of the first sessions on June 28: 11AM in Mirusha, right after
@_VincentS_
👀
There's a daily-updated mirror of the OSM basemap build () on the Source Cooperative
@source_coop
beta, hosted in AWS us-west-2
Get an access link to test out
@cloudnativegeo
workflows in the same region!
New blog post on the open-source CDN integrations for
@protomaps
- accelerate your PMTiles, affordably, to users around the world
(This used to be a commercial offering called Mantle but it's open source on GitHub now!)
pmtiles for JavaScript 2.10.0 released on NPM
Recommend upgrading from 2.9 because it fixes some problems related to Web Workers and MapLibre GL JS.
Please report any issues on GitHub!
A while back Daniel from
@MapScaping
posed an interesting question:
With the advent of cloud-native geospatial formats, are tiles obsolete? 👀
I wrote a short article for the MapScaping blog to try answering this...
@cloudnativegeo
There's a new Protomaps FAQ for those burning Qs like:
- What is the difference between Protomaps and OSM?
- Why use PMTiles over COG?
- How are data updates handled?
pmtiles CLI v1.9.2:
* extract command works on public pmtiles URLs
* you can pass it any GeoJSON (FeatureCollection, MultiPolygon, etc)
* extracting is multithreaded (configure --download-threads)
Did you know?
@protomaps
has a hosted Tiles API that's totally free for non-commercial use. You can get a key via the API link at the top of
And if you'd like to use this commercially, become a GitHub Sponsor!
Testers wanted! Release candidate of new PMTiles JavaScript library major version 3.0.0-alpha.2:
* Proper ES6 module + named exports
* MapLibre GL JS 4.x support
* Improve browser caching and ETag correctness for updating archives on storage in-place
New
@geomob
podcast episode on Protomaps is out!
This covers different topics than our
@MapScaping
episode - comparing Protomaps to alternatives, explaining the relationship to OpenStreetMap, and discussing open source business models.
Thanks Ed for hosting!
Launch week
#4
:
pmtiles extract is out of beta!
It powers the new Getting Started guide - download any size+shape area of interest with one command:
It replaces the closed-source, limited-area PMTiles download service at .
The Protomaps integrations for Cloudflare and AWS now support TileJSON!
This should make PMTiles backwards-compatible with more existing map clients, like style editors.
Launch week Day 2!
There's now a first-class option for "serverful" instead of serverless deployment of PMTiles, via the
@caddyserver
plugin!
Example setup and Caddyfile here:
Berlin mappy friends - we're hosting a casual GeoBerlin social April 4th at KASCHK, organized by
@insertcoffee
@nils_nolde
@bdon
and
@bertspaan
! find details on the GeoBerlin meetup group here:
New releases of Safari, and now Firefox, implement the DecompressionStream API, which makes loading PMTiles in the browser smoother.
pmtiles v2.10.0 will use this if it's supported!
PMTiles users: you can now try a very alpha, experimental feature for extracting smaller tilesets from larger ones!
pmtiles extract input.pmtiles output.pmtiles --bucket=s3://mybucket --region=poly.json
instructions:
State of the Map US
@sotmus
is less than a month away...
There'll be a talk on the new open source
@protomaps
basemap system and how it complements the ecosystem of tiling and visualization tools.
It's the last block of the conference on Sunday!
PMTiles + MapLibre GL JS users should try out 3.0.0! It changes the behavior of rapid zoom-in gestures to load fewer tiles, which can feel faster in some situations.
What's your experience like?
the
@mapwithrapid
@openstreetmap
editor now has bring-your-own-data via pmtiles urls
create a reference from datasets like
@OvertureMaps
-> store it in a single blob on s3 -> enhance OSM!
More Vector and PMTiles data! 🌍
Now you can add a
@Protomaps
PMTiles URL as a read-only reference data source. One exciting new source of data in PMTiles format is
@bdon
’s PMTiles demo of the
@OvertureMaps
Foundation’s recently released places data.
4/6
PMTiles specification 3.1 updates:
* formalize vector_layers to describe vector tilesets and power TileJSON
* add AVIF tile type
* tighten language around tile size / directory length edge cases
JS client (2.9) also updated to reflect above
new pmtiles JS library release - 2.8.0-beta.0
Adopt
@arjunbarrett
's fflate-based polyfill for the browser DecompressionStream API. Now that Safari 16.4 implements this, viewing tilesets should be smoother on Chrome and Safari!
Try and report issues:
If you are feeling adventurous you can try out the new PMTiles tooling in the following languages:
* TypeScript (reading from static storage)
* Python (reading + writing)
* Go (reading + writing + ✨UPLOADING✨to the cloud)
* C++ header-only routines
Launch week
#3
!
Improved Chinese, Japanese and Korean glyph rendering has been merged into
@maplibre
GL JS v3.4.1. Text now looks great at larger label sizes.
Just upgrade your GL JS version, it's free and open source!
View an interactive demo here:
My Little PMTiles: HTTP Is Magic
tippecanoe + maplibre + pmtiles demo; all US zi code geoms in one 40MB archive, delivered straight from static storage to browser
The
@protomaps
Europe tour happening in April:
~ April 1-11 Berlin
~ April 12-16 Netherlands
~ April 17-24 London
Let me know if you're nearby and want to chat about web mapping and open source!
Cloudflare Worker's new pricing model should reduce costs for
@protomaps
deploys by double digit %, making it even more affordable
It's opt-in before the next March - I'm evaluating this in prod already for a refresh of the docs! Nice one
@irvinebroque
!
Conferences for the rest of 2023 where you can hear about, complain about, or even just think about
@protomaps
:
*
@NACIS
, Oct 11-14
*
@foss4gna
, Oct 23-25
*
@SotmAsia
, Nov 16-18
*
#FOSS4G
-Asia, Nov 28-Dec 2
The promise of
@protomaps
: more maps, more possibilities, more places
this weekend you'll be able to see it atop Salesforce Tower in SF via
@erictheise
I'm soon going to have to pay my first
@Mapbox
invoice 🥲
Unfortunately 5$/1000 visits is unsustainable for an ad-supported website.
Thinking of moving to Maplibre. What's a cheap way to serve a simple background map?
Frequent updates and detail at high zooms unnecessary.
"A web application with 50,000 map loads using the Google Maps API will cost $350 per month.
A similar amount of traffic running through a Protomaps CDN install on Cloudflare costs fifty cents in Workers request fees."
with every dhh take it’s easy to focus on why he’s obviously wrong
but there’s always something more thought provoking that’s worth thinking about
yes most self hosting most existing software is stupid - you don’t want to randomly be dealing with disk space running out for your
I wish digital maps had a setting to increase label density by a factor of 10+, for a perspective like the road atlases of yore. We manufacture these amazing high-resolution displays but then render maps in crayon.
@imwithpanda
@tmcw
@pwramsey
4096 units is displayed as 512 CSS pixel tiles on most renderers
= 8 units of precision for every 1 pixel on a low density screen
= 4 units of precision for every 1 pixel on a "retina" 2x screen
that's pretty good!
updates on the go-pmtiles tool:
* Continuing down on 1.X major version numbering (ignore the 2.0 tags, sorry). 1.7.0 is the latest
* We need more GitHub stars, forks and watchers to be accepted into Homebrew! Throw the repo some love here: