Tagging solution for gated housing estates

I am looking for help on a clean and consistent solution for tagging gated housing estates that work for both renderers and routers.

In Thailand and many parts of Asia, these very common gated housed communities consist of townhouses and/or individual houses and have an often-manned security checkpoint with lift gates and sometimes a reception area for sales. Some of them may have more than one multiple access point.

Important: some of these housing estates can be very large or have very strange shapes, making it impossible to guess the main entrance based on the shape.

Current Wiki guidelines

The global guidelines recommend creating an area denoting the boundaries and assigning the name and if known operator e.g.

landuse=residential + name=* + operator=*


housing estates and other specific residential areas are also often given their own landuse=residential area plus the correct name=. “name” in that context is the name of the particular residential development or housing estate, not the name of the whole town or village. For housing estates you might also like to use operator= to indicate who runs the estate (e.g., the local government).

For apartment complexes, residential=apartments can be added.

residential=apartments is a subtag of landuse=residential and is used to specify the outline of an apartment complex. Implies residential=urban.

Current Limitations

landuse=* is recommended and mostly used for areas so there is no obvious alternative for adding an extra node as a POI to indicate the exact center (security/reception area) for routers.

So we started to use place=neigbourhood as a node:

  • it is useful when the boundaries are not known
  • mappers also started combining it with landuse=residential on areas
  • it conflicts with some other use cases (Thailand has very complex administrative levels).

This doesn’t feel like a clean solution and we are looking for a better way to map these.

Ideas / Solutions

  1. use landuse=residential as a node and propose a new detailed residential=*

To the rendering/routing experts:

  • can a landuse tag be rendered and routed as a node when the boundaries are not known?
  • can a landuse tag be used both as a node (center/POI) and an area (boundary) overlapping each other?

If yes, we could propose to use a more detailed residential=gated_community, what do you think?

residential=townhouses or residential=houses would not work since some communities contain both.

  1. propose a new amenity=gated_community tag that could be used as both a node or area.

  2. keep a place tag to denote the center of the community and its name/operator and keep the landuse area only for the boundaries.

Maybe an additional fact to add is that at least in Thailand these communities are frequently called “village”, even with them most of the time not fitting in this scheme as they lack the village headman for administrative topics.

So in practical terms they seem to fit the neighborhood. Conflict is in the administrative structure.

Another aspect is the access tagging. Frequently you have to exchange your id card for getting access to it.

1 Like

The most numerous now is residential=gated (3k instances). I don’t use place= as they can be found within “actual” neighborhoods, and inside villages. There’s limitation in residential=, as developments are not always fully gated or fenced/walled, but it can be clear it is “private”. It conflicts with the type of dwellings being =apartments or something else. Apartment complexes can be “gated community”, so to speak. Sometimes it can be difficult to see whether a building is single or multiple households, and there can be a mix of both. Another common issue of landuse=residential is it being on individual houses to map those lots.

Other uses

There is a similar issue in offices and industries, where there is no clear feature for groups of them in office complex (multiple office buildings in a perimeter), business parks, industrial parks as a “functional unit” , unlike shop=mall in retail, and the less common police=offices for police office complexes. landuse= =commertcial and =industrial are used randomly, and conflicts with individual office centers (contains multiple office=) and factories/warehouses (the availability of man_made=work makes it slightly better for factories) inside. A particular case is government and public office complexes, where there have been ideas for landuse= as =civic_admin or =institutional, but still there are nothing to represent the complex itself inside (they can be located together with other facilities).

Compare question of Talk:Addresses in the United Kingdom - OpenStreetMap Wiki for addr:parentstreet= and addr:substreet=. In my place, they can be found with addr:place= in village addressing, causing more trouble in how to handle them.

For RCI overall, there can further be areas with identifies existing at the level between the whole estate/park and individual site. These subdivisions are usually formed by development phase/stage, street blocks or land lots. purposes or themes, etc. This again causes sporadic use of landuse= and place=. and enclosing or overlapping landuse= that complicates the landscape.

Semi-relatedly, recently there are again complaint of man_made= for various reasons. Some of them are industrial facilities prime for being separated out.

Therefore as a whole, it would be nice to add new feature tags to represent different levels of individual units for residential, offices, and industries. For residential, I had thought of a residence= to represent anything from individual =home (to dissuade cadastre mapping and fragmenting landuse=residential for each house), =subdivision for parts of a larger area, to =estate for the question here. Add a =estates or similar for groups of =estate that are related to each other.

Other uses

Commercial is easy, could be eg office=business_park to parallel shop=mall. Coming up with a word for industries is challenging, as industrial= is already used as an attribute under landuse=industrial. This also reflects on the difficulty of breaking up man_made= with different categories.

1 Like

I think that tagging the streets with access=private is most important. That will take care of renderers and routers. Access=private could be added to the area too.

1 Like

Here also a link to Mapillary which shows one of these examples, including a round-trip passing through the gate if you follow the track.

Inhabitants of these housing estates usually call their place village. The name of this “village” is frequently used if you are ordering taxi, food or just invite friends and describe the way.
So getting a tagging scheme which works with the currently established rendering and POI matching in routing apps would certainly be a plus.
Clearly: If my “village” is no longer visible on the map in OSM, Facebook, mapsme, Grab, etc, then I would very likely abandon OSM and use different map providers. If we plan to get rid of place nodes, then this is a huge step, which would require some strategy for transition.

I think routers need two informations:

  1. Where can I enter the area? This will be at the border at the security. I believe this could be tagged with entrance=* on a node where the highway crosses the area outline. Multiple entrances are possible.
  2. Where is the exakt endpoint of my routing? This might be the center of the area (but does every area have a “center”? This is a node. Maybe the node could be connected to the outline as a relation.
1 Like

Great input thanks! What kind of tag would you use for the node ? should it be a place=* ? can it be landuse=* ?

According to https://wiki.openstreetmap.org/wiki/Key:landuse, the landuse tag can be used on nodes, though it is not often used.

What is similar to a housing estate is an industrial estate. The wiki, https://wiki.openstreetmap.org/wiki/Tag:landuse=industrial, clearly states that it can be used on nodes. IMO, the node is something like a rough mapping. If it is later mapped as an area, then the node should be removed in order to adhere to the “One Feature, One OSM Element” principle, like other types of POI.

For place=neighbourhood, since the wiki states that it can be used for “any kind of landuse or mix of landuse”, it’s fine to add it to the same geometry as a landuse=residential, rather than adding it as a new node. I think this is different from the administratively type of place=*, in which the node represents a kind of “downtown”, which is useful for routing, because the boundary=administrative of that settlement can be much larger than the settlement itself. The wiki page for place=neighbourhood also stated that it can be used on an area if the boundary is obvious, which the housing estate is.

If I can propose a new tag from scratch, I’d like to suggest maybe residential=housing. By the way, using the in-use tag is more useful, and I support the use of residential=gated. The word maybe not perfect, but that’s ok if we know what it means, as with many other tags in OSM.

I think the center of the housing estate is hard to define and may not be necessary, like other types of POI that are mapped as an area. The routing should be ended at the gate, and the user should then inform the routing software which building they want to go to, which is not the center of the area. The most important tags for routing should be barrier=* and access=* on each entrance. For entrance=*, I’m not sure about using it on an area. It is mostly used on building entrance.

[quote=“nitinatsangsit, post:8, topic:2575”]
According to Key:landuse - OpenStreetMap Wiki, the landuse tag can be used on nodes, though it is not often used.[/quote]

while this is true in theory, it would be very vague tagging, because landuse is about the usage of land, so it would simply mean, somewhere around there is a meadow or a forest, the information would be almost useless because you would not convey any of the interesting properties like extent, size, orientation and shape.

Taginfo confirms this, from 37 million objects with landuse tags, only 0,06% are nodes.

FWIW, the tag “landuse” is about the usage of land, it does not convey semantics like “housing estate” or “industrial estate”, it only tells you this portion of land is mainly residential use or industrial use (there is also no definition how fine grained or coarse the mapping should be, you could even split your landuse objects to sub-parcel level and it would still not be in contradiction with the wiki.

I completely agree that place is the way to go for a settlement or a delimited settlement part (what a gated community undoubtfully is). It is orthogonal to landuse, and typically you will have different landuse within the same place object (if it is mapped to some extent and not the “lets draw a landuse=residential polygon around the village and be done with landuse” initial take).

IMHO residential=gated is the wrong direction for multiple reasons, and should not be used. It prevents us from mapping actual landuse like administration, commercial, retail, etc. within the gated community (some of them are actually towns), and prevents excluding other uses as well that are part of the gated community but not residential use (golf courts and other places used for leisure, kindergartens and schools and other services, parks, etc.)

I would go for place=neighbourhood plus a subtag to tell that it is actually access restricted private space including roads etc., and this tagging should be used even if there is another “neighbourhood” around it, so we either have one neighbourhood inside another (not a big deal IMHO), or (what I’d probably do, but would want to see an example) is have a place=quarter for the bigger entity and place=neighbourhood inside.


For routing purposes, the most important step is to add the barrier=gate node and tag these gates and the roads behind them with access tags such as access=private private=residents or access=delivery. I think at this point it should be feasible for a navigation application (not purely a router, but rather a geocoder handing off to a router) to implement heuristics for determining the entrance to a gated community via these barrier=gate nodes.

There can be different heuristics for finding sub-destinations depending on the feature type. In unusual cases where the gate isn’t as obviously an entrance, such as when it’s some distance into the place or landuse area, a site relation could have the gate as a member with the role entrance. This usage is already common for things like large parks.

1 Like

I think we need something explicit, you will have lots and lots of gates in a big place, and only very few (one or two) possibilities for delivery or visitors to enter, because usually it involves guards (you have to pay the staff so you will reduce the places in order to reduce the cost).

The situation with other sites is similar (e.g. theme parks, archaeological sites, …) , lots of entrances (many of which will be usually closed, or only open to employees, etc.) but only one or maybe two or three for ordinary people to enter.

Just mapping the gates is not sufficient.

1 Like

That’s true. They are sometimes more than 1 entry/exit and not all are open to visitors, so to summarize best practices:

  • roads within estate should be tagged as access=private
  • gates (barrier=gate/lift_gate/…) should be tagged with the appropriate entrance=main/secondary/service/…

We have also use-cases in large estates where the main road(s) could be used a a through-traffic (opening hours may apply), would tagging these access roads as access=permissive be sufficient?

Not always, actually, the “One Feature, One OSM Element” wiki suggests:

Villages are commonly mapped with place=village on a node at the village centre, with tags such as name=. Areas with residential landuse within the village should be treated as separate objects and are separately mapped with landuse=residential, just like other landuse=. The same with place=town, place=city, etc.

I completely agree with this. I think the main confusion here is that some believe that you have to choose between landuse and other tags while in fact landuse purpose is completely independent from the places/amenities that are found within or outside.

landuse=* and its extra residential=* tags only purpose is rendering a background and it’s up to the mappers to use a vague or fine-grained set of landuse areas.

You could technically have a hotel in an industrial area, or you could have a landuse=retail inside a housing estate. The same way a village could have residential, education, and retail landuse within it’s boundaries.

The issue remains that while most places have their own tags available (tourism=hotel, shop=, amenity=), there are no dedicated tags for private/gated housing complex. Maybe the reason is that these gated/private housing estates are not so common in the west where most wiki rules have been designed.

Because housing estates in Thailand are similar to villages, I still think that using a place=neighborhood node at the center of the estate and a landuse=residential area for the rough boundaries would be an acceptable solution. If the exact boundaries are known, a relation could combine both boundaries as a way and the node as admin_center/label, as it’s currently done for most administrative levels.

That’s doesn’t add any meaning to it…
Recently I noticed one of the major “gated community” here has a few apartment buildings in it, not only houses. That’s on top of the “gated” apartment complexes that started including some houses within. They are reasons why a dwelling-independent unit of housing are preferred by me.

Am only pointing out the the most popular one by some measure.

I disagree with this view. An apartment complex can include everything you mentioned included. Mixed use is the norm at many parts of the world, including within a building or any structure. Compare China, where they blend Soviet microdistrict and the gated community concept.

This is true, as I outlined. But it’s useful define a “main” utilization at a non-arbitrary level especially as mixed use remains unresolved, not to mention the inconveniences and lost of the whole associated with splitting to individual lots. Overlapping landuse= is not as simple and clear.

You could technically have a hotel in an industrial area

sure, but it wouldn’t be landuse=industrial if mapped to a decent level of detail

It would if not mapped to a fine-grained level :slight_smile: I can easily point to small retail areas or schools that exist under a landuse=residential. It would be better to have more fine-grained landuse areas for those but it’s also perfectly acceptable if no one bothers to add these details.

gated communities are not only apartment complexes and homes, more elaborate ones offer everything a town needs, a bank, movie theatre, shops and what not.

me too, but it’s not what I would consider a perfect representation, rather preliminary mapping until someone bothers to improve it.

IMHO we should detach the concept of (named) industrial zone, or “apartment complex” or “residential quarter” / area from the landuse tagging. The former should be represented with place, as we do with settlements and their named parts, while the latter is about the actual use of a piece of land.


Because, as you already mentioned, the whole village is not the landuse=residential, so the place=village is not the same thing as the landuse=residential. I mean, if place=neighbourhood is already mapped as an area (whether with or without the landuse tag), the node with the same tag should not exist.

Theoretically, I completely agree. The wiki states that place=neighbourhood can be used for any kind of landuse, not just a residential area. So, maybe we can add a new tag neighbourhood=* to define the type of neighborhood.

The problem is that the current most common way to map a housing estate and an industrial estate is landuse=residential and landuse=industrial, even though the wiki suggests mapping it (industrial park) as a place=*.

Maybe one of the reasons it is mapped as landuse is “mapping for rendering”. I’ve found an issue in OSM-Carto that it doesn’t render the place=neighbourhood if it is mapped as an area.

By the way, while place=neighbourhood is the most theoretically correct approach for either node and area, I suggest a compromise way, of just adding the tag landuse=residential to the same object as the place=neighbourhood ones, if it is mapped as an area, to be in line with the current practice. (For other landuse within the estate, it can be mapped as a small area, and the renderer should be able to render the smaller landuse on top of the larger one, as OSM-Carto does.) I’m hoping that in the future, we can deprecate the use of landuse=residential and landuse=industrial for named places and have the renderer render in an appropriate way.

1 Like

yes, we could add an explicit tag to say this neighbourhood or quarter is an industrial area or a residential area (in the sense of a settlement part / named entity), and it would be necessary or recommendable for those places mapped as nodes. On the other hand, if you mapped the place as area, you can see which landuses are dominating, and which are the percentages of landuses (and kind and number of POIs) inside the area, so somehow it would be implicit that a place is a residential area or a shopping area, etc.
Admittedly more complicated to evaluate, so being explicit here with an additional tag is surely something I would not oppose.

Carto not rendering places that are mapped as areas (IIRR this is also a reaction to the inconsistent application of place on areas, sometimes being put on the whole administrative area rather than the actual settlement), is indeed one of the reasons why this is progressing so slow. Basically we are yet in 2007 with this :slight_smile:

1 Like

I don’t believe it is a good idea, “approving” the current practice of overly generalized residential landuse polygons, by endorsing overlapping them with actual landuse. If you hope that this would be deprecated in the future, I would rather start now to map as you think it is better.

My recommendation for landuse mapping is to do it additively rather than subtractively, i.e. rather than drawing large, coarse polygons and start removing from them, I would observe locally for small units what their landuse is and map piece by piece. This also makes it much clearer where someone has actually looked at the landuse, rather than having to survey everything afterwards when you do not know where it is ok and where not. Usually I exclude roads from urban landuse like residential, retail, commercial, industrial, ecc., as apart from being more work, it has only advantages (simple structure, easy to build upon, easy to maintain and refine no multipolygons required at all (or very rarely), true as roads are not “residential landuse” but roads, more information as you can see the boundary between private land and public roads, clarity where situation has actually been observed…)

1 Like