rendering maps without database
play

Rendering maps without Database Thomas Skowron Previously (if you - PowerPoint PPT Presentation

Rendering maps without Database Thomas Skowron Previously (if you happen to speak German) berblick ber Pipelinebasierte Rendering-Techniken Erzeugung von und So fu ware Karten FOSSGIS-Konferenz 2017 FOSSGIS-Konferenz 2018


  1. Rendering maps without Database Thomas Skowron

  2. Previously (if you happen to speak German) „Überblick über „Pipelinebasierte Rendering-Techniken Erzeugung von und So fu ware“ Karten“ FOSSGIS-Konferenz 2017 FOSSGIS-Konferenz 2018

  3. Turning OSM Data into a graphical map

  4. Bitmap/Vector Tiles, Maps with larger extent, …

  5. State of the art

  6. OSM Planet Bottleneck Awesome, powerful stu ff Bottleneck PostgreSQL Bottleneck Renderer

  7. PostgreSQL + SQL - Performance (PostGIS) + ACID, MVCC & transactions - operational cost + Indexes - memory consumption + Role permission management + scriptable + fail over + … Do we really need all of that stu ff ?

  8. Attempts to improve 
 the situation…

  9. OSM Planet Bottleneck Bottleneck PostgreSQL Bottleneck Vector File “Renderer“ Client Based Renderer

  10. All features Pre-rendered Vector already baked in, Tiles flexibility mostly gone Client Based Renderer

  11. Alternative Approaches

  12. tippecanoe

  13. OSM File mbtiles vector tile set

  14. Clever features to keep vector tiles small

  15. has a gazillion of options

  16. still very limited to filtering

  17. Tilemaker

  18. flexibility through lua scripting

  19. not scalable to larger extracts

  20. But why does one tool needs to do everything?

  21. Generally, we are all doing almost the same stu ff .

  22. Step 1 Convert OSM data into geo data

  23. Step 2 Filter

  24. Step 3 Transform/map data

  25. Step 4 Convert into target format

  26. Suggestion: parse | map-reduce | render

  27. But how?

  28. With Tools, which each do one thing well

  29. and a portable data format

  30. Let’s do Shapefiles!

  31. Let’s do Shapefiles!

  32. Let’s do OSMPBF!

  33. Let’s do OSMPBF!

  34. What does a suitable file format need?

  35. Performance linear writes, parallelizable reads

  36. Scalable small to huge data sets

  37. Tag structures No tables no more!

  38. Future proof adaptable to change

  39. Shapefile Performance moderate Scalable no, 2 GB size limit Tag Strucutre no Future Proof no

  40. GeoJSON Performance moderate Scalable moderately, single threaded Tag Structure yes Future Proof limited

  41. GeoPackage Performance bad (SQLite) Scalable moderately Tag Structure yes Future Proof yes

  42. Performance Flexibility

  43. We need something new There is no progress without change

  44. How would a new file format look like? • binary • blocks, streamable • single stream, not multiple files • not SQLite • not overly obscure • open and extendable

  45. Suggestion

  46. Based on Protocol Bu ff ers and WKB

  47. Open Spec on 
 https://thomas.skowron.eu/spaten/

  48. Reference implementation in Go github.com/thomersch/grandine/lib/spaten

  49. Around 50% smaller than GeoJSON* * YMMV

  50. Version 0

  51. Feedback and Ideas are welcome

  52. What could we do with it?

  53. grandine-spatialize -in planet.osm.pbf -mapping roads.yml | grandine-tiler -out tiles/roads/ -zoom 14

  54. osmium export -f spaten planet.osm.pbf | gradine-converter -mapping roads.yml | grandine-tiler -out tiles/roads/ -zoom 14 (not yet)

  55. osmium export -f spaten planet.osm.pbf | your-tool-here -fancify | magic-renderer (not yet)

  56. Interchangeable tools

  57. Future

  58. Greater flexibility with less programming work

  59. Faster processing with less hardware

  60. Less points of failure

  61. There is still lots to do Data format, tools, markup, …

  62. Let’s build the future together!

  63. And now let’s discuss!

Recommend


More recommend