Hacker News new | ask | show | jobs
by maelito 27 days ago
Yes it's planned. Should work in theory, but no one tried before.

Maps are so often done as native apps that to my knowledge no one tried to just use the PWA capabilities to cache tiles on the Web. Of course what's hard is cache invalidation. Does the user want to update the tiles ? Never ? Daily, weekly ? Only some regions ? Or manually ?

Here's an issue about that : https://codeberg.org/cartes/web/issues/1078

It's in French, unfortunately Codeberg has no auto-translate capabilities yet.

1 comments

FWIW, I have an experimental open-source implementation of offline-capable PWA protomaps. Haven't advertised it much, because I haven't sorted out performance (particularly on mobile), and it's a bit buggy still. Also, don't have cache invalidation. But it does work. Usually. xD

app: https://maps.bpev.me

source: https://tangled.org/bpev.me/maps

Based on results from indexeddb pmtiles work:

https://github.com/jtbaker/pmtiles-offline

https://github.com/protomaps/PMTiles/issues/395

Did you explore the solution of just caching the pmtiles requests responses as well, instead of IndexedDb ?
I didn't dig too deeply into it, because explicitly storing locally just gives a bit more control. Also, since I was kind of imitating the style of Organic Maps, I wanted to give the ability to download entire tiles. I view caching responses more like a performance enhancement, whereas I wanted explicit offline support.
That makes sens. Both features combined would be cool. In any case, a cache invalidation feature should be always visible to the user, so that he knows that clicking this button will switch to online mode.
Awesome, thanks for the links.
Funny : there's another Ben that did his "Ben maps". https://benmaps.fr
What can I say? Bens like maps I guess.