HNHacker News
TopNewBestAskShowJobs

ellenhp

888 karma · joined August 26, 2018

Software engineer and map connoisseur.

ellen.h.poe@gmail.com

submissionscomments
ellenhp··on Maps.earth – free and open-source web maps
OTP is a resource hog (for good reason, it solves a harder problem than valhalla). Covering a US state is very much pushing it for OTP, and covering the planet wouldn't work at all on any hardware.

I didn't use OTP's frontend because I found it unpleasant to use. Valhalla's frontend wouldn't work well with OTP and I don't find it terribly pleasant to use either.

Neither work on mobile, and neither work with vector maps, it seems? I haven't tried out GraphHopper's UI though.

ellenhp··on Maps.earth – free and open-source web maps
I'm using OSM Liberty [1] so as far as I know I should be just tracking upstream with most of these issues, but I think some of them might actually be introduced by planetiler [2]. Thanks for giving it such a detailed look though.

[1] https://github.com/maputnik/osm-liberty

[2] https://github.com/onthegomap/planetiler/issues/324

ellenhp··on Maps.earth – free and open-source web maps
During data preprocessing it all comes from the same OSM extract, except for Pelias which also pulls data in from Who's On First, and Planetiler which also pulls data in from Natural Earth (and a few other sources).

At runtime tiles are served over the wire but everything else happens server-side. So it's a bit of everything :D

ellenhp··on Maps.earth – free and open-source web maps
Headway was designed more for consumer use-cases than anything else. There's been some talk of adding the ability to customize it in the future but I don't have time for that because I need to focus on the basics first. You could fork it though, or just use some of the data automation (respecting the Apache 2.0 license). I replied to a child comment here but my recommendations for geocoding would be Pelias or Photon, and I like maplibre-gl-js. You can (should!) use planetiler for generating your mbtiles files and I've had generally good experiences with tileserver-gl-light, but many people recommend using PMTiles instead. It kind of just depends what your requirements are. For privacy-first stuff like Headway I can't require that people make requests out to S3 or Cloudflare, it has to be self-hostable which means a traditional tileserver is the only way to go.
ellenhp··on Maps.earth – free and open-source web maps
Nominatim requires a lot of resources for full planet installs. I'd recommend looking into Pelias or Photon instead. They're both amazing. Headway has used both of them at various points. Photon is definitely easier to set up for the planet, though, you can just download a pre-computed search index from GraphHopper and you're good to go.
ellenhp··on Maps.earth – free and open-source web maps
I cover that in the readme, but the short answer is that the server running maps.earth has 64GB of RAM and 6 physical cores. It's using about 600GB of disk space, but the disk usage might change because I suspect my Pelias index is missing a lot of information.

https://github.com/headwaymaps/headway#system-requirements

ellenhp··on Maps.earth – free and open-source web maps
It's... complicated. The discussion for it is here, I'd be curious if you had any thoughts in particular about this. Feel free to comment or join the headway Matrix room if you want to chat more in-depth. In principle I'm open to this but the privacy implications are a little weird. https://github.com/headwaymaps/headway/issues/50
ellenhp··on Maps.earth – free and open-source web maps
That's mostly because I decided to use maps from the daylight maps distribution. The current tiles were actually built last night. I think it probably makes sense to track planet.osm.pbf directly though because I want to create a virtuous cycle where users feel that contributing to OSM has a real tangible payoff.

The main issue with updating regularly is going to be that long-term I can't really afford a beefy enough machine that has a fast uplink to Cloudflare where my artifacts are hosted. Getting all of the planet-sized artifacts uploaded even just this one time was a huge pain. I ended up having to generate them on my desktop, ferry the data to a friend's house on a laptop via motorcycle and upload them from there. This is one of the things that I want to help remedy if I get enough support via Liberapay or GH Sponsors.

ellenhp··on Maps.earth – free and open-source web maps
Is there a contact point you'd prefer me to use for reaching out? I'm pretty sure I'm using WOF for bringing up Pelias but it's entirely possible I'm configuring things wrong. I'm also having a lot of trouble getting good performance out of the viewport biasing on the autocomplete endpoint (`focus.point`). Photon has `location_bias_scale` which allowed me to do very strong viewport biasing for zoomed-in queries and eliminate it almost entirely when zoomed out.

Is this something that could be added? I don't mind doing a bit of legwork if need be. This is important enough that I'm willing to throw a few weeks at implementing it.

The pelias.json for this instance is at: https://publicdata.ellenhp.workers.dev/planet-v1.16.pelias.j...

I'll go double check that the placeholder container is operating correctly, actually. :)

ellenhp··on Maps.earth – free and open-source web maps
If you do spin one up, feel free to join the matrix and share the experience or just email me with feedback. I'm trying to get this as frictionless as possible to set up because I want people to own their own location data.

Headway is much much more responsive on a local scale than it is in https://maps.earth/ and the search results are more relevant too. My own personal instance for Seattle has largely replaced Google Maps for me. :)

ellenhp··on Maps.earth – free and open-source web maps
This is tracked here: https://github.com/headwaymaps/headway/issues/85

It's going to be somewhat tricky because of a few mediocre decisions I made early on in the development process, but if you were up for helping out I'd love to get a bring-your-own-style experience working in Headway. Long-term, I want to add the ability to easily brand Headway and customize it for your own needs without forking it.

ellenhp··on Maps.earth – free and open-source web maps
I wasn't happy with cycling directions in GraphHopper and I was having trouble getting route shapes from its routing endpoint which made it really difficult to plot route polylines on the map. I've also been looking forward to exposing some customization of routing parameters since valhalla allows you to do this fairly trivially. That is good to know, though. Valhalla really is getting hammered by all this traffic. :/
ellenhp··on Maps.earth – free and open-source web maps
To add onto this, those are raster tiles and the industry is moving away from raster tiles for a multitude of reasons. Headway doesn't bulk-download tiles from OSM, by default it takes an OSM extract from BBBike (with explicit permission) and brings up a server based on that. It generates vector tiles with planetiler and serves them with tileserver-gl-light. I've put a lot of thought into the way it all works in an effort to minimize load on the OSM ecosystem's infrastructure, provide attribution where required, etc.

I can promise you that there's no one-line replacement for the work I've done here unless you want to go out and pay for a closed-source product.

ellenhp··on Maps.earth – free and open-source web maps
Unfortunately no. maplibre-gl-js requires webgl for vector tile rendering. That's how you get snappy zoom performance, reduce the load on the end-user's cellular connection, etc.

Sick phone though I'm a little bit jealous :)

ellenhp··on Maps.earth – free and open-source web maps
Yup! That's how most people run Headway right now. You can probably get by with around 2GB of RAM for a medium-sized metro, possibly even less.

Also for full-planet requirements, the OVH box running maps.earth has 64GB of RAM and 6 physical cores and is really struggling right now. Load average is about 40, most its CPU time is spent on the Valhalla service. Really enjoying watching the metrics right now :)

ellenhp··on Maps.earth – free and open-source web maps
Yeah, I've noticed that at least the way Pelias is configured in Headway, searches for administrative areas don't seem to work, like at all. I'm not sure if that's a config issue or an issue with Pelias though. Address search should definitely work as long as there's an appropriately tagged OSM node for your address, but the server's load average is 40 on a 6 core OVH box in Germany so you might have to be (very) patient to get anything back until the load drops to a level it can deal with.
ellenhp··on Maps.earth – free and open-source web maps
Thank you for the feedback :)
ellenhp··on Maps.earth – free and open-source web maps
The search box in the top left should bring up a bunch of autocomplete suggestions when you type stuff into it. Clicking on one brings up a place card view [1]. If my demo server falls over that will fail to populate. Once you have a place card you can hit "bike there" or something and then populate the "From" field that appears again in the top left to get a directions view [2]. Not ideal, the frontend was built in a few weeks by someone with very little frontend experience (me) so I did my best.

[1] https://maps.earth/place/openstreetmap%3Avenue%3Away%2F12903...

[2] https://maps.earth/directions/bicycle/openstreetmap%3Avenue%...

ellenhp··on Maps.earth – free and open-source web maps
It's a self-hostable web maps stack trying to be an open-source alternative to Google Maps.
ellenhp··on Maps.earth – free and open-source web maps
OSM doesn't have a server per se (other than the OSM API server). It's a dataset for the most part. Headway lets you bring up a server that will render maps tiles, allows you to search for places and get routes between places. It's trying to be a user-friendly UI for various pieces of the OSM ecosystem. There are a lot of amazing pieces of software out there that work with OSM data, but there isn't an easy way to bring them up, and there's no unified frontend for all of them other than Headway (that I know of).

Edit: To the comments telling me I'm wrong about this, remember that Headway has a geocoder and routing system, along with a transit trip planner (currently disabled on maps.earth though). These are not things you could get with off-the-shelf solutions that include a GUI until now. I also want to self-host my mapping software for privacy reasons, and Headway makes that easy too. I probably need to be better about explaining what all Headway does that's different than just bringing up an OSM tileserver though. Thank you all for the feedback :)

ellenhp··on Show HN: Self-Hosted Maps Stack
Headway uses Valhalla. Most of what I'm doing with this project is the config to bring up the entire stack easily.
ellenhp··on Show HN: Self-Hosted Maps Stack
Pelias is pretty difficult to use with the kind of automated config I'm hoping to have for this project but I might give it another go.

OTP is actually really fantastic and it might be a better choice than valhalla's multimodal especially if it can handle GTFS realtime. Thank you for the reminder that it exists!!!

ellenhp··on Show HN: Self-Hosted Maps Stack
The plan is to use this dataset [1] and do a bounding-box intersection with the chosen city to automatically download appropriate timetables when the user runs `make CityName.up`

[1] https://database.mobilitydata.org/

ellenhp··on Show HN: Self-Hosted Maps Stack
Please open an issue with upstream (maplibre-gl-js) if you're not happy with the attribution that it provides by default. On my end I need to do better to make sure that it's never covered up. I'm really bad at CSS so that's going to be a fun time but obviously needs to be done. There's an issue open to track it now.
ellenhp··on Show HN: Self-Hosted Maps Stack
Didn't realize that about Organic Maps. It also appears to be open-source which is cool. Is its geocoder any good? Search in OsmAnd is painfully slow and not tolerant of typos at all. Headway uses photon as a geocoder autocompletion system which is incredible and makes the experience miles better than I've ever had with OsmAnd.

I love the idea of offline maps but I've never used an offline maps app with a decent search experience. I also aim to make Headway very transit focused which will allow it to serve real-time data about transit vehicle locations from GTFS realtime feeds.

edit: I just tried out organic maps and it is GOOD. Way better than OsmAnd. I still want to keep working on Headway but this will be useful in the meantime.

ellenhp··on Show HN: Self-Hosted Maps Stack
Planetiler isn't for hosting tiles, but generating them. For a planet-scale tile generation job it's the difference between hundreds or thousands of dollars in VPS fees and being able to generate them locally on a modestly equipped desktop. Planetiler does drastically reduce cost in that respect.
ellenhp··on Show HN: Self-Hosted Maps Stack
I think this was the push I needed to apply for Github Sponsors. Keep an eye on the project though, I'd really love feedback from people passionate about transit! Feel free to email me too if you have ideas of what the UX should be. ellen.h.poe@gmail.com
ellenhp··on Show HN: Self-Hosted Maps Stack
I'm planning on tackling transit this weekend!
ellenhp··on Show HN: Self-Hosted Maps Stack
Mostly just that you can self-host this stack and keep your location information private (the way it should be). If you're fine sharing your current and future whereabouts with people then there's no need to self-host so you're free to pick whatever service is the nicest to use. For most people that's going to be Google or Apple maps, but there's definitely a niche for a project like this.

Compared to self-hosting an existing project, it is much easier to bring up a new Headway instance:

`make Seattle.up` will bring up a new instance on 8080.

ellenhp··on Show HN: Self-Hosted Maps Stack
Planetiler is amazing! Thank you for your work.
← PreviousPage 2 of 3Next →