Grab_TH tags Private/gated housing estates as place=village

I have some concern that’s recently happened in Bangkok Thailand, particularly involving some new contributions from the Grab_TH team.

They have begun mapping private/gated housing estates (หมู่บ้านจัดสรร) across Bangkok.

(see: Grab’s GitHub Issue #143)

They seem to tagged with place=village.

I saw a discussion previously in this 2022 forum thread, the use of place=village is problematic for these types of places: In Thailand, place=village traditionally refers to administrative หมู่บ้าน (moo) — the smallest official unit of local government.

There’s a broad community consensus (from the 2022 thread and elsewhere) that the more appropriate tagging for housing estates in Thailand would be something like:

  • landuse=residential (for the boundary),
  • name=* (for the name of the estate),
  • access=private and barrier=gate where applicable,
  • Optionally place=neighbourhood (node or area) to indicate a named settlement-like entity.

So I am wondering, what’s the proper standard way for tagging private/gated housing estates (หมู่บ้านจัดสรร) in Thailand? How can we inform Gram mapping team about this.

And Should we document this locally (e.g. on the Thailand OSM Project Wiki page) for future contributors?

*example changeset (there are tons more like this)

4 Likes

place=village for gated communities/housing estates is wrong.

This looks good.

1 Like

That’s how I’ve been tagging gated communities. Definitely not place=village.

1 Like

Hello @Kri_ttt and @ilias, thank you for the suggestions. We want to revise our approach as you mentioned.

  • landuse=residential (for the boundary),
  • name=* (for the name of the estate),
  • access=private and barrier=gate where applicable,
  • Optionally place=neighbourhood (node or area) to indicate a named settlement-like entity.

Additionally, our team will review and revise all uploaded changesets with the revised tags. Please feel free to tag me in the future.

Thanks again and Happy Mapping!

Best,
Saikat

4 Likes

Thanks @Kri_ttt for reporting this, and @Saikat_Maiti for taking note!

Just to add a few clarifications already reflected in part in the current wiki:

  • In the context of Thailand, it’s important to note that place=village is generally reserved for official administrative Muban (หมู่บ้าน). For private or commercial housing estates, place=neighborhood is the more appropriate choice.

  • place=neighborhood with a name=* tag is typically mapped as a node representing the center or main entrance of the gated community. This node supports routing, POI search, and label rendering.

  • It’s common to see mappers add name=* and place=* tags directly to the landuse=residential area when the estate boundary matches the named place. While understandable, this conflates two distinct concepts:

    • landuse=residential represents the physical land use,
    • place=* and name=* define a named locality used for rendering, search, and routing.
      To maintain semantic clarity and improve data usability, it’s recommended to keep these separate—using a dedicated place=* node.
  • Regarding naming: some private housing estates use English branding (e.g. Sansiri Village). In such cases, the name=* tag should reflect the commonly used form, even if it’s in English. A Thai translation can be added using name:th=*, but name=* should follow local signage and usage, not necessarily a translated version.

  • landuse=residential should be tagged as an area when the estate’s boundaries are known.

  • access=private can be used on highway=residential, but where gates or guards are present, it’s best to also add barrier=* and relevant access=* tags on the node(s) where restrictions apply.

  • Lastly, consider tagging noexit=yes on terminal nodes of internal roads to prevent accidental extensions in editors—especially where there’s a physical barrier like a fence, wall, or canal.

2 Likes

I believe this is an international issue and should be solved on international level, as privately created housing estates exist all over the world.

Ideally, the place tag should be used, but there is a problem: place tag appear to be used largely on nodes, although the housing estate has an exact boundary.

I believe that as a result, people then start using the landuse tag for such things. Not only for residential, but also for industrial parks, military camps, and so on, and renderers such as osm-carto appear to recognize the names of these landuses as a concept of a single property. Despite the ideal concept of landuse tag, which should not have a name at all.

The wiki page for landuse=industrial also suggests place=neighbourhood for its name, however notice that the use of industrial park names with landuse=industrial is significantly more common than with place=neighbourhood. Also, residential sub-tags have been created, such as residential=apartments, residential=single_family, and so on, which appear to be used for single estates.

How about tagging both landuse (as an area) and place (as a node)? It seems redundant to me, but having both a node and an area is standard for administrative place. Should it be the same for housing estate and industrial park? I’m not sure, but I think the administrative place has a reason to tag the node for its center because their territory may be large, and the node has the benefit of mapping a point, such as downtown, which may be distant from the geographical center of their bounds, and can be linked together via the relation.

Mapping as a node vs an area is similar to a case of a building vs a land. If it is a single building, we tag the name and type to the building. If it is a complex of buildings, we tag the name and type to the land. Thinking of the case of apartment, office, place of worship, etc.

Under the existing conditions and available tags, I believe the safest option is to tag both landuse and place to the same object, the area (with the additional specific residential=* tag).

Oh, I’ve looked into this before — it’s been discussed many times, and you’ll find conflicting usage patterns with no global consensus. I think the best approach is to define a consistent tagging scheme that fits the context in Thailand.

Personally, I see landuse, place or amenity as distinct concepts, and I don’t think they always need to represent the same entity. That said, I understand how having two objects seemingly referring to the same thing can be confusing, especially to newcomers.

What if we simply avoid using place=* for these non-administrative private housing communities in Thailand? Instead, we could stick with landuse=residential combined with something like residential=urban, residential=detached, residential=single_family, or even introduce a new value if needed.

1 Like

Yes, solving this on an international level comes a headache and might take forever. We don’t have to wait for it.

Avoid using place tag for private housing estates is a good idea. I also feel like place=neighbourhood without admin_level=* should only be used for something like well-known business districts that have a name but no obvious boundary. If we put a place node on every private estate whose boundary is already mapped as landuse=residential, the map will have a large number of place=neighbourhood nodes with no obvious benefit.

I’m not sure how many place=neighbourhood nodes for non-administrative private estate exist in Thailand today. If it is only a small amount, we can eliminate it. Btw, I think there are several landuse=residential areas that are also have the place=neighbourhood tag to the areas, so making it optional and leaving it as is may be the safest approach?

And, sure, a residential=* tag could help distinguishing them from general landuse areas, which typically include numerous types of house. Btw, private housing estates in Thailand often have a variety of dwelling types. To keep things simple, should we use residential=single_family even if not all of the house is detached? It is currently the most used tag for the house type.