[Experimental Proof of Concept] Map generation from OpenStreetMap data

Thanks for the input, good food for thought!

  • the buildings would need to be procedurally generated to fit the roads
  • in urban and suburban areas buildings could be put were there is space

I was indeed thinking of using procgen to generate the buildings. But no need to work hard for the building positions, the OSM data is awesome, not only contains the shapes of the buildings (so no need to guess them), but also the type of the building and there are several subcategorizations with more details: Shops, Crafts, Leisure, Sport, Power.

  • alternatively building could be premade at predetermined sizes and slotted in where possible with unused space being filled with procedurally generated stuff like greenery, sidewalks etc

I will try procgen first. I found several papers about “house generators”. Here is one that is accesible online: http://tede2.pucrs.br/tede2/bitstream/tede/6314/2/474948%20-%20Texto%20Completo.pdf

The good thing with procgen is that, once you have it working, you have infinite content.

  • building density (urban vs sub urban vs rural) can be approximated by road density in a given area

There is some data on the OSM XML about the levels but I don’t know if that would be enough.

  • it might be wise to put in water (oceans, lakes, rivers etc ) since towns tend to be build by rivers

Yeah, that’s the easiest feature to include. I went with the roads for the proof of concept because they are a bit more visual. Having that working, adding the water is super easy.

  • easiest way to identify the rivers would be by its color on the map

Again, OSM XML is your friend. You also have the polygons of water areas.

  • bridges could be identified by making a box out of the points at the “ends/corners” of river segments that are next to roads, so long as the points are relatively close together

Bridges (and tunnels) are the rickiest parts I can think of… I still have no idea how you could manage them. I haven’t looked too much at the OSM XML data in that regard.

1 Like