Using the same key with multiple values

I’m editing a local library, and they offer multiple means of key:internet_access (wlan, terminal).

Would the proper tagging method be to use them comma separated, or have two instances of the key?




internet_access: wlan
internet_access: terminal

Again, thanks in advance for helping a new editor get it right!

1 Like

I did some reading on the wiki, etc. Turns out the proper format would be:


You should use semicolon instead of comma. You can use tag only one time in object, so the second solution will not work. More about multiple values you can read on Wiki:

Although semi-colon separated multi-value is more common, there appears to be some using internet_access:wlan:*= sub-key for further details already.

1 Like

Should be internet_access=wlan;terminal

1 Like

Good call - JOSM puts that in there, so I never paid attention to whether it was a : or =

I’ve run into a similar issue with a building I was in, supported multiple connection types. So it’s wlan and wired. From the above discussion I understand that one could use semi-colon to add multiple entries. However, I’ve heard that this is not an established and documented method and may result in ignorance of such entries by data consumers. I’ve been told this in the StreetComplete discussion forum.
The question now is, how can this be changed to have it as established and documented method to have multiple entries for internet_access ? Is it by simply document it in the wiki or is there more to it?

I would say it makes sense to have this as an established method because people may be interested to know which internet access methods there are. A wired internet connection is more stable than WLAN and for this reason (amongst others) some people may be interested in this information.

There are some limitations mentioned in the semi-colon separator help , so maybe there are other methods to have multiple value’s added in OSM.

  • Cannot be used for keys whose value may contain a literal ; (the proposed workarounds for this is unlikely to be well supported).
  • Makes it easier to reach the 255 characters limit]imposed by the API.
  • Non semicolon-aware consumers are likely to behave badly when encountering semicolon values.
  • Semicolon-aware consumers need to maintain a whitelist of keys which ought may use semicolons.

There are two values with semicolons in in the top ten values for that key. If I was consuming values for that key I would absolutely consider semicolon-separated values.

1 Like

True. There are just a few of those, and internet_access=* wiki does mark them as potential tagging mistakes.

But that wiki does not mention semi-colon separated multi-values as on option for that key either, so it is possible (and even likely) that data consumers will not handle those undocumented multi-values, especially as the usage of all such multi-values combined are less than 0.1% of all internet_access=* values

If I was consuming values for that key, I’d probably ignore tags with combined usage of 0.1%, especially if they are undocumented. Unless that one key was sole reason for existence of my data consuming app, of course :slight_smile:

It is usually the effort vs. gain math in my case… Anyway, that being said, those values do seem to be used (even if in not-so-noticable numbers), they do make sense, and they do follow existing popular scheme, so I see no harm in documenting that behaviour on the wiki.

1 Like

I understand the above.

In general, ‘one key, one value’ is the rule. - Key:name
When you need to write multiple values, it is better to use keys of different properties. - Multiple names
Nevertheless, use a ‘semi-colon’ if you need to use multiple names. - Semi-colon value separator

Excuse me, but then let me ask you something I’ve always been curious about.
How do you put the key value in the part that is part of ‘OO road’ and ‘XX bridge’?
Is it okay if I write ‘OO road;XX bridge’ only for that leg part?

On the chance of getting your question wrong for a bridge

name=abc (for the name of the road

When mapping a bridge area the bridge:name of the way becomes name=def which actually renders in Carto standard and often only when the bridge has a semi vertical posture on the map.

Somehow I’ve never gotten to the 2 names in one name=* tag line, not needed as there are so many ‘alt’ name tags available alt_ official_ old_, short_ full_, local_. On orchards though with mixed trees or farmland with mixed crop I do the *=apple;peer or olive_trees;peach_trees. No complaints from data consumers or QA progs, Works btw also well on e.g. phone/mobile numbers. Makes a POI lots friendlier to read.

Oh, QA cant handle the “/”. It assumes there’s 2 names…

1 Like

Thanks all for your answers.
How can we proceed with this. I understand that semi-colon separated values is the way to go and it should be documented in the wiki, right?

If so, in which paragraph to document this in? In “How to map”? e.g. like this?

  • multiple connection types can be added by using semi-colon separated values internet_access=wlan;wired ?

Wouldn’t it be possible to repeat it in every item, right?

Thanks all for your answers.
How can we proceed with this. I understand that semi-colon separated values is the way to go and it should be documented in the wiki, right?