Nice. What’s the underlying technology for the map? FYI @Nathan Day
Here is my weekend and evening project that polished up over the Christmas holidays: https://earthly.city 🌍
source: https://github.com/zeSchlausKwab/earthly
By combining PMTiles with Blossom servers, i am working on a way to host map archives on your own infrastructure that can be discovered by Earthly.
https://cdn.satellite.earth/5c16b2315a6c201eeae5c99b25413e020306a01dc72f58c78436873015246151.webm
No central tile server, just 32 files on a Blossom server 🌸 and an intent on #Nostr.
- Decentralized: You host the data.
- Discoverable: Announce a map layer event, and anyone can use it.
- Composable: Combine map types and sources into unified views.
Under the hood, we map single-digit geohashes to specific PMTiles archives. Earthly delegates range requests to the associated Blossom file, ensuring efficient data fetching for the region you're viewing.
https://cdn.satellite.earth/c233681cfd0a0b60bd10a45df806729e408624c4c4dbab6f5896050a8b3b8a9a.webm
Want to verify the data?
`nak req -k 15000 relay.wavefunc.live | jq .content`
(Note: User-friendly tools to generate these announcements are coming soon!)
These announcements can also be used as a composition vehicle for different map types, styles and sources enabling us to have resilient base maps.
https://cdn.satellite.earth/7845943e3658386d4e01a0d984cadfc0476c17a35dad7175694239587a4fe35d.webm
Discussion
One source is maplibre-gl consuming OpenFreeMap, with millions of tiles on one server backed by cloudflare. The other one is 32 .pmtiles files hosted on my blossom server also consumed maplibre-gl but with my tile delegation plugin. The announcement and reading of the mappings is via nostr.