PMTiles
go-pmtiles
PMTiles | go-pmtiles | |
---|---|---|
17 | 4 | |
1,694 | 316 | |
4.0% | 4.4% | |
8.6 | 8.4 | |
25 days ago | 4 days ago | |
TypeScript | Go | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
PMTiles
-
Anatomy of a MapServer: how to leverage and visualize your geographical data
I am a novice at GIS and mapping but when I got started I thought a map/tile server was the only way to build mapping webapps.
But, in my admittedly simple application PMTiles can cover a lot of my visualization use cases with a thing Django app doing GEOJson for interactive stuff.
https://github.com/protomaps/PMTiles
-
Geospatial Nix – create, use and deploy today
This is awesome. Such a great use case for nix.
I do a lot of geospatial processing in the cloud and I've been using Tippecanoe a lot to create vector tiles. It pairs well with PM Tiles for storing on the cloud. It seriously increases the web app performance for massive data sets. I queue these up with ECS tasks to process our json/csv/parquet input and create optimize vector tile outputs.
https://github.com/felt/tippecanoe
https://github.com/protomaps/PMTiles
Tippecanoe would be a great addition to your nix packages. I've been thinking more and more about how Nix could fit into this pipeline.
Great work!
- Serve Maps From S3: Compressed single-file tiles for vector and raster maps
- Made an interactive bike map of my city using OSM data
-
Serverless maps at 1/700 the cost of Google Maps API
The thing being discussed is designed for cloud, so I think self managed is a better description?
https://protomaps.com/docs/cdn
Self hosting pmtiles is straightforward also, make a file available to a server that supports range requests:
https://protomaps.com/docs/pmtiles#2.-serve-your-file-locall...
-
How The Post is replacing Mapbox with open source solutions
It might've just been this: https://github.com/protomaps/PMTiles/tree/main/serverless/aws
There isn't a tool to do that right now. It could be a fit in either https://github.com/protomaps/go-pmtiles or https://github.com/protomaps/PMTiles/tree/main/python - the Go program is faster and more production ready at this point. I imagine if folders are working for you the quantity of tiles doesn't number into the millions, so the Python program might be sufficient.
Feel free to open an issue.
-
COMTiles (Cloud Optimized Map Tiles) hosted on Amazon S3 and Visualized with MapLibre GL JS
PMTiles
-
Host your own OpenStreetMap Map Tiles
For the next revision of the JS decoder I'm including `fflate` as a dependency so clients can decompress gzipped tile data using JavaScript.
https://github.com/protomaps/PMTiles/blob/master/js/package....
- PMTiles: Cloud-optimized, single-file map tile archives – Python+JS
go-pmtiles
-
Protomaps – A free and open source map of the world
I just used their pmtiles tool to grab a map of just the area around Half Moon Bay, south of San Francisco.
I grabbed the latest macOS Go binary from https://github.com/protomaps/go-pmtiles/releases
I found a rough bounding box using http://bboxfinder.com/#37.373977,-122.593346,37.570977,-122....
Then I ran this:
pmtiles extract https://build.protomaps.com/20231023.pmtiles hmb.pmtiles \
-
How The Post is replacing Mapbox with open source solutions
Yes, PMTiles is a tradeoff that isn't appropriate for transactional use cases. SQLite is pretty good for that already.
There is a throughput limit on S3 files of approximately 5500 GETs/sec per key. Bare archives on S3 is an appropriate choice for small-scale, zero maintenance deployments. If your application demands any thing close to that level of throughput, you're probably either:
* Serving individual tiles over the internet: you should use the CDN integration http://protomaps.com/docs/cdn ; most tile requests will be cached and only misses will interact with the S3 bottleneck.
* Bulk accessing a spatial subset of tiles: You shouldn't be requesting HTTP GETs for single tiles, but instead entire subsets of tiles with a single Range request made possible by the internal Hilbert curve ordering. This is still WIP here: https://github.com/protomaps/go-pmtiles/issues/31
What are some alternatives?
tilemaker - Make OpenStreetMap vector tiles without the stack
maputnik - An open source visual editor for the 'MapLibre Style Specification'
tippecanoe - Build vector tilesets from large collections of GeoJSON features.
TileServer GL - Vector and raster maps with GL styles. Server side rendering by MapLibre GL Native. Map tile server for MapLibre GL JS, Android, iOS, Leaflet, OpenLayers, GIS via WMTS, etc.
mod_mbtiles - Serve tiles with Apache directly from an .mbtiles file
planetiler - Flexible tool to build planet-scale vector tilesets from OpenStreetMap data fast
tippecanoe - Build vector tilesets from large collections of GeoJSON features.
titiler - Build your own Raster dynamic map tile services
openmaptiles - OpenMapTiles Vector Tile Schema Implementation