-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEATURE] parallel tile generation and road network connectivity #54
Comments
Thanks for reaching out @bdon! Could you elaborate on exactly how that connectivity check would work? The line merging algorithm is pretty simple now, it just groups linestrings in each tile with the exact same tags and runs them through the JTS LineMerger. The main issues I've seen are:
I spot checked a few of those gaps, and they they mostly seem to be due to those 2 issues - is there a specific spot where you see the motorway/primary/motorway issue causing a gap? A few ideas I had to improve line merging:
On a side note, I was wondering if it might make sense to have a native pmtiles output option for planetiler? How bad is it to convert a 100gb mbtiles file to pmtiles? |
Essentially the grouping by a subset of tags would get most of the way there - I mentioned
the python utility in the |
Ok thanks for the explanation. I think the first step here is to implement a custom line merge routine to be able to customize any of this stuff since the JTS one is a bit of a black box. I'll try doing that then add the ability to:
Let's see how that looks and if we still need to can try adding smarter support for 3-way merges or "fuzzy" matching on endpoints. That would also open up the door to that custom connectivity check at tile-write time. I don't think it would need a different overall architecture, just maybe pass through more ways during osm processing then either upgrade them or throw them out at tile write time. Alternatively, it could keep track of what highway classes terminate at certain node ids during osm pass1, then use that to upgrade certain ways during pass 2. |
URLs for Natural Earth and Lake Centerline updated to match what is used in the OpenMapTiles
This is somewhat implemented in protomaps/basemaps#19 - I don't think we need to restructure planetiler core to accomplish this in a good-enough way. But for now this is possible consuming the tile post-process APIs. Closing issue! |
Hi, thanks for creating this - it could be a good match to other map tooling I'm developing including a tile archive format and canvas renderer.
One thing I noticed with whipping up a quick example is that the basemap result for motorway network has gaps in it - see attached screenshot. The root cause for the gaps is that OSM ways that connect two other high-importance ways - like
highway=motorway
, assigned to appear at a lower zoom level likez9
might actually be tagged at a lower level likehighway=primary
and not be included in z9. This is because OSM tags are based on physical features and not cartographic importance.The approach I usually take to solve this is to generalize roads via a new tag class outside of the OSM tagging conventions based on connectivity to other ways. This would break the parallel design described in ARCHITECTURE.md because feature generation at the early stage could not proceed independently per-feature. I also don't think it could fit into the advanced joining/grouping in README#Limitations because the late-stage, pre-write processing of features at the tile level would not have access to those missing ways.
Is this mode of processing something you would consider in scope for Planetiler, if it necessitates changing the tile generation strategy? There may be ways to accommodate it into the existing design if candidate ways were saved out similar to boundary relations but the quantity of candidates would be very large.
The text was updated successfully, but these errors were encountered: