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

Reply to this note

Please Login to reply.

Discussion

Nice. What’s the underlying technology for the map? FYI @Nathan Day

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.

Hello. This is an interesting tool that has recently been published. I came across this post yesterday, thanks to a friend who shared the information. After experimenting a bit, three questions have arisen from my perspective:

1. What are we supposed to enter in the ā€˜key’ and ā€˜value’ fields? For example, I used a kanban string (from Kanbanstr).

2. Why does the browser window remain blank and fail to reload when I try to view possible comments from my user account in the ā€˜comments’ area?

3. I’ve been trying to send sats (zap) for interaction—which I find very important—but nothing happens when I click on the LN icon.

Any guidance or clarification on these points would be greatly appreciated.

#EarthlyCity #fgraphiclayerdevelopmentonmap

1.) these fields are for arbitrary properties of a feature.

Example for a polygon:

population: 845

Example for a poly line that represents a hiking trail: elevation: 650m

2.) probably a bug

3.) zaps aren't implemented yet, I should hide the button

No. Please don't hide the button. Rather implement the zaps feature šŸ™šŸ¼. From my point of view, zaps are the main component (the most spicy seasoning) of Nostr apps/clients. Without it, we stray from the protocol. šŸ˜‰

Will soon. Don't hesitate to let me know if you find any bugs or if a feature is missing.

It would be fantastic if there were an option to ā€˜join/link’ the elements (such as properties) that users utilize to represent their graphics—like point markers, lines or routes, polygons, and text annotations—to Kanbanstr boards. Alternatively, having a simple way to share links (e.g., naddr, note1, kind, etc.) would also be highly beneficial. šŸ’”

Sharing links is already there. You can click on the magnifying glass on a data set and this gets you to "isolation mode" with a proper sharable route. And a share icon should appear in the toolbar.

Linking from kanbanstr must come from them. Geoevents and collections can be linked via an a tag like every other addressable event.

Yes, it’s great to be able to share the creation of elements. Thank you for the clarification regarding this, as well as for the explanation about ā€˜key’ and ā€˜value’.

I understand that Kanbanstr uses ā€˜linking strings’ (e.g.: kanban:cdee943cbb19c51ab847a66d5d774373aa9f63d287246bb59b0827fa5e637400:budabit-kanban:cdee943cbb19c51ab847a66d5d774373aa9f63d287246bb59b0827fa5e637400:nostr-git:card-1768200547085-67d410cd4142f8), which are very useful for associating elements with what the user is working on. However, I notice that in the app Earthly City, there is a function called ā€˜Collections’. I’m not yet fully familiar with how Collections works, but I imagine it serves a purpose similar to ā€˜linking strings’.

I’m really looking forward to being able to share sats on maps-elements and comments directly into the Earthly City app with any LN wallet!

Overall, I wish you every success with this app. I’m truly enjoying it and believe it will be an incredibly valuable tool for the community. Thank you so much for sharing it—I appreciate the effort and vision behind it.