# Goong Map Web Structure

Nguồn JSON gốc được tải về tại:

- `FrontEndUser/tmp/goong-styles/goong_map_web.json`

File này là style vector/label đầy đủ hơn, phù hợp để dò:

- water và water labels
- boundary theo cấp
- place labels cho lịch sử

## Mermaid overview

```mermaid
graph TD
  ROOT[goong_map_web.json]

  ROOT --> S1[source: base]
  ROOT --> S2[source: composite]

  S1 --> B1[source-layer: boundary]
  S1 --> B2[source-layer: worldcountriespoints]
  S1 --> B3[source-layer: worldnationalcapitals]

  S2 --> C1[source-layer: riversandlakes]
  S2 --> C2[source-layer: rivernames]
  S2 --> C3[source-layer: lakenames]
  S2 --> C4[source-layer: vietnam_administrator]
  S2 --> C5[source-layer: streets_label]

  B1 --> BL0[boundary-land-type-0 / type-0-bg]
  B1 --> BL1[boundary-land-type-1 / type-1-bg]
  B1 --> BL2[boundary-land-type-2 / type-2-bg]

  B2 --> PC1[place-country-1]
  B2 --> PC2[place-country-2]

  B3 --> CAP0[place-city-capital]

  C1 --> W1[water]
  C1 --> W2[water-shadow]

  C2 --> RN0[river-name-0]
  C2 --> RN1[river-name-1]
  C2 --> RN2[river-name-2]

  C3 --> LN0[lake-name_priority_0]
  C3 --> LN1[lake-name_priority_1]
  C3 --> LN2[lake-name_priority_2]

  C4 --> VA0[place-city-capital-vietnam]
  C4 --> VA1[place-city1 / place-city2]
  C4 --> VA2[place-town1 / place-town2]
  C4 --> VA3[place-suburb / borough / neighbourhood]
  C4 --> VA4[place-village]

  C5 --> RD0[highway-name-minor]
  C5 --> RD1[highway-name-medium]
  C5 --> RD2[highway-name-major]
```

## Boundary layers

Các layer boundary nổi bật:

- `boundary-land-type-0-bg`
- `boundary-land-type-0`
- `boundary-land-type-1-bg`
- `boundary-land-type-1`
- `boundary-land-type-2-bg`
- `boundary-land-type-2`

Minzoom quan sát được:

- `type-0`: từ zoom `1`
- `type-1`: từ zoom `5`
- `type-2-bg`: từ zoom `7`
- `type-2`: từ zoom `13`

Suy luận thực dụng:

- `type-0` có khả năng là biên giới quốc gia
- `type-1` có khả năng là cấp tỉnh/thành
- `type-2` có khả năng là cấp sâu hơn

## Water layers

Water fill:

- `water`
- `water-shadow`

Water labels:

- `river-name-0`
- `river-name-1`
- `river-name-2`
- `lake-name_priority_0`
- `lake-name_priority_1`
- `lake-name_priority_2`

## Place labels

Những label đáng quan tâm cho historical use:

- `place-country-1`
- `place-country-2`
- `place-city-capital`
- `place-city-capital-vietnam`
- `place-city1`
- `place-city2`
- `place-town1`
- `place-town2`

Những label dễ gây rối nếu bật nhiều:

- `highway-name-*`
- `place-suburb*`
- `place-neighbourhood*`
- `place-village`

## Gợi ý mapping cho UI

Mapping hiện tại trong `tiles.ts` là heuristic runtime, không hardcode đúng từng id này:

- `Country Borders` -> ưu tiên `boundary-land-type-0`, bỏ `boundary-land-type-0-bg`
- `Province Borders` -> ưu tiên `boundary-land-type-1`, bỏ `boundary-land-type-1-bg`
- `District Borders` -> `boundary-land-type-2` và các layer cấp sâu hơn
- `Country Labels` -> symbol layer có text field và tên/source-layer giống country/admin/place/city/town/capital
- `Rivers` -> line/fill layer có tên/source-layer giống water/waterway/river/stream/canal/lake/reservoir/sea/ocean

Water label symbol như `river-name-*`/`lake-name_*` chỉ được đưa vào nếu heuristic sau này mở rộng; code hiện tại chủ yếu lấy line/fill water.
