Where can I find basic tech/logical information about the data?

Apparently there are 3 types of object: node, way, and relation. But there are many tables, some of which appear to be alternative names for the same data (e.g., node, point). Perhaps it’s the fact that I’m not any sort of cartographer, but I find even the terms non-intuitive (why on Earth would an outline/border be classified as a “way”?).

Is there some documentation somewhere that will walk me through each of the tables and tell me what’s in it and, in detail, what it’s used for, so that I can make sense of what I’m looking at? I’ve read “Elements” in the wiki and it’s not sufficiently helpful.

Also, is there a single, globally-unique id allocated to each logical entity the way there is in, e.g., GNIS, Geonames, etc.? If there isn’t, are there plans to assign such ids? I need to create a database whose records will each represent a logical entity and link to the corresponding representation in the map. Since the map I’m struggling to create is US-only, I can use the GNIS ids if there are no plans to do anything more general.

You were right on Elements. I suggest to re-read and follow the links (node, way, relation, tags). Forget the alternative names “point”/“line” (for “node”/“way”) - it is just used in one of our editors.

I do not really understand what you mean by “globally-unique id allocated to each logical entity the way there is in”. The elements node, way, relation each have unique (in their type/class) ids. Or where you looking for reverse geocoding?

Can you clarify what/where you mean by “many tables”?

No, not geocoding. In, e.g., Geonames, each logical entity has its own unsigned-int identifier that’s unique across all entities in the database. So, e.g., Germany has one, and the Mosel has one with a parent reference to Germany’s (or perhaps to Rheinland-Pfalz, I’ve never looked), and Berlin has one guaranteed not to be the same as the Mosel’s or Rheinland-Pfalz’s, and so forth. It creates a relationship tree in the same way the is_in tag does. A map is also a relationship tree, but its visual nature makes it write-only for computing purposes.

There are 40 tables in an osm database, and I’ve no idea why. Some of them, like the zip tables, I’m guessing were imported whole because zip code boundaries are a separate overlay which made it reasonable to keep them all together, but the rest just baffle me. Who uses them, and when?

I don’t know why the 8 basic tables are separate. You’ve clarified that “point” and “line” are editor-specific analogs of “node” and “way”, but why don’t the table names themselves make that clear? I know that there’s conflation between graphical and logical representation, which can’t be helping. Graphical primitives are point, line, fill, and label. “Way” is not a graphic primitive, it’s a logical term for a line of travel and is confusing when also used for outlines. “Node” is neither a graphic nor a logical term. I originally thought a “relation” was a way of aggregating more primitive logical elements into a logical whole, but, from reading the wiki, apparently it’s not, and that role would be filled by “super-relations” if anyone used them which the wiki says they don’t.

The project’s been underway for what? 4 years? 5? There seem to be lots of people involved, so I’d hoped that by now it would have moved from the hobby/hack/proto stage to the professional stage, where there’s a well-defined process and set of tools with solid docs and a u/i with minimal learning curve, so that people who are expert in other areas can create maps in a straightforward way without also becoming experts in this area. But that doesn’t seem to have happened.

Thanks, okay, you mean tables in a database (postGIS or something). Maybe https://wiki.openstreetmap.org/wiki/Rendering or http://switch2osm.org/ helps you. Not my field of expertise, sorry. But someone else will also help here.

Sorry, I never heard of “geonames”. If it helps … there is the Mosel object: https://www.openstreetmap.org/relation/390416

This year will be the 10th birthday of OSM. Yes, OSM is special (very open and unrestricted). And that speciality is one of its advantages (yes, also a disadvantage in some other way).

meta: I guess it may be more suited to post your question in development if here is no further help/answer for you, but just wait a bit more. And start your question with what you are trying to do (some database/map apparently). That would help to understand where you are coming from.

I appreciate your responses. Mainly what I’m trying to do is create a fairly simple map (US only, 4 zoom levels, 16 colors at most) without having to become an expert in map-making or tool use in order to do it. The map only represents perhaps 1% of the whole project and I’d really hate to have to put in 10% of the total work to get that 1%. Which is why I hoped the project was further advanced than it seems to be.

The project works since 10 years. What is not advanced is your knowledge about it. OSM geodata certainly does not need 40 tables. They are plenty different databases running around the OSM project, the one hosting the main database itself, others hosting what is required for rendering or routing. Data are then converted and filtered just for the application needs. If you could explain your requirements, we could help you a bit more and point you some hints or helps or projects already doing the same.

I know my knowledge is not advanced. That’s more or less my point. For most people involved in osm and its tools, it appears to be a hobby and people are evidently very happy to keep it that way. And that’s fine!

But it’s not a hobby for me. I wouldn’t find it enjoyable to play with it and spend time learning how to overcome the various problems. My time is already fully over-committed.

I just want to create one map that will be maybe 1% of a huge project and then move on to the next thing. So I want a map-creating tool that runs under FreeBSD 9.2 (not Linux - I don’t have a spare machine to dedicate) and works like a compiler: plug data and style in at one end, and map tiles come out at the other. But there doesn’t seem to be enough documentation around to even help me decide whether to try to kludge my way through or just give up and go back to the rest of the work.

Because that’s really all I want to do: create one map, US only, 3 or 4 zoom levels, PNG-4 at most, maybe PNG-2 or even SVG. It’s for the use of people who will be on foot and who aren’t looking for restaurants, automobile-repair shops, or the best place to get their cat’s teeth flossed :), so I need very little of the immense amount of garnish that’s available. Pavement, streets, the various kinds of buildings, water, grass, trees, and that’s about it.

Right now I’d be overjoyed just to get my hands on some comprehensive documentation.

@Niemand: What you are really searching for is quite different from your first question. I do not see why you need global IDs if you are really only wanting to render a basic map.

If I did not understand you wrong, what you are searching for is just rendering (this is: data and style in at one end, and map tiles come out at the other). I already mentioned this before. So, hmm, which documentation do you need? Which is missing? It should be linked there. Yes, there is no single way to render.

You also could outsource this task to a commercial service, which may be more efficient.

I apologise for the confusion! This map-related piece of the whole problem actually has 4 parts, but three of them will pose no problem because they’re just programming in js and php/mysqli. My question about the global id was a sort of add-on: it’s related to the map only insofar as I need a global identifier to relate the records in the two databases to the appropriate places on the map and vice-versa. If there are no plans to create a general identifier, I’ll probably just shanghai the GNIS one.

Yes! I seem to have the postgis tables set up correctly (but how will I know until I try to render?)

I’ve fairly much decided on mapnik for rendering, but there’s so little documentation available that I had to examine the source code to determine that yes, it should automagically do PNG-4 or PNG-2 and pack the bytes based on the number of colors it sees. But I knew where to look to find that! I’m still trying to discover where it decides what the scaling factors are and how many to use. And, since mapnik is a library, I thought there’d be a front end that would parse the command line to pick up the pointers to the database and style file(s) and then loop to generate the tiles. But if it exists, I haven’t found it yet. I don’t even know whether the number of style files is significant, and if so in what way. You can see, I hope, why I’m foaming at the mouth a bit.

You also could outsource this task to a commercial service, which may be more efficient.

I’ve thought of it, but probably couldn’t afford it since I’m already donating my own labor.

I would suggest to post a new question regarding your mapnik questions into the development sub-forum (the people who know about mapnik may not read this thread).

Well, or on the mapnik mailing list / freenode IRC (mentioned in the intro of Mapnik).

Edit-in a link to the new question into your last post then (for people with the same question finding the thread here in future).

Sorry for apparently not-as-expected documentation, OSM has no employees – everybody is a volunteer. After you have found what you are searching for, feel free to make docu (e.g. the wiki.osm.org page) better.

Thanks. I appreciate your responses. I’m taking notes on the process I’m struggling through, and the problems I’m finding with stale, fragmented, incomplete, parochial, or just plain incorrect docs, and, if I succeed, will use them to create a proper how-to for others to use.

It would be better for everyone if someone with the time and experience to be a program manager would take on that task and create a regular, predictable development process. The current, chaotic “hobby” system wastes a lot of time and energy, and keeps osm from being as useful as it could be.