I am new to the world of OSM and maps. I am considering contributing to OSM, but also want to understand things from ground up.
I have a doubt over how exactly you draw images for OSM maps.
For example, how do you get information about roads shown on the maps on openstreetmap.org.
I looked at the Beginner’s guide and read that “People gather location data from a variety of sources such as recordings from GPS devices, from free satellite imagery or simply from knowing an area, and upload this data to OpenStreetMap.”
But, I am not clear that how exactly you transform it into the map images. What software or algorithm you use to do this ?
For narrowing down my question: Suppose I have the satellite image of my locality, now how do I proceed in creating a map image and then further add data for routing ?
Or what minimum information do I need to gather for creating a map of a small locality for example, which can be used for routing as well.
OSM is basicaly a database containing nodes, ways and some other stuff. A node is a point defined by his coordinate on the globe. Ways are a list of nodes describing the shape of the way. This nodes and ways have attibutes (called tags) to describe if the node e.g. is a church or what kind of way (highway, path) street is. As you already found out, this information comes from a variety of sources. For OSM it is always essential that this information come from legal sources (e.g. not copyright protected).
There are several tools (editors) to create or edit OSM-Data. Mostly this happens in a geographical context, so editors can display GPS-Tracks and images (like aerial images or georeferenced scans of maps). There are other editors to simply change attributes. There are no algorithms involved* it’s all 100% hand made.
There are some tools to create lakes from satellite images. This is the only automatic data generation I know about.
Maps are generated by programs called renderers. They use OSM-Date and some rules to make e.g. colorful pictures out of the data or create digital maps for navigation systems. If the renderer produces maps for the whole world or only a specific area, if he uses all data or just the interesting ones depends on the person who runs the program.