Reading your comment it sounds like you're asking the author to do more work to potentially/likely undercut their own sales. They are already offering a quality device at a reasonable price without any untoward restrictions.
If you want a Free work-alike, why don't /you/ put in the work and make it happen?
If you're interested, reach out. Depending on the scale of your system(s) and how much is already in OSM I might be able to spin one of these up for you without much work. (https://cramba.org is my local club, but I work with pretty much all of them in Michigan.)
Gosh, having tried to use the Home Depot app (to find products in store) while IN their stores... It's so bad. I can't even imagine what you dealt with in trying to handle those things.
(And so, so many little bugs in my map thing from upthread were these odd timing quirks when a user didn't have good service and one check would run and leave something else hanging resulting in a blank map. <sigh>)
The main idea was to solve the gap of how many trail systems have colored loops, or signed/colored loops made up of multiple "trails", and Trailforks (et al) has no concept of that. So the situation a user finds themselves in is being at a trail, with Trailforks up, wanting to follow the "Orange" loop (for example), and Trailforks doesn't show that.
Hopefully the "Orange" loop is documented as a route, but this stuff often gets missed, and is still awkward since the image of the map still doesn't match the signs.
So my goal was to show the map close to what's physically there, use OSM data as much as possible, and filling in gaps for what OSM doesn't capture, rendering it all into a static map that also happens to work offline. For some specific examples, compare these two systems and their print, Trailforks, and trailmaps.app maps:
There is the same kind of gap when compared to RideWithGPS, Strava, Gaia, etc.
And also, I'm a volunteer with our local trails non-profit. I want anyone and everyone to be able to find maps so they can enjoy the trails. A /lot/ of trail clubs are starting to replace maps with a link to Trailforks, which I believe does riders a disservice because it both requires an app and account and (if a user is trying to view a map out of their home area on a phone) payment. It's literally locking the basic info about a trail -- the map -- behind a semi-paywall. By making a system like this for our local trails I've helped completely avoid that mess. And so I made the map generator open as well so other techy folks can do the same or build on this.
This generated-static-map system does have the downside of being single-person-ish manually managed, and the maps do NOT update automatically. But I also see this as a feature, just like the print maps and in-person signage they are designed to complement.
Thanks for that pointer. I have, but I just really don't want to do it... With my current architecture -- that I like -- it'd be an app per map. Which I guess could make a little pocket money, but they are so hyper-local it wouldn't earn much. So I may as well just keep things going the way they are.
This actually handles that, at least for my use case. Specifically, on first load of the page (in a browser, or the stripped-down browser that runs the app-like PWA install) a service worker gets installed, that caches the entire site/app/map locally, and runs it from there. Then every 24 hours, or on new page load, it checks the live site for content changes and pulls down the changes if they exist. If there's no network connectivity it just silently runs the map.
Each map is 16MB - 20MB in total, so this is all nice and simple to do. Even on a slow 3G connection it's only a minute or so for a full map update to stream in.
The whole point of this system was to take a snapshot of data (mostly OSM), add on some local things that can't really be represented in OSM (like WHICH parking lots are most appropriate, stylistic overrides, system descriptions, etc) and display them. Because of issues I've had in the past with well-meaning-but-misguided OSM mappers wrongly editing trail systems I did not want anything that pulls live.
And then by having purely static content the hosting is very cheap and easy, there's no security concerns around... well... anything dynamic on the site. And each map is portable were I to want someone else to host them. And literally in a couple of years if I haven't updated the map it won't change yet still will work, and that's fine and accepted for this use. Sort-of like a mobile version of a traditional print map. Kinda like the print workflow of editing/design/etc and then rendering the PDF, but web.
This all aligned nicely for me to have a tool that works this way, with each map generated by a tool.
(Sort-of disclaimer: It was also a big personal project in learning to work with AI stuff for development. I knew and understood the inputs and outputs, was able to design the UI, handled/managed all the testing... But I didn't have to worry about the actual-code part. I was able to make pretty quick progress and iterate nicely on my ideas.)
Happy to talk, etc, more about it too. Either here, or contact info is on the site.
Hello! And yeah... :\ The Android/Chrome/Edge support for it is great, and on iOS it's actually nice, but you have to do all the hoop-jumping of clicking Share, whatever, and getting the icon to actually appear.
Also, apparently Apple really doesn't like approving apps that are basically wrapped PWAs (Google will, I guess?) so that is yet another check against bothering with an app.
I like making maps, and I wanted to do a certain bend on a very specific kind of online map, filling a gap I noticed in existing maps.
The idea of an app really appealed to me (at first), but the more I thought about it the more I didn't want to deal with iOS and then Android and then maintaining parallel functionality on the web and all that mess just for a fairly-local hobby project that I make no money off of.
So, I just kept it as a website (which is also a PWA) with extensive testing on every platform I can think of. It's just worked out so well and is so, so, so much less complicated. And if I abandon it, should just keep working for years so long as the website stays up (or until browsers start doing something very different JS-wise.)
Bluntly, cubicles are NICE compared to the massive distracting (but stylish) open plan stuff. From above they look sort of dystopian, but no one in your peripheral vision, reduced noise...
Not as nice as an office with a door, but really not bad. Especially the taller ones.
The idea came from using the Strava heatmap in JOSM to trace the proper location of mountain bike trails. I'm trying to use Strava less, and usually have ridden the trails enough myself before mapping them that I could use my own routes... So I figured why not have my own heatmap tile server?
It's also cool to just look at.
I could take it a lot further with time boxing what's displayed and whatnot, but generating the tiles is computationally expensive, so I just stuck with what I have for now. It meets the need.
This one converts a basic chunk of OpenStreetMap data to an SVG so I can mark it up (by hand) in Adobe Illustrator to make specifically-styled print/PDF maps, such as what get installed at trailheads: https://github.com/c0nsumer/osm_to_ai
And all of this has been put together to make the custom, local, specific-use-case maps that are at https://trailmaps.app (which, via local curation, are overall better mobile/online maps than many of the bigger auto-generated systems such as Trailforks, Gaia, RideWithGPS, etc, for visualizing local systems).
It's neat stuff where I understand all the inputs, outputs, and how most of it works, but AI tooling (Claude, mostly) has allowed me to bolt it together much faster than I would have writing it myself.
Just something as simple as "that ceiling fan doesn't work so well, and squeaks once in a while when on high" can easily be remedied yourself when owning the house by just going buying and installing a new ceiling fan.
Regardless of how handy one is, with a landlord that's generally not allowed without permission, the landlord often won't install as nice of one as you might like, etc.
This goes for every fixture that's not part of the rental. Major appliances, flooring, even door knobs... Like if you suddenly want an electronic keypad on your deadbolt.
Of course, this flexibility has to be something you care about. Not everyone does, but for those of us that do...
Thank you. It's really a simple concept: color them as the colour= tag is in the OSM relation, which matches the signs/markings on the trail.
There's no reason why it couldn't be used anywhere else. This just makes maps that fit within the bounding box of a relation. The only thing US specific about it is the elevation data, and I'm sure something else could be used to get that elsewhere. Or else it could just be turned off for a given map with show_terrain: false.
Client isolation is done at L2. You can't add exceptions for IP ranges / protocols / etc this way because that's up the stack. Even if devices can learn about each other in other ways, isolation gets in the way of direct communication between them.
Outside of security stuff, over the years I've found this really handy for troubleshooting as well. Being able to extract detailed process info, screenshots, and a bunch of other things from a memory dump have allowed me to get a better idea of what a user was doing when a Windows BSOD occurred.
It builds more a nice picture of what was going on when paired with the users description. Or sometimes, depending on the user, you just don't have anything else to go on besides "it crashed".
If you want a Free work-alike, why don't /you/ put in the work and make it happen?