I’ve encountered at least three restaurants which have multiple menus with different offerings and pricing. Two which come to mind are -
- Udupi Upahar, Bangalore, India. One part of it is self-service with standing tables, and the other part of it has seating and wait staff. The menu of the latter has more options and also higher prices.
- High Point, Lokhandwala, Mumbai, India (indoor, outdoor). This actually has three menus - a takeaway menu, an indoor menu, and an outdoor menu.
How should such establishments be tagged?
Adding multiple menus to the same feature
This is what I’ve done for Udupi Upahar.
The downside is that the presence of multiple menus is not really specified in any way, which can result in users not realizing that there are multiple menus.
Adding separate restaurants for each menu
This is what I’ve done for High Point.
The downside is that this violates one feature, one OSM element. Common keys need to be kept in sync between the two.
If you also choose to treat the two as separate establishments with different characteristics, it’s not clear to the user that it’s really one establishment with the superset of the characteristics. e.g. if you tag one with outdoor_seating=yes + indoor_seating=no and the other with indoor_seating=yes + outdoor_seating=no, it’s now not clear to the user that the restaurant really has both indoor and outdoor seating.
New keys?
MapComplete currently uses the image:menu[:N]=* key. We could introduce new keys, e.g.
image:menu:indoor[:N]=*
image:menu:outdoor[:N]=*
image:menu:takeaway[:N]=*
image:menu:self_service[:N]=*
etc.
This also allows for categorization of menus, e.g. a separate drinks or bar menu. But, when the suffixes are referring to areas, it’s not clear which areas are being referred to, nor where they are located.
Relations?
The best solution seems to be to add such areas of the restaurant as polygons and tag them with the details specific to them - image:menu[:N]=*, air_conditioning=*, self_service=*, weather_protection=*, etc.
Then, a multipolygon relation could be created, and tagged with name=* + amenity={fast_food|restaurant} and other keys which apply to all the sub-areas.
When displaying menus, consumers should use all the menus specified by the sub-areas.
Thoughts?