From f41ba32f30b6e5bf865b48dc6b327de9eb95aba1 Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Sun, 30 Aug 2026 16:29:57 +0700 Subject: [PATCH] feat(regions): restructure cities into a country > province > district tree Replaces the hand-maintained flat CITIES map with a generated 67-node tree: one country, five provinces, 61 districts and towns. Names, centres and extents now come from the boundary build rather than being duplicated in src/lib/game.js, so there is one source instead of two that a test had to police for drift. Boundaries are built per district and unioned upward. A single-child province byte-copies its child rather than re-simplifying it, so the two cannot disagree along a border and strand panoramas in the gap. The country has no polygon of its own: the real Vietnam outline is vastly larger than the covered area and would mislead on a map, so its extent is the envelope of its provinces. OpenStreetMap has applied the 2025 merger, so the pre-2025 units survive only as boundary/historic relations whose rendered parent is the current province. A qualified lookup misses them entirely and a bare one can match a same-named unit elsewhere in the country, so each leaf tries both forms and the hit is validated against the parent pre-2025 extent. 60 of 61 leaves resolve; Cu Chi has no boundary relation left at all, which is why the previous outline already recorded a missing part and no panorama in the index sits there. The generated barrels now sanitise import identifiers and quote object keys. Region codes contain hyphens, which are legal in a filename but not in a bare identifier, and the barrel is rewritten after every region -- emitting them raw would have broken the build from the first district onward. Panorama indexes are re-clipped against the rebuilt outlines, dropping 74 of 424,691 entries that fell outside the retightened boundaries. Da Lat and Duc Hoa keep their bare codes so their leaderboard history stays attached, and their index files move to the province codes that now own them. Scoring is untouched: a guess still credits one city and Vietnam. The rollup through the tree lands in a later change. --- ...ase-01-region-tree-model-and-boundaries.md | 334 + .../phase-02-panorama-district-partition.md | 247 + ...se-03-leaderboard-fan-out-and-migration.md | 268 + .../phase-04-api-surface.md | 214 + .../phase-05-ui-region-navigation.md | 216 + .../phase-06-docs-and-verification.md | 171 + plans/260830-1345-nested-region-tree/plan.md | 291 + scripts/assign-pano-districts.mjs | 97 + scripts/build-city-boundaries.mjs | 218 - scripts/build-pano-index.mjs | 21 +- scripts/build-region-boundaries.mjs | 519 ++ src/app/api/debug/city-coverage/route.js | 4 +- src/data/boundaries/dh.json | 457 - src/data/boundaries/dl.json | 1145 --- src/data/boundaries/dn/dn-camle.json | 682 ++ src/data/boundaries/dn/dn-haichau.json | 596 ++ src/data/boundaries/dn/dn-hoavang.json | 4478 ++++++++++ src/data/boundaries/dn/dn-lienchieu.json | 2200 +++++ src/data/boundaries/dn/dn-nguhanhson.json | 650 ++ src/data/boundaries/dn/dn-sontra.json | 2076 +++++ src/data/boundaries/dn/dn-thanhkhe.json | 318 + src/data/boundaries/{ => dn}/dn.json | 592 +- src/data/boundaries/hn/hn-bactuliem.json | 710 ++ src/data/boundaries/hn/hn-badinh.json | 610 ++ src/data/boundaries/hn/hn-bavi.json | 3198 +++++++ src/data/boundaries/hn/hn-caugiay.json | 598 ++ src/data/boundaries/hn/hn-chuongmy.json | 3294 ++++++++ src/data/boundaries/hn/hn-danphuong.json | 998 +++ src/data/boundaries/hn/hn-donganh.json | 1588 ++++ src/data/boundaries/hn/hn-dongda.json | 482 ++ src/data/boundaries/hn/hn-gialam.json | 1558 ++++ src/data/boundaries/hn/hn-hadong.json | 1370 +++ src/data/boundaries/hn/hn-haibatrung.json | 562 ++ src/data/boundaries/hn/hn-hoaiduc.json | 1582 ++++ src/data/boundaries/hn/hn-hoangmai.json | 858 ++ src/data/boundaries/hn/hn-hoankiem.json | 310 + src/data/boundaries/hn/hn-longbien.json | 386 + src/data/boundaries/hn/hn-melinh.json | 1846 ++++ src/data/boundaries/hn/hn-myduc.json | 2226 +++++ src/data/boundaries/hn/hn-namtuliem.json | 954 +++ src/data/boundaries/hn/hn-phuctho.json | 1830 ++++ src/data/boundaries/hn/hn-phuxuyen.json | 1538 ++++ src/data/boundaries/hn/hn-quocoai.json | 2974 +++++++ src/data/boundaries/hn/hn-socson.json | 2814 +++++++ src/data/boundaries/hn/hn-sontay.json | 3254 ++++++++ src/data/boundaries/hn/hn-tayho.json | 422 + src/data/boundaries/hn/hn-thachthat.json | 3222 +++++++ src/data/boundaries/hn/hn-thanhoai.json | 1350 +++ src/data/boundaries/hn/hn-thanhtri.json | 1342 +++ src/data/boundaries/hn/hn-thanhxuan.json | 538 ++ src/data/boundaries/hn/hn-thuongtin.json | 1358 +++ src/data/boundaries/hn/hn-unghoa.json | 1638 ++++ src/data/boundaries/{ => hn}/hn.json | 2106 ++++- src/data/boundaries/index.js | 144 +- src/data/boundaries/la/dh.json | 1022 +++ src/data/boundaries/la/la.json | 1023 +++ src/data/boundaries/ld/dl.json | 3446 ++++++++ src/data/boundaries/ld/ld.json | 3447 ++++++++ src/data/boundaries/tphcm.json | 2523 ------ .../boundaries/tphcm/tphcm-binhchanh.json | 2290 +++++ src/data/boundaries/tphcm/tphcm-binhtan.json | 542 ++ .../boundaries/tphcm/tphcm-binhthanh.json | 682 ++ src/data/boundaries/tphcm/tphcm-cangio.json | 3196 +++++++ src/data/boundaries/tphcm/tphcm-govap.json | 782 ++ src/data/boundaries/tphcm/tphcm-hocmon.json | 706 ++ src/data/boundaries/tphcm/tphcm-nhabe.json | 1326 +++ src/data/boundaries/tphcm/tphcm-phunhuan.json | 486 ++ src/data/boundaries/tphcm/tphcm-q1.json | 234 + src/data/boundaries/tphcm/tphcm-q10.json | 78 + src/data/boundaries/tphcm/tphcm-q11.json | 130 + src/data/boundaries/tphcm/tphcm-q12.json | 914 ++ src/data/boundaries/tphcm/tphcm-q3.json | 186 + src/data/boundaries/tphcm/tphcm-q4.json | 134 + src/data/boundaries/tphcm/tphcm-q5.json | 146 + src/data/boundaries/tphcm/tphcm-q6.json | 254 + src/data/boundaries/tphcm/tphcm-q7.json | 546 ++ src/data/boundaries/tphcm/tphcm-q8.json | 438 + src/data/boundaries/tphcm/tphcm-tanbinh.json | 462 + src/data/boundaries/tphcm/tphcm-tanphu.json | 298 + src/data/boundaries/tphcm/tphcm-thuduc.json | 1934 +++++ src/data/boundaries/tphcm/tphcm.json | 7425 +++++++++++++++++ src/data/panos/dn.json | 3 +- src/data/panos/hn.json | 24 +- src/data/panos/index.js | 18 +- src/data/panos/{dh.json => la.json} | 10 +- src/data/panos/{dl.json => ld.json} | 9 +- src/data/panos/tphcm.json | 59 +- src/data/regions/index.js | 77 + src/lib/game.js | 89 +- src/lib/regions.js | 119 + tests/game.test.js | 52 +- tests/pano-index.test.js | 32 +- tests/regions.test.js | 223 + 93 files changed, 93974 insertions(+), 4845 deletions(-) create mode 100644 plans/260830-1345-nested-region-tree/phase-01-region-tree-model-and-boundaries.md create mode 100644 plans/260830-1345-nested-region-tree/phase-02-panorama-district-partition.md create mode 100644 plans/260830-1345-nested-region-tree/phase-03-leaderboard-fan-out-and-migration.md create mode 100644 plans/260830-1345-nested-region-tree/phase-04-api-surface.md create mode 100644 plans/260830-1345-nested-region-tree/phase-05-ui-region-navigation.md create mode 100644 plans/260830-1345-nested-region-tree/phase-06-docs-and-verification.md create mode 100644 plans/260830-1345-nested-region-tree/plan.md create mode 100644 scripts/assign-pano-districts.mjs delete mode 100644 scripts/build-city-boundaries.mjs create mode 100644 scripts/build-region-boundaries.mjs delete mode 100644 src/data/boundaries/dh.json delete mode 100644 src/data/boundaries/dl.json create mode 100644 src/data/boundaries/dn/dn-camle.json create mode 100644 src/data/boundaries/dn/dn-haichau.json create mode 100644 src/data/boundaries/dn/dn-hoavang.json create mode 100644 src/data/boundaries/dn/dn-lienchieu.json create mode 100644 src/data/boundaries/dn/dn-nguhanhson.json create mode 100644 src/data/boundaries/dn/dn-sontra.json create mode 100644 src/data/boundaries/dn/dn-thanhkhe.json rename src/data/boundaries/{ => dn}/dn.json (79%) create mode 100644 src/data/boundaries/hn/hn-bactuliem.json create mode 100644 src/data/boundaries/hn/hn-badinh.json create mode 100644 src/data/boundaries/hn/hn-bavi.json create mode 100644 src/data/boundaries/hn/hn-caugiay.json create mode 100644 src/data/boundaries/hn/hn-chuongmy.json create mode 100644 src/data/boundaries/hn/hn-danphuong.json create mode 100644 src/data/boundaries/hn/hn-donganh.json create mode 100644 src/data/boundaries/hn/hn-dongda.json create mode 100644 src/data/boundaries/hn/hn-gialam.json create mode 100644 src/data/boundaries/hn/hn-hadong.json create mode 100644 src/data/boundaries/hn/hn-haibatrung.json create mode 100644 src/data/boundaries/hn/hn-hoaiduc.json create mode 100644 src/data/boundaries/hn/hn-hoangmai.json create mode 100644 src/data/boundaries/hn/hn-hoankiem.json create mode 100644 src/data/boundaries/hn/hn-longbien.json create mode 100644 src/data/boundaries/hn/hn-melinh.json create mode 100644 src/data/boundaries/hn/hn-myduc.json create mode 100644 src/data/boundaries/hn/hn-namtuliem.json create mode 100644 src/data/boundaries/hn/hn-phuctho.json create mode 100644 src/data/boundaries/hn/hn-phuxuyen.json create mode 100644 src/data/boundaries/hn/hn-quocoai.json create mode 100644 src/data/boundaries/hn/hn-socson.json create mode 100644 src/data/boundaries/hn/hn-sontay.json create mode 100644 src/data/boundaries/hn/hn-tayho.json create mode 100644 src/data/boundaries/hn/hn-thachthat.json create mode 100644 src/data/boundaries/hn/hn-thanhoai.json create mode 100644 src/data/boundaries/hn/hn-thanhtri.json create mode 100644 src/data/boundaries/hn/hn-thanhxuan.json create mode 100644 src/data/boundaries/hn/hn-thuongtin.json create mode 100644 src/data/boundaries/hn/hn-unghoa.json rename src/data/boundaries/{ => hn}/hn.json (66%) create mode 100644 src/data/boundaries/la/dh.json create mode 100644 src/data/boundaries/la/la.json create mode 100644 src/data/boundaries/ld/dl.json create mode 100644 src/data/boundaries/ld/ld.json delete mode 100644 src/data/boundaries/tphcm.json create mode 100644 src/data/boundaries/tphcm/tphcm-binhchanh.json create mode 100644 src/data/boundaries/tphcm/tphcm-binhtan.json create mode 100644 src/data/boundaries/tphcm/tphcm-binhthanh.json create mode 100644 src/data/boundaries/tphcm/tphcm-cangio.json create mode 100644 src/data/boundaries/tphcm/tphcm-govap.json create mode 100644 src/data/boundaries/tphcm/tphcm-hocmon.json create mode 100644 src/data/boundaries/tphcm/tphcm-nhabe.json create mode 100644 src/data/boundaries/tphcm/tphcm-phunhuan.json create mode 100644 src/data/boundaries/tphcm/tphcm-q1.json create mode 100644 src/data/boundaries/tphcm/tphcm-q10.json create mode 100644 src/data/boundaries/tphcm/tphcm-q11.json create mode 100644 src/data/boundaries/tphcm/tphcm-q12.json create mode 100644 src/data/boundaries/tphcm/tphcm-q3.json create mode 100644 src/data/boundaries/tphcm/tphcm-q4.json create mode 100644 src/data/boundaries/tphcm/tphcm-q5.json create mode 100644 src/data/boundaries/tphcm/tphcm-q6.json create mode 100644 src/data/boundaries/tphcm/tphcm-q7.json create mode 100644 src/data/boundaries/tphcm/tphcm-q8.json create mode 100644 src/data/boundaries/tphcm/tphcm-tanbinh.json create mode 100644 src/data/boundaries/tphcm/tphcm-tanphu.json create mode 100644 src/data/boundaries/tphcm/tphcm-thuduc.json create mode 100644 src/data/boundaries/tphcm/tphcm.json rename src/data/panos/{dh.json => la.json} (99%) rename src/data/panos/{dl.json => ld.json} (99%) create mode 100644 src/data/regions/index.js create mode 100644 src/lib/regions.js create mode 100644 tests/regions.test.js diff --git a/plans/260830-1345-nested-region-tree/phase-01-region-tree-model-and-boundaries.md b/plans/260830-1345-nested-region-tree/phase-01-region-tree-model-and-boundaries.md new file mode 100644 index 0000000..77bc4e3 --- /dev/null +++ b/plans/260830-1345-nested-region-tree/phase-01-region-tree-model-and-boundaries.md @@ -0,0 +1,334 @@ +--- +phase: 1 +title: "Region tree model and boundaries" +status: completed +priority: P1 +effort: "1.5d" +dependencies: [] +--- + +# Phase 1: Region tree model and boundaries + +## Outcome (recorded after execution) + +**60 of 61 leaves resolved.** Cu Chi is the only unresolved one, matching the +`"missingParts": 1` the shipped TPHCM boundary already carried. Ha Noi unions to +3,363 km² (real Ha Noi ≈ 3,359), Ho Chi Minh to 1,629 km² — identical to the +pre-change file. + +Four things differ from the plan as written: + +1. **Nominatim needed a two-form lookup.** The first run resolved only 42 of 61, + and every failure was a `Huyện` or `Thị xã` — no `Quận` failed. The cause is + not rate limiting: OSM has applied the 2025 merger, so the pre-2025 rural + districts survive only as `boundary/historic` relations whose rendered parent + is the *current* province. `Huyện Ba Vì, Hà Nội, Việt Nam` matches nothing; + `Huyện Ba Vì, Việt Nam` returns relation 7115003, correctly shaped but + labelled "Ba Vì District, Phú Thọ Province". The fix is to try the qualified + form, then the bare one, and validate the hit's centroid against the parent's + pre-2025 bbox (`legacyBbox` in the config) so a same-named unit elsewhere in + the country is rejected. Cu Chi has no boundary relation left at all — only + cemeteries and bus stops — so it is genuinely unresolvable. +2. **Boundaries are grouped by province** (`/.json`) at the + user's request; 66 files in one directory was unreadable. +3. **The re-clip pass was pulled forward from Phase 2**, which is the response + this phase's own risk register pre-decided for H7. It dropped 74 panoramas of + 424,691 (0.017%) that fell outside the retightened outlines. It lives in + `scripts/assign-pano-districts.mjs`, which Phase 2 extends with district + assignment. +4. **`CITY_BOUNDARIES` was renamed `REGION_BOUNDARIES`**, with its one consumer + updated. + +`scripts/build-region-boundaries.mjs --regenerate` rebuilds provinces, the barrel +and the tree from the leaf polygons on disk without touching Nominatim. Added +after the subfolder move, so reshaping outputs never costs another 60-request +pass against a courtesy-rate-limited public service. + +**Measured:** `src/data/boundaries/` is 1.3 MB against the 1.5 MB budget — about +9× the old 131 KB, confirming that the pre-red-team "well under 125 KB" estimate +was impossible. `npm test` 135/135, `npm run build:check` and `npm run lint` +clean, with no assertion weakened. + +## Overview + +Turn the hand-maintained flat `CITIES` map into a generated three-level region +tree, and build a boundary polygon for all 61 leaves. Everything downstream reads +the tree, so this phase lands first and alone. + +**Red-team: three Critical findings land here.** Fix the barrel identifier +generation *before* the first Nominatim run (C1), keep the existing test suite +green (C3), and keep `src/lib/regions.js` free of panorama imports (C5). + +## Requirements + +**Functional** +- One country, five provinces, 61 leaves, all reachable from one generated map. +- Every leaf Nominatim resolves carries a boundary polygon. +- A province polygon is the union of its children — except a single-child + province, which byte-copies its child. +- `VN` has no polygon; its bbox and center derive from its children's bboxes. +- Lam Dong and Long An carry `partialCoverage: 'one town covered'`. +- The five existing hand-picked centers survive as overrides. + +**Non-functional** +- Both generated barrels must parse. Hyphenated codes are illegal as bare JS + identifiers *and* as unquoted object keys. +- `src/lib/regions.js` imports only `src/data/regions/*`. Client components + import it; the panorama data is 25 MB of exact answers. +- `npm test` and `npm run build:check` pass **at the end of this phase**, with no + assertion weakened to achieve it. +- Nominatim's one-request-per-second courtesy limit is respected (61 queries + ≈ 70 s). + +## Architecture + +`scripts/build-city-boundaries.mjs` is renamed `scripts/build-region-boundaries.mjs` +and its `CITIES` config becomes a `REGIONS` config where a leaf carries a +Nominatim `query` and a province carries only a name plus its children. + +```js +const REGIONS = { + VN: { name: 'Vietnam', level: 'country' }, + + TPHCM: { name: 'Ho Chi Minh', level: 'province', parent: 'VN', + center: [10.8231, 106.6297] }, // override, see below + 'TPHCM-Q1': { name: 'District 1', level: 'district', parent: 'TPHCM', + query: 'Quận 1, Thành phố Hồ Chí Minh, Việt Nam' }, + // ... + + LD: { name: 'Lam Dong', level: 'province', parent: 'VN', + partialCoverage: 'one town covered' }, + DL: { name: 'Da Lat', level: 'district', parent: 'LD', + query: 'Thành phố Đà Lạt, Việt Nam', center: [11.9404, 108.4583] }, + + LA: { name: 'Long An', level: 'province', parent: 'VN', + partialCoverage: 'one town covered' }, + DH: { name: 'Duc Hoa', level: 'district', parent: 'LA', + query: 'Đức Hòa, Việt Nam', center: [10.8888, 106.3825] }, +}; +``` + +The existing `parts` lists for `TPHCM` (22) and `DN` (7) already enumerate exactly +the districts needed — lift them across as leaf queries. `HN` currently has a +single part and needs its 30 units enumerated. + +### C1 — Barrel identifier generation (do this first) + +Both writers derive the import identifier *and* the object key from the filename: + +```js +// build-city-boundaries.mjs:190-192, 200-203 — and the identical block in +// build-pano-index.mjs:273-287 +ident: name.replace(/\.json$/, ''), +`import ${e.ident} from './${e.file}';` +` ${e.code}: ${e.ident},` +``` + +For `tphcm-q1.json` that emits `import tphcm-q1 from './tphcm-q1.json';` and +`TPHCM-Q1: tphcm-q1,` — two parse errors. Because the barrel is rewritten after +every region (`build-city-boundaries.mjs:210`), the repo breaks from leaf #1 and +stays broken for the rest of a 70-second network run. + +Fix both scripts before running either: + +```js +ident: name.replace(/\.json$/, '').replace(/[^a-z0-9]/g, '_'), +`import ${e.ident} from './${e.file}';` +` ${JSON.stringify(e.code)}: ${e.ident},` // quoted key +``` + +Add a test that `import()`s each generated barrel. + +### H4 — Centers are overridable, not replaced + +`src/lib/game.js:9-12` records why the five centers are hand-picked: a centroid +"for an irregular outline can land somewhere no one associates with the place", +and `GameClient.js:102` seeds the map from it. The build computes +`turf.centerOfMass` (`build-city-boundaries.mjs:150`); use it only when the +`REGIONS` entry has no `center`. Seed the five existing values as overrides and +keep a test asserting they are unchanged. + +### H3 — Simplification, with a measured budget + +`SIMPLIFY_TOLERANCE = 0.0005` (~55 m) currently applies to five whole-city +outlines totalling **130,519 bytes**. At district scale that tolerance opens +gaps along shared borders that Phase 2 must assign panoramas across. + +Simplify **leaves** at `0.0001` (~11 m) and keep `0.0005` for unioned province +outlines. The earlier draft claimed this would "stay well under 125 KB", which is +arithmetically impossible: 5× the vertex density over more total arc length, with +every interior border now drawn twice (once per neighbour). **Budget: 1.5 MB for +`src/data/boundaries/` combined.** Step 9 checks it and fails the phase if +exceeded. Do not loosen the tolerance to hit the budget — Phase 2's unassigned +tally is the quality bar, and loosening reopens the gaps. + +### H7 — The Ha Noi union changes HN's outline + +HN today is one OSM relation (`build-city-boundaries.mjs:32`). Rebuilding it as a +union of 30 districts moves the outline, so panoramas clipped against the old +polygon may now fall outside — breaking two containment assertions +(`tests/pano-index.test.js:34-42`, `:44-59`) that no re-clip repairs, because +Phase 2 does not re-fetch tiles. + +Resolve it here: Phase 2 gains a **re-clip pass** over the existing panoramas +(no network — it drops out-of-boundary entries and rewrites the header +`bbox`/`count`). This phase records the expectation; Phase 2 owns the step. The +containment assertions stay in force throughout — do not weaken them. + +### C3 — Keeping the test suite green + +`tests/pano-index.test.js:5,7` derives its parameter list from `CITIES`: + +```js +import { CITIES } from '../src/lib/game.js'; +const CODES = Object.keys(CITIES); +``` + +Two changes make this work at the end of *this* phase: + +1. **`CITIES` becomes every node in the tree**, keyed by code — not the five + provinces. `cityNames['DL']`, `cityCenters['HN']`, and `CITIES['DL']?.bbox` + all keep resolving, so `/game?location=DL` and `GameClient.js:463` survive. + `cities` (the UI list) is the province filter. +2. **Move the panorama file rename into this phase.** `dl.json` → `ld.json` and + `dh.json` → `la.json`, so every index file is a province. It is a pure rename + with no network cost, and leaving it in Phase 2 is what stranded `LD`/`LA` + without an index. + +`tests/pano-index.test.js` then derives `CODES` from `indexedCities()` rather +than `CITIES`, and its seven hardcoded `'DL'` sites (`:68, 69, 73, 76, 80, 81, +86`) become `'LD'`. Add the file to this phase's list. + +### Region codes + +| Province | Leaf codes | +|---|---| +| `HN` (30) | `HN-BADINH` `HN-HOANKIEM` `HN-TAYHO` `HN-LONGBIEN` `HN-CAUGIAY` `HN-DONGDA` `HN-HAIBATRUNG` `HN-HOANGMAI` `HN-THANHXUAN` `HN-BACTULIEM` `HN-NAMTULIEM` `HN-HADONG` `HN-SONTAY` `HN-BAVI` `HN-CHUONGMY` `HN-DANPHUONG` `HN-DONGANH` `HN-GIALAM` `HN-HOAIDUC` `HN-MELINH` `HN-MYDUC` `HN-PHUXUYEN` `HN-PHUCTHO` `HN-QUOCOAI` `HN-SOCSON` `HN-THACHTHAT` `HN-THANHOAI` `HN-THANHTRI` `HN-THUONGTIN` `HN-UNGHOA` | +| `TPHCM` (22) | `TPHCM-Q1` `TPHCM-Q3` `TPHCM-Q4` `TPHCM-Q5` `TPHCM-Q6` `TPHCM-Q7` `TPHCM-Q8` `TPHCM-Q10` `TPHCM-Q11` `TPHCM-Q12` `TPHCM-BINHTAN` `TPHCM-BINHTHANH` `TPHCM-GOVAP` `TPHCM-PHUNHUAN` `TPHCM-TANBINH` `TPHCM-TANPHU` `TPHCM-THUDUC` `TPHCM-BINHCHANH` `TPHCM-CANGIO` `TPHCM-CUCHI` `TPHCM-HOCMON` `TPHCM-NHABE` | +| `DN` (7) | `DN-HAICHAU` `DN-THANHKHE` `DN-SONTRA` `DN-NGUHANHSON` `DN-LIENCHIEU` `DN-CAMLE` `DN-HOAVANG` | +| `LD` (1) | `DL` | +| `LA` (1) | `DH` | + +Districts 2 and 9 are absent from Ho Chi Minh City on purpose: both merged into +Thu Duc in 2021, which the existing `parts` list already reflects. + +`TPHCM-CUCHI` is listed but **expected to fail resolution** — the shipped +boundary already records `"missingParts": 1` for it, which is why zero of +TPHCM's 184,992 panoramas sit in Cu Chi. Record the failure; do not chase it. + +`DL` and `DH` keep their bare codes so their existing leaderboard keys stay valid. +Hoang Sa stays excluded from Da Nang for the reason already in the build script. + +### Missing leaves are recorded, not fatal + +The empirical Nominatim hit rate on this repo's own queries is 28/29; over 61 +leaves expect one or two failures beyond Cu Chi. A missing leaf: + +- is written to the tree with `coverage: 'unresolved'` and no bbox, +- increments the parent's `missingParts`, +- is excluded from playability, +- does **not** fail the build. + +### Traversal helpers + +`src/lib/regions.js` (new, hand-written, client-safe): + +| Function | Returns | +|---|---| +| `getRegion(code)` | Node, or throws with the list of known codes | +| `ancestorsOf(code)` | `[self, ...parents]` up to and including `VN` | +| `childrenOf(code)` | Direct children, empty for a leaf | +| `leavesUnder(code)` | Every leaf at or below the node | +| `provinceOf(code)` | The province ancestor, or `null` for `VN` | +| `regionPath(code)` | Ancestor names, country first — for UI headers | + +It imports `src/data/regions/index.js` and (from Phase 2) `counts.js`. Nothing +else. A test walks its import graph and fails if `src/data/panos/` appears. + +## Related Code Files + +- Create: `scripts/build-region-boundaries.mjs` (from `build-city-boundaries.mjs`) +- Create: `src/lib/regions.js` +- Create: `src/data/regions/index.js` (generated) +- Create: `src/data/boundaries/.json` (generated) +- Create: `tests/regions.test.js` +- Modify: `scripts/build-pano-index.mjs` — barrel identifier fix (C1) only +- Modify: `src/lib/game.js` — derive exports from the tree; `CITIES` = all nodes +- Modify: `src/data/boundaries/index.js`, `src/data/panos/index.js` (regenerated) +- Rename: `src/data/panos/dl.json` → `ld.json`, `dh.json` → `la.json` +- Modify: `tests/pano-index.test.js` — `CODES` from `indexedCities()`; 7 `'DL'` sites → `'LD'` +- Modify: `tests/game.test.js` — city-configuration block becomes tree assertions +- Delete: `scripts/build-city-boundaries.mjs` + +## Implementation Steps + +1. **Fix both barrel writers first** (C1): sanitise `ident`, quote the object key. + Add the barrel-parses test. Do this before any network run. +2. Copy `build-city-boundaries.mjs` to `build-region-boundaries.mjs`; replace + `CITIES` with the `REGIONS` config, lifting the existing `TPHCM` and `DN` part + lists and enumerating Ha Noi's 30. Seed the five `center` overrides. +3. Split `buildCity` into `buildLeaf` (one query, tolerance `0.0001`) and + `buildProvince` (union children at `0.0005`; byte-copy for a single child). +4. Add the `VN` step: no query, bbox as the envelope of the five province bboxes. +5. Extend both `writeBarrel`s to emit `src/data/boundaries/index.js` and + `src/data/regions/index.js`. +6. Run it. Log unresolved leaves; record them, do not abort. +7. Rename the two panorama files and regenerate the panorama barrel. +8. Write `src/lib/regions.js`; rewrite `src/lib/game.js`'s region exports as + derivations over every node. +9. Write `tests/regions.test.js`; update `tests/pano-index.test.js` and the + `city configuration` block in `tests/game.test.js`. Check the boundary + directory against the 1.5 MB budget. +10. `npm test`, then `npm run build:check`. + +## Validation + +- Both generated barrels parse under `import()`. +- `src/data/boundaries/` is under 1.5 MB. +- `tests/regions.test.js` asserts: every `parent` resolves; no cycles; exactly one + node with `parent: null`; every resolved leaf's bbox sits inside its province's; + `ancestorsOf` on every leaf has length 3 and ends at `VN`; 61 unique leaf codes; + `DL`/`DH` parents are `LD`/`LA`. +- The five legacy centers are byte-identical to today's values. +- `src/lib/regions.js`'s transitive imports never reach `src/data/panos/`. +- `getRegion('DL')`, `cityNames['DL']`, and `CITIES['DL'].bbox` all resolve. +- A resolved province's area is within 2% of the sum of its children's. +- A single-child province's polygon is byte-identical to its child's. +- `npm test` passes with **no assertion weakened** — in particular the two + containment assertions in `tests/pano-index.test.js` remain in force. + +## Risk Assessment + +**Nominatim cannot resolve some leaves.** Expected: one or two beyond Cu Chi, at +the observed 28/29 rate. *Signal:* the build logs `no boundary found — SKIPPED`. +*Response:* refine the query string; if still unresolvable, record +`coverage: 'unresolved'` and move on. Not a build failure. + +**Leaf boundaries exceed the 1.5 MB budget.** *Signal:* step 9's check fails. +*Response:* raise the leaf tolerance to `0.0002` and re-measure — but only after +confirming with a Phase 2 dry run that the unassigned tally stays under 2%. +Loosening tolerance to hit a size budget is the trade that strands panoramas. + +**The HN union invalidates containment tests before Phase 2's re-clip.** *Signal:* +`HN panoramas sit inside the city boundary` fails at the end of this phase. +*Response:* pull the re-clip pass forward into this phase rather than weakening +the assertion. It needs no network. + +**Renaming the build script breaks a reference.** Verified reference set is five +sites, all in `scripts/` and one generated header — `grep -rn +"build-city-boundaries" docs/ CLAUDE.md` returns nothing, contrary to the earlier +draft. *Response:* update the five; Phase 6 re-greps. + +## Success Criteria + +- [ ] Both generated barrels parse; a test enforces it +- [ ] `src/data/regions/index.js` exports 67 nodes: 1 country, 5 provinces, 61 leaves +- [ ] Unresolved leaves are recorded with `coverage: 'unresolved'`, not fatal +- [ ] Every resolved province polygon is the union of its children; single-child provinces byte-copy +- [ ] The five legacy centers are unchanged +- [ ] `LD` and `LA` carry `partialCoverage: 'one town covered'` +- [ ] `ancestorsOf('DL')` is `['DL', 'LD', 'VN']`; `ancestorsOf('DH')` is `['DH', 'LA', 'VN']` +- [ ] `src/lib/regions.js` never imports panorama data +- [ ] Panorama files renamed to `ld.json` / `la.json`; barrel regenerated +- [ ] `src/data/boundaries/` under 1.5 MB +- [ ] `npm test` and `npm run build:check` pass with no assertion weakened diff --git a/plans/260830-1345-nested-region-tree/phase-02-panorama-district-partition.md b/plans/260830-1345-nested-region-tree/phase-02-panorama-district-partition.md new file mode 100644 index 0000000..fcc00e9 --- /dev/null +++ b/plans/260830-1345-nested-region-tree/phase-02-panorama-district-partition.md @@ -0,0 +1,247 @@ +--- +phase: 2 +title: "Panorama district partition" +status: todo +priority: P1 +effort: "1d" +dependencies: [1] +--- + +# Phase 2: Panorama district partition + +## Overview + +Assign every panorama already on disk to the district it sits in, re-clip against +the rebuilt province outlines, and teach `src/lib/pano-index.js` to draw from any +node in the tree. No new Mapillary requests. + +## Requirements + +**Functional** +- Every panorama in the five province indexes carries a district assignment, or + is counted in a reported unassigned tally. +- Panoramas now outside their rebuilt province outline are dropped, and the + header `bbox`/`count` rewritten (H7). +- `pickRandomPano(code)` accepts a leaf, a province, or `VN`, and reports the + resolving leaf. +- `fetchCityPanorama` propagates that leaf from the **winning** attempt (C2). +- Drawing at `VN` picks a province uniformly first, then a panorama within it. +- Drawing at a province stays uniform over its panoramas (today's behaviour). +- Per-node counts and playability are emitted as `src/data/regions/counts.js`. + +**Non-functional** +- Zero Mapillary tile requests. The daily cap is 50,000 and a full province + rebuild costs ~2,800. +- Server-side only. `src/lib/regions.js` must stay free of these imports. +- Bucket construction is lazy and memoised per province — a Da Lat request must + not point-in-polygon 226k Ha Noi entries. + +## Architecture + +### The partition script + +`scripts/assign-pano-districts.mjs` — network-free, built on a shared module: + +``` +for each province in [HN, DN, TPHCM, LD, LA]: + load src/data/panos/.json + re-clip against the rebuilt province outline; drop strays; rewrite bbox/count + load each child leaf boundary + precompute its bbox + for each pano: + candidates = leaves whose bbox contains the point # cheap reject + d = first candidate where booleanPointInPolygon # early exit + rewrite the file with districts[] / districtCounts / districtCells / unassigned +write src/data/regions/counts.js +``` + +**Cost.** 226k Ha Noi points × 30 leaves is 6.8 M bbox tests (trivial) plus ~1-2 +`booleanPointInPolygon` calls per point after the reject. Single-digit minutes, +which is why the bbox prefilter is not optional. + +**M1 — the shared module.** Phase 2 previously promised a "shared assignment +function" with nowhere to put it. Create `scripts/lib/assign-districts.mjs` and +import it from both `assign-pano-districts.mjs` and `build-pano-index.mjs`, so +the fallback rules cannot drift between two copies. + +**M1 — the stale default list.** `build-pano-index.mjs` ends with +`const codes = requested.length ? requested : ['HN','TPHCM','DN','DL','DH'];` +and `writeBarrel()` scans the directory rather than a declared list. After Phase +1's rename, an argument-less run rebuilds `DL`/`DH`, writes `dl.json`/`dh.json` +*beside* `ld.json`/`la.json`, and the barrel silently gains duplicate provinces — +`countPanos('VN')` then double-counts ~12k panoramas. Update the default to +`['HN','TPHCM','DN','LD','LA']` and make `writeBarrel` reject a filename that is +not a known province code. + +**Single-child provinces.** `LD`'s polygon is byte-copied from `DL` in Phase 1 +precisely so this step is degenerate. Assert `unassigned === 0` for them — a +non-zero tally means the byte-copy did not happen and the tolerance mismatch is +back. + +### File format + +Header gains `districts`, `districtCounts`, `districtCells`, `unassigned`; each +entry gains `d`, an index into `districts`: + +```json + "code": "TPHCM", + "districts": ["TPHCM-Q1","TPHCM-Q3", ...], + "districtCounts": {"TPHCM-Q1": 3211, ...}, + "districtCells": {"TPHCM-Q1": 274, ...}, + "unassigned": 412, + "panos": [ + {"id":"1234","lat":10.7712,"lng":106.7003,"d":0}, + {"id":"5678","lat":10.7799,"lng":106.7101} + ] +``` + +**H3 — the size budget was wrong.** `,"d":12` is 8 bytes, not 5. Measured against +real entry counts: HN 225,985 + TPHCM 184,992 + DH 11,718 + DN 1,521 + DL 475 +gives **≈ 2.8-3.4 MB** of growth, against the earlier 2.5 MB gate. **Budget: +3.5 MB.** The old "2.1 MB saved" line compared against an alternative that was +never on the table and is deleted. + +The one-panorama-per-line writer is preserved: a 226k-entry file must stay +diffable. + +### M2 — playability is measured in places, not entries + +`GRID_DEG = 0.0003` (~33 m) means a single street corridor yields dozens of +entries, so raw counts overstate distinct *places* by roughly 30×. Measured: +Da Nang's 1,521 panoramas occupy **39** distinct 0.01° (~1.1 km) cells across 7 +districts; Da Lat's 475 occupy **8**. + +`districtCells` records the distinct-cell count per leaf. A node is playable when +it has **≥ 3 distinct cells and ≥ 3 panoramas**. The panorama floor matters +because `fetchCityPanorama` retries up to `MAX_ATTEMPTS = 3` with a different +candidate each time (`mapillary.js:86-91`); a 1-panorama leaf whose image has +been deleted upstream throws on attempt 2. + +Leaves between 3 and 10 cells are flagged `thin: true` so Phase 5 can label them +rather than silently offering a two-street district. + +### Runtime API + +`src/lib/pano-index.js`: + +| Function | Behaviour | +|---|---| +| `getRegionPanos(code)` | Leaf → memoised bucket. Province → the whole index. `VN` → never materialised | +| `pickRandomPano(code, excludeIds)` | Returns `{ id, lat, lng, regionCode }` — the leaf, or the province when unassigned | +| `countPanos(code)` | Works at every level | +| `playableRegions()` | Every node meeting the cells-and-count threshold | + +Buckets are built once per province on first leaf access and cached in a +module-level `Map`. This is process-global and never invalidated — correct, +because the data is static and bundled, but state it plainly: ~425k retained +references, bounded, no leak. + +**`VN` draws** never concatenate 424,691 entries. Pick a province uniformly, then +delegate. Uniform over panoramas would make Vietnam 53% Ha Noi and 44% Ho Chi +Minh, with Da Lat at 0.1%. + +### C2 — `src/lib/mapillary.js` is the missing link + +`/api/new-game` never calls `pickRandomPano`. It calls `fetchCityPanorama` +(`new-game/route.js:33`), the sole production caller (`mapillary.js:14,90`), +which returns `{...image, lat, lng}` and **discards everything else on the +candidate**. Without a change here `session.regionCode` can only ever be the +picked code, every district board stays empty forever, and Phase 3's tests still +pass because they call `submitScore` directly. + +Two changes: + +1. `fetchCityPanorama(regionCode)` returns `data.regionCode` taken from the + **winning** candidate — not the first. The retry loop draws a fresh candidate + per attempt, potentially from a different district. +2. Move the `pickRandomPano` call inside the `try` (it sits on `mapillary.js:90`, + outside the `try` that opens on `:93`), so pool exhaustion returns + `{success: false}` instead of escaping to the route's generic 500. + +## Related Code Files + +- Create: `scripts/assign-pano-districts.mjs` +- Create: `scripts/lib/assign-districts.mjs` (shared with the index build) +- Create: `src/data/regions/counts.js` (generated) +- Modify: `src/data/panos/hn.json`, `dn.json`, `tphcm.json`, `ld.json`, `la.json` +- Modify: `src/data/panos/index.js` (regenerated; rejects unknown province codes) +- Modify: `src/lib/pano-index.js` +- Modify: `src/lib/mapillary.js` — propagate `regionCode`; move the draw inside `try` +- Modify: `scripts/build-pano-index.mjs` — shared module; default list → `['HN','TPHCM','DN','LD','LA']` +- Modify: `tests/pano-index.test.js` + +## Implementation Steps + +1. Write `scripts/lib/assign-districts.mjs`: bbox prefilter, early exit, the + nearest-centroid fallback for stranded points, and the cell counter. +2. Write `scripts/assign-pano-districts.mjs` around it, including the re-clip + pass and the header `bbox`/`count` rewrite (H7). +3. Run it. Check the unassigned tally: above 2% for a province means Phase 1's + leaf tolerance is too loose — tighten and re-run, no network cost. +4. Verify single-child provinces report `unassigned === 0`. +5. Record leaves below the playability threshold. Da Nang's rural leaves and + `TPHCM-CUCHI` (zero panoramas, unresolved boundary) are expected. +6. Emit `src/data/regions/counts.js`. +7. Update `build-pano-index.mjs`: shared module, corrected default list, barrel + guard against unknown province files. +8. Rewrite `src/lib/pano-index.js` per the table above. +9. Update `src/lib/mapillary.js` for C2. +10. Extend `tests/pano-index.test.js`. +11. `npm test`, then `npm run build:check`. + +## Validation + +- Per-province unassigned tally under 2%, asserted against the header field. +- `sum(districtCounts) + unassigned === panos.length` for every province. +- Single-child provinces: `unassigned === 0`. +- Panoramas assigned to leaf L are inside L's boundary, sampled at the existing + ~200-point stride. +- The two containment assertions in `tests/pano-index.test.js` pass **unweakened** + after the re-clip. +- `countPanos('VN')` equals the sum of the five provinces — and does not + double-count, verified by asserting `PANO_INDEXES` has exactly five keys. +- 200 draws at `VN` hit at least four distinct provinces. +- 100 draws at a leaf all report that leaf as `regionCode`. +- A `VN` draw's `regionCode` is a leaf code, never `'VN'`. +- `fetchCityPanorama` returns the `regionCode` of the attempt that succeeded: + force attempt 1 to fail and assert the reported leaf matches attempt 2's + candidate. +- Pool exhaustion returns `{success: false}`, not a thrown error. +- `src/data/panos/` grows by less than 3.5 MB. + +## Risk Assessment + +**Gaps between simplified district outlines strand panoramas.** *Signal:* +unassigned above 2%. *Response:* tighten Phase 1's leaf tolerance and re-run — +free, no network. Residual strays fall back to the nearest leaf centroid rather +than staying province-only. + +**Point-in-polygon is slower than estimated.** *Signal:* the Ha Noi pass exceeds +~10 minutes. *Response:* a coarse grid index over leaf bboxes. Build-time only, +no runtime effect. + +**The re-clip drops more panoramas than expected.** *Signal:* a province's count +falls by more than a few percent. *Response:* that is the HN union changing +shape; inspect whether the union is missing a district before accepting the loss. + +**A leaf passes the threshold but is still one street.** *Signal:* `districtCells` +between 3 and 10. *Response:* the `thin` flag exists for exactly this; Phase 5 +labels it rather than hiding it. + +**`build-pano-index.mjs` is run argument-less and resurrects the old files.** +*Signal:* `PANO_INDEXES` gains `DL`/`DH` keys. *Response:* the barrel guard +rejects unknown province filenames; the five-key assertion catches it in tests. + +## Success Criteria + +- [ ] All five province indexes carry `districts`, `districtCounts`, `districtCells`, `unassigned`, and per-entry `d` +- [ ] Unassigned under 2% per province; zero for single-child provinces +- [ ] The re-clip pass ran and the containment assertions pass unweakened +- [ ] Zero new Mapillary requests +- [ ] `pickRandomPano` works at leaf, province, and country level and reports the resolving leaf +- [ ] `fetchCityPanorama` propagates the **winning** attempt's leaf +- [ ] A `VN` draw is province-uniform, not panorama-uniform +- [ ] `playableRegions()` gates on distinct cells and panorama count, not `count > 0` +- [ ] `PANO_INDEXES` has exactly five keys +- [ ] `src/data/regions/counts.js` generated +- [ ] `src/data/panos/` growth under 3.5 MB +- [ ] `npm test` and `npm run build:check` pass diff --git a/plans/260830-1345-nested-region-tree/phase-03-leaderboard-fan-out-and-migration.md b/plans/260830-1345-nested-region-tree/phase-03-leaderboard-fan-out-and-migration.md new file mode 100644 index 0000000..46881c3 --- /dev/null +++ b/plans/260830-1345-nested-region-tree/phase-03-leaderboard-fan-out-and-migration.md @@ -0,0 +1,268 @@ +--- +phase: 3 +title: "Leaderboard fan-out and migration" +status: todo +priority: P1 +effort: "1.5d" +dependencies: [1] +--- + +# Phase 3: Leaderboard fan-out and migration + +## Overview + +Make a single guess credit its leaf, its province, and Vietnam — without moving, +renaming, or resetting a single existing key. Then seed the two brand-new province +nodes from the children whose history they inherit. + +This is the phase where data can be lost. Two red-team findings here were about +the *recovery* story being worse than the failure it recovers from — read H2 +before writing the migration. + +## Requirements + +**Functional** +- `submitScore` and `submitDistanceRecord` write to every ancestor of the region + passed in. +- `getLeaderboard` accepts any region code, validated against the tree. +- `VN` reads and writes the existing `leaderboard:vietnam` / `distance:vietnam`. +- `leaderboard:city:ld` seeded from `:dl`, `:la` from `:dh` — score and distance. +- Every pre-existing key keeps its exact contents. + +**Non-functional** +- The migration is idempotent, defaults to dry-run, and **aborts if its export + contains zero keys**. +- It prints the resolved `KEY_PREFIX` before touching anything. +- Validation lives in the library, not only in the routes. + +## Architecture + +### C4 — Key names in this plan are *logical* + +`src/lib/upstash.js:12` states it: "every physical Upstash key carries +KEY_PREFIX". `DEFAULT_KEY_PREFIX = 'vngeoguessr:'` (`:17`), overridable by +`process.env.KEY_PREFIX` (`:34`), applied inside `pkey()` (`:40-42`). Callers +never see it. + +Every key name written in this plan is logical. The physical form is +`${KEY_PREFIX}${logical}`. A migration script that reaches past the adapter and +issues `ZRANGE leaderboard:city:dl` reads an **empty namespace**, reports zero +members, and "succeeds" having done nothing. + +### C4 — The export needs a primitive that does not exist + +The adapter exposes ten commands — `getJson`, `putJson`, `del`, `zAdd`, `zScore`, +`zRangeWithScores`, `zRank`, `zRevRank`, `zRemRangeByRank`, plus `getUpstash`. +There is **no** `scan` and no `keys`. The earlier draft made a full export the +precondition for any write while restricting `upstash.js` to "namespace comment +only" — a contradiction. + +Add `scanKeys(h, pattern)` as a real deliverable: prefix-aware, stripping the +prefix on return, mirrored in `tests/fake-upstash-redis.js` (which documents +itself as covering "nine commands" and must grow to match). + +### Why the key names do not change + +``` +leaderboard:vietnam sorted set (score) +leaderboard:city:{regionCode} sorted set (score) +distance:vietnam sorted set (distance) +distance:city:{regionCode} sorted set (distance) +``` + +Renaming `:city:` to `:region:` would read better and strand every existing key. +`getCityLeaderboardKey` becomes `getRegionLeaderboardKey`, still emitting +`leaderboard:city:`, with a comment recording why the segment +says `city`. `VN` special-cases to the two legacy country keys. + +| Node | Score key (logical) | Distance key (logical) | +|---|---|---| +| `VN` | `leaderboard:vietnam` | `distance:vietnam` | +| `TPHCM` | `leaderboard:city:tphcm` | `distance:city:tphcm` | +| `TPHCM-Q7` | `leaderboard:city:tphcm-q7` | `distance:city:tphcm-q7` | +| `LD` | `leaderboard:city:ld` | `distance:city:ld` | +| `DL` | `leaderboard:city:dl` | `distance:city:dl` | + +67 nodes × 2 = 134 sorted sets at full occupancy, each capped at 200 entries. + +### Fan-out + +```js +export async function submitScore(username, score, regionCode) { + const chain = ancestorsOf(regionCode); // ['TPHCM-Q7','TPHCM','VN'] + // read every current total, add, write back, trim — as today, per level +} +``` + +**C6 — validate in the library.** `getCityLeaderboardKey` currently +string-concatenates a lowercased caller value (`leaderboard.js:19-21`) and +`/api/leaderboard` passes `searchParams.get('city')` straight through +(`leaderboard/route.js:7-12`). Route-level validation is not enough: the +migration script and every future caller bypass routes. Validate `regionCode` +against `REGIONS` **inside** `submitScore`, `submitDistanceRecord`, and +`getLeaderboard`, and throw on an unknown code rather than creating a key for a +typo. Clamp `limit` to `[1, 200]` (today `parseInt(...) || 100` accepts `-1`, +which reaches `zRangeWithScores(h, key, 0, -2)`). + +Return shape becomes a `levels` array plus named aliases: + +```js +{ + success: true, + levels: [ + { code: 'TPHCM-Q7', name: 'District 7', score: 12, rank: 4 }, + { code: 'TPHCM', name: 'Ho Chi Minh', score: 88, rank: 11 }, + { code: 'VN', name: 'Vietnam', score: 402, rank: 37 }, + ], + district: { ... }, province: { ... }, global: { ... }, +} +``` + +`global` keeps its current meaning so `GameClient`'s existing handling survives +until Phase 5. + +For distances, generate the entry id `username:distance:timestamp` **once** and +write the same id to all three levels, so a record is identifiable across them. + +### H1 — The guess handler is not idempotent, and the earlier claim was false + +The earlier draft said "the three writes already run under `Promise.all`; a +rejection surfaces as a 500 and the guess is not silently half-recorded". Both +halves are wrong. `Promise.all` does not roll back — resolved writes are +committed. And `/api/guess` runs `submitScore` (`:65`), then +`submitDistanceRecord` (`:68`), and deletes the session only at `:83`. A failure +in the second leaves the score written *and* the session replayable for up to 30 +minutes, so a retry double-credits all three levels. + +Fan-out widens this from 2 keys to 6. Phase 4 owns the fix (consume the session +before the writes); this phase owns deleting the false claim and adding the +matching test. + +**Not fixed here, recorded:** `submitScore` reads with `zScore` then writes with +`zAdd` rather than `ZINCRBY`, so concurrent guesses by one player can lose an +increment. Pre-existing. Fixing it means adding `zIncrBy` to the adapter — a +clean, separable follow-up, as is pipelining the now-21 REST round trips per +guess. + +### H2 — Migration: ordering, replacement, and a recovery story that destroyed data + +Three corrections to the earlier draft. + +**Ordering is now pinned: deploy the fan-out first, then migrate.** The earlier +draft left it undefined. Migrating first opens a window where Da Lat guesses +credit `:dl` and `leaderboard:vietnam` but not `:ld`, permanently shorting the +new province — and the script was documented as one-off, so nothing re-runs. +Deploying first is safe because a pre-migration `:ld` only accumulates a subset +of `:dl`'s deltas, which the copy then overwrites. + +**Copy is not replace.** Writing each source member into the destination leaves +any destination-only member behind with a stale score — reachable because the +200-cap (`leaderboard.js:16,115-116`) can trim a player out of `:dl` while they +persist in `:ld`. The script `DEL`s the destination inside the same run before +copying. + +**The reconciliation suggestion is deleted.** The earlier draft offered "a +reconciliation script can rebuild a province from its children later". That +directly contradicts this plan's own Key Decision and Goal 3: province sets hold +legacy history with *no* corresponding district entries, so rebuilding from +children **deletes every point earned before this change**. If drift is ever +reconciled, the formula is `province = legacy baseline snapshot + sum(children)`, +and `migrate-leaderboards.mjs` must capture that baseline snapshot as a committed +artefact. + +`scripts/migrate-leaderboards.mjs`: + +1. Print the resolved `KEY_PREFIX`. Export every `leaderboard:*` and `distance:*` + key via `scanKeys`, with members and scores, to a timestamped JSON file. + **Abort if the export contains zero keys** — an empty export is a wrong-prefix + symptom, not a clean slate. +2. Write the legacy baseline snapshot for `HN`, `DN`, `TPHCM` alongside it. +3. `DEL` destination, then copy `:dl` → `:ld` and `:dh` → `:la` with **absolute + scores**, score and distance both. +4. Report per-key member counts before and after. Abort if either source is empty. +5. `--dry-run` is the default; `--apply` is explicit; `--confirm-prefix=` + is required so a wrong-namespace run is impossible. + +Only `LD` and `LA` are seeded. `HN`, `DN`, and `TPHCM` keep their history where +it is. + +## Related Code Files + +- Modify: `src/lib/leaderboard.js` — fan-out, `VN` mapping, library-level validation, return shape +- Modify: `src/lib/upstash.js` — add `scanKeys`; update the namespace comment +- Modify: `tests/fake-upstash-redis.js` — mirror `scanKeys` +- Create: `scripts/migrate-leaderboards.mjs` +- Modify: `tests/leaderboard.test.js` + +## Implementation Steps + +1. Add `scanKeys(h, pattern)` to the adapter and the fake. +2. Replace the key helpers with region-aware versions; special-case `VN`. + Comment why the key segment still reads `city`. +3. Rewrite `submitScore` to resolve `ancestorsOf(regionCode)` and apply the + existing read-add-write-trim per level. Validate the code against `REGIONS` + first. +4. Same for `submitDistanceRecord`, generating the entry id once. +5. Extend `getLeaderboard` to any validated code; clamp `limit` to `[1, 200]`. +6. Delete the false `Promise.all` claim from the risk notes; add the + replay/double-credit test. +7. Write `scripts/migrate-leaderboards.mjs` per H2. +8. Extend `tests/leaderboard.test.js`. +9. `npm test`, then `npm run test:integration` (`npm run redis:up` first) — this + phase touches persistence, so the fake alone is not enough. + +## Validation + +- A guess at `TPHCM-Q7` worth 3 points raises `leaderboard:city:tphcm-q7`, + `:tphcm`, and `leaderboard:vietnam` by exactly 3 each. +- A guess at `DL` raises `:dl`, `:ld`, and `leaderboard:vietnam`. +- A province-level guess on an unassigned panorama raises two levels, not three. +- `getLeaderboard('VN')` and `getLeaderboard(null)` return the same rows. +- Unknown region code throws from the **library**, not just the route; no key created. +- `limit=-1` and `limit=99999` both clamp. +- Migration with a wrong `--confirm-prefix` refuses to run. +- Migration against an empty namespace aborts instead of reporting success. +- Dry-run writes nothing and reports the intended copies. +- Applied twice, scores are identical; a destination-only orphan is removed. +- Every key present before the migration is present after with identical members + and scores — diff the export against a fresh export. +- A replayed guess (session still alive) does not double-credit. + +## Risk Assessment + +**The migration runs against the wrong namespace.** *Signal:* the export is empty +or the printed prefix is unexpected. *Response:* the zero-key abort and +`--confirm-prefix` make this impossible to do silently. This was the most likely +way to lose data and now fails closed. + +**The migration corrupts live leaderboards.** *Signal:* post-run export differs +outside the four seeded keys. *Response:* the export is the rollback; restore +from it. Never `--apply` without a successful non-empty export in the same run. + +**Someone reconciles a province from its children.** *Signal:* a proposal to +"rebuild `:tphcm` from its 22 districts". *Response:* that deletes all pre-change +history. Only `legacy baseline + sum(children)` is valid, and the baseline is the +artefact step 2 commits. + +**Fan-out partially fails.** *Signal:* a 500 from `/api/guess` with some levels +written. *Response:* Phase 4 consumes the session before writing, so a retry +cannot double-credit. Residual single-level drift is accepted; leaf totals are +the finer-grained record. + +**Trimming interacts with three levels.** A player visible on their district board +may be absent from the country board once it exceeds 200. Correct behaviour — it +already happens between city and global today. Recorded so it is not mistaken for +a fan-out bug. + +## Success Criteria + +- [ ] One guess writes all ancestor levels, score and distance both +- [ ] `VN` maps to `leaderboard:vietnam` / `distance:vietnam` +- [ ] `scanKeys` exists in both the adapter and the fake +- [ ] Region codes and `limit` are validated inside the library +- [ ] `leaderboard:city:ld` equals `:dl`, and `:la` equals `:dh` +- [ ] Every pre-existing key is unchanged after the migration +- [ ] The migration prints its prefix, aborts on an empty export, requires `--confirm-prefix`, and `DEL`s before copying +- [ ] The legacy baseline snapshot for HN/DN/TPHCM is committed +- [ ] Migration ordering is documented as deploy-then-migrate +- [ ] `npm test` and `npm run test:integration` pass diff --git a/plans/260830-1345-nested-region-tree/phase-04-api-surface.md b/plans/260830-1345-nested-region-tree/phase-04-api-surface.md new file mode 100644 index 0000000..08445ef --- /dev/null +++ b/plans/260830-1345-nested-region-tree/phase-04-api-surface.md @@ -0,0 +1,214 @@ +--- +phase: 4 +title: "API surface" +status: todo +priority: P1 +effort: "0.75d" +dependencies: [2, 3] +--- + +# Phase 4: API surface + +## Overview + +Carry the region tree through the route handlers. The session becomes the place +where "what the player picked" and "where the panorama actually is" are both +recorded — the second is what scoring fans out from, and **neither the client nor +any response may see it before the guess**. + +No `/api/regions` route: the tree and its counts are two small generated files +the client imports directly (H5). + +## Requirements + +**Functional** +- `/api/new-game` accepts any playable region code and stores both the picked + region and the resolved leaf. +- `/api/guess` fans out from the session's resolved leaf, never from client input. +- `/api/leaderboard` serves any validated region code. +- `/api/debug/city-coverage` serves any region with a boundary. +- The session is consumed before the leaderboard writes, so a retry cannot + double-credit (H1). + +**Non-functional** +- `?city=` keeps working everywhere it works today. `/game?location=HN` and + `?location=DL` must not break. +- `session.regionCode` joins `exactLocation` on the never-serialized list. + +## Architecture + +### Session shape + +```js +{ + sessionId, + pickedRegion: 'TPHCM', // what the player chose — safe to echo + regionCode: 'TPHCM-Q7', // SECRET: where the panorama is + exactLocation: { lat, lng },// SECRET + imageId, + scored: false, + createdAt, +} +``` + +`cityCode` is gone. Sessions live 30 minutes, so a deploy strands at most half an +hour of in-flight games: `/api/guess` reads `session.regionCode ?? session.cityCode` +so an old session still scores, at province level, instead of throwing. Remove +that fallback in a later release, and cover it with a test using a hand-crafted +old-shape session so it is not silently dropped. + +### C6 — Two secrets, not one + +The earlier draft guarded only `exactLocation`. `session.regionCode` names the +district the panorama is in; leaking it collapses a `VN` game from ~330,000 km² +to one district — reliably inside the 1 km band, often inside 200 m. + +Two concrete leak paths, both closed here: + +1. **`POST /api/new-game`** (the session-lookup path) returns + `{ sessionId, cityCode, createdAt }` today (`new-game/route.js:111-119`). The + mechanical rename `cityCode` → `regionCode` publishes the answer. It returns + **`pickedRegion` only**. +2. **The GET response's `region` block.** It carries `pickedRegion`'s code, name, + and ancestor path — never the resolved leaf. For a `VN` game the path is + `['Vietnam']`, not `['Vietnam','Ho Chi Minh','District 7']`. + +Both get an explicit test: no response body before the guess may contain the +value of `session.regionCode`. + +### `/api/new-game` + +``` +GET /api/new-game?region=TPHCM-Q7[&sessionId=] +GET /api/new-game?city=TPHCM # still accepted +``` + +Resolve through the tree, reject an unknown or non-playable code with 400, draw +via `fetchCityPanorama(code)` — which after Phase 2 returns the winning +candidate's `regionCode` — and store both values. + +### C2 — the draw path + +`/api/new-game` does not call `pickRandomPano`; `src/lib/mapillary.js` does, and +Phase 2 is where it starts propagating the leaf. This phase only consumes it. If +`imageResult.data.regionCode` is absent, that is a Phase 2 regression — fail loudly +rather than defaulting to the picked region, which would silently empty every +district board. + +### `/api/guess` — H1 + +Order changes. Today: `submitScore` (`:65`) → `submitDistanceRecord` (`:68`) → +`deleteGameSession` (`:83`). A failure in the second leaves the score written and +the session replayable. + +New order: mark the session consumed (or delete it) **first**, then write. A +replay finds no live session and is rejected. Losing a guess to a mid-write +failure is strictly better than double-crediting six keys. + +The response's `gameResult` grows from two ranks to Phase 3's `levels` array, +keeping `globalRank` as an alias until Phase 5. + +### `/api/leaderboard` + +``` +GET /api/leaderboard?region=TPHCM-Q7&type=score&limit=100 +GET /api/leaderboard?city=TPHCM # still accepted +GET /api/leaderboard # country +``` + +Validate against the tree and 400 on an unknown code — today an unknown value +silently returns an empty board, indistinguishable from a real empty one. Phase 3 +also validates inside the library, since the route is not the only caller. + +### H5 — no `/api/regions` + +The earlier draft added a route so the client could get per-leaf counts. Its own +justification conceded the tree is safe to bundle, and Phase 1's reason for +withholding counts (two writers on one file) dissolved once Phase 2 emits a +separate `src/data/regions/counts.js`. + +So: the client imports `src/lib/regions.js`, which imports the two generated +region files and nothing else. No route, no fetch, no loading state, no cache — +and the home page keeps rendering its picker on first paint, as it does today +from `cities` (`page.js:14`). + +### `/api/debug/city-coverage` + +Accept `?region=`, keep `?city=`. A leaf serves its own boundary and panoramas; a +province serves the union and all of them. Viewport filtering, even sampling, and +boundary-once behaviour unchanged. Rename the directory to `region-coverage` and +update the single caller (`src/app/debug/coverage/page.js:59`). + +## Related Code Files + +- Modify: `src/app/api/new-game/route.js` +- Modify: `src/app/api/guess/route.js` +- Modify: `src/app/api/leaderboard/route.js` +- Modify: `src/app/api/debug/city-coverage/route.js` → `.../debug/region-coverage/route.js` +- Modify: `src/lib/session.js` — JSDoc only; the store is shape-agnostic +- Modify: `tests/session.test.js` — fixtures use `regionCode` / `pickedRegion` + +## Implementation Steps + +1. Add a shared `resolvePlayableRegion(searchParams)` helper: read `region`, fall + back to `city`, uppercase, validate against the tree and `playableRegions()`, + return the node or a 400-shaped error. Use it in all four routes. +2. Update `/api/new-game` GET: draw, store `pickedRegion` + `regionCode`, return + the `region` block built from `pickedRegion` only. +3. Update `/api/new-game` POST: return `pickedRegion`, never `regionCode`. +4. Update `/api/guess`: consume the session first, then fan out from + `session.regionCode ?? session.cityCode`; widen `gameResult` with `levels`. +5. Update `/api/leaderboard`: validated region, 400 on unknown. +6. Rename the coverage route directory; update its one caller. +7. Update `tests/session.test.js` fixtures; add the old-shape-session test. +8. `npm test`, then `npm run build:check`. + +## Validation + +- `GET /api/new-game?region=TPHCM-Q7` stores `regionCode: 'TPHCM-Q7'`. +- `GET /api/new-game?region=VN` succeeds; the stored `regionCode` is a **leaf**, + and the response body contains it **nowhere**. +- `POST /api/new-game` with a `VN` session returns no leaf code and no + `exactLocation`. +- `GET /api/new-game?city=HN` behaves as before. +- `GET /api/new-game?region=NOPE` and `?region=` return 400, + not 500, naming the region. +- A guess against a `VN` session credits three server-chosen levels. +- Posting a mismatched region in the guess body changes nothing about which keys + move — the anti-cheat property the design rests on. +- A replayed guess after a mid-write failure does not double-credit. +- An old-shape session (`cityCode`, no `regionCode`) still scores at province level. +- `GET /api/leaderboard?region=VN` matches `GET /api/leaderboard`. +- No route imports `src/lib/pano-index.js` into anything a client component reaches. + +## Risk Assessment + +**A pre-guess response leaks the leaf.** *Signal:* any response body containing +`session.regionCode`. *Response:* the explicit test above runs against both +`/api/new-game` verbs. This is the highest-value test in the phase. + +**In-flight sessions break across deploy.** *Signal:* `/api/guess` 500s on +sessions created before the deploy. *Response:* the `?? session.cityCode` +fallback, covered by a test so it survives refactors. + +**Consuming the session first loses a guess on a write failure.** *Signal:* a +player reports a scored round that did not count. *Response:* accepted trade — +one lost guess beats six double-credited keys. The 500 is visible to the player. + +**Renaming the coverage route breaks the debug page.** *Signal:* 404 on +`/debug/coverage`. *Response:* one caller at `page.js:59`; update in the same +commit. Note that `src/app/debug/coverage/page.js` could not be read during +planning (a context hook denies paths matching `coverage`), so confirm its +contents at implementation time rather than trusting this description. + +## Success Criteria + +- [ ] All four routes accept region codes at any level +- [ ] `?city=` still works everywhere it works today +- [ ] The session stores both the picked region and the resolved leaf +- [ ] No pre-guess response exposes `regionCode` or `exactLocation` +- [ ] Scoring reads the region from the session, never from the request +- [ ] The session is consumed before the leaderboard writes +- [ ] Unknown or non-playable codes return 400 with a useful message +- [ ] No `/api/regions` route exists; the client imports the generated tree +- [ ] `npm test` and `npm run build:check` pass diff --git a/plans/260830-1345-nested-region-tree/phase-05-ui-region-navigation.md b/plans/260830-1345-nested-region-tree/phase-05-ui-region-navigation.md new file mode 100644 index 0000000..946d729 --- /dev/null +++ b/plans/260830-1345-nested-region-tree/phase-05-ui-region-navigation.md @@ -0,0 +1,216 @@ +--- +phase: 5 +title: "UI region navigation" +status: todo +priority: P1 +effort: "1.5-2d" +dependencies: [4] +--- + +# Phase 5: UI region navigation + +## Overview + +A flat list of five cards and five leaderboard tabs does not survive 67 nodes. +Both need to become navigable, and the leaderboard modal has to stop fetching +everything at once — at 67 nodes that is 134 requests on one click. + +## Dependency change — apply manually + +`src/components/ui/` holds nine primitives: `alert`, `badge`, `button`, `card`, +`dialog`, `input`, `label`, `skeleton`, `tabs`. There is no accordion and no +select, and `package.json` carries only `@radix-ui/react-dialog`, `react-label`, +`react-slot`, `react-tabs`. + +**Add to `package.json`:** + +``` +@radix-ui/react-accordion +@radix-ui/react-select +``` + +Per `docs/development.md`, configuration changes are flagged for manual +processing — this phase cannot start until they are installed. The alternative +(hand-rolling an accessible accordion and a grouped listbox with roving focus and +`aria-expanded`) was rejected: the realistic outcome is `div`-based toggles with +broken keyboard support, verified only by eye. + +Generate the shadcn wrappers into `src/components/ui/accordion.jsx` and +`select.jsx` so they match the existing vocabulary. + +## Requirements + +**Functional** +- Pick any node to play: Vietnam, a province, or a leaf. +- Leaderboards browsable at every level. +- A result shows all three credited levels. +- The game header shows what the player picked; the result reveals where the + panorama actually was. +- Lam Dong and Long An show their partial-coverage label. +- Sub-threshold leaves are visible but not playable; `thin` leaves are labelled. + +**Non-functional** +- The leaderboard modal fetches only the node being viewed — 2 requests, not 134. +- No horizontal scrolling on mobile. `TabsList` currently uses + `repeat(cities.length + 1, ...)` (`page.js:246`), unusable at 67 columns. +- The region tree is imported, not fetched (Phase 4 removed `/api/regions`). + +## Architecture + +### Region picker (home page) + +A two-level accordion, one row per province: + +``` +┌────────────────────────────────────────────┐ +│ Play anywhere in Vietnam 424,691 › │ ← country CTA, always first +├────────────────────────────────────────────┤ +│ Ha Noi 30 districts ⌄ │ +│ Ho Chi Minh 22 districts ⌄ │ +│ Da Nang 7 districts ⌄ │ +│ Lam Dong partial · 1 town ⌄ │ +│ Long An partial · 1 town ⌄ │ +└────────────────────────────────────────────┘ + expanded ⌄ + ├─ Play anywhere in Ha Noi › + ├─ Ba Dinh 4,102 › + ├─ Hoan Kiem thin 1,880 › + ├─ My Duc no coverage ← disabled + └─ … +``` + +The province row plays the whole province; only the chevron expands. Counts and +playability come from `src/data/regions/counts.js` via `src/lib/regions.js` — a +static import, no network. + +Links become `/game?region=`; `?location=` keeps working. + +**Vietnam scores zero.** The user accepted this: `calculateScore` returns 0 above +1 km and the covered provinces span ~1,100 km. It ships as an exploration mode. +Do not add a per-level band scale, and do not quietly demote the CTA — but the +label should set expectations rather than promise points. + +### Leaderboard modal + +Tabs stop being one-per-node. Two controls: + +- A **level** row: `Vietnam` · `Province` · `District` +- A **region select** (Radix Select) listing nodes at that level, grouped by + parent for districts + +`score`/`distance` stays as the existing vertical toggle. Fetch on selection +change, keyed `${region}-${type}` into the existing `leaderboards` state. The +`fetchIdRef` guard (`page.js:32,50,75,83`) carries over unchanged — it is exactly +the guard a per-selection fetch needs. + +`fetchAllLeaderboards` (`page.js:49,91`) is deleted. Eager fetching was only ever +viable at five cities. + +Clear the cache when the modal **opens**, keeping it only for within-session tab +switching, so a player who just scored does not see a stale board. + +### Game screen + +`GameClient` reads `cityNames[location]` in five places (`:388, 412, 557, 576, +594`) plus `CITIES[location]?.bbox` (`:463`) and `cityCenters` (`:102`). Replace +with `regionPath(code)` from `src/lib/regions.js` — one helper, called from all +three render sites, not string-built at each. + +- Header while guessing: what the player picked — `Ho Chi Minh`, or + `Vietnam · anywhere`. +- Result modal: where it actually was — `Vietnam › Ho Chi Minh › District 7`. + This is the interesting reveal for province and country games, and it is only + safe **after** the guess (Phase 4 keeps it out of every pre-guess response). +- Rank rows: one per credited level from `levels`, replacing the hardcoded + global/city pair (`:45-50, 189-192, 559, 566, 574-583`). + +The map fits the picked region's bbox, so a district game opens zoomed to the +district — a real gameplay improvement that falls out of the tree. + +### Debug coverage page + +Its `cities` dropdown becomes the same level + region select pair, and its fetch +moves to `/api/debug/region-coverage?region=`. + +**Caveat:** `src/app/debug/coverage/page.js` could not be read during planning or +by any red-team reviewer — a context hook denies paths matching `coverage`. Only +two touch points are grep-confirmed: the `cities` import (`:10`) and the fetch +URL (`:59`). Open the file first and adjust this section to what is actually there. + +## Related Code Files + +- Modify: `package.json` — two Radix packages (**manual**) +- Create: `src/components/ui/accordion.jsx`, `src/components/ui/select.jsx` +- Modify: `src/app/page.js` — region picker, lazy leaderboard modal +- Create: `src/app/components/RegionPicker.js` +- Create: `src/app/components/RegionSelect.js` — shared by the modal and debug page +- Modify: `src/app/components/GameClient.js` — region path, per-level ranks, bbox +- Modify: `src/app/debug/coverage/page.js` — region select, `?region=` fetch + +## Implementation Steps + +1. Confirm the two Radix packages are installed; generate the shadcn wrappers. +2. Read `src/app/debug/coverage/page.js` and reconcile this phase's description. +3. Build `RegionSelect` first — level row plus grouped select — since the modal + and the debug page both consume it. +4. Build `RegionPicker`: province row plays, chevron expands, counts from the + generated file, disabled state for sub-threshold leaves, `thin` label. +5. Replace the home page's card grid; delete `fetchAllLeaderboards`; add + `fetchLeaderboard(region, type)` keyed into the existing cache; clear on open. +6. Rewrite the modal's `Tabs` block around `RegionSelect`. +7. Update `GameClient`: accept `?region=` with `?location=` fallback, render the + path via `regionPath`, render `levels` as rank rows, use the picked bbox. +8. Update the debug coverage page. +9. Check every screen at 375 px. The old `TabsList` grid must be gone. +10. `npm run lint`, `npm test`, `npm run build:check`. + +## Validation + +- Vietnam, each province, and a sample of leaves are reachable in at most two + clicks. +- Opening the leaderboard modal issues 2 requests, not 134. +- Switching region or type issues 2 more; revisiting a pair within the session + issues none; reopening the modal refetches. +- The home page renders its picker on first paint with no network request for the + tree. +- A game started at `VN` shows the full three-level path **in the result**, and + nothing identifying the district before the guess. +- A game started at a leaf opens the map zoomed to that leaf. +- A sub-threshold leaf renders disabled and cannot be clicked through to `/game`. +- `thin` leaves carry a label. +- Lam Dong and Long An show their partial-coverage label. +- `/game?location=HN` and `/game?location=DL` both load. +- No horizontal scroll at 375 px on the home page, the modal, or the game screen. +- Keyboard: the accordion and select are operable without a mouse. + +## Risk Assessment + +**The accordion buries districts.** *Signal:* reaching a district takes more than +two clicks, or the province row's play action reads ambiguously against its +expand control. *Response:* split into an explicit `Play` pill plus a district +count button, matching the existing card's `Play →` affordance. + +**Stale leaderboards after a guess.** *Signal:* a player returns to the home page +and sees their old total. *Response:* clear the cache on modal open — correctness +beats one saved request. + +**The debug page description is wrong.** It was written from two grep hits +because no agent in this workflow could read the file. *Signal:* step 2 finds +something else. *Response:* adjust this phase, do not force the file to match it. + +**Manual UI verification is the user's.** Per the repo's guidelines the agent runs +`npm test` and reports; the user drives the browser. *Response:* finish with an +explicit list of screens and breakpoints to check. + +## Success Criteria + +- [ ] The two Radix packages are installed and wrapped +- [ ] Every node is reachable and playable from the home page +- [ ] Leaderboards browse by level and region, fetching only what is shown +- [ ] The result screen shows all three credited levels +- [ ] The result reveals the actual district; nothing before the guess does +- [ ] Sub-threshold leaves are visible but disabled; `thin` leaves labelled +- [ ] Partial-coverage provinces are labelled +- [ ] `?location=` URLs still work, including `DL` +- [ ] No horizontal scroll at 375 px; accordion and select are keyboard-operable +- [ ] `npm run lint`, `npm test`, and `npm run build:check` pass diff --git a/plans/260830-1345-nested-region-tree/phase-06-docs-and-verification.md b/plans/260830-1345-nested-region-tree/phase-06-docs-and-verification.md new file mode 100644 index 0000000..269764d --- /dev/null +++ b/plans/260830-1345-nested-region-tree/phase-06-docs-and-verification.md @@ -0,0 +1,171 @@ +--- +phase: 6 +title: "Docs and verification" +status: todo +priority: P2 +effort: "0.5d" +dependencies: [5] +--- + +# Phase 6: Docs and verification + +## Overview + +Reconcile the documentation with what the code now does, write the coverage note, +sweep for leftover vocabulary, and run the full gate. + +The docs in `/docs/` are the project's stated authority — `CLAUDE.md` points at +them first — and every one currently describes a five-city flat model. +`docs/features.md` is worse than stale: it documents a "Dart-throw Strategy" and +per-city delta tuning that `src/lib/pano-index.js` replaced entirely. + +## Requirements + +- The coverage note is written and classifies absent coverage into its three causes. +- Every `/docs/` claim about cities, leaderboards, or the pipeline matches the code. +- No stale `city`-as-a-model vocabulary outside the Redis key names, which stay + `city` on purpose. +- The full gate passes: lint, unit tests, integration tests, build check. + +## The coverage note + +Canonical location: `docs/project-overview.md`. This is the deliverable the user +asked for, and its value is the *classification* — a note that only says +"coverage is partial" teaches maintainers to ignore real gaps. + +> ## Coverage +> +> Five provinces — Ha Noi, Ho Chi Minh, Da Nang, Lam Dong, Long An — split into +> 61 districts and towns. Coverage is deliberately partial and will grow in +> future releases. **None are planned at present.** +> +> Absent coverage has three distinct causes. Only one is a defect: +> +> **Not yet added** — any province outside the five. Roadmap, not a bug. Adding +> one is an entry in `scripts/build-region-boundaries.mjs`, a boundary build, a +> panorama index build, and a district assignment run. No application code +> changes. +> +> **No street imagery** — a district inside a covered province where Mapillary +> holds no panoramas, typically rural. The tree lists it; `playableRegions()` +> excludes it from play. Expected, and it may resolve on its own: re-running the +> panorama index build picks up new Mapillary coverage. +> +> **Missing from the boundary** — a district whose OpenStreetMap lookup did not +> resolve, so it never entered the province union and its panoramas were clipped +> away. Cu Chi in Ho Chi Minh City is the known case (`"missingParts": 1` in +> `src/data/boundaries/tphcm.json`). Fixable: resolve the query, rebuild the +> boundary, re-run that province's panorama index. It costs Mapillary tile +> requests against a 50,000/day cap, which is why it is not done automatically. +> +> Before treating an empty district as a bug, check `missingParts` in its +> province's boundary file — that distinguishes the third case from the first two. + +Naming Cu Chi explicitly is deliberate: an unnamed "known case" becomes a mystery +in six months. Cross-check the `missingParts` value at write time — Phase 1 may +have added unresolved leaves beyond Cu Chi. + +Add a one-line pointer in `scripts/build-region-boundaries.mjs`'s `REGIONS` +config so a reader arriving from the code finds the note. + +## Docs impact + +| File | Change | +|---|---| +| `docs/project-overview.md` | "5 major cities" → the tree. The coverage note. Replace "Triple-Leaderboard System" with the rollup model. Note the pre-2025 basis | +| `docs/features.md` | **Rewrite Location Coverage and Street View System** — the dart-throw and per-city delta content is obsolete. Add the fan-out: one guess credits leaf, province, country. Record that `VN` is an exploration mode that scores 0 | +| `docs/game-flow.md` | Selection is country/province/district; the round reveals the resolving district | +| `docs/project-structure.md` | `src/data/regions/`, renamed and new scripts, `src/lib/regions.js`, `scripts/lib/`, the renamed coverage route | +| `docs/development.md` | Build sequence: boundaries → panorama index → district assignment. The migration, its dry-run default, and deploy-then-migrate ordering. The two new Radix dependencies | +| `CLAUDE.md` | Quick Reference only if a command name changed | + +Link to scripts rather than restating their flags — they carry header comments, +and duplicating them guarantees drift. + +## Stale-vocabulary sweep + +Corrected against actual grep results; the earlier draft's expectations were +wrong in two rows. + +| Pattern | Expected outcome | +|---|---| +| `build-city-boundaries` | Zero hits. Real reference set is 5 sites: `scripts/build-city-boundaries.mjs:9,197`, `scripts/build-pano-index.mjs:12,160`, `src/data/boundaries/index.js:1`. **Not in `docs/`** — the earlier claim was false | +| `city-coverage` | Zero hits outside git history. One caller: `src/app/debug/coverage/page.js:59` | +| `cityCode` | Only in `src/lib/upstash.js`'s namespace comment and the `/api/guess` legacy-session fallback | +| `CITIES` | Only as the derived back-compat export in `src/lib/game.js`, or gone if Phase 5 removed the last consumer | +| `cityNames`, `cityCenters`, `cities` | Consumers migrated; delete any export with no caller | +| `cityBboxes` | **Already dead** — `src/lib/game.js:64` is the only site. Delete it | +| `indexedCities` | **Already dead** — `src/lib/pano-index.js:58` is the only site. Delete it, or keep it if Phase 1's test now uses it | +| `5 cities`, `five cities`, `major cities` | Zero hits in `docs/`. Only genuine hit today is `docs/project-overview.md:3` | +| `Dart-throw`, `delta` | Zero hits — obsolete strategy still documented in `docs/features.md` | +| `leaderboard:city:` | Present and **correct** — do not rename | +| `/api/regions` | Zero hits — the route was removed during red-team | + +Deleting the back-compat exports is the point of the sweep. They exist so phases +1-4 could land without breaking the UI; once Phase 5 is in, leaving them is dead +code that invites new callers back onto the flat model. + +## Related Code Files + +- Modify: `docs/project-overview.md`, `docs/features.md`, `docs/game-flow.md`, + `docs/project-structure.md`, `docs/development.md` +- Modify: `CLAUDE.md` (only if a command name changed) +- Modify: `scripts/build-region-boundaries.mjs` — pointer comment +- Modify: any file surfaced by the sweep + +## Implementation Steps + +1. Read each doc before editing, then reconcile against the **shipped code** — + not against this plan, which is a record of intent and may have been amended + during execution. +2. Write the coverage note; verify its `missingParts` claim against the actual + boundary files. +3. Run the sweep table top to bottom. +4. Delete back-compat and dead exports. +5. Whole-plan consistency check: re-read `plan.md` and phases 1-5, reconcile + anything execution changed. +6. Full gate: `npm run lint`, `npm test`, `npm run test:integration` + (`npm run redis:up` first), `npm run build:check`. +7. Verify each of `plan.md`'s success criteria against live state, with evidence + — a command, a key, or a screen. Not against the phase checkboxes. +8. `npm run redis:down`. + +## Validation + +- The coverage note names all three causes and the current `missingParts` reality. +- Every sweep pattern lands on its expected outcome. +- Every `/docs/` statement about coverage, scoring, or the pipeline is true of the + shipped code — in particular `docs/features.md` no longer describes dart-throw. +- All four gate commands exit 0. +- Every `plan.md` success criterion verified against live state, with evidence. +- No background processes left running. + +## Risk Assessment + +**Docs get updated from the plan rather than the code.** The plan states intent +written before implementation; anything the phases amended would be copied in as +a false claim. *Signal:* a doc statement no grep or command can confirm. +*Response:* step 1 makes code the source; every claim needs a citable file or +command. + +**Back-compat exports get left in "just in case".** *Signal:* `cityNames` still +exported with zero callers. *Response:* delete. Git history is the safety net. + +**The coverage note drifts.** It is prose, and `docs/features.md` proves prose +drifts here. *Signal:* a future maintainer adds a province and the note still says +five. *Response:* the note leans on `missingParts` and the generated tree for its +specifics; keep counts out of the prose where the data already carries them. + +**The integration container stays up.** *Signal:* a Redis container still running. +*Response:* `npm run redis:down` is step 8, not an afterthought. + +## Success Criteria + +- [ ] The coverage note is written, classifies all three causes, and names Cu Chi +- [ ] All five `/docs/` files describe the region tree accurately +- [ ] `docs/features.md`'s obsolete dart-throw content is gone +- [ ] Every sweep pattern resolves to its expected outcome +- [ ] Dead and back-compat exports deleted +- [ ] `npm run lint`, `npm test`, `npm run test:integration`, `npm run build:check` all pass +- [ ] All `plan.md` success criteria verified against live state +- [ ] No background processes left running diff --git a/plans/260830-1345-nested-region-tree/plan.md b/plans/260830-1345-nested-region-tree/plan.md new file mode 100644 index 0000000..9f16c4d --- /dev/null +++ b/plans/260830-1345-nested-region-tree/plan.md @@ -0,0 +1,291 @@ +--- +title: "Nested Region Tree" +description: "Replace the flat five-city model with a country > province > district tree whose scores roll upward, preserving all existing leaderboard points." +status: pending +priority: P1 +effort: "4-6d" +tags: [data-model, leaderboard, region-tree] +created: 2026-08-30 +blockedBy: [] +blocks: [] +--- + +# Nested Region Tree + +## Overview + +Today the game knows five flat "cities" (`HN`, `DN`, `TPHCM`, `DL`, `DH`), each +with one boundary polygon, one panorama index, and one pair of leaderboards, +plus a single country-wide pair keyed `leaderboard:vietnam` / `distance:vietnam`. + +This plan replaces that with a three-level tree: + +``` +VN (Vietnam) +├── HN Ha Noi → 30 districts +├── DN Da Nang → 7 districts +├── TPHCM Ho Chi Minh → 22 districts +├── LD Lam Dong → 1 town (DL Da Lat) — partial coverage +└── LA Long An → 1 town (DH Duc Hoa) — partial coverage +``` + +A guess resolves to the **leaf** the panorama sits in, then credits that leaf, +its province, and `VN`. Every node is playable: choosing a province draws a +panorama from anywhere inside it; choosing `VN` draws from anywhere covered. + +**Administrative basis.** The repo deliberately uses **pre-2025-merger** extents +(`scripts/build-region-boundaries.mjs` header explains why: post-merger Ho Chi Minh +City spans 36,566 km² and reaches Vung Tau, which is not a guessable area against +scoring bands that top out at 1 km). This plan keeps that basis, so districts are +the pre-2025 quận/huyện/thị xã, and Duc Hoa's parent is **Long An** — not the +post-2025 Tay Ninh it was merged into. + +## Goals + +| # | Goal | Priority | +|---|------|----------| +| 1 | A single generated region tree replaces the hand-maintained `CITIES` map and the duplicated bbox/center data | P1 | +| 2 | Guessing in a district credits the district, its province, and Vietnam | P1 | +| 3 | Every existing leaderboard point survives the change, untouched | P1 | +| 4 | Any node — country, province, or leaf — is selectable and playable | P1 | +| 5 | District panorama assignment reuses the panoramas already on disk; no province is re-fetched | P1 | +| 6 | Adding a province or district later is a data edit plus a build run, not a code change | P2 | +| 7 | Absent coverage is self-describing: a maintainer can classify any empty node without asking | P2 | + +## Non-Goals + +- Adding provinces or districts beyond the five provinces already covered. The + tree makes future additions cheap; none are planned now. +- Resolving Cu Chi. It is already absent from the shipped TPHCM boundary + (`"missingParts": 1`) and therefore from its panorama index. Fixing it costs + Mapillary tile requests; the user has accepted the gap. See *Coverage note*. +- Changing the 0-5 scoring bands, the distance formula, or the 200-entry cap. +- Bonus multipliers. Lam Dong and Long An carry a *partial coverage* label only; + they score exactly like any other province. +- Post-2025 administrative boundaries. +- Fixing the pre-existing read-then-write race in `submitScore`, or adding + request pipelining to the Upstash adapter (see Risks). +- Rate limiting. None exists today; adding it is unrequested scope. + +## Key Decisions + +| Decision | Choice | Why | +|---|---|---| +| Aggregation | Write fan-out (leaf + province + country on every guess) | Preserves pre-existing parent totals for free; derive-on-read would orphan them | +| Leaf codes for Da Lat / Duc Hoa | Keep `DL` / `DH` verbatim | Their leaderboard keys already exist; renaming would strand the history | +| Redis key prefix | Keep `leaderboard:city:` / `distance:city:` | Renaming to `:region:` would strand every existing key. Naming purity loses to data preservation | +| Redis key names in this plan | All **logical**; physical form is `${KEY_PREFIX}${logical}`, default `vngeoguessr:` | The adapter applies the prefix invisibly (`upstash.js:34,40-42`). A migration that bypasses it silently reads an empty namespace | +| `VN` key mapping | Special-cases to the legacy `leaderboard:vietnam` / `distance:vietnam` | Keeps the existing global leaderboard as the country node | +| Legacy province points | Stay on the province node | Old HN/DN/TPHCM points predate districts and are unattributable; province totals stay continuous, district totals start at zero | +| New province nodes | `LD` and `LA` backfilled by copying `DL` / `DH` sorted sets once | Their only child already holds the full history; without a backfill the province would disagree with its child | +| District panoramas | Partition the **existing** province indexes by point-in-polygon | A per-district tile fetch would multiply the 2,800-tile budget against a 50,000/day cap for data we already hold | +| Province geometry | Derived as the union of its children — except a single-child province, which byte-copies its child's polygon | Removes parent/child drift. Re-simplifying a single child at a looser tolerance would strand its own panoramas in the gap | +| Country geometry | None; bbox and center derived from children | The real Vietnam outline is huge and irrelevant — coverage is five provinces | +| Node centers | Generated centroid, overridable per node; the five existing centers are seeded as overrides | `game.js:9-12` documents why these are deliberately *not* polygon centroids | +| `VN` random draw | Pick a province uniformly, then a panorama within it | Uniform over all 424,691 panoramas would make "Vietnam" 97% Ha Noi + Ho Chi Minh | +| Province random draw | Unchanged: uniform over the province's panoramas | Preserves today's behaviour for existing entry points | +| **`VN` scores zero and ships anyway** | Accepted trade-off, not a defect | `calculateScore` returns 0 above 1 km and the five provinces span ~1,100 km. `VN` is an exploration mode. **Do not "fix" this by rescaling the bands** — the user decided it explicitly | +| Panorama counts for the UI | A second generated file, `src/data/regions/counts.js` | Keeps one writer per generated file, keeps the tree client-safe, and removes the need for a `/api/regions` route | +| Phase 5 primitives | Add `@radix-ui/react-accordion` and `@radix-ui/react-select` | Neither exists in `src/components/ui/`. Hand-rolling both would ship broken a11y. **`package.json` change — apply manually** | +| Boundary file layout | `src/data/boundaries//.json` | 66 files in one flat directory is unreadable, and every leaf belongs to exactly one province | +| Nominatim query strategy | Qualified form, then bare form, with the hit's centroid validated against the parent's pre-2025 bbox | Discovered in execution: OSM has applied the 2025 merger, so pre-2025 districts survive only as `boundary/historic` relations whose rendered parent is the *current* province. A qualified query matches nothing; a bare one can match a same-named unit in another province. See Phase 1 | +| Panorama file layout | Stays flat — one file per province | Five files, one per province forever. A directory per file would be noise; the boundary case is 31 files under `hn/` | + +## Architecture + +### Region tree + +Two generated files, one writer each, both small and client-safe: + +- `src/data/regions/index.js` — written by the boundary build. Node code, name, + parent, level, center, bbox, `partialCoverage`. +- `src/data/regions/counts.js` — written by the district-assignment build. + Per-node panorama count, distinct-cell count, and playability. + +```js +// src/data/regions/index.js +export const REGIONS = { + VN: { code: 'VN', name: 'Vietnam', parent: null, level: 'country', center: [...], bbox: [...] }, + TPHCM: { code: 'TPHCM', name: 'Ho Chi Minh', parent: 'VN', level: 'province', center: [...], bbox: [...] }, + 'TPHCM-Q7': { code: 'TPHCM-Q7', name: 'District 7', parent: 'TPHCM', level: 'district', center: [...], bbox: [...] }, + LD: { code: 'LD', name: 'Lam Dong', parent: 'VN', level: 'province', partialCoverage: 'one town covered', ... }, + DL: { code: 'DL', name: 'Da Lat', parent: 'LD', level: 'district', ... }, + LA: { code: 'LA', name: 'Long An', parent: 'VN', level: 'province', partialCoverage: 'one town covered', ... }, + DH: { code: 'DH', name: 'Duc Hoa', parent: 'LA', level: 'district', ... }, +}; +``` + +`src/lib/regions.js` — hand-written traversal over those two files and **nothing +else**. It must never import `src/data/panos/` or `src/lib/pano-index.js`: client +components import it, and the panorama data is 25 MB of exact answers. A test +asserts that import boundary. + +**Codes.** Provinces keep their current codes. Districts are +`-` (`HN-BADINH`, `TPHCM-Q7`, `DN-HAICHAU`). `DL` and `DH` are the +two exceptions, keeping their bare historical codes. + +Hyphenated codes are **not** legal JS identifiers or bare object keys. Both +barrel writers derive both from the filename today +(`build-city-boundaries.mjs:190-203`, `build-pano-index.mjs:273-287`) and must be +fixed before the first leaf is written. + +### Panorama partition + +`src/data/panos/.json` gains a header `districts` array and a `d` +field per entry — an **index** into that array: + +```json + "districts": ["TPHCM-Q1","TPHCM-Q3", ...], + "districtCounts": {"TPHCM-Q1": 3211, ...}, + "districtCells": {"TPHCM-Q1": 274, ...}, + "unassigned": 412, + "panos": [ {"id":"...","lat":10.77,"lng":106.70,"d":0} ] +``` + +An entry with no `d` fell in a gap between simplified district outlines. It is +still playable at province level and credits province + country only. + +`districtCells` counts distinct 0.01° (~1.1 km) cells, because raw counts +overstate distinct *places* by roughly 30× — the index is thinned at 33 m, so a +single street corridor yields dozens of entries. Da Nang's 1,521 panoramas +occupy 39 cells in total; Da Lat's 475 occupy 8. + +### Score fan-out + +``` +POST /api/guess + session.regionCode (leaf resolved from the winning draw — server-side only) + → ancestorsOf(regionCode) = ['TPHCM-Q7', 'TPHCM', 'VN'] + → submitScore / submitDistanceRecord write all three +``` + +`session.regionCode` is a **secret**, alongside `exactLocation`: it names the +district the panorama is in. Neither is ever serialized to the client before the +guess. Responses carry `pickedRegion` only. + +### Data flow + +``` +build-region-boundaries.mjs (Nominatim, up to 2 queries per leaf) + → src/data/boundaries//.json (leaves + province outline) + → src/data/boundaries/index.js (barrel, sanitised identifiers) + → src/data/regions/index.js (tree: names, parents, centers, bboxes) + --regenerate (rebuild provinces/barrel/tree from disk, + no network — for reshaping outputs) + +assign-pano-districts.mjs (no network) + → re-clips src/data/panos/.json against the current outline [done in Phase 1] + → rewrites it with districts[] + d + → src/data/regions/counts.js (counts, cells, playability) + +migrate-leaderboards.mjs (after deploy; --dry-run default) + → copies leaderboard:city:dl → :ld, distance:city:dl → :ld + → copies leaderboard:city:dh → :la, distance:city:dh → :la +``` + +## Coverage note + +Canonical text lives in `docs/project-overview.md` (Phase 6 writes it). Its +substance, recorded here because it is a durable decision: + +Coverage is deliberately partial and will grow in future releases; **none are +planned at present**. Absent coverage has three distinct causes, and only one is +a defect: + +1. **Not yet added** — any province outside the five. Roadmap. Adding one is an + entry in `scripts/build-region-boundaries.mjs` plus three build runs, no + application code change. +2. **No street imagery** — a district where Mapillary holds no panoramas, + typically rural. Listed in the tree, excluded from play. May self-resolve on + a future index rebuild. +3. **Missing from the boundary** — a district whose OSM lookup did not resolve, + so it never entered the province union and its panoramas were clipped away. + Cu Chi is the known case (`"missingParts": 1` in + `src/data/boundaries/tphcm.json`). Fixable, but costs Mapillary tile requests + against a 50,000/day cap, which is why it is not automatic. + +`missingParts` in a province's boundary file distinguishes the third from the +first two. + +## Phases + +| # | Phase | Status | Depends on | +|---|-------|--------|-----------| +| 1 | [Phase 1: Region tree model and boundaries](./phase-01-region-tree-model-and-boundaries.md) | Completed | — | +| 2 | [Phase 2: Panorama district partition](./phase-02-panorama-district-partition.md) | Pending | 1 | +| 3 | [Phase 3: Leaderboard fan-out and migration](./phase-03-leaderboard-fan-out-and-migration.md) | Pending | 1 | +| 4 | [Phase 4: API surface](./phase-04-api-surface.md) | Pending | 2, 3 | +| 5 | [Phase 5: UI region navigation](./phase-05-ui-region-navigation.md) | Pending | 4 | +| 6 | [Phase 6: Docs and verification](./phase-06-docs-and-verification.md) | Pending | 5 | + +## Success Criteria + +- [ ] `src/data/regions/index.js` holds 1 country, 5 provinces, and 61 leaves, all generated +- [ ] Both generated barrels parse — a test `import()`s them +- [ ] Every leaf that Nominatim resolved has a boundary polygon; unresolved leaves are recorded in `missingParts`, not fatal +- [ ] Every panorama in the five province indexes carries a district assignment, or is counted in a reported unassigned tally under 2% +- [ ] `src/lib/regions.js`'s import graph never reaches `src/data/panos/` — asserted by test +- [ ] A guess in `TPHCM-Q7` increases the `TPHCM-Q7`, `TPHCM`, and `VN` score totals by the same amount +- [ ] The leaf is resolved from the **winning** panorama draw, server-side, and never appears in any pre-guess response +- [ ] `leaderboard:vietnam` and `distance:vietnam` remain the country node's keys — pre-change totals unchanged and still growing +- [ ] `leaderboard:city:hn` / `:dn` / `:tphcm` / `:dl` / `:dh` totals are unchanged immediately after deploy +- [ ] `leaderboard:city:ld` equals `leaderboard:city:dl` and `leaderboard:city:la` equals `leaderboard:city:dh` immediately after migration +- [ ] The migration aborts if its export contains zero keys, and prints the resolved `KEY_PREFIX` +- [ ] `/game?location=HN` and `/game?location=DL` still work +- [ ] A leaf below the playability threshold is listed in the tree but not offered as playable +- [ ] 200 draws at `VN` hit at least four distinct provinces +- [ ] `npm test`, `npm run test:integration`, and `npm run build:check` pass +- [ ] No province's panorama index is re-fetched from Mapillary + +## Red Team Review + +### Session — 2026-08-30 +**Reviewers:** 4 (Security Adversary, Failure Mode Analyst, Assumption Destroyer, Scope & Complexity Critic), Full verification tier +**Findings:** 38 raw → 15 after deduplication (15 accepted, 3 rejected) +**Severity breakdown:** 6 Critical, 7 High, 2 Medium + +| # | Finding | Severity | Disposition | Applied To | +|---|---------|----------|-------------|------------| +| C1 | `writeBarrel` emits invalid JS for hyphenated leaf codes | Critical | Accept | Phase 1 | +| C2 | `src/lib/mapillary.js` in no phase; discards the resolved leaf | Critical | Accept | Phase 2, 4 | +| C3 | Phase 1 cannot pass its own `npm test`; `CODES` derives from `CITIES` | Critical | Accept | Phase 1 | +| C4 | Migration export unbuildable: no scan primitive, `KEY_PREFIX` unaddressed | Critical | Accept | Phase 3 | +| C5 | `regions.js` + client import ships 25 MB of coordinates to the browser | Critical | Accept | Phase 1, 5 | +| C6 | `POST /api/new-game` leaks the resolved leaf; `getLeaderboard` takes unvalidated input into key names | Critical | Accept | Phase 4 | +| H1 | `/api/guess` non-idempotent; fan-out widens double-credit; "not half-recorded" claim false | High | Accept | Phase 3, 4 | +| H2 | Migration ordering undefined; copy≠replace; reconciliation would delete legacy points | High | Accept | Phase 3 | +| H3 | Both size budgets arithmetically wrong and self-contradictory | High | Accept | Phase 1, 2 | +| H4 | Generated centroids overwrite documented hand-picked centers | High | Accept | Phase 1 | +| H5 | `/api/regions` works around Phase 1's own decision; `plan.md` contradicted Phase 1 | High | Accept | Phase 1, 2, 4, 5 | +| H6 | Phase 5 accordion + grouped select absent under "no new dependencies" | High | Accept | Phase 5 | +| H7 | HN province union breaks panorama containment tests, no repair step | High | Accept | Phase 1, 2 | +| M1 | `build-pano-index.mjs` default list resurrects `dl.json`/`dh.json`; barrel double-counts | Medium | Accept | Phase 2 | +| M2 | `count > 0` too weak a playability gate; clustering measured | Medium | Accept | Phase 2 | +| — | Rate limiting on `/api/guess` | High | Reject | Pre-existing gap, unrequested scope | +| — | Redis round-trip count as blocking | Medium | Reject | Separable perf follow-up, same class as the declared out-of-scope `zIncrBy` race | +| — | Cu Chi as a defect | Critical | Reject | User accepted the gap; recorded in the coverage note instead | + +**User decisions taken during adjudication:** +1. `VN` ships playable despite scoring zero — exploration mode, bands stay frozen. +2. Add `@radix-ui/react-accordion` and `@radix-ui/react-select` rather than hand-rolling or degrading to native controls. +3. Missing coverage (Cu Chi included) is acceptable; the coverage note carries it. + +### Whole-Plan Consistency Sweep +- Files reread: `plan.md`, `phase-01` … `phase-06` +- Decision deltas checked: 18 +- Reconciled stale references: 11 — `/api/regions` removed from Phase 4/5 and `plan.md` Architecture; `panos:` count field moved out of the tree into `counts.js`; `partialCoverage` widened from boolean to reason string; Goal 5 reworded from "zero new Mapillary requests" to "no province re-fetched"; Phase 1 Validation/Risk contradiction on `tests/pano-index.test.js` resolved; pano file rename moved from Phase 2 to Phase 1; size budgets restated in both phases; `session.regionCode` marked secret in Architecture and Phase 4; migration ordering pinned in `plan.md` Data flow and Phase 3; centroid overrides added to Key Decisions and Phase 1 +- Unresolved contradictions: 0 + +## Open Questions + +None. Seven decisions were resolved with the user: + +1. **Bonus cases** — Lam Dong and Long An are a *partial-coverage label only*. +2. **Play level** — any node is playable, not leaf-only. +3. **New province leaderboards** — backfilled from their single child's totals. +4. **Legacy province points** — left on the parent, no synthetic child node. +5. **Duc Hoa's parent** — Long An, not Tay Ninh, per the pre-2025 basis. +6. **`VN` scoring zero** — accepted; ships as an exploration mode. +7. **Phase 5 primitives** — add the two Radix packages. + + diff --git a/scripts/assign-pano-districts.mjs b/scripts/assign-pano-districts.mjs new file mode 100644 index 0000000..199ef8d --- /dev/null +++ b/scripts/assign-pano-districts.mjs @@ -0,0 +1,97 @@ +// Re-clip each province's panorama index against its current boundary, and +// rewrite the header to match. +// +// node scripts/assign-pano-districts.mjs # every province +// node scripts/assign-pano-districts.mjs HN TPHCM # only these +// +// Network-free by design. The panoramas are already on disk; re-fetching them +// per district would multiply a ~2,800-tile build against Mapillary's +// 50,000/day cap for data we already hold. +// +// Why re-clipping is needed at all: the boundaries are now built per district +// and unioned upward, at a tighter simplification tolerance than the old +// whole-city outlines. A province's edge therefore moves by a few metres, and +// panoramas clipped against the old outline no longer agree with the new one. +// Leaving them would break the containment guarantee the index rests on -- +// every entry is meant to be inside the region it is served for. +// +// District assignment (a `d` field per panorama, and the per-leaf counts the UI +// needs) lands in this same script in the next phase. + +import { readdirSync, readFileSync, writeFileSync, statSync } from 'node:fs'; +import * as turf from '@turf/turf'; + +const BOUNDARY_DIR = 'src/data/boundaries'; +const PANO_DIR = 'src/data/panos'; + +/** A province's boundary feature. */ +function loadBoundary(code) { + const slug = code.toLowerCase(); + return JSON.parse(readFileSync(`${BOUNDARY_DIR}/${slug}/${slug}.json`, 'utf8')); +} + +/** + * Rewrite one province's index against its current boundary. + * @param {string} code Province code. + * @returns {{kept: number, dropped: number}} Outcome. + */ +function reclip(code) { + const path = `${PANO_DIR}/${code.toLowerCase()}.json`; + const index = JSON.parse(readFileSync(path, 'utf8')); + const boundary = loadBoundary(code); + const [west, south, east, north] = boundary.properties.bbox; + + const kept = index.panos.filter((p) => { + // Cheap rejection first: point-in-polygon against a detailed outline is the + // expensive part, and most strays fall outside the box. + if (p.lat < south || p.lat > north || p.lng < west || p.lng > east) return false; + return turf.booleanPointInPolygon(turf.point([p.lng, p.lat]), boundary); + }); + + const dropped = index.panos.length - kept.length; + + const header = { + code, + name: boundary.properties.name, + center: boundary.properties.center, + bbox: boundary.properties.bbox, + count: kept.length, + source: index.source, + grid: index.grid, + generatedAt: index.generatedAt, + reclippedAt: new Date().toISOString(), + }; + + // Written by hand rather than through JSON.stringify's indent option: one + // panorama per line keeps a six-figure list diffable and editable, where a + // fully indented file would run to millions of lines. + const body = + Object.entries(header) + .map(([key, value]) => ` ${JSON.stringify(key)}: ${JSON.stringify(value)},`) + .join('\n') + + '\n "panos": [\n' + + kept.map((p) => ` {"id":${JSON.stringify(p.id)},"lat":${p.lat},"lng":${p.lng}}`).join(',\n') + + '\n ]\n'; + + writeFileSync(path, `{\n${body}}\n`); + return { kept: kept.length, dropped }; +} + +const requested = process.argv.slice(2).filter((arg) => !arg.startsWith('--')); +const available = readdirSync(PANO_DIR) + .filter((name) => name.endsWith('.json')) + .map((name) => name.replace(/\.json$/, '').toUpperCase()); +const codes = requested.length ? requested : available; + +let totalDropped = 0; +for (const code of codes) { + const { kept, dropped } = reclip(code); + totalDropped += dropped; + const mb = (statSync(`${PANO_DIR}/${code.toLowerCase()}.json`).size / 1e6).toFixed(1); + console.log( + `${code.padEnd(6)} ${String(kept).padStart(7)} kept` + + (dropped ? `, ${dropped} dropped outside the new outline` : '') + + ` (${mb} MB)` + ); +} +console.log(totalDropped ? `\n${totalDropped} panoramas dropped in total` : '\nno panoramas dropped'); diff --git a/scripts/build-city-boundaries.mjs b/scripts/build-city-boundaries.mjs deleted file mode 100644 index e539a1f..0000000 --- a/scripts/build-city-boundaries.mjs +++ /dev/null @@ -1,218 +0,0 @@ -// Build the play-area polygon for each city and write it as GeoJSON. -// -// Vietnam merged its provinces in mid-2025, so the current administrative -// boundary for Ho Chi Minh City covers 36,566 km2 and reaches Vung Tau. That is -// not a guessable area: the scoring bands top out at 1km. These are the -// pre-merger extents instead, rebuilt by unioning the old district-level units, -// which OpenStreetMap still serves as boundary/historic relations. -// -// node scripts/build-city-boundaries.mjs -// -// Output lands in src/data/boundaries/.geojson and is meant to be edited -// by hand afterwards if a city needs trimming. Re-running overwrites it. - -import { mkdirSync, readdirSync, writeFileSync } from 'node:fs'; -import * as turf from '@turf/turf'; - -const NOMINATIM = 'https://nominatim.openstreetmap.org/search'; -// Nominatim asks for a real identifier and at most one request per second. -const USER_AGENT = 'vngeoguessr/1.0 (https://github.com/tiennm99/vngeoguessr)'; -const REQUEST_GAP_MS = 1100; -// The unioned outlines carry tens of thousands of points, most of them detail -// no one will ever see at city zoom. This keeps the files hand-editable. -const SIMPLIFY_TOLERANCE = 0.0005; - -const OUT_DIR = 'src/data/boundaries'; - -// One entry per city. `parts` are unioned; a single-element list is fine. -const CITIES = { - HN: { - name: 'Ha Noi', - // Ha Noi was not merged in 2025, so its own boundary is still the right one. - parts: ['Thành phố Hà Nội, Việt Nam'], - }, - TPHCM: { - name: 'Ho Chi Minh', - parts: [ - 'Quận 1, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận 3, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận 4, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận 5, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận 6, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận 7, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận 8, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận 10, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận 11, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận 12, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận Bình Tân, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận Bình Thạnh, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận Gò Vấp, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận Phú Nhuận, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận Tân Bình, Thành phố Hồ Chí Minh, Việt Nam', - 'Quận Tân Phú, Thành phố Hồ Chí Minh, Việt Nam', - 'Thành phố Thủ Đức, Việt Nam', - 'Huyện Bình Chánh, Việt Nam', - 'Huyện Cần Giờ, Việt Nam', - 'Huyện Củ Chi, Việt Nam', - 'Huyện Hóc Môn, Việt Nam', - 'Huyện Nhà Bè, Việt Nam', - ], - }, - DN: { - name: 'Da Nang', - // Hoang Sa is administratively part of Da Nang but is a disputed offshore - // island group with no street imagery, so it is deliberately left out. - parts: [ - 'Quận Hải Châu, Đà Nẵng, Việt Nam', - 'Quận Thanh Khê, Đà Nẵng, Việt Nam', - 'Quận Sơn Trà, Đà Nẵng, Việt Nam', - 'Quận Ngũ Hành Sơn, Đà Nẵng, Việt Nam', - 'Quận Liên Chiểu, Đà Nẵng, Việt Nam', - 'Quận Cẩm Lệ, Đà Nẵng, Việt Nam', - 'Huyện Hòa Vang, Việt Nam', - ], - }, - DL: { - name: 'Da Lat', - parts: ['Thành phố Đà Lạt, Việt Nam'], - }, - DH: { - name: 'Duc Hoa', - parts: ['Đức Hòa, Việt Nam'], - }, -}; - -const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); - -/** - * Look up one administrative area and return it as a turf feature. - * @param {string} query Nominatim free-text query. - * @returns {Promise} Feature, or null when nothing usable matched. - */ -async function lookupArea(query) { - const url = `${NOMINATIM}?q=${encodeURIComponent(query)}&format=json&polygon_geojson=1&limit=8`; - const response = await fetch(url, { - headers: { 'User-Agent': USER_AGENT, 'Accept-Language': 'en' }, - }); - if (!response.ok) throw new Error(`Nominatim ${response.status} for "${query}"`); - - // A cemetery or a road of the same name can outrank the district, so scan the - // candidates for the first one that is actually an administrative area. - for (const hit of await response.json()) { - if (!hit?.geojson) continue; - if (!['Polygon', 'MultiPolygon'].includes(hit.geojson.type)) continue; - if (hit.class !== 'boundary') continue; - return turf.feature(hit.geojson, { osm: `${hit.osm_type}/${hit.osm_id}` }); - } - return null; -} - -/** - * Build and write one city's play-area polygon. - * @param {string} code City code. - * @param {Object} config Entry from CITIES. - * @returns {Promise} - */ -async function buildCity(code, config) { - console.log(`\n${code} — ${config.name}`); - let merged = null; - let missing = 0; - - for (const query of config.parts) { - const label = query.split(',')[0]; - let feature = null; - try { - feature = await lookupArea(query); - } catch (error) { - console.error(` ${label}: ${error.message}`); - } - - if (!feature) { - missing++; - console.warn(` ${label}: no boundary found — SKIPPED`); - } else { - const areaKm2 = turf.area(feature) / 1e6; - console.log(` ${label}: ${areaKm2.toFixed(0)} km2 (${feature.properties.osm})`); - merged = merged ? turf.union(turf.featureCollection([merged, feature])) : feature; - } - await sleep(REQUEST_GAP_MS); - } - - if (!merged) throw new Error(`${code}: no parts resolved, nothing to write`); - if (missing > 0) { - console.warn(` ${missing} part(s) missing — the polygon is incomplete`); - } - - const simplified = turf.simplify(merged, { tolerance: SIMPLIFY_TOLERANCE, highQuality: true }); - const bbox = turf.bbox(simplified); - const centroid = turf.centerOfMass(simplified).geometry.coordinates; - - const out = { - type: 'Feature', - properties: { - code, - name: config.name, - // Recorded so a future reader knows why this is not the current - // administrative boundary. - basis: 'pre-2025-merger extent, unioned from OSM boundary/historic relations', - parts: config.parts.length, - missingParts: missing, - areaKm2: Number((turf.area(simplified) / 1e6).toFixed(1)), - bbox: bbox.map((n) => Number(n.toFixed(5))), - center: [Number(centroid[1].toFixed(5)), Number(centroid[0].toFixed(5))], - generatedAt: new Date().toISOString(), - }, - geometry: simplified.geometry, - }; - - mkdirSync(OUT_DIR, { recursive: true }); - const path = `${OUT_DIR}/${code.toLowerCase()}.json`; - writeFileSync(path, JSON.stringify(out, null, 1) + '\n'); - console.log( - ` -> ${path} ${out.properties.areaKm2} km2, ` + - `${JSON.stringify(simplified.geometry.coordinates).length} bytes of geometry` - ); -} - -/** - * Rewrite the barrel module that imports every boundary that exists. - * - * Same reason as the panorama indexes: static imports let the data be bundled - * with the server build, but a city that has not been generated yet would then - * be a hard build error. Generating the list from disk keeps a partial build - * usable. - * @returns {string[]} City codes now in the barrel. - */ -function writeBarrel() { - const entries = readdirSync(OUT_DIR) - .filter((name) => name.endsWith('.json') && name !== 'index.js') - .sort() - .map((name) => ({ - code: name.replace(/\.json$/, '').toUpperCase(), - ident: name.replace(/\.json$/, ''), - file: name, - })); - - const body = - '// Generated by scripts/build-city-boundaries.mjs. Do not edit by hand.\n' + - '//\n' + - '// Lists only the boundaries that have actually been built, so a partial\n' + - '// build still compiles.\n\n' + - entries.map((e) => `import ${e.ident} from './${e.file}';`).join('\n') + - '\n\nexport const CITY_BOUNDARIES = {\n' + - entries.map((e) => ` ${e.code}: ${e.ident},`).join('\n') + - '\n};\n'; - - writeFileSync(`${OUT_DIR}/index.js`, body); - return entries.map((e) => e.code); -} - -const only = process.argv.slice(2); -for (const [code, config] of Object.entries(CITIES)) { - if (only.length && !only.includes(code)) continue; - await buildCity(code, config); - // Rewritten after each city so an interrupted run leaves a consistent barrel. - writeBarrel(); -} -console.log(`\nbarrel: ${writeBarrel().join(', ')}`); -console.log('done'); diff --git a/scripts/build-pano-index.mjs b/scripts/build-pano-index.mjs index cb9c109..ca8c31c 100644 --- a/scripts/build-pano-index.mjs +++ b/scripts/build-pano-index.mjs @@ -9,7 +9,7 @@ // node scripts/build-pano-index.mjs TPHCM DN # only these // // Needs MAPILLARY_ACCESS_TOKEN in .env, and the boundaries built first by -// scripts/build-city-boundaries.mjs. Output is src/data/panos/.json, +// scripts/build-region-boundaries.mjs. Output is src/data/panos/.json, // which is plain JSON and safe to prune by hand. import { mkdirSync, readdirSync, readFileSync, statSync, writeFileSync, existsSync } from 'node:fs'; @@ -155,9 +155,11 @@ function thinToGrid(points) { } async function buildCity(code, token) { - const boundaryPath = `${BOUNDARY_DIR}/${code.toLowerCase()}.json`; + const slug = code.toLowerCase(); + // Boundaries are grouped by province: src/data/boundaries//.json + const boundaryPath = `${BOUNDARY_DIR}/${slug}/${slug}.json`; if (!existsSync(boundaryPath)) { - throw new Error(`${code}: missing ${boundaryPath} — run build-city-boundaries.mjs first`); + throw new Error(`${code}: missing ${boundaryPath} — run build-region-boundaries.mjs first`); } const boundary = JSON.parse(readFileSync(boundaryPath, 'utf8')); const bbox = boundary.properties.bbox ?? turf.bbox(boundary); @@ -272,18 +274,21 @@ function writeBarrel() { .sort(); const entries = files.map((name) => ({ code: name.replace(/\.json$/, '').toUpperCase(), - ident: name.replace(/\.json$/, ''), + // Sanitised because region codes contain hyphens, which are legal in a + // filename but not in a bare identifier or an unquoted object key. Emitting + // them raw makes the generated barrel a syntax error. + ident: name.replace(/\.json$/, '').replace(/[^a-z0-9]/gi, '_'), file: name, })); const body = '// Generated by scripts/build-pano-index.mjs. Do not edit by hand.\n' + '//\n' + - '// Lists only the city indexes that have actually been built, so a partial\n' + - '// build still compiles.\n\n' + + '// Lists only the province indexes that have actually been built, so a\n' + + '// partial build still compiles.\n\n' + entries.map((e) => `import ${e.ident} from './${e.file}';`).join('\n') + '\n\nexport const PANO_INDEXES = {\n' + - entries.map((e) => ` ${e.code}: ${e.ident},`).join('\n') + + entries.map((e) => ` ${JSON.stringify(e.code)}: ${e.ident},`).join('\n') + '\n};\n'; writeFileSync(`${OUT_DIR}/index.js`, body); @@ -294,7 +299,7 @@ let tilesRequested = 0; const token = loadToken(); const requested = process.argv.slice(2); -const codes = requested.length ? requested : ['HN', 'TPHCM', 'DN', 'DL', 'DH']; +const codes = requested.length ? requested : ['HN', 'TPHCM', 'DN', 'LD', 'LA']; for (const code of codes) { await buildCity(code, token); // Rewrite after every city, so an interrupted run still leaves a consistent diff --git a/scripts/build-region-boundaries.mjs b/scripts/build-region-boundaries.mjs new file mode 100644 index 0000000..0fc0da6 --- /dev/null +++ b/scripts/build-region-boundaries.mjs @@ -0,0 +1,519 @@ +// Build the play-area polygon for every region and write it as GeoJSON, then +// generate the region tree the rest of the app navigates by. +// +// Vietnam merged its provinces in mid-2025, so the current administrative +// boundary for Ho Chi Minh City covers 36,566 km2 and reaches Vung Tau. That is +// not a guessable area: the scoring bands top out at 1km. These are the +// pre-merger extents instead, which is also why Duc Hoa sits under Long An +// rather than the Tay Ninh it was merged into. +// +// node scripts/build-region-boundaries.mjs # everything +// node scripts/build-region-boundaries.mjs HN DN # only these provinces +// +// Output: +// src/data/boundaries/.json one per resolved leaf, plus one per province +// src/data/boundaries/index.js barrel +// src/data/regions/index.js the tree: names, parents, centers, bboxes +// +// Coverage is deliberately partial and grows by adding entries below. A leaf +// Nominatim cannot resolve is recorded as unresolved rather than failing the +// build -- see the Coverage section of docs/project-overview.md for why absent +// coverage is not automatically a defect. + +import { mkdirSync, readdirSync, readFileSync, writeFileSync, existsSync } from 'node:fs'; +import { dirname } from 'node:path'; +import * as turf from '@turf/turf'; + +const NOMINATIM = 'https://nominatim.openstreetmap.org/search'; +// Nominatim asks for a real identifier and at most one request per second. +const USER_AGENT = 'vngeoguessr/1.0 (https://github.com/tiennm99/vngeoguessr)'; +const REQUEST_GAP_MS = 1100; + +// Leaves are simplified tightly: at district scale a loose tolerance opens gaps +// along shared borders, and scripts/assign-pano-districts.mjs has to decide +// which side of those borders every panorama falls on. Province outlines are +// only ever drawn at city zoom, so they stay coarse. +const LEAF_TOLERANCE = 0.0001; // ~11m +const PROVINCE_TOLERANCE = 0.0005; // ~55m + +const OUT_DIR = 'src/data/boundaries'; +const TREE_DIR = 'src/data/regions'; + +// The region tree. One entry per node. +// +// level 'country' | 'province' | 'district' +// query Nominatim free-text lookup. Leaves only; a province is the union +// of its children and the country has no polygon at all. +// center Optional override. The computed centre of mass of an irregular +// outline can land somewhere no one associates with the place, so +// the five original entry points keep their hand-picked centres. +const REGIONS = { + VN: { name: 'Vietnam', level: 'country' }, + + // -- Ha Noi --------------------------------------------------------------- + // Not merged in 2025, but split here into its 30 pre-2025 units. + HN: { name: 'Ha Noi', level: 'province', parent: 'VN', center: [21.0285, 105.8542], legacyBbox: [105.28896, 20.56452, 106.02004, 21.38542] }, + 'HN-BADINH': { name: 'Ba Dinh', level: 'district', parent: 'HN', query: 'Quận Ba Đình, Hà Nội, Việt Nam' }, + 'HN-HOANKIEM': { name: 'Hoan Kiem', level: 'district', parent: 'HN', query: 'Quận Hoàn Kiếm, Hà Nội, Việt Nam' }, + 'HN-TAYHO': { name: 'Tay Ho', level: 'district', parent: 'HN', query: 'Quận Tây Hồ, Hà Nội, Việt Nam' }, + 'HN-LONGBIEN': { name: 'Long Bien', level: 'district', parent: 'HN', query: 'Quận Long Biên, Hà Nội, Việt Nam' }, + 'HN-CAUGIAY': { name: 'Cau Giay', level: 'district', parent: 'HN', query: 'Quận Cầu Giấy, Hà Nội, Việt Nam' }, + 'HN-DONGDA': { name: 'Dong Da', level: 'district', parent: 'HN', query: 'Quận Đống Đa, Hà Nội, Việt Nam' }, + 'HN-HAIBATRUNG': { name: 'Hai Ba Trung', level: 'district', parent: 'HN', query: 'Quận Hai Bà Trưng, Hà Nội, Việt Nam' }, + 'HN-HOANGMAI': { name: 'Hoang Mai', level: 'district', parent: 'HN', query: 'Quận Hoàng Mai, Hà Nội, Việt Nam' }, + 'HN-THANHXUAN': { name: 'Thanh Xuan', level: 'district', parent: 'HN', query: 'Quận Thanh Xuân, Hà Nội, Việt Nam' }, + 'HN-BACTULIEM': { name: 'Bac Tu Liem', level: 'district', parent: 'HN', query: 'Quận Bắc Từ Liêm, Hà Nội, Việt Nam' }, + 'HN-NAMTULIEM': { name: 'Nam Tu Liem', level: 'district', parent: 'HN', query: 'Quận Nam Từ Liêm, Hà Nội, Việt Nam' }, + 'HN-HADONG': { name: 'Ha Dong', level: 'district', parent: 'HN', query: 'Quận Hà Đông, Hà Nội, Việt Nam' }, + 'HN-SONTAY': { name: 'Son Tay', level: 'district', parent: 'HN', query: 'Thị xã Sơn Tây, Hà Nội, Việt Nam' }, + 'HN-BAVI': { name: 'Ba Vi', level: 'district', parent: 'HN', query: 'Huyện Ba Vì, Hà Nội, Việt Nam' }, + 'HN-CHUONGMY': { name: 'Chuong My', level: 'district', parent: 'HN', query: 'Huyện Chương Mỹ, Hà Nội, Việt Nam' }, + 'HN-DANPHUONG': { name: 'Dan Phuong', level: 'district', parent: 'HN', query: 'Huyện Đan Phượng, Hà Nội, Việt Nam' }, + 'HN-DONGANH': { name: 'Dong Anh', level: 'district', parent: 'HN', query: 'Huyện Đông Anh, Hà Nội, Việt Nam' }, + 'HN-GIALAM': { name: 'Gia Lam', level: 'district', parent: 'HN', query: 'Huyện Gia Lâm, Hà Nội, Việt Nam' }, + 'HN-HOAIDUC': { name: 'Hoai Duc', level: 'district', parent: 'HN', query: 'Huyện Hoài Đức, Hà Nội, Việt Nam' }, + 'HN-MELINH': { name: 'Me Linh', level: 'district', parent: 'HN', query: 'Huyện Mê Linh, Hà Nội, Việt Nam' }, + 'HN-MYDUC': { name: 'My Duc', level: 'district', parent: 'HN', query: 'Huyện Mỹ Đức, Hà Nội, Việt Nam' }, + 'HN-PHUXUYEN': { name: 'Phu Xuyen', level: 'district', parent: 'HN', query: 'Huyện Phú Xuyên, Hà Nội, Việt Nam' }, + 'HN-PHUCTHO': { name: 'Phuc Tho', level: 'district', parent: 'HN', query: 'Huyện Phúc Thọ, Hà Nội, Việt Nam' }, + 'HN-QUOCOAI': { name: 'Quoc Oai', level: 'district', parent: 'HN', query: 'Huyện Quốc Oai, Hà Nội, Việt Nam' }, + 'HN-SOCSON': { name: 'Soc Son', level: 'district', parent: 'HN', query: 'Huyện Sóc Sơn, Hà Nội, Việt Nam' }, + 'HN-THACHTHAT': { name: 'Thach That', level: 'district', parent: 'HN', query: 'Huyện Thạch Thất, Hà Nội, Việt Nam' }, + 'HN-THANHOAI': { name: 'Thanh Oai', level: 'district', parent: 'HN', query: 'Huyện Thanh Oai, Hà Nội, Việt Nam' }, + 'HN-THANHTRI': { name: 'Thanh Tri', level: 'district', parent: 'HN', query: 'Huyện Thanh Trì, Hà Nội, Việt Nam' }, + 'HN-THUONGTIN': { name: 'Thuong Tin', level: 'district', parent: 'HN', query: 'Huyện Thường Tín, Hà Nội, Việt Nam' }, + 'HN-UNGHOA': { name: 'Ung Hoa', level: 'district', parent: 'HN', query: 'Huyện Ứng Hòa, Hà Nội, Việt Nam' }, + + // -- Ho Chi Minh ---------------------------------------------------------- + // Districts 2 and 9 are absent on purpose: both merged into Thu Duc in 2021. + TPHCM: { name: 'Ho Chi Minh', level: 'province', parent: 'VN', center: [10.8231, 106.6297], legacyBbox: [106.46356, 10.35828, 107.02758, 10.92934] }, + 'TPHCM-Q1': { name: 'District 1', level: 'district', parent: 'TPHCM', query: 'Quận 1, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-Q3': { name: 'District 3', level: 'district', parent: 'TPHCM', query: 'Quận 3, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-Q4': { name: 'District 4', level: 'district', parent: 'TPHCM', query: 'Quận 4, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-Q5': { name: 'District 5', level: 'district', parent: 'TPHCM', query: 'Quận 5, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-Q6': { name: 'District 6', level: 'district', parent: 'TPHCM', query: 'Quận 6, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-Q7': { name: 'District 7', level: 'district', parent: 'TPHCM', query: 'Quận 7, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-Q8': { name: 'District 8', level: 'district', parent: 'TPHCM', query: 'Quận 8, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-Q10': { name: 'District 10', level: 'district', parent: 'TPHCM', query: 'Quận 10, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-Q11': { name: 'District 11', level: 'district', parent: 'TPHCM', query: 'Quận 11, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-Q12': { name: 'District 12', level: 'district', parent: 'TPHCM', query: 'Quận 12, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-BINHTAN': { name: 'Binh Tan', level: 'district', parent: 'TPHCM', query: 'Quận Bình Tân, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-BINHTHANH': { name: 'Binh Thanh', level: 'district', parent: 'TPHCM', query: 'Quận Bình Thạnh, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-GOVAP': { name: 'Go Vap', level: 'district', parent: 'TPHCM', query: 'Quận Gò Vấp, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-PHUNHUAN': { name: 'Phu Nhuan', level: 'district', parent: 'TPHCM', query: 'Quận Phú Nhuận, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-TANBINH': { name: 'Tan Binh', level: 'district', parent: 'TPHCM', query: 'Quận Tân Bình, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-TANPHU': { name: 'Tan Phu', level: 'district', parent: 'TPHCM', query: 'Quận Tân Phú, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-THUDUC': { name: 'Thu Duc', level: 'district', parent: 'TPHCM', query: 'Thành phố Thủ Đức, Việt Nam' }, + 'TPHCM-BINHCHANH': { name: 'Binh Chanh', level: 'district', parent: 'TPHCM', query: 'Huyện Bình Chánh, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-CANGIO': { name: 'Can Gio', level: 'district', parent: 'TPHCM', query: 'Huyện Cần Giờ, Thành phố Hồ Chí Minh, Việt Nam' }, + // Cu Chi did not resolve for the pre-tree build either, which is why the old + // tphcm.json carried "missingParts": 1 and no panorama in the index sits in + // Cu Chi. Kept here so the gap stays visible rather than silently dropped. + 'TPHCM-CUCHI': { name: 'Cu Chi', level: 'district', parent: 'TPHCM', query: 'Huyện Củ Chi, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-HOCMON': { name: 'Hoc Mon', level: 'district', parent: 'TPHCM', query: 'Huyện Hóc Môn, Thành phố Hồ Chí Minh, Việt Nam' }, + 'TPHCM-NHABE': { name: 'Nha Be', level: 'district', parent: 'TPHCM', query: 'Huyện Nhà Bè, Thành phố Hồ Chí Minh, Việt Nam' }, + + // -- Da Nang -------------------------------------------------------------- + // Hoang Sa is administratively part of Da Nang but is a disputed offshore + // island group with no street imagery, so it is deliberately left out. + DN: { name: 'Da Nang', level: 'province', parent: 'VN', center: [16.0544, 108.2022], legacyBbox: [107.81854, 15.91799, 108.33864, 16.2255] }, + 'DN-HAICHAU': { name: 'Hai Chau', level: 'district', parent: 'DN', query: 'Quận Hải Châu, Đà Nẵng, Việt Nam' }, + 'DN-THANHKHE': { name: 'Thanh Khe', level: 'district', parent: 'DN', query: 'Quận Thanh Khê, Đà Nẵng, Việt Nam' }, + 'DN-SONTRA': { name: 'Son Tra', level: 'district', parent: 'DN', query: 'Quận Sơn Trà, Đà Nẵng, Việt Nam' }, + 'DN-NGUHANHSON': { name: 'Ngu Hanh Son', level: 'district', parent: 'DN', query: 'Quận Ngũ Hành Sơn, Đà Nẵng, Việt Nam' }, + 'DN-LIENCHIEU': { name: 'Lien Chieu', level: 'district', parent: 'DN', query: 'Quận Liên Chiểu, Đà Nẵng, Việt Nam' }, + 'DN-CAMLE': { name: 'Cam Le', level: 'district', parent: 'DN', query: 'Quận Cẩm Lệ, Đà Nẵng, Việt Nam' }, + 'DN-HOAVANG': { name: 'Hoa Vang', level: 'district', parent: 'DN', query: 'Huyện Hòa Vang, Đà Nẵng, Việt Nam' }, + + // -- Lam Dong / Long An --------------------------------------------------- + // One town each. The leaf codes stay bare because their leaderboard keys + // already exist under those names. + LD: { name: 'Lam Dong', level: 'province', parent: 'VN', partialCoverage: 'one town covered', legacyBbox: [108.31521, 11.80798, 108.5944, 12.00855] }, + DL: { name: 'Da Lat', level: 'district', parent: 'LD', query: 'Thành phố Đà Lạt, Việt Nam', center: [11.9404, 108.4583] }, + + LA: { name: 'Long An', level: 'province', parent: 'VN', partialCoverage: 'one town covered', legacyBbox: [106.27082, 10.7409, 106.53287, 11.02578] }, + DH: { name: 'Duc Hoa', level: 'district', parent: 'LA', query: 'Đức Hòa, Việt Nam', center: [10.8888, 106.3825] }, +}; + +const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); + +/** + * Province directory a region's polygon lives in. + * + * Boundaries are grouped by province: 61 leaves plus 5 provinces in one flat + * directory is unreadable, and every leaf belongs to exactly one province. + * @param {string} code Region code. + * @returns {string} Directory name, lowercased province code. + */ +function folderFor(code) { + const config = REGIONS[code]; + // The country has no polygon of its own, so it has no home directory either. + if (config.level === 'country') return null; + const province = config.level === 'province' ? code : config.parent; + return province.toLowerCase(); +} + +/** + * Path a region's polygon lives under, relative to OUT_DIR. + * @param {string} code Region code. + * @returns {string|null} Path, or null for a region with no polygon. + */ +function fileFor(code) { + const folder = folderFor(code); + return folder ? `${folder}/${code.toLowerCase()}.json` : null; +} + +/** + * A JS identifier safe to use in a generated import. + * + * Region codes are hyphenated (TPHCM-Q7), and a hyphen is legal in a filename + * but not in a bare identifier or an unquoted object key. Without this the + * generated barrel is a syntax error and nothing in the app compiles. + * @param {string} file Filename, with or without extension. + * @returns {string} Identifier. + */ +function identFor(file) { + return file.replace(/\.json$/, '').replace(/[^a-z0-9]/gi, '_'); +} + +/** Direct children of a node, in declaration order. */ +function childrenOf(code) { + return Object.keys(REGIONS).filter((key) => REGIONS[key].parent === code); +} + +/** + * The unqualified form of a query: "Huyện Ba Vì, Hà Nội, Việt Nam" becomes + * "Huyện Ba Vì, Việt Nam". + * + * The 2025 restructure abolished the district level, and OSM has followed it: + * the pre-2025 units now exist as boundary/historic relations whose rendered + * parent is the CURRENT province, not the historic one. Qualifying such a query + * with the historic city name therefore matches nothing, while the bare form + * finds the relation. Quan (urban districts) mostly still match qualified, so + * both forms are tried. + * @param {string} query Fully qualified query. + * @returns {string} Bare form. + */ +function bareForm(query) { + const head = query.split(',')[0].trim(); + return `${head}, Việt Nam`; +} + +/** + * Look up one administrative area and return it as a turf feature. + * + * `box` is the parent's pre-2025 extent. It is the guard against the bare query + * form matching a same-named unit elsewhere in the country: Nominatim happily + * returns "Ba Vì District, Phú Thọ Province" for a Ha Noi lookup, and only the + * geometry tells you whether it is the right Ba Vì. + * @param {string} query Nominatim free-text query. + * @param {number[]} box Parent bbox [west, south, east, north]. + * @returns {Promise} Feature, or null when nothing usable matched. + */ +async function lookupArea(query, box) { + const url = `${NOMINATIM}?q=${encodeURIComponent(query)}&format=json&polygon_geojson=1&limit=10`; + const response = await fetch(url, { + headers: { 'User-Agent': USER_AGENT, 'Accept-Language': 'en' }, + }); + if (!response.ok) throw new Error(`Nominatim ${response.status} for "${query}"`); + + // A cemetery, a bus stop or a hospital of the same name can outrank the + // district, so scan the candidates for one that is actually a boundary. Both + // 'administrative' and 'historic' count: the pre-2025 units are historic now. + for (const hit of await response.json()) { + if (!hit?.geojson) continue; + if (!['Polygon', 'MultiPolygon'].includes(hit.geojson.type)) continue; + if (hit.class !== 'boundary') continue; + if (box) { + const [lat, lon] = [Number(hit.lat), Number(hit.lon)]; + const inside = lon >= box[0] && lon <= box[2] && lat >= box[1] && lat <= box[3]; + if (!inside) continue; + } + return turf.feature(hit.geojson, { osm: `${hit.osm_type}/${hit.osm_id}` }); + } + return null; +} + +/** + * Write one region's polygon to disk. + * @param {string} code Region code. + * @param {Object} geometry GeoJSON geometry. + * @param {Object} extra Extra properties to record. + * @returns {Object} The written feature. + */ +function writeBoundary(code, geometry, extra) { + const config = REGIONS[code]; + const feature = turf.feature(geometry); + const bbox = turf.bbox(feature).map((n) => Number(n.toFixed(5))); + const centroid = turf.centerOfMass(feature).geometry.coordinates; + + const out = { + type: 'Feature', + properties: { + code, + name: config.name, + level: config.level, + parent: config.parent ?? null, + // Recorded so a future reader knows why this is not the current + // administrative boundary. + basis: 'pre-2025-merger extent, from OSM boundary/historic relations', + areaKm2: Number((turf.area(feature) / 1e6).toFixed(1)), + bbox, + center: config.center ?? [Number(centroid[1].toFixed(5)), Number(centroid[0].toFixed(5))], + generatedAt: new Date().toISOString(), + ...extra, + }, + geometry, + }; + + const path = `${OUT_DIR}/${fileFor(code)}`; + mkdirSync(dirname(path), { recursive: true }); + writeFileSync(path, JSON.stringify(out, null, 1) + '\n'); + return out; +} + +/** + * Resolve one leaf and write its polygon. + * @param {string} code Leaf code. + * @returns {Promise} True when it resolved. + */ +async function buildLeaf(code) { + const config = REGIONS[code]; + const box = REGIONS[config.parent]?.legacyBbox; + + // Qualified first, then bare. See bareForm() for why one form is not enough. + const forms = [config.query]; + const bare = bareForm(config.query); + if (bare !== config.query) forms.push(bare); + + let feature = null; + for (const form of forms) { + try { + feature = await lookupArea(form, box); + } catch (error) { + console.error(` ${code}: ${error.message}`); + } + await sleep(REQUEST_GAP_MS); + if (feature) break; + } + + if (!feature) { + // Not fatal. An unresolved leaf is recorded in the tree and excluded from + // play; see the Coverage note in docs/project-overview.md. + console.warn(` ${code} (${config.name}): no boundary found — UNRESOLVED`); + return false; + } + + const simplified = turf.simplify(feature, { tolerance: LEAF_TOLERANCE, highQuality: true }); + const out = writeBoundary(code, simplified.geometry, { osm: feature.properties.osm }); + console.log(` ${code} (${config.name}): ${out.properties.areaKm2} km2`); + return true; +} + +/** + * Union a province's resolved children and write the result. + * + * A province with a single child copies that child's geometry verbatim rather + * than re-simplifying it at the coarser province tolerance: the two would then + * disagree along the border, and every panorama in the gap would be assigned to + * the province but to no district. + * @param {string} code Province code. + * @returns {number} Children that could not be included. + */ +function buildProvince(code) { + const children = childrenOf(code); + const resolved = children.filter((child) => existsSync(`${OUT_DIR}/${fileFor(child)}`)); + const missing = children.length - resolved.length; + + if (resolved.length === 0) { + console.warn(` ${code}: no children resolved, nothing to write`); + return missing; + } + + const features = resolved.map((child) => + JSON.parse(readFileSync(`${OUT_DIR}/${fileFor(child)}`, 'utf8')) + ); + + let geometry; + if (features.length === 1) { + geometry = features[0].geometry; + } else { + let merged = features[0]; + for (const feature of features.slice(1)) { + merged = turf.union(turf.featureCollection([merged, feature])); + } + geometry = turf.simplify(merged, { + tolerance: PROVINCE_TOLERANCE, + highQuality: true, + }).geometry; + } + + const out = writeBoundary(code, geometry, { + parts: children.length, + missingParts: missing, + }); + console.log( + ` ${code}: ${out.properties.areaKm2} km2 from ${resolved.length}/${children.length} children` + + (missing ? ` (${missing} unresolved)` : '') + ); + return missing; +} + +/** + * Rewrite the barrel that imports every boundary on disk. + * + * Generated from the directory rather than a declared list so a partial build + * still compiles. Identifiers are sanitised and keys quoted because region + * codes contain hyphens. + * @returns {string[]} Region codes now in the barrel. + */ +function writeBoundaryBarrel() { + // Grouped by province, so walk one level of subdirectories. + const entries = readdirSync(OUT_DIR, { withFileTypes: true }) + .filter((entry) => entry.isDirectory()) + .flatMap((dir) => + readdirSync(`${OUT_DIR}/${dir.name}`) + .filter((name) => name.endsWith('.json')) + .map((name) => `${dir.name}/${name}`) + ) + .sort() + .map((file) => ({ + code: file.split('/').pop().replace(/\.json$/, '').toUpperCase(), + ident: identFor(file.split('/').pop()), + file, + })); + + const body = + '// Generated by scripts/build-region-boundaries.mjs. Do not edit by hand.\n' + + '//\n' + + '// Lists only the boundaries that have actually been built, so a partial\n' + + '// build still compiles.\n\n' + + entries.map((e) => `import ${e.ident} from './${e.file}';`).join('\n') + + '\n\nexport const REGION_BOUNDARIES = {\n' + + entries.map((e) => ` ${JSON.stringify(e.code)}: ${e.ident},`).join('\n') + + '\n};\n'; + + writeFileSync(`${OUT_DIR}/index.js`, body); + return entries.map((e) => e.code); +} + +/** + * Write the region tree. + * + * Panorama counts deliberately live in a separate generated file written by + * scripts/assign-pano-districts.mjs, so each generated file has exactly one + * writer. src/lib/regions.js joins the two. + * @param {Object} resolvedState Per-code resolution info. + */ +function writeTree(resolvedState) { + const nodes = Object.entries(REGIONS).map(([code, config]) => { + const state = resolvedState[code] ?? {}; + const node = { + code, + name: config.name, + parent: config.parent ?? null, + level: config.level, + children: childrenOf(code), + }; + if (state.center) node.center = state.center; + if (state.bbox) node.bbox = state.bbox; + if (config.partialCoverage) node.partialCoverage = config.partialCoverage; + if (state.coverage) node.coverage = state.coverage; + if (state.missingParts) node.missingParts = state.missingParts; + return node; + }); + + const body = + '// Generated by scripts/build-region-boundaries.mjs. Do not edit by hand.\n' + + '//\n' + + '// The region tree: country > province > district. Safe to import from a\n' + + '// client component -- it holds names and extents, never panorama data.\n' + + '//\n' + + '// A node marked coverage: \'unresolved\' has no boundary. That is recorded,\n' + + '// not a build failure; see the Coverage note in docs/project-overview.md.\n\n' + + 'export const REGIONS = {\n' + + nodes + .map((node) => ` ${JSON.stringify(node.code)}: ${JSON.stringify(node)},`) + .join('\n') + + '\n};\n'; + + mkdirSync(TREE_DIR, { recursive: true }); + writeFileSync(`${TREE_DIR}/index.js`, body); +} + +// -- run --------------------------------------------------------------------- + +const args = process.argv.slice(2); +// --regenerate rebuilds provinces, the barrel and the tree from the leaf +// polygons already on disk, without touching Nominatim. Use it after moving +// files or changing how the outputs are shaped; a full refetch is 60+ requests +// to a courtesy-rate-limited public service and should be reserved for actually +// refreshing the source data. +const regenerate = args.includes('--regenerate'); +const only = args.filter((arg) => !arg.startsWith('--')); + +const provinces = Object.keys(REGIONS).filter((code) => REGIONS[code].level === 'province'); +const targets = only.length ? provinces.filter((code) => only.includes(code)) : provinces; + +const resolvedState = {}; +let unresolved = 0; + +for (const province of targets) { + console.log(`\n${province} — ${REGIONS[province].name}`); + for (const leaf of childrenOf(province)) { + const ok = regenerate + ? existsSync(`${OUT_DIR}/${fileFor(leaf)}`) + : await buildLeaf(leaf); + if (!ok) { + resolvedState[leaf] = { coverage: 'unresolved' }; + unresolved++; + } + } + const missing = buildProvince(province); + if (missing) resolvedState[province] = { missingParts: missing }; + // Rewritten after each province so an interrupted run leaves a consistent barrel. + writeBoundaryBarrel(); +} + +// Read back what landed on disk, so the tree records the real extents rather +// than what the build hoped for. +for (const code of Object.keys(REGIONS)) { + const relative = fileFor(code); + if (!relative) continue; + const path = `${OUT_DIR}/${relative}`; + if (!existsSync(path)) continue; + const { properties } = JSON.parse(readFileSync(path, 'utf8')); + resolvedState[code] = { + ...resolvedState[code], + center: properties.center, + bbox: properties.bbox, + }; +} + +// The country has no polygon of its own: the real Vietnam outline is vastly +// larger than the covered area and would be misleading on a map. Its extent is +// the envelope of the provinces that actually resolved. +const provinceBoxes = provinces.map((code) => resolvedState[code]?.bbox).filter(Boolean); +if (provinceBoxes.length) { + const bbox = [ + Math.min(...provinceBoxes.map((b) => b[0])), + Math.min(...provinceBoxes.map((b) => b[1])), + Math.max(...provinceBoxes.map((b) => b[2])), + Math.max(...provinceBoxes.map((b) => b[3])), + ].map((n) => Number(n.toFixed(5))); + resolvedState.VN = { + bbox, + center: [ + Number(((bbox[1] + bbox[3]) / 2).toFixed(5)), + Number(((bbox[0] + bbox[2]) / 2).toFixed(5)), + ], + }; +} + +const codes = writeBoundaryBarrel(); +writeTree(resolvedState); + +console.log(`\nbarrel: ${codes.length} boundaries`); +console.log(`tree: ${Object.keys(REGIONS).length} nodes -> ${TREE_DIR}/index.js`); +if (unresolved) console.log(`unresolved leaves: ${unresolved} (recorded, not fatal)`); +console.log('done'); diff --git a/src/app/api/debug/city-coverage/route.js b/src/app/api/debug/city-coverage/route.js index 0de1be6..6032c0b 100644 --- a/src/app/api/debug/city-coverage/route.js +++ b/src/app/api/debug/city-coverage/route.js @@ -1,5 +1,5 @@ import { NextResponse } from 'next/server'; -import { CITY_BOUNDARIES } from '../../../../data/boundaries/index.js'; +import { REGION_BOUNDARIES } from '../../../../data/boundaries/index.js'; import { PANO_INDEXES } from '../../../../data/panos/index.js'; // Serves a city's outline and its panorama locations for the coverage debug @@ -31,7 +31,7 @@ export async function GET(request) { const { searchParams } = new URL(request.url); const code = (searchParams.get('city') || '').toUpperCase(); - const boundary = CITY_BOUNDARIES[code]; + const boundary = REGION_BOUNDARIES[code]; const index = PANO_INDEXES[code]; if (!boundary || !index) { return NextResponse.json( diff --git a/src/data/boundaries/dh.json b/src/data/boundaries/dh.json deleted file mode 100644 index 83ba9b3..0000000 --- a/src/data/boundaries/dh.json +++ /dev/null @@ -1,457 +0,0 @@ -{ - "type": "Feature", - "properties": { - "code": "DH", - "name": "Duc Hoa", - "basis": "pre-2025-merger extent, unioned from OSM boundary/historic relations", - "parts": 1, - "missingParts": 0, - "areaKm2": 427.4, - "bbox": [ - 106.27082, - 10.7409, - 106.53287, - 11.02578 - ], - "center": [ - 10.88904, - 106.40896 - ], - "generatedAt": "2026-08-30T04:03:11.323Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 106.2708229, - 11.0143718 - ], - [ - 106.2716241, - 11.0123102 - ], - [ - 106.2828627, - 11.00478 - ], - [ - 106.2868812, - 10.9935494 - ], - [ - 106.2863675, - 10.9908216 - ], - [ - 106.2831164, - 10.9860504 - ], - [ - 106.2737989, - 10.9818653 - ], - [ - 106.2723237, - 10.9789268 - ], - [ - 106.272364, - 10.9766213 - ], - [ - 106.277373, - 10.97434 - ], - [ - 106.288671, - 10.973062 - ], - [ - 106.28977, - 10.971577 - ], - [ - 106.283979, - 10.957844 - ], - [ - 106.283757, - 10.955816 - ], - [ - 106.285993, - 10.952844 - ], - [ - 106.296165, - 10.944885 - ], - [ - 106.299939, - 10.940861 - ], - [ - 106.303055, - 10.919617 - ], - [ - 106.302771, - 10.911197 - ], - [ - 106.3035921, - 10.9087361 - ], - [ - 106.3053432, - 10.9064512 - ], - [ - 106.3103245, - 10.9044218 - ], - [ - 106.328342, - 10.898802 - ], - [ - 106.3355797, - 10.893552 - ], - [ - 106.339096, - 10.889392 - ], - [ - 106.340046, - 10.886711 - ], - [ - 106.339786, - 10.883923 - ], - [ - 106.334568, - 10.87386 - ], - [ - 106.335809, - 10.868353 - ], - [ - 106.342127, - 10.861411 - ], - [ - 106.341553, - 10.856251 - ], - [ - 106.338006, - 10.849102 - ], - [ - 106.33848, - 10.845878 - ], - [ - 106.34176, - 10.843466 - ], - [ - 106.358607, - 10.841727 - ], - [ - 106.358825, - 10.839626 - ], - [ - 106.356896, - 10.836604 - ], - [ - 106.356196, - 10.833671 - ], - [ - 106.356687, - 10.829524 - ], - [ - 106.360126, - 10.822964 - ], - [ - 106.364083, - 10.820279 - ], - [ - 106.367052, - 10.819551 - ], - [ - 106.371178, - 10.820615 - ], - [ - 106.378262, - 10.826691 - ], - [ - 106.382717, - 10.826341 - ], - [ - 106.386601, - 10.823693 - ], - [ - 106.390408, - 10.818871 - ], - [ - 106.391742, - 10.815266 - ], - [ - 106.3904002, - 10.8038032 - ], - [ - 106.3908291, - 10.8006586 - ], - [ - 106.394357, - 10.795162 - ], - [ - 106.398697, - 10.79206 - ], - [ - 106.413741, - 10.787096 - ], - [ - 106.415613, - 10.788397 - ], - [ - 106.417142, - 10.793882 - ], - [ - 106.418757, - 10.795691 - ], - [ - 106.421691, - 10.796411 - ], - [ - 106.426675, - 10.794485 - ], - [ - 106.4287958, - 10.7917536 - ], - [ - 106.4288278, - 10.7880422 - ], - [ - 106.4272052, - 10.7844262 - ], - [ - 106.4225716, - 10.7820609 - ], - [ - 106.4233589, - 10.7781153 - ], - [ - 106.4245686, - 10.7770535 - ], - [ - 106.4242682, - 10.7753909 - ], - [ - 106.4298767, - 10.7752538 - ], - [ - 106.4290237, - 10.7732197 - ], - [ - 106.4313573, - 10.7720498 - ], - [ - 106.4314485, - 10.7726874 - ], - [ - 106.4340824, - 10.7708482 - ], - [ - 106.4386349, - 10.7640713 - ], - [ - 106.4385885, - 10.7629011 - ], - [ - 106.4395589, - 10.7627403 - ], - [ - 106.4426401, - 10.7581245 - ], - [ - 106.4488692, - 10.7629376 - ], - [ - 106.4661748, - 10.740899 - ], - [ - 106.4722331, - 10.7455255 - ], - [ - 106.4635618, - 10.7565046 - ], - [ - 106.4885044, - 10.7754906 - ], - [ - 106.5045619, - 10.7889222 - ], - [ - 106.5200679, - 10.8522195 - ], - [ - 106.5328728, - 10.8999003 - ], - [ - 106.5325466, - 10.9014489 - ], - [ - 106.5315364, - 10.9026658 - ], - [ - 106.4535377, - 10.9419195 - ], - [ - 106.4118982, - 10.973542 - ], - [ - 106.3731933, - 10.9696228 - ], - [ - 106.3511251, - 10.9988937 - ], - [ - 106.3455329, - 10.9947858 - ], - [ - 106.3430053, - 11.0012811 - ], - [ - 106.3378339, - 11.0052375 - ], - [ - 106.327824, - 11.0098801 - ], - [ - 106.3120618, - 11.0199771 - ], - [ - 106.300806, - 11.0226745 - ], - [ - 106.2976075, - 11.0240541 - ], - [ - 106.296914, - 11.0257756 - ], - [ - 106.2943806, - 11.0250353 - ], - [ - 106.2924536, - 11.0255702 - ], - [ - 106.2914359, - 11.0253081 - ], - [ - 106.2910353, - 11.0234166 - ], - [ - 106.2873844, - 11.0245535 - ], - [ - 106.2880078, - 11.0219182 - ], - [ - 106.2841263, - 11.0220866 - ], - [ - 106.2790618, - 11.0158957 - ], - [ - 106.2764274, - 11.0198205 - ], - [ - 106.2738652, - 11.0216199 - ], - [ - 106.2708229, - 11.0143718 - ] - ] - ] - } -} diff --git a/src/data/boundaries/dl.json b/src/data/boundaries/dl.json deleted file mode 100644 index 87de15d..0000000 --- a/src/data/boundaries/dl.json +++ /dev/null @@ -1,1145 +0,0 @@ -{ - "type": "Feature", - "properties": { - "code": "DL", - "name": "Da Lat", - "basis": "pre-2025-merger extent, unioned from OSM boundary/historic relations", - "parts": 1, - "missingParts": 0, - "areaKm2": 392.7, - "bbox": [ - 108.31521, - 11.80798, - 108.5944, - 12.00855 - ], - "center": [ - 11.92057, - 108.46436 - ], - "generatedAt": "2026-08-30T04:03:09.261Z" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 108.3152058, - 11.927614 - ], - [ - 108.316198, - 11.9264101 - ], - [ - 108.3155635, - 11.9255357 - ], - [ - 108.3188175, - 11.9245676 - ], - [ - 108.3183108, - 11.9220076 - ], - [ - 108.3192884, - 11.9194413 - ], - [ - 108.3187795, - 11.9167729 - ], - [ - 108.3193803, - 11.9145684 - ], - [ - 108.3206909, - 11.9122436 - ], - [ - 108.325864, - 11.9077509 - ], - [ - 108.3261529, - 11.9058736 - ], - [ - 108.3277193, - 11.9062121 - ], - [ - 108.3272651, - 11.9071182 - ], - [ - 108.3320138, - 11.907374 - ], - [ - 108.3355299, - 11.9088104 - ], - [ - 108.3407113, - 11.9032 - ], - [ - 108.3393511, - 11.9026737 - ], - [ - 108.337886, - 11.9034778 - ], - [ - 108.337702, - 11.899492 - ], - [ - 108.3399409, - 11.8982476 - ], - [ - 108.3412993, - 11.8990104 - ], - [ - 108.343475, - 11.898535 - ], - [ - 108.3462077, - 11.8933019 - ], - [ - 108.3492971, - 11.8930775 - ], - [ - 108.3492127, - 11.8912564 - ], - [ - 108.3508319, - 11.89021 - ], - [ - 108.3548632, - 11.8940893 - ], - [ - 108.3565672, - 11.8939661 - ], - [ - 108.3589199, - 11.8953132 - ], - [ - 108.362765, - 11.898971 - ], - [ - 108.3659166, - 11.8994933 - ], - [ - 108.3665818, - 11.8979606 - ], - [ - 108.3692157, - 11.895895 - ], - [ - 108.3726503, - 11.8899253 - ], - [ - 108.3759963, - 11.8925906 - ], - [ - 108.3788073, - 11.8910053 - ], - [ - 108.3802041, - 11.8917804 - ], - [ - 108.3830076, - 11.8914725 - ], - [ - 108.3833616, - 11.8902859 - ], - [ - 108.3848154, - 11.8895722 - ], - [ - 108.3863387, - 11.8862116 - ], - [ - 108.3855164, - 11.8836254 - ], - [ - 108.3880759, - 11.8808294 - ], - [ - 108.3885813, - 11.878706 - ], - [ - 108.3925885, - 11.8787925 - ], - [ - 108.3941871, - 11.8778423 - ], - [ - 108.3964616, - 11.8756139 - ], - [ - 108.3978939, - 11.8753777 - ], - [ - 108.3989262, - 11.8734725 - ], - [ - 108.4038323, - 11.8698918 - ], - [ - 108.4056155, - 11.8675688 - ], - [ - 108.410019, - 11.865684 - ], - [ - 108.4131681, - 11.8660002 - ], - [ - 108.4174177, - 11.8621484 - ], - [ - 108.4174385, - 11.8600446 - ], - [ - 108.4190421, - 11.8571685 - ], - [ - 108.4254134, - 11.8536775 - ], - [ - 108.4263972, - 11.853522 - ], - [ - 108.4294099, - 11.8618557 - ], - [ - 108.4354676, - 11.8654846 - ], - [ - 108.4417331, - 11.8711065 - ], - [ - 108.4433842, - 11.8729051 - ], - [ - 108.4443068, - 11.876362 - ], - [ - 108.4466913, - 11.8769788 - ], - [ - 108.4506692, - 11.880267 - ], - [ - 108.4534516, - 11.880048 - ], - [ - 108.4546307, - 11.8816426 - ], - [ - 108.4556778, - 11.8813127 - ], - [ - 108.4605405, - 11.8851377 - ], - [ - 108.4613609, - 11.884784 - ], - [ - 108.4620805, - 11.880006 - ], - [ - 108.4659826, - 11.8788892 - ], - [ - 108.4659226, - 11.8776922 - ], - [ - 108.4672444, - 11.8770562 - ], - [ - 108.4690556, - 11.8738391 - ], - [ - 108.4804818, - 11.8697947 - ], - [ - 108.4867823, - 11.8697448 - ], - [ - 108.4880399, - 11.8674047 - ], - [ - 108.4918816, - 11.8643179 - ], - [ - 108.4884543, - 11.8633051 - ], - [ - 108.4866844, - 11.8610255 - ], - [ - 108.4807295, - 11.8572565 - ], - [ - 108.4799488, - 11.8581435 - ], - [ - 108.4796851, - 11.8570271 - ], - [ - 108.4892982, - 11.8551423 - ], - [ - 108.4976158, - 11.847997 - ], - [ - 108.5029596, - 11.8443517 - ], - [ - 108.5051393, - 11.843936 - ], - [ - 108.5056283, - 11.840062 - ], - [ - 108.5056329, - 11.8387067 - ], - [ - 108.5000462, - 11.8335194 - ], - [ - 108.4972541, - 11.8333724 - ], - [ - 108.4970383, - 11.8320394 - ], - [ - 108.4947113, - 11.8314717 - ], - [ - 108.4928257, - 11.8288753 - ], - [ - 108.4904654, - 11.8286758 - ], - [ - 108.4901838, - 11.827459 - ], - [ - 108.4872372, - 11.8251357 - ], - [ - 108.4924323, - 11.8221625 - ], - [ - 108.4937909, - 11.8228083 - ], - [ - 108.4975518, - 11.8174608 - ], - [ - 108.4975149, - 11.8165241 - ], - [ - 108.4966341, - 11.8163684 - ], - [ - 108.5049665, - 11.812755 - ], - [ - 108.5048336, - 11.8111806 - ], - [ - 108.5195199, - 11.8148003 - ], - [ - 108.5215775, - 11.8141352 - ], - [ - 108.5225771, - 11.8107642 - ], - [ - 108.5257613, - 11.8095039 - ], - [ - 108.5304701, - 11.8100963 - ], - [ - 108.5345109, - 11.8079789 - ], - [ - 108.5357343, - 11.8111428 - ], - [ - 108.5383907, - 11.8139162 - ], - [ - 108.5427796, - 11.8158515 - ], - [ - 108.5423684, - 11.8203563 - ], - [ - 108.5438242, - 11.8207458 - ], - [ - 108.5453664, - 11.8234129 - ], - [ - 108.5454899, - 11.8258613 - ], - [ - 108.5476716, - 11.8270199 - ], - [ - 108.5498223, - 11.8310622 - ], - [ - 108.5769126, - 11.8470598 - ], - [ - 108.5775328, - 11.846951 - ], - [ - 108.5772318, - 11.8457158 - ], - [ - 108.5792868, - 11.8463822 - ], - [ - 108.5804021, - 11.8492176 - ], - [ - 108.5832828, - 11.8496639 - ], - [ - 108.5831405, - 11.8517497 - ], - [ - 108.584007, - 11.8533599 - ], - [ - 108.5896611, - 11.850958 - ], - [ - 108.5899761, - 11.8542387 - ], - [ - 108.5943979, - 11.8597492 - ], - [ - 108.5944033, - 11.8635973 - ], - [ - 108.5936469, - 11.8652405 - ], - [ - 108.5906266, - 11.8674623 - ], - [ - 108.5858256, - 11.8694246 - ], - [ - 108.587333, - 11.8707475 - ], - [ - 108.5863156, - 11.8739413 - ], - [ - 108.5860921, - 11.8788549 - ], - [ - 108.5869896, - 11.884147 - ], - [ - 108.585674, - 11.8889108 - ], - [ - 108.5834438, - 11.8900499 - ], - [ - 108.584007, - 11.8913544 - ], - [ - 108.5881215, - 11.8945669 - ], - [ - 108.5912678, - 11.8988975 - ], - [ - 108.5925257, - 11.9048815 - ], - [ - 108.5908362, - 11.9047458 - ], - [ - 108.584634, - 11.906674 - ], - [ - 108.5808448, - 11.9057455 - ], - [ - 108.5791542, - 11.9068248 - ], - [ - 108.5757344, - 11.9123813 - ], - [ - 108.5733545, - 11.9190061 - ], - [ - 108.5744557, - 11.9234675 - ], - [ - 108.5736859, - 11.9271391 - ], - [ - 108.5716742, - 11.9286035 - ], - [ - 108.5644348, - 11.9387051 - ], - [ - 108.5665767, - 11.94357 - ], - [ - 108.5655943, - 11.9482639 - ], - [ - 108.565791, - 11.9512733 - ], - [ - 108.5685468, - 11.9568236 - ], - [ - 108.5684985, - 11.9588242 - ], - [ - 108.5702754, - 11.959779 - ], - [ - 108.5707578, - 11.9632163 - ], - [ - 108.5663353, - 11.9652343 - ], - [ - 108.5639119, - 11.9685055 - ], - [ - 108.5562086, - 11.9750547 - ], - [ - 108.5549292, - 11.9745791 - ], - [ - 108.5512573, - 11.976217 - ], - [ - 108.5488915, - 11.975443 - ], - [ - 108.5458526, - 11.9760261 - ], - [ - 108.5382975, - 11.9802995 - ], - [ - 108.5350347, - 11.9839129 - ], - [ - 108.5324571, - 11.9837561 - ], - [ - 108.531717, - 11.9844035 - ], - [ - 108.5298398, - 11.9838024 - ], - [ - 108.5280937, - 11.9854081 - ], - [ - 108.5251604, - 11.9839431 - ], - [ - 108.5230029, - 11.9845698 - ], - [ - 108.5168445, - 11.9838851 - ], - [ - 108.5143581, - 11.9865954 - ], - [ - 108.5094198, - 11.9854659 - ], - [ - 108.5074487, - 11.9862884 - ], - [ - 108.5074434, - 11.9874323 - ], - [ - 108.5050079, - 11.9867239 - ], - [ - 108.5004723, - 11.9889279 - ], - [ - 108.4988898, - 11.9889174 - ], - [ - 108.4983708, - 11.9903 - ], - [ - 108.4962384, - 11.9897176 - ], - [ - 108.4934143, - 11.9924783 - ], - [ - 108.4917758, - 11.9929967 - ], - [ - 108.4867705, - 11.9921139 - ], - [ - 108.4841893, - 11.9927834 - ], - [ - 108.4814588, - 11.9918428 - ], - [ - 108.480915, - 11.9899734 - ], - [ - 108.4790024, - 11.9910976 - ], - [ - 108.47646, - 11.9887641 - ], - [ - 108.4746406, - 11.9889141 - ], - [ - 108.4735549, - 11.9937011 - ], - [ - 108.4684176, - 11.9941634 - ], - [ - 108.4661267, - 11.9964565 - ], - [ - 108.4655568, - 11.9981064 - ], - [ - 108.4632665, - 11.9988476 - ], - [ - 108.4640953, - 12.0011563 - ], - [ - 108.4639326, - 12.0040596 - ], - [ - 108.4630041, - 12.006108 - ], - [ - 108.4606576, - 12.0077037 - ], - [ - 108.4586876, - 12.0071292 - ], - [ - 108.4557289, - 12.0085517 - ], - [ - 108.4525386, - 12.0074125 - ], - [ - 108.4491161, - 12.0028764 - ], - [ - 108.4455595, - 12.0018847 - ], - [ - 108.4416332, - 11.9994554 - ], - [ - 108.4392751, - 11.9942801 - ], - [ - 108.4357747, - 11.994856 - ], - [ - 108.4349459, - 11.9938512 - ], - [ - 108.4342056, - 11.9949557 - ], - [ - 108.4340098, - 11.9942316 - ], - [ - 108.4323415, - 11.9937882 - ], - [ - 108.4296783, - 11.9972894 - ], - [ - 108.426299, - 11.9988905 - ], - [ - 108.4246811, - 12.0006316 - ], - [ - 108.418006, - 11.9999541 - ], - [ - 108.4140979, - 12.0035284 - ], - [ - 108.4073406, - 12.0047523 - ], - [ - 108.4021675, - 12.001404 - ], - [ - 108.3986785, - 12.0004758 - ], - [ - 108.3980146, - 11.9988518 - ], - [ - 108.396414, - 11.9991318 - ], - [ - 108.3949646, - 11.9980347 - ], - [ - 108.3901299, - 11.9972031 - ], - [ - 108.3878185, - 11.9944481 - ], - [ - 108.3851534, - 11.9934314 - ], - [ - 108.3832651, - 11.9909783 - ], - [ - 108.3773089, - 11.9889549 - ], - [ - 108.3736041, - 11.9858629 - ], - [ - 108.3682091, - 11.98936 - ], - [ - 108.3675136, - 11.9892081 - ], - [ - 108.3674564, - 11.9880852 - ], - [ - 108.3650316, - 11.9892036 - ], - [ - 108.3632321, - 11.9884051 - ], - [ - 108.3639532, - 11.9906897 - ], - [ - 108.3615177, - 11.9918917 - ], - [ - 108.3600694, - 11.9910701 - ], - [ - 108.3575803, - 11.9924816 - ], - [ - 108.3555365, - 11.9918874 - ], - [ - 108.3554614, - 11.9894172 - ], - [ - 108.3564618, - 11.9870978 - ], - [ - 108.35584, - 11.9862672 - ], - [ - 108.3525713, - 11.9833918 - ], - [ - 108.3501452, - 11.9830153 - ], - [ - 108.3482194, - 11.98036 - ], - [ - 108.3464947, - 11.9804072 - ], - [ - 108.3454226, - 11.9783962 - ], - [ - 108.3435845, - 11.9783502 - ], - [ - 108.3421147, - 11.9763613 - ], - [ - 108.3388056, - 11.9761253 - ], - [ - 108.3376419, - 11.9744863 - ], - [ - 108.3347334, - 11.9693438 - ], - [ - 108.33763, - 11.9676553 - ], - [ - 108.3379027, - 11.9635745 - ], - [ - 108.3332192, - 11.9645989 - ], - [ - 108.3320466, - 11.9656043 - ], - [ - 108.329386, - 11.9646818 - ], - [ - 108.3284301, - 11.9628483 - ], - [ - 108.3252865, - 11.9619142 - ], - [ - 108.324345, - 11.9608593 - ], - [ - 108.3266504, - 11.9590113 - ], - [ - 108.3221215, - 11.9540789 - ], - [ - 108.3232856, - 11.9522893 - ], - [ - 108.3233178, - 11.9504524 - ], - [ - 108.3223892, - 11.9494488 - ], - [ - 108.3229476, - 11.9477864 - ], - [ - 108.3224219, - 11.9462644 - ], - [ - 108.3205375, - 11.9448313 - ], - [ - 108.3221923, - 11.9429909 - ], - [ - 108.3222906, - 11.9393128 - ], - [ - 108.3172773, - 11.9371097 - ], - [ - 108.3182485, - 11.935906 - ], - [ - 108.3181341, - 11.9346985 - ], - [ - 108.3152058, - 11.927614 - ] - ] - ] - } -} diff --git a/src/data/boundaries/dn/dn-camle.json b/src/data/boundaries/dn/dn-camle.json new file mode 100644 index 0000000..29dedd1 --- /dev/null +++ b/src/data/boundaries/dn/dn-camle.json @@ -0,0 +1,682 @@ +{ + "type": "Feature", + "properties": { + "code": "DN-CAMLE", + "name": "Cam Le", + "level": "district", + "parent": "DN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 36.2, + "bbox": [ + 108.15769, + 15.97164, + 108.23951, + 16.06188 + ], + "center": [ + 16.01409, + 108.19606 + ], + "generatedAt": "2026-08-30T07:35:16.948Z", + "osm": "relation/19403875" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 108.157686, + 15.997032 + ], + [ + 108.1580695, + 15.996341 + ], + [ + 108.1579167, + 15.9952504 + ], + [ + 108.1582968, + 15.9941207 + ], + [ + 108.1592406, + 15.9947598 + ], + [ + 108.1605107, + 15.9949596 + ], + [ + 108.1641061, + 15.993685 + ], + [ + 108.1673795, + 15.9934249 + ], + [ + 108.1700778, + 15.99343 + ], + [ + 108.1749143, + 15.9941036 + ], + [ + 108.1770019, + 15.9942111 + ], + [ + 108.1816591, + 15.9936886 + ], + [ + 108.1844883, + 15.993856 + ], + [ + 108.1851779, + 15.9941246 + ], + [ + 108.1861649, + 15.9948884 + ], + [ + 108.1894151, + 15.9989573 + ], + [ + 108.1901864, + 15.9993424 + ], + [ + 108.193801, + 16.0002668 + ], + [ + 108.1984482, + 16.0023316 + ], + [ + 108.2054682, + 16.0072359 + ], + [ + 108.2070262, + 16.0085579 + ], + [ + 108.2078788, + 16.0066374 + ], + [ + 108.2078785, + 16.0060099 + ], + [ + 108.2070491, + 16.0023802 + ], + [ + 108.2081388, + 15.9800951 + ], + [ + 108.2096927, + 15.980085 + ], + [ + 108.2100402, + 15.9749052 + ], + [ + 108.2089829, + 15.9748665 + ], + [ + 108.2090044, + 15.9732732 + ], + [ + 108.2099358, + 15.9733496 + ], + [ + 108.2099825, + 15.9727559 + ], + [ + 108.2110936, + 15.9729603 + ], + [ + 108.2121627, + 15.9728995 + ], + [ + 108.2150075, + 15.9717811 + ], + [ + 108.2168795, + 15.9716436 + ], + [ + 108.2181906, + 15.974046 + ], + [ + 108.2219169, + 15.9784211 + ], + [ + 108.2227105, + 15.9799469 + ], + [ + 108.2226171, + 15.9820113 + ], + [ + 108.2222751, + 15.9830619 + ], + [ + 108.2208089, + 15.9849022 + ], + [ + 108.2204101, + 15.9858521 + ], + [ + 108.2205944, + 15.9872783 + ], + [ + 108.2211222, + 15.9877031 + ], + [ + 108.2223653, + 15.9879356 + ], + [ + 108.2280323, + 15.9907624 + ], + [ + 108.2294794, + 15.9925574 + ], + [ + 108.2298996, + 15.9949807 + ], + [ + 108.2295728, + 15.9972693 + ], + [ + 108.2289687, + 15.9994678 + ], + [ + 108.2289249, + 16.0004042 + ], + [ + 108.2290955, + 16.001092 + ], + [ + 108.2298395, + 16.0023703 + ], + [ + 108.2313133, + 16.0041081 + ], + [ + 108.2321854, + 16.005402 + ], + [ + 108.2327005, + 16.0065582 + ], + [ + 108.2324671, + 16.0090261 + ], + [ + 108.233214, + 16.0117633 + ], + [ + 108.2347079, + 16.014321 + ], + [ + 108.2386601, + 16.018507 + ], + [ + 108.2395077, + 16.0202503 + ], + [ + 108.239365, + 16.0222607 + ], + [ + 108.2383731, + 16.0242939 + ], + [ + 108.2350589, + 16.0291604 + ], + [ + 108.2336336, + 16.0285578 + ], + [ + 108.2312369, + 16.028431 + ], + [ + 108.22874, + 16.0279405 + ], + [ + 108.2258911, + 16.0267248 + ], + [ + 108.2236416, + 16.024976 + ], + [ + 108.221327, + 16.0224955 + ], + [ + 108.2196085, + 16.0237065 + ], + [ + 108.2184832, + 16.0240425 + ], + [ + 108.2179135, + 16.0247344 + ], + [ + 108.2179489, + 16.0258407 + ], + [ + 108.2166463, + 16.0276306 + ], + [ + 108.2163878, + 16.0288392 + ], + [ + 108.2158874, + 16.0300241 + ], + [ + 108.2148958, + 16.0309759 + ], + [ + 108.2143019, + 16.0358676 + ], + [ + 108.2079731, + 16.0373217 + ], + [ + 108.2081076, + 16.0378631 + ], + [ + 108.2077334, + 16.0379451 + ], + [ + 108.2074269, + 16.0376175 + ], + [ + 108.2080739, + 16.0355945 + ], + [ + 108.2081664, + 16.0343512 + ], + [ + 108.2074426, + 16.0337633 + ], + [ + 108.2080406, + 16.0314206 + ], + [ + 108.2083166, + 16.0251799 + ], + [ + 108.2070528, + 16.0246784 + ], + [ + 108.2061226, + 16.0240098 + ], + [ + 108.2018239, + 16.0234058 + ], + [ + 108.2017312, + 16.0236192 + ], + [ + 108.1998995, + 16.0227154 + ], + [ + 108.1974565, + 16.0226915 + ], + [ + 108.1964252, + 16.0216768 + ], + [ + 108.1958417, + 16.0213354 + ], + [ + 108.1950738, + 16.0213129 + ], + [ + 108.1940516, + 16.021873 + ], + [ + 108.1929884, + 16.0230896 + ], + [ + 108.1925758, + 16.0230246 + ], + [ + 108.1914988, + 16.0244334 + ], + [ + 108.1910655, + 16.0253073 + ], + [ + 108.1787682, + 16.0618775 + ], + [ + 108.1732991, + 16.0582383 + ], + [ + 108.1736498, + 16.0570739 + ], + [ + 108.1720318, + 16.0564984 + ], + [ + 108.1720769, + 16.0562996 + ], + [ + 108.1718172, + 16.0562381 + ], + [ + 108.1718749, + 16.0559939 + ], + [ + 108.1710769, + 16.0561034 + ], + [ + 108.1714903, + 16.0542372 + ], + [ + 108.1704426, + 16.0539978 + ], + [ + 108.1709019, + 16.0523288 + ], + [ + 108.1703987, + 16.05216 + ], + [ + 108.1706464, + 16.0513039 + ], + [ + 108.1716295, + 16.0515797 + ], + [ + 108.1718859, + 16.0507629 + ], + [ + 108.1709438, + 16.0504497 + ], + [ + 108.1714823, + 16.0488519 + ], + [ + 108.1712228, + 16.0488532 + ], + [ + 108.1712189, + 16.0477655 + ], + [ + 108.1715844, + 16.0470859 + ], + [ + 108.1713708, + 16.0468826 + ], + [ + 108.1713304, + 16.0464785 + ], + [ + 108.1716335, + 16.0461099 + ], + [ + 108.1707909, + 16.0449551 + ], + [ + 108.1709991, + 16.0447598 + ], + [ + 108.1687379, + 16.0424687 + ], + [ + 108.1688805, + 16.0423383 + ], + [ + 108.1675512, + 16.0411658 + ], + [ + 108.1664488, + 16.0405265 + ], + [ + 108.1656978, + 16.0390932 + ], + [ + 108.1629646, + 16.036683 + ], + [ + 108.162353, + 16.0356725 + ], + [ + 108.1622001, + 16.0349223 + ], + [ + 108.1629063, + 16.0342209 + ], + [ + 108.1633159, + 16.0334272 + ], + [ + 108.1631319, + 16.0315283 + ], + [ + 108.164008, + 16.0305657 + ], + [ + 108.1645486, + 16.0288264 + ], + [ + 108.1647027, + 16.0277351 + ], + [ + 108.1635137, + 16.0268593 + ], + [ + 108.1616503, + 16.0263379 + ], + [ + 108.1601027, + 16.0240125 + ], + [ + 108.1597358, + 16.0238978 + ], + [ + 108.1596788, + 16.0236361 + ], + [ + 108.1601628, + 16.0234374 + ], + [ + 108.1624212, + 16.0238982 + ], + [ + 108.163199, + 16.0236439 + ], + [ + 108.165143, + 16.0219913 + ], + [ + 108.165515, + 16.020364 + ], + [ + 108.1658746, + 16.019757 + ], + [ + 108.1678113, + 16.0180728 + ], + [ + 108.1691095, + 16.0172065 + ], + [ + 108.1706766, + 16.015775 + ], + [ + 108.1683059, + 16.0139794 + ], + [ + 108.1666059, + 16.0119336 + ], + [ + 108.1605626, + 16.0093697 + ], + [ + 108.1592242, + 16.0090454 + ], + [ + 108.1587777, + 16.0033102 + ], + [ + 108.1583485, + 16.0009098 + ], + [ + 108.1577182, + 15.9989451 + ], + [ + 108.157686, + 15.997032 + ] + ] + ] + } +} diff --git a/src/data/boundaries/dn/dn-haichau.json b/src/data/boundaries/dn/dn-haichau.json new file mode 100644 index 0000000..75048bd --- /dev/null +++ b/src/data/boundaries/dn/dn-haichau.json @@ -0,0 +1,596 @@ +{ + "type": "Feature", + "properties": { + "code": "DN-HAICHAU", + "name": "Hai Chau", + "level": "district", + "parent": "DN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 22.9, + "bbox": [ + 108.18883, + 16.02131, + 108.236, + 16.10365 + ], + "center": [ + 16.05669, + 108.21143 + ], + "generatedAt": "2026-08-30T07:35:08.257Z", + "osm": "relation/19403876" + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 108.1888335, + 16.0527778 + ], + [ + 108.1960155, + 16.0364883 + ], + [ + 108.1893537, + 16.0327948 + ], + [ + 108.1913719, + 16.0265879 + ], + [ + 108.1907008, + 16.0263747 + ], + [ + 108.1912779, + 16.0248057 + ], + [ + 108.1925758, + 16.0230246 + ], + [ + 108.1929884, + 16.0230896 + ], + [ + 108.1940516, + 16.021873 + ], + [ + 108.1950738, + 16.0213129 + ], + [ + 108.1958417, + 16.0213354 + ], + [ + 108.1964252, + 16.0216768 + ], + [ + 108.1974565, + 16.0226915 + ], + [ + 108.1998995, + 16.0227154 + ], + [ + 108.2017312, + 16.0236192 + ], + [ + 108.2018239, + 16.0234058 + ], + [ + 108.2061226, + 16.0240098 + ], + [ + 108.2070528, + 16.0246784 + ], + [ + 108.2083166, + 16.0251799 + ], + [ + 108.2080406, + 16.0314206 + ], + [ + 108.2074426, + 16.0337633 + ], + [ + 108.2081664, + 16.0343512 + ], + [ + 108.2080739, + 16.0355945 + ], + [ + 108.2074269, + 16.0376175 + ], + [ + 108.2077334, + 16.0379451 + ], + [ + 108.2081076, + 16.0378631 + ], + [ + 108.2079731, + 16.0373217 + ], + [ + 108.2143019, + 16.0358676 + ], + [ + 108.2148958, + 16.0309759 + ], + [ + 108.2158874, + 16.0300241 + ], + [ + 108.2163878, + 16.0288392 + ], + [ + 108.2166463, + 16.0276306 + ], + [ + 108.2179489, + 16.0258407 + ], + [ + 108.2179135, + 16.0247344 + ], + [ + 108.2184832, + 16.0240425 + ], + [ + 108.2196085, + 16.0237065 + ], + [ + 108.221327, + 16.0224955 + ], + [ + 108.2236416, + 16.024976 + ], + [ + 108.2258911, + 16.0267248 + ], + [ + 108.22874, + 16.0279405 + ], + [ + 108.2312369, + 16.028431 + ], + [ + 108.2336336, + 16.0285578 + ], + [ + 108.2350589, + 16.0291604 + ], + [ + 108.2353237, + 16.0313059 + ], + [ + 108.2357658, + 16.032605 + ], + [ + 108.2359971, + 16.0340552 + ], + [ + 108.2359977, + 16.0354354 + ], + [ + 108.2345755, + 16.0422698 + ], + [ + 108.2339033, + 16.0442982 + ], + [ + 108.2323274, + 16.0473298 + ], + [ + 108.2288383, + 16.0510559 + ], + [ + 108.227316, + 16.0539997 + ], + [ + 108.2270163, + 16.0573659 + ], + [ + 108.2264075, + 16.0792643 + ], + [ + 108.226028, + 16.0821677 + ], + [ + 108.2252379, + 16.0859249 + ], + [ + 108.2219899, + 16.0950595 + ], + [ + 108.2206923, + 16.1036543 + ], + [ + 108.2149991, + 16.0961727 + ], + [ + 108.2126815, + 16.0974633 + ], + [ + 108.2100685, + 16.0982392 + ], + [ + 108.2071278, + 16.0984265 + ], + [ + 108.2056103, + 16.0982773 + ], + [ + 108.2041422, + 16.097898 + ], + [ + 108.2042217, + 16.0977344 + ], + [ + 108.2071317, + 16.098261 + ], + [ + 108.2100283, + 16.0980412 + ], + [ + 108.2125818, + 16.0972604 + ], + [ + 108.2147603, + 16.0960807 + ], + [ + 108.2140352, + 16.0945289 + ], + [ + 108.2136667, + 16.0929725 + ], + [ + 108.2133955, + 16.0925997 + ], + [ + 108.2134178, + 16.0920781 + ], + [ + 108.2131231, + 16.0915669 + ], + [ + 108.2106184, + 16.089622 + ], + [ + 108.2100524, + 16.0894136 + ], + [ + 108.2072511, + 16.0889945 + ], + [ + 108.2060396, + 16.0913602 + ], + [ + 108.2047276, + 16.092864 + ], + [ + 108.2030279, + 16.0938684 + ], + [ + 108.2011491, + 16.0945157 + ], + [ + 108.2010767, + 16.0944295 + ], + [ + 108.2038013, + 16.0932455 + ], + [ + 108.2052976, + 16.0920062 + ], + [ + 108.2063845, + 16.0904322 + ], + [ + 108.2070583, + 16.0888926 + ], + [ + 108.2071238, + 16.0881534 + ], + [ + 108.2072759, + 16.0881022 + ], + [ + 108.2075553, + 16.0863245 + ], + [ + 108.2071477, + 16.083312 + ], + [ + 108.2063863, + 16.0811539 + ], + [ + 108.2052142, + 16.0789681 + ], + [ + 108.2081934, + 16.0761189 + ], + [ + 108.2083277, + 16.0762674 + ], + [ + 108.2093239, + 16.0754709 + ], + [ + 108.2096262, + 16.0757492 + ], + [ + 108.2099019, + 16.0755914 + ], + [ + 108.2099497, + 16.0754293 + ], + [ + 108.2096092, + 16.0749506 + ], + [ + 108.2099004, + 16.0742854 + ], + [ + 108.2122563, + 16.0761907 + ], + [ + 108.2145593, + 16.0654636 + ], + [ + 108.2129488, + 16.0568207 + ], + [ + 108.2126515, + 16.0558177 + ], + [ + 108.2120927, + 16.0548307 + ], + [ + 108.2105123, + 16.0524394 + ], + [ + 108.2100344, + 16.0528899 + ], + [ + 108.2094872, + 16.0558198 + ], + [ + 108.2086263, + 16.0564142 + ], + [ + 108.2049575, + 16.0559447 + ], + [ + 108.2049058, + 16.0564129 + ], + [ + 108.2064034, + 16.0567075 + ], + [ + 108.2046336, + 16.0604744 + ], + [ + 108.2039387, + 16.0613375 + ], + [ + 108.2021511, + 16.0646609 + ], + [ + 108.2017609, + 16.0647558 + ], + [ + 108.1930239, + 16.0643262 + ], + [ + 108.1931372, + 16.0625717 + ], + [ + 108.1928731, + 16.0615213 + ], + [ + 108.1913247, + 16.0597045 + ], + [ + 108.1904832, + 16.0589461 + ], + [ + 108.1910606, + 16.0572813 + ], + [ + 108.189535, + 16.0562297 + ], + [ + 108.1906834, + 16.0535333 + ], + [ + 108.1888335, + 16.0527778 + ] + ] + ], + [ + [ + [ + 108.2063163, + 16.094756 + ], + [ + 108.2066246, + 16.0941885 + ], + [ + 108.2070675, + 16.0940929 + ], + [ + 108.2068969, + 16.0951124 + ], + [ + 108.2071855, + 16.0961768 + ], + [ + 108.2079034, + 16.0965505 + ], + [ + 108.2095642, + 16.0965754 + ], + [ + 108.2097887, + 16.0968331 + ], + [ + 108.2094464, + 16.0971447 + ], + [ + 108.2082159, + 16.0973774 + ], + [ + 108.2075942, + 16.0973076 + ], + [ + 108.2073778, + 16.0977163 + ], + [ + 108.2071676, + 16.0977423 + ], + [ + 108.2066917, + 16.0966713 + ], + [ + 108.2063163, + 16.094756 + ] + ] + ] + ] + } +} diff --git a/src/data/boundaries/dn/dn-hoavang.json b/src/data/boundaries/dn/dn-hoavang.json new file mode 100644 index 0000000..e56d21f --- /dev/null +++ b/src/data/boundaries/dn/dn-hoavang.json @@ -0,0 +1,4478 @@ +{ + "type": "Feature", + "properties": { + "code": "DN-HOAVANG", + "name": "Hoa Vang", + "level": "district", + "parent": "DN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 735.9, + "bbox": [ + 107.81854, + 15.91799, + 108.22494, + 16.21544 + ], + "center": [ + 16.06583, + 108.01436 + ], + "generatedAt": "2026-08-30T07:35:20.035Z", + "osm": "relation/7053087" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 107.8185394, + 16.0582918 + ], + [ + 107.818754, + 16.0578845 + ], + [ + 107.8187648, + 16.0573896 + ], + [ + 107.8192368, + 16.0572917 + ], + [ + 107.8200415, + 16.0566576 + ], + [ + 107.8243437, + 16.0558792 + ], + [ + 107.8252611, + 16.0552606 + ], + [ + 107.826809, + 16.0553489 + ], + [ + 107.8281257, + 16.0552245 + ], + [ + 107.8298581, + 16.0546207 + ], + [ + 107.8311083, + 16.0546162 + ], + [ + 107.8317788, + 16.0544254 + ], + [ + 107.8329536, + 16.0549358 + ], + [ + 107.8332947, + 16.0552787 + ], + [ + 107.8335437, + 16.0558328 + ], + [ + 107.8336081, + 16.0568535 + ], + [ + 107.8352281, + 16.0579567 + ], + [ + 107.8384076, + 16.0590553 + ], + [ + 107.839348, + 16.0597507 + ], + [ + 107.8396699, + 16.0604105 + ], + [ + 107.8416386, + 16.0602146 + ], + [ + 107.8423521, + 16.0595238 + ], + [ + 107.8450249, + 16.0604531 + ], + [ + 107.8472613, + 16.0605376 + ], + [ + 107.8479561, + 16.0601616 + ], + [ + 107.8486124, + 16.0591633 + ], + [ + 107.8501305, + 16.0588537 + ], + [ + 107.8511599, + 16.060408 + ], + [ + 107.8519487, + 16.0611931 + ], + [ + 107.8523637, + 16.061395 + ], + [ + 107.8526518, + 16.0614261 + ], + [ + 107.8530648, + 16.0610755 + ], + [ + 107.8544447, + 16.0607418 + ], + [ + 107.8569862, + 16.0606683 + ], + [ + 107.8602282, + 16.0609032 + ], + [ + 107.8609988, + 16.0611786 + ], + [ + 107.8612885, + 16.0614931 + ], + [ + 107.8629997, + 16.0614828 + ], + [ + 107.8654106, + 16.0591419 + ], + [ + 107.8661755, + 16.0591527 + ], + [ + 107.8665027, + 16.059395 + ], + [ + 107.8674039, + 16.0593795 + ], + [ + 107.8683185, + 16.0576684 + ], + [ + 107.8695666, + 16.0571558 + ], + [ + 107.8706548, + 16.0561009 + ], + [ + 107.870762, + 16.0551832 + ], + [ + 107.8716903, + 16.0540752 + ], + [ + 107.8718671, + 16.0539151 + ], + [ + 107.8725323, + 16.0538738 + ], + [ + 107.8730046, + 16.0532877 + ], + [ + 107.8735167, + 16.0532449 + ], + [ + 107.8744506, + 16.0523109 + ], + [ + 107.8751716, + 16.0521829 + ], + [ + 107.8755686, + 16.0518066 + ], + [ + 107.8765503, + 16.0519921 + ], + [ + 107.8779986, + 16.0520076 + ], + [ + 107.8790769, + 16.0512292 + ], + [ + 107.8806487, + 16.0516674 + ], + [ + 107.8822634, + 16.0498939 + ], + [ + 107.8829737, + 16.049404 + ], + [ + 107.8836152, + 16.0482442 + ], + [ + 107.8852622, + 16.0478442 + ], + [ + 107.8864691, + 16.0471513 + ], + [ + 107.887617, + 16.0474451 + ], + [ + 107.8880355, + 16.0482958 + ], + [ + 107.8882393, + 16.048404 + ], + [ + 107.8888799, + 16.0478484 + ], + [ + 107.8897036, + 16.047546 + ], + [ + 107.8922711, + 16.0476167 + ], + [ + 107.8922433, + 16.0469824 + ], + [ + 107.8916844, + 16.0449625 + ], + [ + 107.8916827, + 16.0443885 + ], + [ + 107.8921792, + 16.0429457 + ], + [ + 107.8925597, + 16.0426014 + ], + [ + 107.8934804, + 16.0421814 + ], + [ + 107.8934857, + 16.0414184 + ], + [ + 107.8931497, + 16.0405021 + ], + [ + 107.893269, + 16.0401601 + ], + [ + 107.8949734, + 16.0398363 + ], + [ + 107.8969651, + 16.0389004 + ], + [ + 107.8981785, + 16.0369529 + ], + [ + 107.9003623, + 16.0353316 + ], + [ + 107.9016316, + 16.0336154 + ], + [ + 107.902962, + 16.0344712 + ], + [ + 107.9042872, + 16.0357326 + ], + [ + 107.9059124, + 16.03675 + ], + [ + 107.909925, + 16.0403074 + ], + [ + 107.9105462, + 16.0410312 + ], + [ + 107.9124054, + 16.0423666 + ], + [ + 107.9130471, + 16.0430604 + ], + [ + 107.9143667, + 16.0436791 + ], + [ + 107.9147361, + 16.0442086 + ], + [ + 107.9161048, + 16.0452773 + ], + [ + 107.917639, + 16.0461331 + ], + [ + 107.9190874, + 16.0461434 + ], + [ + 107.920195, + 16.0465026 + ], + [ + 107.9212224, + 16.0475354 + ], + [ + 107.9225314, + 16.0480921 + ], + [ + 107.9239797, + 16.0490304 + ], + [ + 107.9276275, + 16.0509482 + ], + [ + 107.9296231, + 16.0516906 + ], + [ + 107.9319835, + 16.0532268 + ], + [ + 107.9325843, + 16.0533815 + ], + [ + 107.9333353, + 16.0539279 + ], + [ + 107.9338158, + 16.0545744 + ], + [ + 107.935245, + 16.055258 + ], + [ + 107.9368114, + 16.0556807 + ], + [ + 107.9376678, + 16.0562707 + ], + [ + 107.9382384, + 16.0569489 + ], + [ + 107.9406309, + 16.0582067 + ], + [ + 107.9414302, + 16.0582119 + ], + [ + 107.9423422, + 16.0585882 + ], + [ + 107.9435492, + 16.0594852 + ], + [ + 107.9442197, + 16.0597017 + ], + [ + 107.9448366, + 16.0596965 + ], + [ + 107.9456385, + 16.0601 + ], + [ + 107.947433, + 16.0604956 + ], + [ + 107.9481089, + 16.0613513 + ], + [ + 107.948699, + 16.0613822 + ], + [ + 107.9496807, + 16.0618926 + ], + [ + 107.9509735, + 16.061939 + ], + [ + 107.9520588, + 16.0624809 + ], + [ + 107.95313, + 16.0627329 + ], + [ + 107.954058, + 16.0633824 + ], + [ + 107.9553938, + 16.0639082 + ], + [ + 107.9559946, + 16.0639082 + ], + [ + 107.9581283, + 16.0646853 + ], + [ + 107.9609084, + 16.0643309 + ], + [ + 107.9608785, + 16.0621276 + ], + [ + 107.9614654, + 16.0607717 + ], + [ + 107.9615709, + 16.0598939 + ], + [ + 107.9610157, + 16.0579283 + ], + [ + 107.9610364, + 16.0564284 + ], + [ + 107.9606806, + 16.0559461 + ], + [ + 107.9609228, + 16.054912 + ], + [ + 107.9603773, + 16.0529794 + ], + [ + 107.9598516, + 16.0522989 + ], + [ + 107.9598292, + 16.0512424 + ], + [ + 107.9594144, + 16.0499688 + ], + [ + 107.9588056, + 16.0492057 + ], + [ + 107.9584891, + 16.0484633 + ], + [ + 107.9585588, + 16.0471539 + ], + [ + 107.9581002, + 16.0461523 + ], + [ + 107.9584746, + 16.045071 + ], + [ + 107.9581878, + 16.0440146 + ], + [ + 107.9584519, + 16.041267 + ], + [ + 107.9583093, + 16.0385656 + ], + [ + 107.9578854, + 16.0376881 + ], + [ + 107.9581116, + 16.03678 + ], + [ + 107.9584424, + 16.036399 + ], + [ + 107.9598677, + 16.0359354 + ], + [ + 107.9604578, + 16.0347393 + ], + [ + 107.9604578, + 16.0341 + ], + [ + 107.9612946, + 16.0322439 + ], + [ + 107.9619512, + 16.031808 + ], + [ + 107.9635614, + 16.0315451 + ], + [ + 107.9650265, + 16.0305847 + ], + [ + 107.9657793, + 16.0292742 + ], + [ + 107.9662617, + 16.0288121 + ], + [ + 107.9679993, + 16.0283809 + ], + [ + 107.9684814, + 16.0280548 + ], + [ + 107.9698026, + 16.0259435 + ], + [ + 107.969116, + 16.0240976 + ], + [ + 107.9699724, + 16.0226597 + ], + [ + 107.9699277, + 16.0202928 + ], + [ + 107.970555, + 16.0195691 + ], + [ + 107.971078, + 16.0192283 + ], + [ + 107.9717714, + 16.0190859 + ], + [ + 107.9722381, + 16.0186013 + ], + [ + 107.9733328, + 16.0182889 + ], + [ + 107.9743516, + 16.0172813 + ], + [ + 107.9744755, + 16.0169717 + ], + [ + 107.9756171, + 16.0164825 + ], + [ + 107.9776347, + 16.0144866 + ], + [ + 107.9797804, + 16.0128573 + ], + [ + 107.9806495, + 16.0126974 + ], + [ + 107.9817009, + 16.012156 + ], + [ + 107.9817438, + 16.0116816 + ], + [ + 107.9835355, + 16.0119394 + ], + [ + 107.9832995, + 16.0114186 + ], + [ + 107.9830956, + 16.0099078 + ], + [ + 107.982747, + 16.0092994 + ], + [ + 107.9829786, + 16.0085306 + ], + [ + 107.982645, + 16.0080516 + ], + [ + 107.9820469, + 16.0076004 + ], + [ + 107.981228, + 16.0059617 + ], + [ + 107.9821837, + 16.0047514 + ], + [ + 107.982173, + 16.002957 + ], + [ + 107.981263, + 16.0019951 + ], + [ + 107.981261, + 16.0009816 + ], + [ + 107.9807407, + 16.0003508 + ], + [ + 107.9806193, + 15.9999562 + ], + [ + 107.980746, + 15.9992473 + ], + [ + 107.9811823, + 15.9983354 + ], + [ + 107.9812932, + 15.9975013 + ], + [ + 107.9817867, + 15.9966246 + ], + [ + 107.9807353, + 15.9933965 + ], + [ + 107.9805368, + 15.9912255 + ], + [ + 107.9808694, + 15.9903798 + ], + [ + 107.9810625, + 15.989271 + ], + [ + 107.9809298, + 15.9886149 + ], + [ + 107.9799721, + 15.9875922 + ], + [ + 107.9788685, + 15.9876002 + ], + [ + 107.9779802, + 15.9861865 + ], + [ + 107.9765933, + 15.9855294 + ], + [ + 107.9757249, + 15.984898 + ], + [ + 107.9742443, + 15.9833921 + ], + [ + 107.97212, + 15.98004 + ], + [ + 107.9717266, + 15.9789345 + ], + [ + 107.9700815, + 15.9782144 + ], + [ + 107.9691589, + 15.9776162 + ], + [ + 107.9680109, + 15.976626 + ], + [ + 107.9670889, + 15.9749409 + ], + [ + 107.9663585, + 15.9746173 + ], + [ + 107.9651043, + 15.9747145 + ], + [ + 107.9645647, + 15.9742508 + ], + [ + 107.963799, + 15.9739146 + ], + [ + 107.9633653, + 15.9731706 + ], + [ + 107.9619766, + 15.9729795 + ], + [ + 107.9617143, + 15.9727102 + ], + [ + 107.961517, + 15.971923 + ], + [ + 107.9608018, + 15.9713083 + ], + [ + 107.9605571, + 15.9707053 + ], + [ + 107.9586875, + 15.9701897 + ], + [ + 107.958394, + 15.9693267 + ], + [ + 107.9580794, + 15.9690214 + ], + [ + 107.9566491, + 15.9688126 + ], + [ + 107.9559195, + 15.9672809 + ], + [ + 107.9551202, + 15.9666104 + ], + [ + 107.954988, + 15.9659831 + ], + [ + 107.9551256, + 15.9654758 + ], + [ + 107.9560991, + 15.9644349 + ], + [ + 107.9562306, + 15.9640626 + ], + [ + 107.9563057, + 15.9630156 + ], + [ + 107.9558498, + 15.9621001 + ], + [ + 107.9561448, + 15.9615045 + ], + [ + 107.9558659, + 15.9585955 + ], + [ + 107.9552746, + 15.9578284 + ], + [ + 107.9538381, + 15.9568574 + ], + [ + 107.9529101, + 15.955733 + ], + [ + 107.9509396, + 15.9544867 + ], + [ + 107.9507965, + 15.9540103 + ], + [ + 107.9508823, + 15.951777 + ], + [ + 107.9493481, + 15.9497757 + ], + [ + 107.9492247, + 15.9491722 + ], + [ + 107.9496274, + 15.9485104 + ], + [ + 107.9516431, + 15.9474589 + ], + [ + 107.9549163, + 15.9430445 + ], + [ + 107.9561019, + 15.9426886 + ], + [ + 107.9575396, + 15.9415126 + ], + [ + 107.9623139, + 15.9355497 + ], + [ + 107.9625606, + 15.935039 + ], + [ + 107.9634565, + 15.9342756 + ], + [ + 107.9695237, + 15.9304326 + ], + [ + 107.977066, + 15.9246242 + ], + [ + 107.983439, + 15.9194656 + ], + [ + 107.9860005, + 15.9188182 + ], + [ + 107.9870814, + 15.9187588 + ], + [ + 107.9888946, + 15.9197648 + ], + [ + 107.990402, + 15.9198061 + ], + [ + 107.9911578, + 15.919511 + ], + [ + 107.9929554, + 15.9179902 + ], + [ + 107.9945755, + 15.9194862 + ], + [ + 107.995863, + 15.9212092 + ], + [ + 107.9965371, + 15.9211943 + ], + [ + 107.9979898, + 15.9206661 + ], + [ + 107.999897, + 15.9206314 + ], + [ + 108.0008538, + 15.9208814 + ], + [ + 108.0032551, + 15.9219108 + ], + [ + 108.0041993, + 15.9219108 + ], + [ + 108.005137, + 15.9214756 + ], + [ + 108.0056477, + 15.9215084 + ], + [ + 108.0084586, + 15.9229116 + ], + [ + 108.011055, + 15.9246861 + ], + [ + 108.0127984, + 15.9262182 + ], + [ + 108.0128146, + 15.9266181 + ], + [ + 108.014161, + 15.9270049 + ], + [ + 108.0156649, + 15.9271526 + ], + [ + 108.0159581, + 15.9273866 + ], + [ + 108.0160922, + 15.9280546 + ], + [ + 108.0164355, + 15.9284209 + ], + [ + 108.0175363, + 15.9283992 + ], + [ + 108.0184761, + 15.9286814 + ], + [ + 108.0189085, + 15.9289264 + ], + [ + 108.0195629, + 15.9298446 + ], + [ + 108.0198475, + 15.9300083 + ], + [ + 108.0203174, + 15.9300225 + ], + [ + 108.0231413, + 15.9290817 + ], + [ + 108.0241495, + 15.9290316 + ], + [ + 108.0252171, + 15.9292013 + ], + [ + 108.0281094, + 15.9301716 + ], + [ + 108.0319762, + 15.9319905 + ], + [ + 108.0341665, + 15.9332481 + ], + [ + 108.0355422, + 15.9335765 + ], + [ + 108.0371475, + 15.9336411 + ], + [ + 108.0398621, + 15.9343658 + ], + [ + 108.041218, + 15.9349675 + ], + [ + 108.0420828, + 15.9347553 + ], + [ + 108.0436599, + 15.9334864 + ], + [ + 108.0443197, + 15.9325966 + ], + [ + 108.0476993, + 15.9328442 + ], + [ + 108.0512138, + 15.9323232 + ], + [ + 108.0516899, + 15.9324967 + ], + [ + 108.052023, + 15.9329267 + ], + [ + 108.0533856, + 15.9329267 + ], + [ + 108.0546301, + 15.9332156 + ], + [ + 108.0557589, + 15.9331402 + ], + [ + 108.0570495, + 15.9325605 + ], + [ + 108.0573697, + 15.9327152 + ], + [ + 108.0572963, + 15.9332749 + ], + [ + 108.0575262, + 15.933453 + ], + [ + 108.0583836, + 15.9336937 + ], + [ + 108.0605525, + 15.9339352 + ], + [ + 108.061341, + 15.9322355 + ], + [ + 108.0615783, + 15.9302216 + ], + [ + 108.062017, + 15.9294912 + ], + [ + 108.0632488, + 15.9289289 + ], + [ + 108.0667269, + 15.9280881 + ], + [ + 108.0675997, + 15.9270461 + ], + [ + 108.0682442, + 15.9266156 + ], + [ + 108.070099, + 15.9261775 + ], + [ + 108.0726546, + 15.9261124 + ], + [ + 108.0735773, + 15.9258648 + ], + [ + 108.074904, + 15.9260707 + ], + [ + 108.077134, + 15.925485 + ], + [ + 108.0786788, + 15.9254367 + ], + [ + 108.0793387, + 15.925576 + ], + [ + 108.0801111, + 15.925968 + ], + [ + 108.0809265, + 15.9259989 + ], + [ + 108.0818438, + 15.9263652 + ], + [ + 108.0830515, + 15.9272176 + ], + [ + 108.0852771, + 15.9270977 + ], + [ + 108.0865431, + 15.9281294 + ], + [ + 108.0870902, + 15.9291611 + ], + [ + 108.08797, + 15.9301102 + ], + [ + 108.0879291, + 15.9312078 + ], + [ + 108.0881202, + 15.9325295 + ], + [ + 108.087852, + 15.9329835 + ], + [ + 108.0878788, + 15.9335354 + ], + [ + 108.0881792, + 15.9340925 + ], + [ + 108.0882355, + 15.9367774 + ], + [ + 108.0900809, + 15.9373138 + ], + [ + 108.0939719, + 15.9389118 + ], + [ + 108.0977735, + 15.9411412 + ], + [ + 108.1019792, + 15.941884 + ], + [ + 108.1036958, + 15.9426267 + ], + [ + 108.1045541, + 15.9444733 + ], + [ + 108.1086525, + 15.9476919 + ], + [ + 108.1093463, + 15.9479404 + ], + [ + 108.1111309, + 15.94665 + ], + [ + 108.1127402, + 15.9457938 + ], + [ + 108.1146178, + 15.945247 + ], + [ + 108.1154331, + 15.9442567 + ], + [ + 108.1181154, + 15.9422554 + ], + [ + 108.1197082, + 15.9414555 + ], + [ + 108.1213608, + 15.9402983 + ], + [ + 108.1233618, + 15.9393565 + ], + [ + 108.1249343, + 15.9381678 + ], + [ + 108.1251904, + 15.937745 + ], + [ + 108.1253783, + 15.9367878 + ], + [ + 108.1265831, + 15.9362977 + ], + [ + 108.1268916, + 15.9354272 + ], + [ + 108.1310452, + 15.9331847 + ], + [ + 108.1347643, + 15.9319684 + ], + [ + 108.1376304, + 15.9305539 + ], + [ + 108.1380388, + 15.9312438 + ], + [ + 108.1399287, + 15.9310676 + ], + [ + 108.1413849, + 15.9313231 + ], + [ + 108.1419857, + 15.9320343 + ], + [ + 108.1423733, + 15.9320111 + ], + [ + 108.1426549, + 15.9325102 + ], + [ + 108.1429768, + 15.9323393 + ], + [ + 108.1434881, + 15.9327978 + ], + [ + 108.1437948, + 15.9326198 + ], + [ + 108.1444412, + 15.9331227 + ], + [ + 108.1446424, + 15.9329499 + ], + [ + 108.1453291, + 15.9333523 + ], + [ + 108.146866, + 15.9323735 + ], + [ + 108.1474292, + 15.9343339 + ], + [ + 108.1485108, + 15.9361959 + ], + [ + 108.1488499, + 15.937209 + ], + [ + 108.1490035, + 15.9391788 + ], + [ + 108.1495234, + 15.9413611 + ], + [ + 108.1494585, + 15.9444135 + ], + [ + 108.1502509, + 15.9485337 + ], + [ + 108.1507868, + 15.9497313 + ], + [ + 108.151424, + 15.9506553 + ], + [ + 108.1540006, + 15.9528601 + ], + [ + 108.1567553, + 15.9521741 + ], + [ + 108.1607115, + 15.9502812 + ], + [ + 108.1614817, + 15.9501068 + ], + [ + 108.1624244, + 15.9503305 + ], + [ + 108.1637612, + 15.9517022 + ], + [ + 108.1644237, + 15.9517667 + ], + [ + 108.1646785, + 15.9520052 + ], + [ + 108.1649762, + 15.9519343 + ], + [ + 108.1648421, + 15.9513953 + ], + [ + 108.1651608, + 15.950922 + ], + [ + 108.1652439, + 15.9504078 + ], + [ + 108.1649816, + 15.9493425 + ], + [ + 108.1654322, + 15.9486822 + ], + [ + 108.1654349, + 15.9477216 + ], + [ + 108.1657621, + 15.9466526 + ], + [ + 108.1664059, + 15.9467686 + ], + [ + 108.1669729, + 15.946528 + ], + [ + 108.167148, + 15.9460023 + ], + [ + 108.1670397, + 15.9451159 + ], + [ + 108.167346, + 15.9447441 + ], + [ + 108.167586, + 15.9437228 + ], + [ + 108.1682646, + 15.9425545 + ], + [ + 108.1686133, + 15.9421419 + ], + [ + 108.1688775, + 15.942138 + ], + [ + 108.1690586, + 15.9417473 + ], + [ + 108.1699061, + 15.9417679 + ], + [ + 108.1707269, + 15.9406873 + ], + [ + 108.1714645, + 15.9404397 + ], + [ + 108.1715476, + 15.9401998 + ], + [ + 108.1719312, + 15.9403339 + ], + [ + 108.1724238, + 15.9402621 + ], + [ + 108.1729907, + 15.941069 + ], + [ + 108.1733578, + 15.9412911 + ], + [ + 108.1734849, + 15.9401051 + ], + [ + 108.1743036, + 15.9401518 + ], + [ + 108.1740582, + 15.9408227 + ], + [ + 108.1743747, + 15.9409129 + ], + [ + 108.1746188, + 15.9408143 + ], + [ + 108.1746246, + 15.9400635 + ], + [ + 108.1754889, + 15.939807 + ], + [ + 108.1763558, + 15.939287 + ], + [ + 108.1796888, + 15.9396711 + ], + [ + 108.1800028, + 15.9408763 + ], + [ + 108.1822539, + 15.9441799 + ], + [ + 108.1814686, + 15.9460159 + ], + [ + 108.1817299, + 15.9461362 + ], + [ + 108.1802143, + 15.9491134 + ], + [ + 108.1811634, + 15.9495023 + ], + [ + 108.1804204, + 15.9515036 + ], + [ + 108.180415, + 15.9558104 + ], + [ + 108.1807879, + 15.9561637 + ], + [ + 108.1811821, + 15.9562668 + ], + [ + 108.1812251, + 15.9566047 + ], + [ + 108.1826466, + 15.9569812 + ], + [ + 108.1829899, + 15.957925 + ], + [ + 108.1827754, + 15.9581726 + ], + [ + 108.183105, + 15.9586015 + ], + [ + 108.18312, + 15.9588979 + ], + [ + 108.1838858, + 15.9593795 + ], + [ + 108.1841272, + 15.9602615 + ], + [ + 108.1834882, + 15.9616057 + ], + [ + 108.1835505, + 15.9628544 + ], + [ + 108.1832139, + 15.9653391 + ], + [ + 108.1843016, + 15.9655273 + ], + [ + 108.1856252, + 15.9656598 + ], + [ + 108.186447, + 15.9655415 + ], + [ + 108.1862274, + 15.9644391 + ], + [ + 108.1871608, + 15.9644778 + ], + [ + 108.1873056, + 15.9641064 + ], + [ + 108.1871662, + 15.9636371 + ], + [ + 108.1868631, + 15.9637996 + ], + [ + 108.1862153, + 15.9631175 + ], + [ + 108.1864467, + 15.9622033 + ], + [ + 108.1879775, + 15.9620357 + ], + [ + 108.1884925, + 15.9618423 + ], + [ + 108.1891966, + 15.9624483 + ], + [ + 108.1897116, + 15.962144 + ], + [ + 108.1905363, + 15.9620486 + ], + [ + 108.1900822, + 15.9609287 + ], + [ + 108.1910295, + 15.96095 + ], + [ + 108.1914168, + 15.9627629 + ], + [ + 108.1921417, + 15.9624779 + ], + [ + 108.1922731, + 15.9630214 + ], + [ + 108.1931622, + 15.9629328 + ], + [ + 108.1932152, + 15.9633908 + ], + [ + 108.1940138, + 15.9633457 + ], + [ + 108.1944671, + 15.9631446 + ], + [ + 108.1944644, + 15.9628351 + ], + [ + 108.1951327, + 15.9629289 + ], + [ + 108.1950418, + 15.9635907 + ], + [ + 108.1952074, + 15.9641844 + ], + [ + 108.1973639, + 15.9644829 + ], + [ + 108.1974336, + 15.9637145 + ], + [ + 108.1979547, + 15.963006 + ], + [ + 108.2002199, + 15.9635432 + ], + [ + 108.2028785, + 15.9638666 + ], + [ + 108.2028919, + 15.9630736 + ], + [ + 108.2042341, + 15.962128 + ], + [ + 108.2045499, + 15.961738 + ], + [ + 108.2047641, + 15.9605438 + ], + [ + 108.204627, + 15.9598839 + ], + [ + 108.203541, + 15.9582139 + ], + [ + 108.2034672, + 15.9571468 + ], + [ + 108.2037288, + 15.9564035 + ], + [ + 108.2044704, + 15.9558826 + ], + [ + 108.2049143, + 15.9561663 + ], + [ + 108.2053515, + 15.9556814 + ], + [ + 108.2050055, + 15.9553668 + ], + [ + 108.2054803, + 15.9547143 + ], + [ + 108.2050109, + 15.9540052 + ], + [ + 108.2050095, + 15.9529942 + ], + [ + 108.2045898, + 15.9529891 + ], + [ + 108.2045663, + 15.9514307 + ], + [ + 108.2056023, + 15.9511064 + ], + [ + 108.2051611, + 15.9501987 + ], + [ + 108.2051396, + 15.9491671 + ], + [ + 108.2046944, + 15.9489066 + ], + [ + 108.2046702, + 15.9486539 + ], + [ + 108.2051651, + 15.9482154 + ], + [ + 108.2050109, + 15.9480375 + ], + [ + 108.2058236, + 15.9477332 + ], + [ + 108.2057619, + 15.9472225 + ], + [ + 108.2059926, + 15.94714 + ], + [ + 108.2059979, + 15.9468357 + ], + [ + 108.2075027, + 15.9458608 + ], + [ + 108.2083234, + 15.9457654 + ], + [ + 108.2095358, + 15.9451774 + ], + [ + 108.2091629, + 15.9448872 + ], + [ + 108.2102197, + 15.9435088 + ], + [ + 108.2105094, + 15.9427118 + ], + [ + 108.2109311, + 15.943071 + ], + [ + 108.2111236, + 15.9435732 + ], + [ + 108.2119524, + 15.943648 + ], + [ + 108.2126498, + 15.9434778 + ], + [ + 108.2136583, + 15.944218 + ], + [ + 108.2140201, + 15.9446041 + ], + [ + 108.2140171, + 15.9448847 + ], + [ + 108.2146776, + 15.9448976 + ], + [ + 108.214581, + 15.945649 + ], + [ + 108.215493, + 15.9459575 + ], + [ + 108.215724, + 15.9457158 + ], + [ + 108.2164438, + 15.9461316 + ], + [ + 108.2165502, + 15.9467149 + ], + [ + 108.2161193, + 15.9493218 + ], + [ + 108.217793, + 15.9494475 + ], + [ + 108.2178694, + 15.9483109 + ], + [ + 108.2176643, + 15.9479531 + ], + [ + 108.2178386, + 15.9472664 + ], + [ + 108.2184284, + 15.9466373 + ], + [ + 108.2194879, + 15.9462234 + ], + [ + 108.2197215, + 15.9459214 + ], + [ + 108.2207001, + 15.9466091 + ], + [ + 108.222574, + 15.9471613 + ], + [ + 108.2226846, + 15.9474791 + ], + [ + 108.2219319, + 15.9485317 + ], + [ + 108.2218092, + 15.9499712 + ], + [ + 108.2221089, + 15.951067 + ], + [ + 108.2244456, + 15.9561285 + ], + [ + 108.2249378, + 15.9587848 + ], + [ + 108.2248428, + 15.9600494 + ], + [ + 108.2245392, + 15.9609337 + ], + [ + 108.2234852, + 15.9621025 + ], + [ + 108.220803, + 15.9632557 + ], + [ + 108.2196131, + 15.9643303 + ], + [ + 108.2171891, + 15.9692013 + ], + [ + 108.2168663, + 15.9704269 + ], + [ + 108.2168795, + 15.9716436 + ], + [ + 108.2150075, + 15.9717811 + ], + [ + 108.2121627, + 15.9728995 + ], + [ + 108.2110936, + 15.9729603 + ], + [ + 108.2099825, + 15.9727559 + ], + [ + 108.2099358, + 15.9733496 + ], + [ + 108.2090044, + 15.9732732 + ], + [ + 108.2089829, + 15.9748665 + ], + [ + 108.2100402, + 15.9749052 + ], + [ + 108.2096927, + 15.980085 + ], + [ + 108.2081388, + 15.9800951 + ], + [ + 108.2070491, + 16.0023802 + ], + [ + 108.2078785, + 16.0060099 + ], + [ + 108.2078788, + 16.0066374 + ], + [ + 108.2070262, + 16.0085579 + ], + [ + 108.2054682, + 16.0072359 + ], + [ + 108.1984482, + 16.0023316 + ], + [ + 108.193801, + 16.0002668 + ], + [ + 108.1901864, + 15.9993424 + ], + [ + 108.1894151, + 15.9989573 + ], + [ + 108.1861649, + 15.9948884 + ], + [ + 108.1851779, + 15.9941246 + ], + [ + 108.1844883, + 15.993856 + ], + [ + 108.1816591, + 15.9936886 + ], + [ + 108.1770019, + 15.9942111 + ], + [ + 108.1749143, + 15.9941036 + ], + [ + 108.1700778, + 15.99343 + ], + [ + 108.1673795, + 15.9934249 + ], + [ + 108.1641061, + 15.993685 + ], + [ + 108.1605107, + 15.9949596 + ], + [ + 108.1592406, + 15.9947598 + ], + [ + 108.1582968, + 15.9941207 + ], + [ + 108.1579167, + 15.9952504 + ], + [ + 108.1580695, + 15.996341 + ], + [ + 108.1577075, + 15.9968464 + ], + [ + 108.1577182, + 15.9989451 + ], + [ + 108.1583485, + 16.0009098 + ], + [ + 108.1587777, + 16.0033102 + ], + [ + 108.1592242, + 16.0090454 + ], + [ + 108.1605626, + 16.0093697 + ], + [ + 108.1666059, + 16.0119336 + ], + [ + 108.1683059, + 16.0139794 + ], + [ + 108.1706766, + 16.015775 + ], + [ + 108.1691095, + 16.0172065 + ], + [ + 108.1678113, + 16.0180728 + ], + [ + 108.1658746, + 16.019757 + ], + [ + 108.165515, + 16.020364 + ], + [ + 108.165143, + 16.0219913 + ], + [ + 108.163199, + 16.0236439 + ], + [ + 108.1624212, + 16.0238982 + ], + [ + 108.1601628, + 16.0234374 + ], + [ + 108.1596788, + 16.0236361 + ], + [ + 108.1597358, + 16.0238978 + ], + [ + 108.1601027, + 16.0240125 + ], + [ + 108.1616503, + 16.0263379 + ], + [ + 108.1635137, + 16.0268593 + ], + [ + 108.1647027, + 16.0277351 + ], + [ + 108.1645486, + 16.0288264 + ], + [ + 108.164008, + 16.0305657 + ], + [ + 108.1632759, + 16.0312584 + ], + [ + 108.1631121, + 16.031602 + ], + [ + 108.1633378, + 16.0331187 + ], + [ + 108.1632626, + 16.0336206 + ], + [ + 108.1623108, + 16.0348387 + ], + [ + 108.1606167, + 16.0349405 + ], + [ + 108.159754, + 16.0347058 + ], + [ + 108.159239, + 16.0330972 + ], + [ + 108.1552854, + 16.0349017 + ], + [ + 108.1530109, + 16.0347109 + ], + [ + 108.1522583, + 16.0353954 + ], + [ + 108.1512352, + 16.0356193 + ], + [ + 108.1505463, + 16.0355773 + ], + [ + 108.1496045, + 16.0352574 + ], + [ + 108.1478998, + 16.0354115 + ], + [ + 108.1465175, + 16.0349475 + ], + [ + 108.1451079, + 16.0351458 + ], + [ + 108.1447025, + 16.0349687 + ], + [ + 108.1441789, + 16.0343258 + ], + [ + 108.1437583, + 16.0340793 + ], + [ + 108.1419548, + 16.0339737 + ], + [ + 108.141, + 16.034778 + ], + [ + 108.1405955, + 16.036115 + ], + [ + 108.1384821, + 16.0387011 + ], + [ + 108.1378457, + 16.0401192 + ], + [ + 108.1368246, + 16.0397999 + ], + [ + 108.135986, + 16.0402753 + ], + [ + 108.1334039, + 16.0432228 + ], + [ + 108.1320874, + 16.0452591 + ], + [ + 108.1302561, + 16.0465504 + ], + [ + 108.1285926, + 16.048157 + ], + [ + 108.1283775, + 16.0490433 + ], + [ + 108.1286101, + 16.0498165 + ], + [ + 108.1301147, + 16.0515804 + ], + [ + 108.1312617, + 16.0523854 + ], + [ + 108.1327334, + 16.0542656 + ], + [ + 108.133254, + 16.0572975 + ], + [ + 108.1330661, + 16.0594688 + ], + [ + 108.1337778, + 16.0611562 + ], + [ + 108.1344316, + 16.0616646 + ], + [ + 108.1341212, + 16.0626199 + ], + [ + 108.1341831, + 16.0635396 + ], + [ + 108.1336266, + 16.0637767 + ], + [ + 108.1334656, + 16.0640886 + ], + [ + 108.1321138, + 16.0636968 + ], + [ + 108.1313683, + 16.0632802 + ], + [ + 108.1308907, + 16.0634288 + ], + [ + 108.1304991, + 16.0635886 + ], + [ + 108.1302255, + 16.0642742 + ], + [ + 108.1291097, + 16.0650577 + ], + [ + 108.1279719, + 16.0662339 + ], + [ + 108.1274875, + 16.0663336 + ], + [ + 108.1266758, + 16.0661516 + ], + [ + 108.1262129, + 16.0665578 + ], + [ + 108.1250289, + 16.0671653 + ], + [ + 108.1226639, + 16.0672456 + ], + [ + 108.1199998, + 16.0679306 + ], + [ + 108.1177297, + 16.0677925 + ], + [ + 108.1171109, + 16.0732938 + ], + [ + 108.1171706, + 16.0750187 + ], + [ + 108.1184667, + 16.075049 + ], + [ + 108.1184667, + 16.0751766 + ], + [ + 108.1179088, + 16.0753544 + ], + [ + 108.117941, + 16.0756379 + ], + [ + 108.1176245, + 16.0756637 + ], + [ + 108.1175414, + 16.0763422 + ], + [ + 108.1177398, + 16.0763621 + ], + [ + 108.1177251, + 16.076617 + ], + [ + 108.1174012, + 16.0772127 + ], + [ + 108.1169513, + 16.0771479 + ], + [ + 108.1158035, + 16.0797131 + ], + [ + 108.1154251, + 16.0801617 + ], + [ + 108.1134879, + 16.0817468 + ], + [ + 108.1119543, + 16.0810786 + ], + [ + 108.1142852, + 16.0840862 + ], + [ + 108.1157362, + 16.0887123 + ], + [ + 108.1157808, + 16.0900263 + ], + [ + 108.1159401, + 16.0899854 + ], + [ + 108.1161399, + 16.0905421 + ], + [ + 108.1167166, + 16.0905923 + ], + [ + 108.1168199, + 16.0911464 + ], + [ + 108.1198025, + 16.0913178 + ], + [ + 108.1197193, + 16.0936707 + ], + [ + 108.1193063, + 16.0938949 + ], + [ + 108.1182843, + 16.0955004 + ], + [ + 108.1173053, + 16.0977283 + ], + [ + 108.1168229, + 16.0984487 + ], + [ + 108.1173514, + 16.0989801 + ], + [ + 108.1162557, + 16.1002107 + ], + [ + 108.1145982, + 16.0983845 + ], + [ + 108.1125591, + 16.1000624 + ], + [ + 108.1145108, + 16.102135 + ], + [ + 108.1140845, + 16.1025876 + ], + [ + 108.1181124, + 16.1051844 + ], + [ + 108.1159243, + 16.10838 + ], + [ + 108.1175298, + 16.1095626 + ], + [ + 108.1173725, + 16.1099551 + ], + [ + 108.118651, + 16.1104443 + ], + [ + 108.1191467, + 16.1109614 + ], + [ + 108.119298, + 16.111498 + ], + [ + 108.1192226, + 16.1126507 + ], + [ + 108.1196071, + 16.1138801 + ], + [ + 108.1195611, + 16.1148352 + ], + [ + 108.1168908, + 16.1135867 + ], + [ + 108.1141079, + 16.1131654 + ], + [ + 108.1131291, + 16.1126955 + ], + [ + 108.1127105, + 16.1122754 + ], + [ + 108.1121596, + 16.1108218 + ], + [ + 108.1112702, + 16.1091842 + ], + [ + 108.1104052, + 16.1082814 + ], + [ + 108.1095618, + 16.1077669 + ], + [ + 108.1076413, + 16.1070505 + ], + [ + 108.1048804, + 16.1056656 + ], + [ + 108.1036096, + 16.1054587 + ], + [ + 108.1028053, + 16.1057337 + ], + [ + 108.1025022, + 16.1059295 + ], + [ + 108.1024392, + 16.1065798 + ], + [ + 108.1019926, + 16.1068726 + ], + [ + 108.1016171, + 16.1068701 + ], + [ + 108.1009304, + 16.1061383 + ], + [ + 108.0977279, + 16.1060636 + ], + [ + 108.096824, + 16.1058187 + ], + [ + 108.0957833, + 16.1051087 + ], + [ + 108.0949693, + 16.1054901 + ], + [ + 108.0949759, + 16.1057408 + ], + [ + 108.0956559, + 16.1063406 + ], + [ + 108.0958584, + 16.1070917 + ], + [ + 108.0958866, + 16.1075465 + ], + [ + 108.0946326, + 16.1086044 + ], + [ + 108.0954319, + 16.1102923 + ], + [ + 108.0987096, + 16.1125856 + ], + [ + 108.0975079, + 16.1180794 + ], + [ + 108.0970949, + 16.1209757 + ], + [ + 108.0954239, + 16.1251757 + ], + [ + 108.0954199, + 16.1274522 + ], + [ + 108.0955312, + 16.1279894 + ], + [ + 108.095853, + 16.128497 + ], + [ + 108.0961239, + 16.1297338 + ], + [ + 108.0959657, + 16.1300482 + ], + [ + 108.0953622, + 16.1304591 + ], + [ + 108.0951691, + 16.1309525 + ], + [ + 108.095904, + 16.1343356 + ], + [ + 108.0959912, + 16.1359769 + ], + [ + 108.0955781, + 16.1370693 + ], + [ + 108.0953783, + 16.137193 + ], + [ + 108.0948821, + 16.139164 + ], + [ + 108.0923048, + 16.139403 + ], + [ + 108.0907287, + 16.1390713 + ], + [ + 108.0887666, + 16.1391048 + ], + [ + 108.0877689, + 16.1388239 + ], + [ + 108.0869883, + 16.1388548 + ], + [ + 108.0916822, + 16.1440825 + ], + [ + 108.0929589, + 16.1457417 + ], + [ + 108.0931735, + 16.1465095 + ], + [ + 108.0931306, + 16.148313 + ], + [ + 108.0937958, + 16.1488811 + ], + [ + 108.0937985, + 16.1493564 + ], + [ + 108.0941418, + 16.149766 + ], + [ + 108.0944824, + 16.1511753 + ], + [ + 108.0942853, + 16.1516957 + ], + [ + 108.0946219, + 16.1522909 + ], + [ + 108.0947721, + 16.1530328 + ], + [ + 108.0947694, + 16.1540453 + ], + [ + 108.0946036, + 16.1544714 + ], + [ + 108.0947855, + 16.1560445 + ], + [ + 108.0952576, + 16.1565778 + ], + [ + 108.0951811, + 16.1567685 + ], + [ + 108.0958745, + 16.1573301 + ], + [ + 108.0959871, + 16.1590253 + ], + [ + 108.0955392, + 16.160182 + ], + [ + 108.0955406, + 16.1607243 + ], + [ + 108.0952388, + 16.1612357 + ], + [ + 108.0951127, + 16.1621309 + ], + [ + 108.0952415, + 16.1633656 + ], + [ + 108.0950148, + 16.163808 + ], + [ + 108.094634, + 16.1639974 + ], + [ + 108.0946997, + 16.1656307 + ], + [ + 108.0943597, + 16.166075 + ], + [ + 108.0944611, + 16.1664201 + ], + [ + 108.0942886, + 16.1665999 + ], + [ + 108.0942571, + 16.1673618 + ], + [ + 108.0943617, + 16.1678822 + ], + [ + 108.0940962, + 16.168418 + ], + [ + 108.0937636, + 16.1704635 + ], + [ + 108.0932419, + 16.1721947 + ], + [ + 108.093431, + 16.1737454 + ], + [ + 108.0930974, + 16.175456 + ], + [ + 108.0934117, + 16.1767134 + ], + [ + 108.0934095, + 16.1776249 + ], + [ + 108.0929575, + 16.1789111 + ], + [ + 108.0921489, + 16.1801184 + ], + [ + 108.0911358, + 16.1803988 + ], + [ + 108.0888015, + 16.1817361 + ], + [ + 108.0873891, + 16.1818928 + ], + [ + 108.0858047, + 16.1825213 + ], + [ + 108.0827397, + 16.1823853 + ], + [ + 108.0801272, + 16.1830138 + ], + [ + 108.0793537, + 16.1826149 + ], + [ + 108.0785214, + 16.1825234 + ], + [ + 108.0754064, + 16.1833507 + ], + [ + 108.0749989, + 16.183225 + ], + [ + 108.0736953, + 16.182174 + ], + [ + 108.0705317, + 16.1822351 + ], + [ + 108.0697326, + 16.1823736 + ], + [ + 108.0669844, + 16.1833538 + ], + [ + 108.0641413, + 16.1840545 + ], + [ + 108.0627948, + 16.1825141 + ], + [ + 108.061832, + 16.1805637 + ], + [ + 108.0610963, + 16.1798918 + ], + [ + 108.0600697, + 16.1792787 + ], + [ + 108.0593696, + 16.1790868 + ], + [ + 108.0584829, + 16.1790573 + ], + [ + 108.0576503, + 16.1792426 + ], + [ + 108.0550123, + 16.1806967 + ], + [ + 108.0526971, + 16.182719 + ], + [ + 108.0502277, + 16.1836049 + ], + [ + 108.0454168, + 16.1866225 + ], + [ + 108.043322, + 16.1874031 + ], + [ + 108.0423993, + 16.1882274 + ], + [ + 108.0396171, + 16.1897673 + ], + [ + 108.0381987, + 16.1902341 + ], + [ + 108.036899, + 16.1911744 + ], + [ + 108.0362946, + 16.1913004 + ], + [ + 108.0344028, + 16.1912207 + ], + [ + 108.0337113, + 16.1906359 + ], + [ + 108.0332869, + 16.1905809 + ], + [ + 108.0321723, + 16.1909017 + ], + [ + 108.0282265, + 16.1930803 + ], + [ + 108.0267191, + 16.1929979 + ], + [ + 108.0259305, + 16.1934177 + ], + [ + 108.0251295, + 16.1929512 + ], + [ + 108.0246604, + 16.1928856 + ], + [ + 108.0232558, + 16.1933249 + ], + [ + 108.0186443, + 16.1942391 + ], + [ + 108.017716, + 16.194168 + ], + [ + 108.0164035, + 16.1937864 + ], + [ + 108.0150993, + 16.1938661 + ], + [ + 108.0142386, + 16.1944049 + ], + [ + 108.0137784, + 16.1951132 + ], + [ + 108.0132329, + 16.1954809 + ], + [ + 108.0126707, + 16.1961677 + ], + [ + 108.0120273, + 16.1964703 + ], + [ + 108.0098426, + 16.1987057 + ], + [ + 108.0085982, + 16.2006255 + ], + [ + 108.0081824, + 16.2019655 + ], + [ + 108.0072419, + 16.2030488 + ], + [ + 108.0068614, + 16.2038977 + ], + [ + 108.0054438, + 16.2052789 + ], + [ + 108.0036199, + 16.2049286 + ], + [ + 108.0020428, + 16.2060928 + ], + [ + 108.0000311, + 16.2072492 + ], + [ + 107.9964455, + 16.2089227 + ], + [ + 107.995255, + 16.209824 + ], + [ + 107.9949108, + 16.209849 + ], + [ + 107.9941746, + 16.2095553 + ], + [ + 107.9938229, + 16.2096119 + ], + [ + 107.9895973, + 16.2133817 + ], + [ + 107.9882723, + 16.2141698 + ], + [ + 107.9880738, + 16.2137268 + ], + [ + 107.9877037, + 16.2134023 + ], + [ + 107.9857993, + 16.2120476 + ], + [ + 107.9849592, + 16.2118399 + ], + [ + 107.9845548, + 16.2110791 + ], + [ + 107.9837179, + 16.2103065 + ], + [ + 107.9826987, + 16.2097604 + ], + [ + 107.9820174, + 16.2083387 + ], + [ + 107.9807782, + 16.2081069 + ], + [ + 107.9807138, + 16.2076794 + ], + [ + 107.9798955, + 16.2069862 + ], + [ + 107.9792983, + 16.2059104 + ], + [ + 107.979259, + 16.2052954 + ], + [ + 107.979598, + 16.2045989 + ], + [ + 107.9794049, + 16.2034347 + ], + [ + 107.9792041, + 16.2032155 + ], + [ + 107.9756918, + 16.2001133 + ], + [ + 107.9738332, + 16.1993174 + ], + [ + 107.972061, + 16.199056 + ], + [ + 107.9710364, + 16.1967997 + ], + [ + 107.9706395, + 16.1962949 + ], + [ + 107.9699904, + 16.1960167 + ], + [ + 107.9699743, + 16.1953418 + ], + [ + 107.9695363, + 16.1940177 + ], + [ + 107.9675731, + 16.1931394 + ], + [ + 107.9652107, + 16.1930906 + ], + [ + 107.9640734, + 16.1926269 + ], + [ + 107.9638044, + 16.1921899 + ], + [ + 107.9633759, + 16.1919355 + ], + [ + 107.9617506, + 16.1920087 + ], + [ + 107.9611391, + 16.191643 + ], + [ + 107.9604256, + 16.191509 + ], + [ + 107.9598677, + 16.1910454 + ], + [ + 107.9590791, + 16.1908033 + ], + [ + 107.9580009, + 16.1901026 + ], + [ + 107.9568372, + 16.1900129 + ], + [ + 107.9564045, + 16.1892967 + ], + [ + 107.9561164, + 16.189106 + ], + [ + 107.9551417, + 16.1893943 + ], + [ + 107.9534914, + 16.1895605 + ], + [ + 107.9522341, + 16.1900254 + ], + [ + 107.9510164, + 16.1900305 + ], + [ + 107.9491925, + 16.1909145 + ], + [ + 107.948302, + 16.1918851 + ], + [ + 107.9471559, + 16.1924523 + ], + [ + 107.9461515, + 16.1933491 + ], + [ + 107.9443762, + 16.1939641 + ], + [ + 107.9435706, + 16.1946361 + ], + [ + 107.942841, + 16.1945021 + ], + [ + 107.9413246, + 16.1947304 + ], + [ + 107.9392459, + 16.1945225 + ], + [ + 107.9385227, + 16.1946258 + ], + [ + 107.9383975, + 16.1950435 + ], + [ + 107.937836, + 16.1953264 + ], + [ + 107.9360497, + 16.1950224 + ], + [ + 107.9352221, + 16.1953264 + ], + [ + 107.9344404, + 16.1952955 + ], + [ + 107.9332709, + 16.1958673 + ], + [ + 107.9319298, + 16.1971758 + ], + [ + 107.9305994, + 16.1976445 + ], + [ + 107.9295554, + 16.1975263 + ], + [ + 107.9278283, + 16.2005763 + ], + [ + 107.9266512, + 16.2014566 + ], + [ + 107.925868, + 16.2014772 + ], + [ + 107.9243123, + 16.2021057 + ], + [ + 107.9237681, + 16.2031433 + ], + [ + 107.9230463, + 16.204022 + ], + [ + 107.9220378, + 16.2046916 + ], + [ + 107.9213995, + 16.2053562 + ], + [ + 107.9213868, + 16.2058596 + ], + [ + 107.9211969, + 16.2062205 + ], + [ + 107.9186582, + 16.2079678 + ], + [ + 107.9180038, + 16.2081327 + ], + [ + 107.9169524, + 16.2094411 + ], + [ + 107.9163564, + 16.2106065 + ], + [ + 107.9153993, + 16.2117022 + ], + [ + 107.9148923, + 16.2129915 + ], + [ + 107.9145378, + 16.2134675 + ], + [ + 107.9134569, + 16.2144596 + ], + [ + 107.9111144, + 16.2154396 + ], + [ + 107.9100538, + 16.2154353 + ], + [ + 107.9093456, + 16.2146746 + ], + [ + 107.908862, + 16.214556 + ], + [ + 107.9083372, + 16.214094 + ], + [ + 107.9062308, + 16.2144546 + ], + [ + 107.9055072, + 16.214273 + ], + [ + 107.9045284, + 16.2132632 + ], + [ + 107.9043245, + 16.2127172 + ], + [ + 107.9042172, + 16.2113676 + ], + [ + 107.9035883, + 16.2104104 + ], + [ + 107.9028547, + 16.2099562 + ], + [ + 107.9009342, + 16.209369 + ], + [ + 107.8987187, + 16.2080915 + ], + [ + 107.8976244, + 16.2070252 + ], + [ + 107.8948295, + 16.2051553 + ], + [ + 107.894057, + 16.2055365 + ], + [ + 107.8931074, + 16.2056404 + ], + [ + 107.8914821, + 16.2062782 + ], + [ + 107.8901597, + 16.2063701 + ], + [ + 107.8898835, + 16.2059898 + ], + [ + 107.8898711, + 16.2037598 + ], + [ + 107.8888452, + 16.2029759 + ], + [ + 107.8884278, + 16.2023978 + ], + [ + 107.8882046, + 16.2016959 + ], + [ + 107.8881562, + 16.2005191 + ], + [ + 107.8874481, + 16.2003027 + ], + [ + 107.8870064, + 16.1996755 + ], + [ + 107.886673, + 16.1995949 + ], + [ + 107.885474, + 16.1999318 + ], + [ + 107.8840475, + 16.2001055 + ], + [ + 107.8831581, + 16.2000466 + ], + [ + 107.8784466, + 16.1983658 + ], + [ + 107.8780903, + 16.1976019 + ], + [ + 107.8776097, + 16.1971294 + ], + [ + 107.8759112, + 16.1969754 + ], + [ + 107.8753851, + 16.196715 + ], + [ + 107.8747093, + 16.195741 + ], + [ + 107.874684, + 16.1951028 + ], + [ + 107.8758055, + 16.1940242 + ], + [ + 107.8763276, + 16.1929232 + ], + [ + 107.8768641, + 16.1915966 + ], + [ + 107.8768723, + 16.1908225 + ], + [ + 107.8772557, + 16.1902263 + ], + [ + 107.8772951, + 16.1889348 + ], + [ + 107.8769177, + 16.1885056 + ], + [ + 107.8674066, + 16.1829108 + ], + [ + 107.8679768, + 16.1813042 + ], + [ + 107.868973, + 16.1810458 + ], + [ + 107.8700995, + 16.1797887 + ], + [ + 107.8706735, + 16.179392 + ], + [ + 107.871269, + 16.1783256 + ], + [ + 107.8718622, + 16.1781494 + ], + [ + 107.8722453, + 16.1778258 + ], + [ + 107.8731734, + 16.1758474 + ], + [ + 107.8735113, + 16.17458 + ], + [ + 107.8749704, + 16.1717464 + ], + [ + 107.8761371, + 16.1700109 + ], + [ + 107.8762793, + 16.1691445 + ], + [ + 107.8759365, + 16.1684875 + ], + [ + 107.8758197, + 16.1678526 + ], + [ + 107.8760433, + 16.165641 + ], + [ + 107.8756463, + 16.1646723 + ], + [ + 107.8754865, + 16.1632469 + ], + [ + 107.8748152, + 16.1618851 + ], + [ + 107.8749479, + 16.1607756 + ], + [ + 107.8743535, + 16.159623 + ], + [ + 107.8736633, + 16.1588635 + ], + [ + 107.8737205, + 16.1579278 + ], + [ + 107.8731573, + 16.1576444 + ], + [ + 107.871285, + 16.1578003 + ], + [ + 107.8682562, + 16.1573305 + ], + [ + 107.8671169, + 16.1575929 + ], + [ + 107.8664678, + 16.1573919 + ], + [ + 107.8656632, + 16.1573765 + ], + [ + 107.8647135, + 16.1567684 + ], + [ + 107.8639841, + 16.1556658 + ], + [ + 107.8634477, + 16.1555113 + ], + [ + 107.8631151, + 16.1551815 + ], + [ + 107.8615425, + 16.1552132 + ], + [ + 107.8600895, + 16.154759 + ], + [ + 107.858567, + 16.1530415 + ], + [ + 107.8584911, + 16.1526097 + ], + [ + 107.8586841, + 16.1516983 + ], + [ + 107.8602934, + 16.147468 + ], + [ + 107.859875, + 16.1463292 + ], + [ + 107.858845, + 16.1450358 + ], + [ + 107.8571498, + 16.1379247 + ], + [ + 107.8594307, + 16.13662 + ], + [ + 107.8598857, + 16.136116 + ], + [ + 107.8601861, + 16.1350648 + ], + [ + 107.8594297, + 16.1332354 + ], + [ + 107.8585698, + 16.1325826 + ], + [ + 107.8585224, + 16.1313634 + ], + [ + 107.8577869, + 16.130039 + ], + [ + 107.8576112, + 16.1288913 + ], + [ + 107.8559375, + 16.1277163 + ], + [ + 107.8558462, + 16.1262602 + ], + [ + 107.8555023, + 16.1257268 + ], + [ + 107.8549075, + 16.1252582 + ], + [ + 107.8548217, + 16.1243821 + ], + [ + 107.8542828, + 16.1231274 + ], + [ + 107.8543657, + 16.122264 + ], + [ + 107.8547967, + 16.1217146 + ], + [ + 107.8554938, + 16.1211964 + ], + [ + 107.8558838, + 16.1203882 + ], + [ + 107.8560764, + 16.1184799 + ], + [ + 107.8559375, + 16.1174455 + ], + [ + 107.8560676, + 16.1143048 + ], + [ + 107.8537166, + 16.1121321 + ], + [ + 107.851029, + 16.1108798 + ], + [ + 107.8506491, + 16.1103534 + ], + [ + 107.8497825, + 16.1098725 + ], + [ + 107.8492616, + 16.1087857 + ], + [ + 107.848455, + 16.1077569 + ], + [ + 107.8473008, + 16.1071536 + ], + [ + 107.8457558, + 16.105762 + ], + [ + 107.8456518, + 16.1048271 + ], + [ + 107.8454712, + 16.1045917 + ], + [ + 107.8439641, + 16.1043705 + ], + [ + 107.842977, + 16.1037005 + ], + [ + 107.8416467, + 16.1036592 + ], + [ + 107.8408205, + 16.1028552 + ], + [ + 107.8396004, + 16.102114 + ], + [ + 107.8384683, + 16.1018554 + ], + [ + 107.8379945, + 16.101371 + ], + [ + 107.8372908, + 16.1012781 + ], + [ + 107.8355956, + 16.0991134 + ], + [ + 107.8341456, + 16.0982119 + ], + [ + 107.8327768, + 16.096523 + ], + [ + 107.8322697, + 16.0952375 + ], + [ + 107.8321468, + 16.0939154 + ], + [ + 107.8323689, + 16.0930187 + ], + [ + 107.8292093, + 16.0918229 + ], + [ + 107.826847, + 16.0898357 + ], + [ + 107.8267309, + 16.0891375 + ], + [ + 107.8264519, + 16.0887406 + ], + [ + 107.826409, + 16.088153 + ], + [ + 107.825776, + 16.0876067 + ], + [ + 107.8255722, + 16.0868129 + ], + [ + 107.8255883, + 16.0848517 + ], + [ + 107.823177, + 16.0837254 + ], + [ + 107.8224689, + 16.083045 + ], + [ + 107.8223991, + 16.0810193 + ], + [ + 107.8216653, + 16.0779337 + ], + [ + 107.8217447, + 16.0771689 + ], + [ + 107.822088, + 16.0764163 + ], + [ + 107.8227693, + 16.0757204 + ], + [ + 107.8236222, + 16.0738957 + ], + [ + 107.8244698, + 16.0730245 + ], + [ + 107.8249543, + 16.0702657 + ], + [ + 107.8236973, + 16.0687718 + ], + [ + 107.8221577, + 16.0675862 + ], + [ + 107.8216481, + 16.0667511 + ], + [ + 107.8199422, + 16.0649572 + ], + [ + 107.8201648, + 16.0640706 + ], + [ + 107.820197, + 16.0622045 + ], + [ + 107.8198323, + 16.061658 + ], + [ + 107.8197303, + 16.0611219 + ], + [ + 107.8186628, + 16.059462 + ], + [ + 107.8187326, + 16.0586836 + ], + [ + 107.8185394, + 16.0582918 + ] + ] + ] + } +} diff --git a/src/data/boundaries/dn/dn-lienchieu.json b/src/data/boundaries/dn/dn-lienchieu.json new file mode 100644 index 0000000..5ec91e4 --- /dev/null +++ b/src/data/boundaries/dn/dn-lienchieu.json @@ -0,0 +1,2200 @@ +{ + "type": "Feature", + "properties": { + "code": "DN-LIENCHIEU", + "name": "Lien Chieu", + "level": "district", + "parent": "DN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 81.4, + "bbox": [ + 108.08699, + 16.0331, + 108.21061, + 16.22576 + ], + "center": [ + 16.13388, + 108.14835 + ], + "generatedAt": "2026-08-30T07:35:15.060Z", + "osm": "relation/19403874" + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 108.0869883, + 16.1388548 + ], + [ + 108.0877689, + 16.1388239 + ], + [ + 108.0887666, + 16.1391048 + ], + [ + 108.0907287, + 16.1390713 + ], + [ + 108.0923048, + 16.139403 + ], + [ + 108.0948821, + 16.139164 + ], + [ + 108.0953783, + 16.137193 + ], + [ + 108.0955781, + 16.1370693 + ], + [ + 108.0959912, + 16.1359769 + ], + [ + 108.095904, + 16.1343356 + ], + [ + 108.0951691, + 16.1309525 + ], + [ + 108.0953622, + 16.1304591 + ], + [ + 108.0959657, + 16.1300482 + ], + [ + 108.0961239, + 16.1297338 + ], + [ + 108.095853, + 16.128497 + ], + [ + 108.0955312, + 16.1279894 + ], + [ + 108.0954199, + 16.1274522 + ], + [ + 108.0954239, + 16.1251757 + ], + [ + 108.0970949, + 16.1209757 + ], + [ + 108.0975079, + 16.1180794 + ], + [ + 108.0987096, + 16.1125856 + ], + [ + 108.0954319, + 16.1102923 + ], + [ + 108.0946326, + 16.1086044 + ], + [ + 108.0958866, + 16.1075465 + ], + [ + 108.0958584, + 16.1070917 + ], + [ + 108.0956559, + 16.1063406 + ], + [ + 108.0949759, + 16.1057408 + ], + [ + 108.0949693, + 16.1054901 + ], + [ + 108.0957833, + 16.1051087 + ], + [ + 108.096824, + 16.1058187 + ], + [ + 108.0977279, + 16.1060636 + ], + [ + 108.1009304, + 16.1061383 + ], + [ + 108.1016171, + 16.1068701 + ], + [ + 108.1019926, + 16.1068726 + ], + [ + 108.1024392, + 16.1065798 + ], + [ + 108.1025022, + 16.1059295 + ], + [ + 108.1028053, + 16.1057337 + ], + [ + 108.1036096, + 16.1054587 + ], + [ + 108.1048804, + 16.1056656 + ], + [ + 108.1076413, + 16.1070505 + ], + [ + 108.1095618, + 16.1077669 + ], + [ + 108.1104052, + 16.1082814 + ], + [ + 108.1112702, + 16.1091842 + ], + [ + 108.1121596, + 16.1108218 + ], + [ + 108.1127105, + 16.1122754 + ], + [ + 108.1131291, + 16.1126955 + ], + [ + 108.1141079, + 16.1131654 + ], + [ + 108.1168908, + 16.1135867 + ], + [ + 108.1195611, + 16.1148352 + ], + [ + 108.1196071, + 16.1138801 + ], + [ + 108.1192226, + 16.1126507 + ], + [ + 108.119298, + 16.111498 + ], + [ + 108.1191467, + 16.1109614 + ], + [ + 108.118651, + 16.1104443 + ], + [ + 108.1173725, + 16.1099551 + ], + [ + 108.1175298, + 16.1095626 + ], + [ + 108.1159243, + 16.10838 + ], + [ + 108.1181124, + 16.1051844 + ], + [ + 108.1140845, + 16.1025876 + ], + [ + 108.1145108, + 16.102135 + ], + [ + 108.1125591, + 16.1000624 + ], + [ + 108.1145982, + 16.0983845 + ], + [ + 108.1162557, + 16.1002107 + ], + [ + 108.1173514, + 16.0989801 + ], + [ + 108.1168229, + 16.0984487 + ], + [ + 108.1173053, + 16.0977283 + ], + [ + 108.1182843, + 16.0955004 + ], + [ + 108.1193063, + 16.0938949 + ], + [ + 108.1197193, + 16.0936707 + ], + [ + 108.1198025, + 16.0913178 + ], + [ + 108.1168199, + 16.0911464 + ], + [ + 108.1167166, + 16.0905923 + ], + [ + 108.1161399, + 16.0905421 + ], + [ + 108.1159401, + 16.0899854 + ], + [ + 108.1157808, + 16.0900263 + ], + [ + 108.1157362, + 16.0887123 + ], + [ + 108.1142852, + 16.0840862 + ], + [ + 108.1119543, + 16.0810786 + ], + [ + 108.1134879, + 16.0817468 + ], + [ + 108.1154251, + 16.0801617 + ], + [ + 108.1158035, + 16.0797131 + ], + [ + 108.1169513, + 16.0771479 + ], + [ + 108.1174012, + 16.0772127 + ], + [ + 108.1177251, + 16.076617 + ], + [ + 108.1177398, + 16.0763621 + ], + [ + 108.1175414, + 16.0763422 + ], + [ + 108.1176245, + 16.0756637 + ], + [ + 108.117941, + 16.0756379 + ], + [ + 108.1179088, + 16.0753544 + ], + [ + 108.1184667, + 16.0751766 + ], + [ + 108.1184667, + 16.075049 + ], + [ + 108.1171706, + 16.0750187 + ], + [ + 108.1171109, + 16.0732938 + ], + [ + 108.1177297, + 16.0677925 + ], + [ + 108.1199998, + 16.0679306 + ], + [ + 108.1226639, + 16.0672456 + ], + [ + 108.1250289, + 16.0671653 + ], + [ + 108.1262129, + 16.0665578 + ], + [ + 108.1266758, + 16.0661516 + ], + [ + 108.1274875, + 16.0663336 + ], + [ + 108.1279719, + 16.0662339 + ], + [ + 108.1291097, + 16.0650577 + ], + [ + 108.1302255, + 16.0642742 + ], + [ + 108.1304991, + 16.0635886 + ], + [ + 108.1308907, + 16.0634288 + ], + [ + 108.1313683, + 16.0632802 + ], + [ + 108.1321138, + 16.0636968 + ], + [ + 108.1334656, + 16.0640886 + ], + [ + 108.1336266, + 16.0637767 + ], + [ + 108.1341831, + 16.0635396 + ], + [ + 108.1341212, + 16.0626199 + ], + [ + 108.1344316, + 16.0616646 + ], + [ + 108.1337778, + 16.0611562 + ], + [ + 108.1330661, + 16.0594688 + ], + [ + 108.133254, + 16.0572975 + ], + [ + 108.1327334, + 16.0542656 + ], + [ + 108.1312617, + 16.0523854 + ], + [ + 108.1301147, + 16.0515804 + ], + [ + 108.1286101, + 16.0498165 + ], + [ + 108.1283775, + 16.0490433 + ], + [ + 108.1285926, + 16.048157 + ], + [ + 108.1302561, + 16.0465504 + ], + [ + 108.1320874, + 16.0452591 + ], + [ + 108.1334039, + 16.0432228 + ], + [ + 108.135986, + 16.0402753 + ], + [ + 108.1368246, + 16.0397999 + ], + [ + 108.1378457, + 16.0401192 + ], + [ + 108.1384821, + 16.0387011 + ], + [ + 108.1405955, + 16.036115 + ], + [ + 108.141, + 16.034778 + ], + [ + 108.1419548, + 16.0339737 + ], + [ + 108.1437583, + 16.0340793 + ], + [ + 108.1441789, + 16.0343258 + ], + [ + 108.1447025, + 16.0349687 + ], + [ + 108.1451079, + 16.0351458 + ], + [ + 108.1465175, + 16.0349475 + ], + [ + 108.1478998, + 16.0354115 + ], + [ + 108.1496045, + 16.0352574 + ], + [ + 108.1505463, + 16.0355773 + ], + [ + 108.1512352, + 16.0356193 + ], + [ + 108.1522583, + 16.0353954 + ], + [ + 108.1530109, + 16.0347109 + ], + [ + 108.1552854, + 16.0349017 + ], + [ + 108.159239, + 16.0330972 + ], + [ + 108.159754, + 16.0347058 + ], + [ + 108.1600785, + 16.0347187 + ], + [ + 108.160336, + 16.0349249 + ], + [ + 108.1622001, + 16.0349223 + ], + [ + 108.162353, + 16.0356725 + ], + [ + 108.1629646, + 16.036683 + ], + [ + 108.1656978, + 16.0390932 + ], + [ + 108.1664488, + 16.0405265 + ], + [ + 108.1675512, + 16.0411658 + ], + [ + 108.1688805, + 16.0423383 + ], + [ + 108.1687379, + 16.0424687 + ], + [ + 108.1709991, + 16.0447598 + ], + [ + 108.1707909, + 16.0449551 + ], + [ + 108.1716335, + 16.0461099 + ], + [ + 108.1713304, + 16.0464785 + ], + [ + 108.1713708, + 16.0468826 + ], + [ + 108.1715844, + 16.0470859 + ], + [ + 108.1712189, + 16.0477655 + ], + [ + 108.1712228, + 16.0488532 + ], + [ + 108.1714823, + 16.0488519 + ], + [ + 108.1709438, + 16.0504497 + ], + [ + 108.1718859, + 16.0507629 + ], + [ + 108.1716295, + 16.0515797 + ], + [ + 108.1706464, + 16.0513039 + ], + [ + 108.1703987, + 16.05216 + ], + [ + 108.1709019, + 16.0523288 + ], + [ + 108.1704426, + 16.0539978 + ], + [ + 108.1714903, + 16.0542372 + ], + [ + 108.1710769, + 16.0561034 + ], + [ + 108.1718749, + 16.0559939 + ], + [ + 108.1718172, + 16.0562381 + ], + [ + 108.1720769, + 16.0562996 + ], + [ + 108.1720318, + 16.0564984 + ], + [ + 108.1736498, + 16.0570739 + ], + [ + 108.1732991, + 16.0582383 + ], + [ + 108.1787682, + 16.0618775 + ], + [ + 108.1750855, + 16.0644501 + ], + [ + 108.1740384, + 16.0629824 + ], + [ + 108.1746777, + 16.0623097 + ], + [ + 108.1726561, + 16.0610581 + ], + [ + 108.1715476, + 16.060841 + ], + [ + 108.1708851, + 16.0640139 + ], + [ + 108.1704734, + 16.067447 + ], + [ + 108.1688963, + 16.0684767 + ], + [ + 108.17057, + 16.0708563 + ], + [ + 108.1667039, + 16.0734 + ], + [ + 108.167424, + 16.0744279 + ], + [ + 108.1637782, + 16.0767359 + ], + [ + 108.1662126, + 16.0802127 + ], + [ + 108.1663906, + 16.0800979 + ], + [ + 108.1667795, + 16.0806552 + ], + [ + 108.1676454, + 16.0800972 + ], + [ + 108.1681649, + 16.0808416 + ], + [ + 108.1595417, + 16.0859521 + ], + [ + 108.1514418, + 16.0916966 + ], + [ + 108.1474662, + 16.095113 + ], + [ + 108.1463832, + 16.0962787 + ], + [ + 108.1458038, + 16.0965209 + ], + [ + 108.1403267, + 16.1019471 + ], + [ + 108.1401819, + 16.1022883 + ], + [ + 108.1389041, + 16.103517 + ], + [ + 108.1385833, + 16.1042159 + ], + [ + 108.1355772, + 16.1075738 + ], + [ + 108.1330909, + 16.1108127 + ], + [ + 108.1313604, + 16.1135573 + ], + [ + 108.1310892, + 16.1154024 + ], + [ + 108.1314437, + 16.1164409 + ], + [ + 108.1320835, + 16.1174472 + ], + [ + 108.1336891, + 16.1170735 + ], + [ + 108.1342802, + 16.117598 + ], + [ + 108.1340061, + 16.1181485 + ], + [ + 108.1332908, + 16.1182159 + ], + [ + 108.1326334, + 16.1187457 + ], + [ + 108.1321761, + 16.1188197 + ], + [ + 108.1310305, + 16.1184692 + ], + [ + 108.1308417, + 16.1185935 + ], + [ + 108.1286844, + 16.1210604 + ], + [ + 108.1277702, + 16.122517 + ], + [ + 108.1274575, + 16.1226012 + ], + [ + 108.1271862, + 16.1223061 + ], + [ + 108.1260831, + 16.1236887 + ], + [ + 108.1260699, + 16.1249344 + ], + [ + 108.1253468, + 16.1262103 + ], + [ + 108.125024, + 16.127183 + ], + [ + 108.1248458, + 16.1272825 + ], + [ + 108.1242097, + 16.1293856 + ], + [ + 108.1235747, + 16.1307103 + ], + [ + 108.1236566, + 16.1310656 + ], + [ + 108.1241831, + 16.1313246 + ], + [ + 108.124147, + 16.1314263 + ], + [ + 108.1238222, + 16.1313381 + ], + [ + 108.1233867, + 16.1326705 + ], + [ + 108.1232448, + 16.1343148 + ], + [ + 108.1233435, + 16.1356022 + ], + [ + 108.1239237, + 16.1383803 + ], + [ + 108.1246011, + 16.1402605 + ], + [ + 108.1254616, + 16.1416809 + ], + [ + 108.1262087, + 16.142419 + ], + [ + 108.1261713, + 16.1411418 + ], + [ + 108.1289824, + 16.139894 + ], + [ + 108.1302475, + 16.1399644 + ], + [ + 108.1307094, + 16.1401053 + ], + [ + 108.1307583, + 16.1403808 + ], + [ + 108.1342215, + 16.1400461 + ], + [ + 108.1367604, + 16.140963 + ], + [ + 108.1375723, + 16.1411024 + ], + [ + 108.1385012, + 16.1418299 + ], + [ + 108.1395958, + 16.1437195 + ], + [ + 108.1394279, + 16.1450655 + ], + [ + 108.1395994, + 16.1462941 + ], + [ + 108.1393982, + 16.1471241 + ], + [ + 108.138722, + 16.147887 + ], + [ + 108.1383141, + 16.1479677 + ], + [ + 108.1374812, + 16.1499495 + ], + [ + 108.1369618, + 16.1517407 + ], + [ + 108.1367847, + 16.1532297 + ], + [ + 108.1367329, + 16.1576851 + ], + [ + 108.1370596, + 16.1594801 + ], + [ + 108.1373419, + 16.1597558 + ], + [ + 108.1387268, + 16.1623215 + ], + [ + 108.1396976, + 16.1633427 + ], + [ + 108.1409836, + 16.1642397 + ], + [ + 108.1420101, + 16.1646499 + ], + [ + 108.1432434, + 16.1649175 + ], + [ + 108.145136, + 16.1648309 + ], + [ + 108.1458312, + 16.1647225 + ], + [ + 108.1468241, + 16.1641204 + ], + [ + 108.1469639, + 16.1637492 + ], + [ + 108.1467428, + 16.1631663 + ], + [ + 108.1467987, + 16.1625247 + ], + [ + 108.147489, + 16.1614864 + ], + [ + 108.1480978, + 16.1612735 + ], + [ + 108.1485731, + 16.1608898 + ], + [ + 108.149212, + 16.1609333 + ], + [ + 108.1497235, + 16.1606461 + ], + [ + 108.1518516, + 16.1608027 + ], + [ + 108.1533063, + 16.1614661 + ], + [ + 108.1538242, + 16.1625026 + ], + [ + 108.1537947, + 16.1645612 + ], + [ + 108.1539245, + 16.1648203 + ], + [ + 108.1531239, + 16.1649379 + ], + [ + 108.152854, + 16.1651915 + ], + [ + 108.1518286, + 16.1652959 + ], + [ + 108.1510969, + 16.1669732 + ], + [ + 108.1509162, + 16.1678524 + ], + [ + 108.1510244, + 16.1681819 + ], + [ + 108.151419, + 16.1685371 + ], + [ + 108.1518163, + 16.1686225 + ], + [ + 108.1519181, + 16.1688525 + ], + [ + 108.1517147, + 16.1690461 + ], + [ + 108.1525354, + 16.1706727 + ], + [ + 108.1531663, + 16.1712446 + ], + [ + 108.153555, + 16.172022 + ], + [ + 108.1539451, + 16.1721646 + ], + [ + 108.1536985, + 16.172569 + ], + [ + 108.1537678, + 16.1731951 + ], + [ + 108.1535468, + 16.1733487 + ], + [ + 108.1535011, + 16.174197 + ], + [ + 108.1532443, + 16.1742348 + ], + [ + 108.1526434, + 16.175358 + ], + [ + 108.1526635, + 16.1757546 + ], + [ + 108.1529064, + 16.1756894 + ], + [ + 108.1526864, + 16.1760844 + ], + [ + 108.1528225, + 16.1766449 + ], + [ + 108.153085, + 16.1769057 + ], + [ + 108.1535845, + 16.1792289 + ], + [ + 108.1535808, + 16.1794861 + ], + [ + 108.1528085, + 16.1803992 + ], + [ + 108.1526823, + 16.1808552 + ], + [ + 108.1528682, + 16.1815007 + ], + [ + 108.152811, + 16.1825566 + ], + [ + 108.1536184, + 16.1861784 + ], + [ + 108.1542801, + 16.1864447 + ], + [ + 108.1538012, + 16.1872251 + ], + [ + 108.154292, + 16.1879137 + ], + [ + 108.1545242, + 16.1879923 + ], + [ + 108.1544271, + 16.1882925 + ], + [ + 108.1546467, + 16.188766 + ], + [ + 108.1549334, + 16.1888819 + ], + [ + 108.15509, + 16.1894583 + ], + [ + 108.1558733, + 16.1904504 + ], + [ + 108.1562169, + 16.1907169 + ], + [ + 108.1594161, + 16.1905024 + ], + [ + 108.160474, + 16.1910312 + ], + [ + 108.1620682, + 16.19131 + ], + [ + 108.1628559, + 16.1920926 + ], + [ + 108.1633866, + 16.1922289 + ], + [ + 108.1635121, + 16.1927453 + ], + [ + 108.1637747, + 16.1930061 + ], + [ + 108.1637789, + 16.1936198 + ], + [ + 108.163993, + 16.1938544 + ], + [ + 108.1646864, + 16.1940919 + ], + [ + 108.1651707, + 16.1939191 + ], + [ + 108.1657669, + 16.1934183 + ], + [ + 108.1665322, + 16.1931599 + ], + [ + 108.1673647, + 16.1934396 + ], + [ + 108.1676849, + 16.1937894 + ], + [ + 108.1682359, + 16.19404 + ], + [ + 108.168689, + 16.1939721 + ], + [ + 108.1689589, + 16.1937182 + ], + [ + 108.1705567, + 16.1937396 + ], + [ + 108.1721509, + 16.1940182 + ], + [ + 108.172421, + 16.1937643 + ], + [ + 108.1729536, + 16.1937715 + ], + [ + 108.1742778, + 16.1943039 + ], + [ + 108.1745405, + 16.1945648 + ], + [ + 108.1756002, + 16.1949654 + ], + [ + 108.1758261, + 16.1977995 + ], + [ + 108.176357, + 16.1979348 + ], + [ + 108.1767505, + 16.1983266 + ], + [ + 108.1771358, + 16.1993612 + ], + [ + 108.1779328, + 16.1995001 + ], + [ + 108.1787208, + 16.2002828 + ], + [ + 108.1805851, + 16.2003075 + ], + [ + 108.1808604, + 16.1996681 + ], + [ + 108.181125, + 16.1997999 + ], + [ + 108.1824566, + 16.1998176 + ], + [ + 108.1843282, + 16.1993276 + ], + [ + 108.1853879, + 16.1997282 + ], + [ + 108.1859041, + 16.2008929 + ], + [ + 108.1864331, + 16.2011573 + ], + [ + 108.187232, + 16.2011678 + ], + [ + 108.1875021, + 16.200914 + ], + [ + 108.1909642, + 16.2009598 + ], + [ + 108.1917669, + 16.2007129 + ], + [ + 108.1921749, + 16.2000754 + ], + [ + 108.1928504, + 16.1994404 + ], + [ + 108.1944482, + 16.1994616 + ], + [ + 108.1948309, + 16.2006252 + ], + [ + 108.1945573, + 16.2011365 + ], + [ + 108.1944136, + 16.2019067 + ], + [ + 108.1936111, + 16.2021535 + ], + [ + 108.193441, + 16.204725 + ], + [ + 108.19437, + 16.2049947 + ], + [ + 108.194229, + 16.2055077 + ], + [ + 108.1935491, + 16.2065283 + ], + [ + 108.1940818, + 16.2065353 + ], + [ + 108.1941999, + 16.2075663 + ], + [ + 108.1947217, + 16.2083453 + ], + [ + 108.1949699, + 16.2096356 + ], + [ + 108.1947857, + 16.21023 + ], + [ + 108.1922432, + 16.208983 + ], + [ + 108.1898708, + 16.208218 + ], + [ + 108.1823856, + 16.2071907 + ], + [ + 108.1806354, + 16.2067142 + ], + [ + 108.1795579, + 16.2067009 + ], + [ + 108.177604, + 16.2059389 + ], + [ + 108.1770121, + 16.2059582 + ], + [ + 108.1754749, + 16.2052401 + ], + [ + 108.1743338, + 16.2036806 + ], + [ + 108.1724674, + 16.2033927 + ], + [ + 108.1714837, + 16.2015002 + ], + [ + 108.1711552, + 16.2012949 + ], + [ + 108.1700715, + 16.2018048 + ], + [ + 108.1692817, + 16.2030615 + ], + [ + 108.1689089, + 16.2033676 + ], + [ + 108.1673668, + 16.2038068 + ], + [ + 108.1649445, + 16.2041302 + ], + [ + 108.1637266, + 16.2046592 + ], + [ + 108.1626762, + 16.2055519 + ], + [ + 108.160826, + 16.2063911 + ], + [ + 108.1600066, + 16.2064474 + ], + [ + 108.1576176, + 16.2059517 + ], + [ + 108.1568635, + 16.2053904 + ], + [ + 108.1561747, + 16.2042199 + ], + [ + 108.1556832, + 16.200397 + ], + [ + 108.1541594, + 16.2008498 + ], + [ + 108.1528665, + 16.2007737 + ], + [ + 108.1518763, + 16.2013675 + ], + [ + 108.1510802, + 16.2014549 + ], + [ + 108.1500907, + 16.2012446 + ], + [ + 108.1486917, + 16.2005449 + ], + [ + 108.1474215, + 16.1996851 + ], + [ + 108.1458098, + 16.1998476 + ], + [ + 108.1442827, + 16.1994588 + ], + [ + 108.1436021, + 16.1990382 + ], + [ + 108.1430618, + 16.1984682 + ], + [ + 108.1415538, + 16.195803 + ], + [ + 108.1400648, + 16.1942992 + ], + [ + 108.1392764, + 16.1937647 + ], + [ + 108.138387, + 16.1936547 + ], + [ + 108.137078, + 16.1928041 + ], + [ + 108.1359682, + 16.1909998 + ], + [ + 108.1340141, + 16.19007 + ], + [ + 108.1319994, + 16.1882517 + ], + [ + 108.130727, + 16.1874116 + ], + [ + 108.1281116, + 16.1845569 + ], + [ + 108.1235242, + 16.1823985 + ], + [ + 108.1192894, + 16.1811608 + ], + [ + 108.1188268, + 16.1812049 + ], + [ + 108.1173276, + 16.1822888 + ], + [ + 108.1160979, + 16.1828323 + ], + [ + 108.1156936, + 16.1828032 + ], + [ + 108.1141475, + 16.1821646 + ], + [ + 108.1124123, + 16.1824797 + ], + [ + 108.111287, + 16.1821303 + ], + [ + 108.1109712, + 16.1821696 + ], + [ + 108.1097027, + 16.1836944 + ], + [ + 108.1085582, + 16.1843498 + ], + [ + 108.107908, + 16.1850078 + ], + [ + 108.1074153, + 16.1852342 + ], + [ + 108.1066513, + 16.1852945 + ], + [ + 108.1051197, + 16.1862428 + ], + [ + 108.1046862, + 16.1862386 + ], + [ + 108.1038537, + 16.1858253 + ], + [ + 108.1033958, + 16.1857654 + ], + [ + 108.1026086, + 16.185974 + ], + [ + 108.1014634, + 16.1865718 + ], + [ + 108.1005676, + 16.1866671 + ], + [ + 108.0982593, + 16.1858866 + ], + [ + 108.0975102, + 16.1854798 + ], + [ + 108.0963556, + 16.1844564 + ], + [ + 108.0948213, + 16.1834853 + ], + [ + 108.0940395, + 16.1827012 + ], + [ + 108.0939032, + 16.182525 + ], + [ + 108.0938955, + 16.1811136 + ], + [ + 108.0936416, + 16.1806804 + ], + [ + 108.0929078, + 16.1802677 + ], + [ + 108.0921489, + 16.1801184 + ], + [ + 108.0929575, + 16.1789111 + ], + [ + 108.0934095, + 16.1776249 + ], + [ + 108.0934117, + 16.1767134 + ], + [ + 108.0930974, + 16.175456 + ], + [ + 108.093431, + 16.1737454 + ], + [ + 108.0932419, + 16.1721947 + ], + [ + 108.0937636, + 16.1704635 + ], + [ + 108.0940962, + 16.168418 + ], + [ + 108.0943617, + 16.1678822 + ], + [ + 108.0942571, + 16.1673618 + ], + [ + 108.0942886, + 16.1665999 + ], + [ + 108.0944611, + 16.1664201 + ], + [ + 108.0943597, + 16.166075 + ], + [ + 108.0946997, + 16.1656307 + ], + [ + 108.094634, + 16.1639974 + ], + [ + 108.0950148, + 16.163808 + ], + [ + 108.0952415, + 16.1633656 + ], + [ + 108.0951127, + 16.1621309 + ], + [ + 108.0952388, + 16.1612357 + ], + [ + 108.0955406, + 16.1607243 + ], + [ + 108.0955392, + 16.160182 + ], + [ + 108.0959871, + 16.1590253 + ], + [ + 108.0958745, + 16.1573301 + ], + [ + 108.0951811, + 16.1567685 + ], + [ + 108.0952576, + 16.1565778 + ], + [ + 108.0947855, + 16.1560445 + ], + [ + 108.0946036, + 16.1544714 + ], + [ + 108.0947694, + 16.1540453 + ], + [ + 108.0947721, + 16.1530328 + ], + [ + 108.0946219, + 16.1522909 + ], + [ + 108.0942853, + 16.1516957 + ], + [ + 108.0944824, + 16.1511753 + ], + [ + 108.0941418, + 16.149766 + ], + [ + 108.0937985, + 16.1493564 + ], + [ + 108.0937958, + 16.1488811 + ], + [ + 108.0931306, + 16.148313 + ], + [ + 108.0931735, + 16.1465095 + ], + [ + 108.0929589, + 16.1457417 + ], + [ + 108.0916822, + 16.1440825 + ], + [ + 108.0869883, + 16.1388548 + ] + ] + ], + [ + [ + [ + 108.1982443, + 16.214153 + ], + [ + 108.1988879, + 16.213722 + ], + [ + 108.1991918, + 16.2127862 + ], + [ + 108.1995526, + 16.2123026 + ], + [ + 108.200484, + 16.2116802 + ], + [ + 108.2010038, + 16.211565 + ], + [ + 108.2021319, + 16.2122268 + ], + [ + 108.2029899, + 16.2121592 + ], + [ + 108.2043336, + 16.211145 + ], + [ + 108.206664, + 16.2099063 + ], + [ + 108.2075255, + 16.2101359 + ], + [ + 108.208022, + 16.2105776 + ], + [ + 108.2083522, + 16.2111735 + ], + [ + 108.2078021, + 16.2125456 + ], + [ + 108.2078479, + 16.2128881 + ], + [ + 108.2093297, + 16.2144577 + ], + [ + 108.2098082, + 16.2166259 + ], + [ + 108.2103655, + 16.2177995 + ], + [ + 108.2105656, + 16.2191327 + ], + [ + 108.2106126, + 16.2202846 + ], + [ + 108.2100193, + 16.2210523 + ], + [ + 108.2099185, + 16.2219195 + ], + [ + 108.2093938, + 16.2227548 + ], + [ + 108.205572, + 16.2254839 + ], + [ + 108.2037102, + 16.2257598 + ], + [ + 108.2032478, + 16.2254954 + ], + [ + 108.2025521, + 16.224844 + ], + [ + 108.2022245, + 16.2242579 + ], + [ + 108.2021458, + 16.2231537 + ], + [ + 108.2001691, + 16.2210507 + ], + [ + 108.1995876, + 16.2200662 + ], + [ + 108.1995149, + 16.2194998 + ], + [ + 108.19995, + 16.2182642 + ], + [ + 108.1997168, + 16.217464 + ], + [ + 108.1988821, + 16.2157745 + ], + [ + 108.1987916, + 16.214712 + ], + [ + 108.1986647, + 16.2144303 + ], + [ + 108.1982443, + 16.214153 + ] + ] + ] + ] + } +} diff --git a/src/data/boundaries/dn/dn-nguhanhson.json b/src/data/boundaries/dn/dn-nguhanhson.json new file mode 100644 index 0000000..b0ba32e --- /dev/null +++ b/src/data/boundaries/dn/dn-nguhanhson.json @@ -0,0 +1,650 @@ +{ + "type": "Feature", + "properties": { + "code": "DN-NGUHANHSON", + "name": "Ngu Hanh Son", + "level": "district", + "parent": "DN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 40.2, + "bbox": [ + 108.21683, + 15.95597, + 108.28957, + 16.05675 + ], + "center": [ + 15.99755, + 108.25003 + ], + "generatedAt": "2026-08-30T07:35:13.283Z", + "osm": "relation/19403879" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 108.2168322, + 15.9710357 + ], + [ + 108.2169341, + 15.9700251 + ], + [ + 108.2172839, + 15.9689689 + ], + [ + 108.2190267, + 15.9653125 + ], + [ + 108.2197139, + 15.9641968 + ], + [ + 108.220803, + 15.9632557 + ], + [ + 108.2234852, + 15.9621025 + ], + [ + 108.2244541, + 15.9610835 + ], + [ + 108.2247949, + 15.9602976 + ], + [ + 108.2249384, + 15.959041 + ], + [ + 108.2248356, + 15.9577657 + ], + [ + 108.2244456, + 15.9561285 + ], + [ + 108.22564, + 15.9559727 + ], + [ + 108.2286776, + 15.9565365 + ], + [ + 108.2306419, + 15.9573073 + ], + [ + 108.2303953, + 15.9577239 + ], + [ + 108.230972, + 15.9580127 + ], + [ + 108.2310169, + 15.958551 + ], + [ + 108.230012, + 15.9609043 + ], + [ + 108.2313331, + 15.961986 + ], + [ + 108.2312898, + 15.962398 + ], + [ + 108.2347244, + 15.9634978 + ], + [ + 108.2375417, + 15.9647029 + ], + [ + 108.2388765, + 15.9649407 + ], + [ + 108.2388228, + 15.9651212 + ], + [ + 108.2393727, + 15.9653326 + ], + [ + 108.2394907, + 15.9665176 + ], + [ + 108.2408452, + 15.9675491 + ], + [ + 108.2421555, + 15.968128 + ], + [ + 108.2434625, + 15.9698496 + ], + [ + 108.2440883, + 15.9704156 + ], + [ + 108.2457992, + 15.9710123 + ], + [ + 108.245936, + 15.9707183 + ], + [ + 108.2463598, + 15.9707467 + ], + [ + 108.2462427, + 15.9719639 + ], + [ + 108.246489, + 15.9718595 + ], + [ + 108.2465213, + 15.9719763 + ], + [ + 108.2468923, + 15.9719872 + ], + [ + 108.2469901, + 15.971675 + ], + [ + 108.2472421, + 15.9715123 + ], + [ + 108.2476875, + 15.9717988 + ], + [ + 108.247835, + 15.971479 + ], + [ + 108.2480577, + 15.9714764 + ], + [ + 108.2501766, + 15.9720038 + ], + [ + 108.2501773, + 15.9724131 + ], + [ + 108.2517833, + 15.9726858 + ], + [ + 108.2518369, + 15.972486 + ], + [ + 108.2520233, + 15.972519 + ], + [ + 108.2532236, + 15.9727935 + ], + [ + 108.253229, + 15.9729475 + ], + [ + 108.2540122, + 15.9729437 + ], + [ + 108.2540256, + 15.9733318 + ], + [ + 108.2547425, + 15.973324 + ], + [ + 108.2547283, + 15.9725878 + ], + [ + 108.2581455, + 15.971695 + ], + [ + 108.2581481, + 15.9702314 + ], + [ + 108.2593419, + 15.9702009 + ], + [ + 108.2593314, + 15.9668138 + ], + [ + 108.2598106, + 15.9660367 + ], + [ + 108.262231, + 15.9650585 + ], + [ + 108.263148, + 15.9650262 + ], + [ + 108.2649153, + 15.9653597 + ], + [ + 108.2673716, + 15.9663394 + ], + [ + 108.2682118, + 15.966484 + ], + [ + 108.2682144, + 15.9652809 + ], + [ + 108.2680721, + 15.9648997 + ], + [ + 108.2682031, + 15.9641491 + ], + [ + 108.2687229, + 15.9633105 + ], + [ + 108.2696286, + 15.9624737 + ], + [ + 108.2722628, + 15.961901 + ], + [ + 108.2724356, + 15.9621467 + ], + [ + 108.272684, + 15.9620752 + ], + [ + 108.2730415, + 15.9622717 + ], + [ + 108.2778285, + 15.962001 + ], + [ + 108.2787427, + 15.961512 + ], + [ + 108.285911, + 15.9655679 + ], + [ + 108.2895709, + 15.9674041 + ], + [ + 108.284633, + 15.9756529 + ], + [ + 108.2837425, + 15.9774528 + ], + [ + 108.2830981, + 15.9783472 + ], + [ + 108.2822756, + 15.9801388 + ], + [ + 108.2811905, + 15.9816695 + ], + [ + 108.280914, + 15.9824381 + ], + [ + 108.2796893, + 15.9844818 + ], + [ + 108.2784568, + 15.9870403 + ], + [ + 108.2784535, + 15.9874035 + ], + [ + 108.2766861, + 15.9901066 + ], + [ + 108.2759961, + 15.9918999 + ], + [ + 108.2735317, + 15.9970167 + ], + [ + 108.2732622, + 15.9972705 + ], + [ + 108.2722646, + 15.9995232 + ], + [ + 108.269954, + 16.0038935 + ], + [ + 108.2673952, + 16.0093355 + ], + [ + 108.2653536, + 16.0141973 + ], + [ + 108.2636942, + 16.0173469 + ], + [ + 108.2627286, + 16.0197721 + ], + [ + 108.2617413, + 16.0213589 + ], + [ + 108.2607808, + 16.0233408 + ], + [ + 108.2585768, + 16.0286559 + ], + [ + 108.2581762, + 16.0291558 + ], + [ + 108.2570964, + 16.0312988 + ], + [ + 108.2568422, + 16.0321346 + ], + [ + 108.2558082, + 16.0340215 + ], + [ + 108.2555449, + 16.0351209 + ], + [ + 108.2543508, + 16.0374413 + ], + [ + 108.2538119, + 16.0390588 + ], + [ + 108.2533321, + 16.0399823 + ], + [ + 108.2529116, + 16.0416128 + ], + [ + 108.2496942, + 16.0504905 + ], + [ + 108.2479383, + 16.0567485 + ], + [ + 108.2367957, + 16.0534755 + ], + [ + 108.2356757, + 16.051786 + ], + [ + 108.2345524, + 16.0511662 + ], + [ + 108.2332849, + 16.0509853 + ], + [ + 108.2318581, + 16.0514667 + ], + [ + 108.2288383, + 16.0510559 + ], + [ + 108.2323274, + 16.0473298 + ], + [ + 108.2339033, + 16.0442982 + ], + [ + 108.2345755, + 16.0422698 + ], + [ + 108.2359977, + 16.0354354 + ], + [ + 108.2359971, + 16.0340552 + ], + [ + 108.2357658, + 16.032605 + ], + [ + 108.2353237, + 16.0313059 + ], + [ + 108.2350589, + 16.0291604 + ], + [ + 108.2383731, + 16.0242939 + ], + [ + 108.239365, + 16.0222607 + ], + [ + 108.2395077, + 16.0202503 + ], + [ + 108.2386601, + 16.018507 + ], + [ + 108.2347079, + 16.014321 + ], + [ + 108.233214, + 16.0117633 + ], + [ + 108.2324671, + 16.0090261 + ], + [ + 108.2327005, + 16.0065582 + ], + [ + 108.2321854, + 16.005402 + ], + [ + 108.2313133, + 16.0041081 + ], + [ + 108.2298395, + 16.0023703 + ], + [ + 108.2290955, + 16.001092 + ], + [ + 108.2289249, + 16.0004042 + ], + [ + 108.2289687, + 15.9994678 + ], + [ + 108.2295728, + 15.9972693 + ], + [ + 108.2298996, + 15.9949807 + ], + [ + 108.2294794, + 15.9925574 + ], + [ + 108.2280323, + 15.9907624 + ], + [ + 108.2223653, + 15.9879356 + ], + [ + 108.2211222, + 15.9877031 + ], + [ + 108.2205944, + 15.9872783 + ], + [ + 108.2204101, + 15.9858521 + ], + [ + 108.2208089, + 15.9849022 + ], + [ + 108.2222751, + 15.9830619 + ], + [ + 108.2226171, + 15.9820113 + ], + [ + 108.2227105, + 15.9799469 + ], + [ + 108.2219169, + 15.9784211 + ], + [ + 108.2188304, + 15.9748345 + ], + [ + 108.2176304, + 15.9732102 + ], + [ + 108.2168795, + 15.9716436 + ], + [ + 108.2168322, + 15.9710357 + ] + ] + ] + } +} diff --git a/src/data/boundaries/dn/dn-sontra.json b/src/data/boundaries/dn/dn-sontra.json new file mode 100644 index 0000000..9a6e211 --- /dev/null +++ b/src/data/boundaries/dn/dn-sontra.json @@ -0,0 +1,2076 @@ +{ + "type": "Feature", + "properties": { + "code": "DN-SONTRA", + "name": "Son Tra", + "level": "district", + "parent": "DN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 59.4, + "bbox": [ + 108.20903, + 16.05099, + 108.33864, + 16.15565 + ], + "center": [ + 16.11094, + 108.26514 + ], + "generatedAt": "2026-08-30T07:35:11.759Z", + "osm": "relation/19403877" + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 108.2090274, + 16.1224989 + ], + [ + 108.2129702, + 16.1225301 + ], + [ + 108.2129835, + 16.1223199 + ], + [ + 108.2107422, + 16.1223281 + ], + [ + 108.2104873, + 16.1221334 + ], + [ + 108.2123218, + 16.1199367 + ], + [ + 108.2138924, + 16.1210704 + ], + [ + 108.2144868, + 16.1203465 + ], + [ + 108.2129684, + 16.1191277 + ], + [ + 108.2131394, + 16.1189216 + ], + [ + 108.2146673, + 16.1201258 + ], + [ + 108.2151943, + 16.1194812 + ], + [ + 108.2138652, + 16.1184123 + ], + [ + 108.2140383, + 16.1182 + ], + [ + 108.2153602, + 16.1192782 + ], + [ + 108.2158435, + 16.1186871 + ], + [ + 108.2153836, + 16.1183049 + ], + [ + 108.2167306, + 16.1167025 + ], + [ + 108.2169948, + 16.1169246 + ], + [ + 108.2175299, + 16.115962 + ], + [ + 108.2184548, + 16.1157404 + ], + [ + 108.2185912, + 16.1159133 + ], + [ + 108.2187582, + 16.1176466 + ], + [ + 108.2197246, + 16.1178707 + ], + [ + 108.2201125, + 16.1182024 + ], + [ + 108.2196744, + 16.1179759 + ], + [ + 108.2186735, + 16.1178439 + ], + [ + 108.2184872, + 16.1185435 + ], + [ + 108.2189688, + 16.1191836 + ], + [ + 108.2204939, + 16.1203302 + ], + [ + 108.2216112, + 16.1209091 + ], + [ + 108.2224212, + 16.1200781 + ], + [ + 108.2225504, + 16.1193811 + ], + [ + 108.2212303, + 16.119155 + ], + [ + 108.2212465, + 16.1190384 + ], + [ + 108.2225804, + 16.1192405 + ], + [ + 108.222733, + 16.1184719 + ], + [ + 108.2231547, + 16.1183879 + ], + [ + 108.2259405, + 16.1163882 + ], + [ + 108.2283572, + 16.1159392 + ], + [ + 108.2285792, + 16.1167616 + ], + [ + 108.2286944, + 16.1167301 + ], + [ + 108.2286241, + 16.1164892 + ], + [ + 108.2289842, + 16.1164981 + ], + [ + 108.229567, + 16.1161649 + ], + [ + 108.2291488, + 16.1154856 + ], + [ + 108.2307593, + 16.1145499 + ], + [ + 108.2309002, + 16.1147676 + ], + [ + 108.2312073, + 16.1147837 + ], + [ + 108.2318686, + 16.1145978 + ], + [ + 108.2318105, + 16.1144677 + ], + [ + 108.2342173, + 16.1130483 + ], + [ + 108.2343731, + 16.1128845 + ], + [ + 108.2341632, + 16.1126105 + ], + [ + 108.2347422, + 16.1122805 + ], + [ + 108.2351422, + 16.1121382 + ], + [ + 108.2352511, + 16.1123205 + ], + [ + 108.2370494, + 16.1119542 + ], + [ + 108.2386529, + 16.1123919 + ], + [ + 108.2390211, + 16.1121236 + ], + [ + 108.2400815, + 16.1125336 + ], + [ + 108.2406933, + 16.112299 + ], + [ + 108.2417247, + 16.1123822 + ], + [ + 108.2417993, + 16.112183 + ], + [ + 108.2417504, + 16.1113684 + ], + [ + 108.2415221, + 16.1107973 + ], + [ + 108.2407089, + 16.1105588 + ], + [ + 108.2408129, + 16.110215 + ], + [ + 108.2395757, + 16.1098625 + ], + [ + 108.2408435, + 16.1101137 + ], + [ + 108.2417275, + 16.1071902 + ], + [ + 108.2406608, + 16.1068843 + ], + [ + 108.2407409, + 16.106619 + ], + [ + 108.2418092, + 16.10692 + ], + [ + 108.2425213, + 16.1043222 + ], + [ + 108.2424301, + 16.1039434 + ], + [ + 108.2421125, + 16.1037894 + ], + [ + 108.2408676, + 16.1010676 + ], + [ + 108.2406902, + 16.1011217 + ], + [ + 108.2401343, + 16.0999009 + ], + [ + 108.2402241, + 16.09983 + ], + [ + 108.2398409, + 16.0997641 + ], + [ + 108.2395084, + 16.0991055 + ], + [ + 108.2381439, + 16.0960114 + ], + [ + 108.2383665, + 16.0962356 + ], + [ + 108.2387474, + 16.0960758 + ], + [ + 108.237476, + 16.0932255 + ], + [ + 108.2368779, + 16.0926611 + ], + [ + 108.2346597, + 16.0946558 + ], + [ + 108.2347482, + 16.0948491 + ], + [ + 108.2345578, + 16.095063 + ], + [ + 108.2357085, + 16.0975705 + ], + [ + 108.2359338, + 16.0975705 + ], + [ + 108.2360116, + 16.0978411 + ], + [ + 108.2349709, + 16.1013432 + ], + [ + 108.2347462, + 16.1014736 + ], + [ + 108.2346709, + 16.1018372 + ], + [ + 108.2348565, + 16.1020724 + ], + [ + 108.2346594, + 16.1025382 + ], + [ + 108.2344715, + 16.1026015 + ], + [ + 108.2339561, + 16.1038424 + ], + [ + 108.2264332, + 16.1001484 + ], + [ + 108.226303, + 16.100462 + ], + [ + 108.2265551, + 16.1007124 + ], + [ + 108.2265729, + 16.1010555 + ], + [ + 108.2281294, + 16.1013306 + ], + [ + 108.2285235, + 16.1012169 + ], + [ + 108.2287102, + 16.1015012 + ], + [ + 108.2277388, + 16.1068371 + ], + [ + 108.2275365, + 16.108304 + ], + [ + 108.2276282, + 16.1088978 + ], + [ + 108.2274449, + 16.1093016 + ], + [ + 108.2270797, + 16.1093881 + ], + [ + 108.2256757, + 16.1091823 + ], + [ + 108.2248646, + 16.1087127 + ], + [ + 108.2233137, + 16.1072045 + ], + [ + 108.2206923, + 16.1036543 + ], + [ + 108.2219899, + 16.0950595 + ], + [ + 108.2252379, + 16.0859249 + ], + [ + 108.226028, + 16.0821677 + ], + [ + 108.2264075, + 16.0792643 + ], + [ + 108.2270163, + 16.0573659 + ], + [ + 108.227316, + 16.0539997 + ], + [ + 108.2288383, + 16.0510559 + ], + [ + 108.2318581, + 16.0514667 + ], + [ + 108.2332849, + 16.0509853 + ], + [ + 108.2345524, + 16.0511662 + ], + [ + 108.2356757, + 16.051786 + ], + [ + 108.2367957, + 16.0534755 + ], + [ + 108.2479383, + 16.0567485 + ], + [ + 108.2471655, + 16.0624782 + ], + [ + 108.2468918, + 16.0675965 + ], + [ + 108.2468928, + 16.0705626 + ], + [ + 108.2473528, + 16.0763139 + ], + [ + 108.2488391, + 16.0842678 + ], + [ + 108.2498625, + 16.0880915 + ], + [ + 108.2517723, + 16.0918512 + ], + [ + 108.253279, + 16.0961143 + ], + [ + 108.2547063, + 16.0983603 + ], + [ + 108.2558006, + 16.0994467 + ], + [ + 108.2570809, + 16.1004097 + ], + [ + 108.2587984, + 16.1013331 + ], + [ + 108.2609105, + 16.1019828 + ], + [ + 108.2624096, + 16.1019227 + ], + [ + 108.2635776, + 16.1013763 + ], + [ + 108.2637848, + 16.1009866 + ], + [ + 108.2644034, + 16.1010532 + ], + [ + 108.2645123, + 16.1009162 + ], + [ + 108.2642548, + 16.0998558 + ], + [ + 108.2647948, + 16.0990592 + ], + [ + 108.2655321, + 16.0983542 + ], + [ + 108.2654072, + 16.098099 + ], + [ + 108.2657905, + 16.0975991 + ], + [ + 108.2661172, + 16.0976239 + ], + [ + 108.2666686, + 16.0971352 + ], + [ + 108.2665862, + 16.097036 + ], + [ + 108.2672842, + 16.0961764 + ], + [ + 108.26784, + 16.0958973 + ], + [ + 108.2678787, + 16.0955583 + ], + [ + 108.2672923, + 16.0950648 + ], + [ + 108.2674419, + 16.0949796 + ], + [ + 108.268346, + 16.0953084 + ], + [ + 108.2693116, + 16.0953854 + ], + [ + 108.269486, + 16.0958599 + ], + [ + 108.2696594, + 16.0959312 + ], + [ + 108.2694733, + 16.0965327 + ], + [ + 108.2701, + 16.097796 + ], + [ + 108.2706427, + 16.0981337 + ], + [ + 108.2719001, + 16.0984939 + ], + [ + 108.2725315, + 16.0985086 + ], + [ + 108.2730077, + 16.0987568 + ], + [ + 108.2738625, + 16.0987297 + ], + [ + 108.2744952, + 16.0983906 + ], + [ + 108.2749911, + 16.0977606 + ], + [ + 108.2759403, + 16.0974725 + ], + [ + 108.2760482, + 16.0972539 + ], + [ + 108.2763232, + 16.0973393 + ], + [ + 108.2769105, + 16.0971852 + ], + [ + 108.2772104, + 16.0975239 + ], + [ + 108.2779579, + 16.0977688 + ], + [ + 108.2786791, + 16.0976848 + ], + [ + 108.2796028, + 16.0971515 + ], + [ + 108.2797995, + 16.0974987 + ], + [ + 108.2801636, + 16.0972733 + ], + [ + 108.2807442, + 16.0980149 + ], + [ + 108.2809223, + 16.0979807 + ], + [ + 108.2812768, + 16.0982457 + ], + [ + 108.2814654, + 16.0981233 + ], + [ + 108.2814895, + 16.0987596 + ], + [ + 108.2816707, + 16.0989522 + ], + [ + 108.2818777, + 16.0988294 + ], + [ + 108.2819045, + 16.0991618 + ], + [ + 108.2833951, + 16.1005301 + ], + [ + 108.2833787, + 16.1007261 + ], + [ + 108.283895, + 16.1013897 + ], + [ + 108.2853778, + 16.1030599 + ], + [ + 108.2866041, + 16.1039675 + ], + [ + 108.2869013, + 16.1039248 + ], + [ + 108.2873993, + 16.1042658 + ], + [ + 108.2890127, + 16.1044224 + ], + [ + 108.2918199, + 16.1056358 + ], + [ + 108.2931636, + 16.1051755 + ], + [ + 108.2952751, + 16.1056396 + ], + [ + 108.2955123, + 16.1053811 + ], + [ + 108.2968901, + 16.1051473 + ], + [ + 108.2987965, + 16.1045616 + ], + [ + 108.2999608, + 16.1037424 + ], + [ + 108.3004585, + 16.1023731 + ], + [ + 108.3004023, + 16.1018388 + ], + [ + 108.3010669, + 16.1006474 + ], + [ + 108.3005689, + 16.0997775 + ], + [ + 108.3007243, + 16.0992027 + ], + [ + 108.3031129, + 16.09673 + ], + [ + 108.3043567, + 16.0960479 + ], + [ + 108.3057155, + 16.0959914 + ], + [ + 108.3061476, + 16.0957649 + ], + [ + 108.3068008, + 16.0958891 + ], + [ + 108.3070614, + 16.096401 + ], + [ + 108.3085314, + 16.0968301 + ], + [ + 108.3090385, + 16.0975325 + ], + [ + 108.3098188, + 16.0979503 + ], + [ + 108.3101303, + 16.0984583 + ], + [ + 108.3102889, + 16.0996789 + ], + [ + 108.309652, + 16.1017724 + ], + [ + 108.3098063, + 16.103159 + ], + [ + 108.3092025, + 16.104681 + ], + [ + 108.3092108, + 16.1061007 + ], + [ + 108.3095422, + 16.1088734 + ], + [ + 108.3104637, + 16.1105633 + ], + [ + 108.3109979, + 16.1108468 + ], + [ + 108.3110414, + 16.1116844 + ], + [ + 108.311317, + 16.1119003 + ], + [ + 108.3112172, + 16.1121894 + ], + [ + 108.3115992, + 16.1125284 + ], + [ + 108.3130072, + 16.1129234 + ], + [ + 108.314855, + 16.1123666 + ], + [ + 108.3161331, + 16.1127621 + ], + [ + 108.3168658, + 16.1131551 + ], + [ + 108.3182498, + 16.1143739 + ], + [ + 108.3189549, + 16.1154492 + ], + [ + 108.3196156, + 16.1160509 + ], + [ + 108.3206973, + 16.1166557 + ], + [ + 108.3217181, + 16.1165392 + ], + [ + 108.3239156, + 16.1158528 + ], + [ + 108.3253451, + 16.1158753 + ], + [ + 108.3263481, + 16.1154321 + ], + [ + 108.3275642, + 16.1156099 + ], + [ + 108.3282871, + 16.1160118 + ], + [ + 108.3290158, + 16.1159668 + ], + [ + 108.3294832, + 16.1161499 + ], + [ + 108.3302754, + 16.1170934 + ], + [ + 108.3311122, + 16.1173479 + ], + [ + 108.3318035, + 16.1182597 + ], + [ + 108.3321514, + 16.1184505 + ], + [ + 108.3344073, + 16.1184608 + ], + [ + 108.3357241, + 16.1179462 + ], + [ + 108.336531, + 16.1179653 + ], + [ + 108.3378066, + 16.1176295 + ], + [ + 108.3382292, + 16.1176477 + ], + [ + 108.3386414, + 16.117875 + ], + [ + 108.3376305, + 16.1192731 + ], + [ + 108.3376555, + 16.1194697 + ], + [ + 108.338042, + 16.119537 + ], + [ + 108.3382193, + 16.119731 + ], + [ + 108.3380115, + 16.1211222 + ], + [ + 108.3375638, + 16.1215003 + ], + [ + 108.3365956, + 16.121805 + ], + [ + 108.3361301, + 16.122125 + ], + [ + 108.3340646, + 16.1252 + ], + [ + 108.3310969, + 16.1278035 + ], + [ + 108.3290558, + 16.1329378 + ], + [ + 108.328342, + 16.1335854 + ], + [ + 108.3281271, + 16.1343307 + ], + [ + 108.3264075, + 16.1365193 + ], + [ + 108.3256734, + 16.1376951 + ], + [ + 108.3255943, + 16.1383249 + ], + [ + 108.3249994, + 16.1388098 + ], + [ + 108.3240621, + 16.140665 + ], + [ + 108.3234365, + 16.1411453 + ], + [ + 108.3224962, + 16.1414254 + ], + [ + 108.3218238, + 16.1419326 + ], + [ + 108.3215397, + 16.1419185 + ], + [ + 108.3213475, + 16.1424446 + ], + [ + 108.3209964, + 16.1426576 + ], + [ + 108.3209237, + 16.1429912 + ], + [ + 108.3205978, + 16.143294 + ], + [ + 108.320286, + 16.1430494 + ], + [ + 108.3201938, + 16.143355 + ], + [ + 108.3199085, + 16.143262 + ], + [ + 108.3198252, + 16.1435508 + ], + [ + 108.3195417, + 16.1436623 + ], + [ + 108.319194, + 16.1434598 + ], + [ + 108.3186713, + 16.1436493 + ], + [ + 108.3184383, + 16.1432883 + ], + [ + 108.3181791, + 16.1435493 + ], + [ + 108.3181961, + 16.1439246 + ], + [ + 108.3178099, + 16.1439602 + ], + [ + 108.3175388, + 16.1444641 + ], + [ + 108.3162427, + 16.1446459 + ], + [ + 108.3149629, + 16.1436174 + ], + [ + 108.3143063, + 16.1424753 + ], + [ + 108.3133674, + 16.142327 + ], + [ + 108.31278, + 16.1417571 + ], + [ + 108.3123982, + 16.1411426 + ], + [ + 108.3123349, + 16.1396287 + ], + [ + 108.3121394, + 16.1389315 + ], + [ + 108.3123509, + 16.1382819 + ], + [ + 108.3123867, + 16.1374257 + ], + [ + 108.3127417, + 16.1364241 + ], + [ + 108.3127083, + 16.1356351 + ], + [ + 108.3119251, + 16.1350541 + ], + [ + 108.3116274, + 16.1340827 + ], + [ + 108.3110065, + 16.132907 + ], + [ + 108.3105542, + 16.1323002 + ], + [ + 108.309847, + 16.1317969 + ], + [ + 108.3100425, + 16.1298854 + ], + [ + 108.3097801, + 16.1290808 + ], + [ + 108.3103013, + 16.1270413 + ], + [ + 108.3103236, + 16.1263681 + ], + [ + 108.3105403, + 16.1259872 + ], + [ + 108.3105308, + 16.1252743 + ], + [ + 108.3091301, + 16.1241283 + ], + [ + 108.3080951, + 16.123685 + ], + [ + 108.3053127, + 16.12309 + ], + [ + 108.3024756, + 16.1246862 + ], + [ + 108.2999294, + 16.1251159 + ], + [ + 108.2994615, + 16.1257472 + ], + [ + 108.2987012, + 16.1262814 + ], + [ + 108.2981911, + 16.1272743 + ], + [ + 108.2966594, + 16.1287541 + ], + [ + 108.2960577, + 16.1306297 + ], + [ + 108.2944954, + 16.1323467 + ], + [ + 108.2933097, + 16.1333275 + ], + [ + 108.2929686, + 16.1340061 + ], + [ + 108.2904265, + 16.1353349 + ], + [ + 108.2892353, + 16.1356225 + ], + [ + 108.2882251, + 16.1364701 + ], + [ + 108.2869415, + 16.1371431 + ], + [ + 108.2863731, + 16.1372097 + ], + [ + 108.2861632, + 16.1369906 + ], + [ + 108.2853763, + 16.1370651 + ], + [ + 108.2847497, + 16.1373897 + ], + [ + 108.2829914, + 16.1377677 + ], + [ + 108.2825101, + 16.1374449 + ], + [ + 108.2817087, + 16.1373871 + ], + [ + 108.2805636, + 16.1366781 + ], + [ + 108.2792908, + 16.1363766 + ], + [ + 108.279315, + 16.1361974 + ], + [ + 108.27878, + 16.1362118 + ], + [ + 108.2787786, + 16.1359161 + ], + [ + 108.2777842, + 16.1358684 + ], + [ + 108.2776357, + 16.1355499 + ], + [ + 108.2770885, + 16.1352578 + ], + [ + 108.2771249, + 16.1349838 + ], + [ + 108.2764353, + 16.1339298 + ], + [ + 108.2758973, + 16.1334461 + ], + [ + 108.2750712, + 16.1332085 + ], + [ + 108.2741862, + 16.1337996 + ], + [ + 108.2736535, + 16.1338237 + ], + [ + 108.2725569, + 16.134528 + ], + [ + 108.272231, + 16.1344437 + ], + [ + 108.2712848, + 16.1348471 + ], + [ + 108.2707458, + 16.135425 + ], + [ + 108.2707396, + 16.135744 + ], + [ + 108.2705641, + 16.1357681 + ], + [ + 108.2706205, + 16.136671 + ], + [ + 108.2698497, + 16.1373994 + ], + [ + 108.2696053, + 16.1379291 + ], + [ + 108.2698936, + 16.1380254 + ], + [ + 108.2697244, + 16.1384348 + ], + [ + 108.2690915, + 16.1386635 + ], + [ + 108.2692419, + 16.1390367 + ], + [ + 108.2697745, + 16.1393016 + ], + [ + 108.2698121, + 16.1398193 + ], + [ + 108.2696555, + 16.1401022 + ], + [ + 108.2688972, + 16.1402768 + ], + [ + 108.2685087, + 16.1402527 + ], + [ + 108.2685839, + 16.1399758 + ], + [ + 108.2681327, + 16.1400902 + ], + [ + 108.2676596, + 16.1405079 + ], + [ + 108.2675707, + 16.1408551 + ], + [ + 108.2672366, + 16.1411834 + ], + [ + 108.2658984, + 16.14187 + ], + [ + 108.2653952, + 16.1423617 + ], + [ + 108.2653901, + 16.1428251 + ], + [ + 108.2644754, + 16.1436192 + ], + [ + 108.2646046, + 16.1438784 + ], + [ + 108.2641985, + 16.1443879 + ], + [ + 108.2626554, + 16.145425 + ], + [ + 108.2626013, + 16.1462552 + ], + [ + 108.2619993, + 16.1468512 + ], + [ + 108.2617482, + 16.1484226 + ], + [ + 108.2611197, + 16.1491195 + ], + [ + 108.260947, + 16.1501172 + ], + [ + 108.2605789, + 16.1509277 + ], + [ + 108.2592168, + 16.1520468 + ], + [ + 108.2592097, + 16.1524975 + ], + [ + 108.2590208, + 16.1527462 + ], + [ + 108.2584918, + 16.1526795 + ], + [ + 108.2579967, + 16.1528395 + ], + [ + 108.2574528, + 16.1531592 + ], + [ + 108.2572123, + 16.1534978 + ], + [ + 108.2563491, + 16.1535533 + ], + [ + 108.2562834, + 16.153814 + ], + [ + 108.2555451, + 16.1539286 + ], + [ + 108.2547481, + 16.1537901 + ], + [ + 108.2542066, + 16.1544261 + ], + [ + 108.253674, + 16.1544193 + ], + [ + 108.253138, + 16.1546697 + ], + [ + 108.2512758, + 16.1545174 + ], + [ + 108.2491295, + 16.1556476 + ], + [ + 108.2467402, + 16.1551019 + ], + [ + 108.2459415, + 16.1550915 + ], + [ + 108.2456769, + 16.1549598 + ], + [ + 108.245684, + 16.1544452 + ], + [ + 108.2443563, + 16.1541705 + ], + [ + 108.2438415, + 16.152877 + ], + [ + 108.2430428, + 16.1528666 + ], + [ + 108.2430499, + 16.152352 + ], + [ + 108.2425192, + 16.1522159 + ], + [ + 108.2417292, + 16.1515627 + ], + [ + 108.2420099, + 16.1505366 + ], + [ + 108.2404193, + 16.1500012 + ], + [ + 108.2404264, + 16.1494866 + ], + [ + 108.2393631, + 16.1493437 + ], + [ + 108.2390934, + 16.1495975 + ], + [ + 108.2382909, + 16.1498445 + ], + [ + 108.2377513, + 16.1503524 + ], + [ + 108.2374137, + 16.1502146 + ], + [ + 108.2372384, + 16.1489305 + ], + [ + 108.2356463, + 16.1485232 + ], + [ + 108.2349696, + 16.1478345 + ], + [ + 108.2348377, + 16.1474698 + ], + [ + 108.2341557, + 16.1472567 + ], + [ + 108.2339205, + 16.1481152 + ], + [ + 108.2335143, + 16.1486247 + ], + [ + 108.232712, + 16.1488717 + ], + [ + 108.2324314, + 16.1498976 + ], + [ + 108.230832, + 16.1500052 + ], + [ + 108.2301749, + 16.1493535 + ], + [ + 108.2301821, + 16.1488389 + ], + [ + 108.2307253, + 16.1480738 + ], + [ + 108.2311412, + 16.1469203 + ], + [ + 108.2315679, + 16.1466744 + ], + [ + 108.2317669, + 16.1462836 + ], + [ + 108.2315708, + 16.1452254 + ], + [ + 108.2313139, + 16.1450814 + ], + [ + 108.2312491, + 16.1439148 + ], + [ + 108.2319258, + 16.1432611 + ], + [ + 108.2319341, + 16.1427985 + ], + [ + 108.2315809, + 16.1422817 + ], + [ + 108.2310736, + 16.1421416 + ], + [ + 108.2309683, + 16.1418772 + ], + [ + 108.2304142, + 16.1417631 + ], + [ + 108.2301682, + 16.1414214 + ], + [ + 108.2295222, + 16.1410491 + ], + [ + 108.2293581, + 16.1388672 + ], + [ + 108.2297142, + 16.1382803 + ], + [ + 108.2296251, + 16.1376642 + ], + [ + 108.2276097, + 16.1344588 + ], + [ + 108.226867, + 16.1341019 + ], + [ + 108.2261479, + 16.1344022 + ], + [ + 108.2259509, + 16.1347342 + ], + [ + 108.2247996, + 16.1348542 + ], + [ + 108.2245061, + 16.1343475 + ], + [ + 108.2245397, + 16.133322 + ], + [ + 108.2237517, + 16.1325395 + ], + [ + 108.2233635, + 16.1317621 + ], + [ + 108.2225667, + 16.1316227 + ], + [ + 108.2217733, + 16.1312267 + ], + [ + 108.2217912, + 16.12994 + ], + [ + 108.2212605, + 16.1298039 + ], + [ + 108.2207336, + 16.1294114 + ], + [ + 108.2206107, + 16.1286376 + ], + [ + 108.2207576, + 16.1273522 + ], + [ + 108.221062, + 16.1269855 + ], + [ + 108.2208899, + 16.1262311 + ], + [ + 108.2214092, + 16.1253608 + ], + [ + 108.2209887, + 16.1245237 + ], + [ + 108.220134, + 16.1238559 + ], + [ + 108.2188185, + 16.1234563 + ], + [ + 108.2183665, + 16.123948 + ], + [ + 108.2171863, + 16.1247111 + ], + [ + 108.2165287, + 16.1249758 + ], + [ + 108.2152873, + 16.1250177 + ], + [ + 108.2144691, + 16.1244856 + ], + [ + 108.2137642, + 16.1231432 + ], + [ + 108.2133627, + 16.1227981 + ], + [ + 108.2090291, + 16.1226704 + ], + [ + 108.2090274, + 16.1224989 + ] + ] + ], + [ + [ + [ + 108.2347491, + 16.102646 + ], + [ + 108.2349881, + 16.1020835 + ], + [ + 108.2379972, + 16.1029904 + ], + [ + 108.2394981, + 16.1031844 + ], + [ + 108.2400478, + 16.1037574 + ], + [ + 108.2391649, + 16.1043227 + ], + [ + 108.2384729, + 16.1050857 + ], + [ + 108.2377027, + 16.1062907 + ], + [ + 108.2377437, + 16.1069522 + ], + [ + 108.2374568, + 16.1072225 + ], + [ + 108.2366995, + 16.1061423 + ], + [ + 108.2361186, + 16.1048457 + ], + [ + 108.2367867, + 16.1045735 + ], + [ + 108.2367349, + 16.1050474 + ], + [ + 108.2369342, + 16.1054732 + ], + [ + 108.2368402, + 16.1057267 + ], + [ + 108.2372392, + 16.1060123 + ], + [ + 108.2382398, + 16.1051474 + ], + [ + 108.238847, + 16.1040518 + ], + [ + 108.2347491, + 16.102646 + ] + ] + ] + ] + } +} diff --git a/src/data/boundaries/dn/dn-thanhkhe.json b/src/data/boundaries/dn/dn-thanhkhe.json new file mode 100644 index 0000000..16a3775 --- /dev/null +++ b/src/data/boundaries/dn/dn-thanhkhe.json @@ -0,0 +1,318 @@ +{ + "type": "Feature", + "properties": { + "code": "DN-THANHKHE", + "name": "Thanh Khe", + "level": "district", + "parent": "DN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 10.6, + "bbox": [ + 108.16378, + 16.02637, + 108.21456, + 16.08084 + ], + "center": [ + 16.06315, + 108.19039 + ], + "generatedAt": "2026-08-30T07:35:09.742Z", + "osm": "relation/19403878" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 108.1637782, + 16.0767359 + ], + [ + 108.167424, + 16.0744279 + ], + [ + 108.1667039, + 16.0734 + ], + [ + 108.17057, + 16.0708563 + ], + [ + 108.1688963, + 16.0684767 + ], + [ + 108.1704734, + 16.067447 + ], + [ + 108.1708851, + 16.0640139 + ], + [ + 108.1715476, + 16.060841 + ], + [ + 108.1726561, + 16.0610581 + ], + [ + 108.1746777, + 16.0623097 + ], + [ + 108.1740384, + 16.0629824 + ], + [ + 108.1750855, + 16.0644501 + ], + [ + 108.1787682, + 16.0618775 + ], + [ + 108.1907008, + 16.0263747 + ], + [ + 108.1913719, + 16.0265879 + ], + [ + 108.1893537, + 16.0327948 + ], + [ + 108.1960155, + 16.0364883 + ], + [ + 108.1888335, + 16.0527778 + ], + [ + 108.1906834, + 16.0535333 + ], + [ + 108.189535, + 16.0562297 + ], + [ + 108.1910606, + 16.0572813 + ], + [ + 108.1904832, + 16.0589461 + ], + [ + 108.1913247, + 16.0597045 + ], + [ + 108.1928731, + 16.0615213 + ], + [ + 108.1931372, + 16.0625717 + ], + [ + 108.1930239, + 16.0643262 + ], + [ + 108.2020235, + 16.064716 + ], + [ + 108.2023521, + 16.0644358 + ], + [ + 108.2039387, + 16.0613375 + ], + [ + 108.2046336, + 16.0604744 + ], + [ + 108.2064034, + 16.0567075 + ], + [ + 108.2049058, + 16.0564129 + ], + [ + 108.2049575, + 16.0559447 + ], + [ + 108.2086263, + 16.0564142 + ], + [ + 108.2094872, + 16.0558198 + ], + [ + 108.2100344, + 16.0528899 + ], + [ + 108.2105123, + 16.0524394 + ], + [ + 108.2127638, + 16.0561083 + ], + [ + 108.2145593, + 16.0654636 + ], + [ + 108.2122563, + 16.0761907 + ], + [ + 108.2099004, + 16.0742854 + ], + [ + 108.2096092, + 16.0749506 + ], + [ + 108.2099497, + 16.0754293 + ], + [ + 108.2099019, + 16.0755914 + ], + [ + 108.2096262, + 16.0757492 + ], + [ + 108.2093239, + 16.0754709 + ], + [ + 108.2083277, + 16.0762674 + ], + [ + 108.2081934, + 16.0761189 + ], + [ + 108.2052142, + 16.0789681 + ], + [ + 108.2036241, + 16.0766356 + ], + [ + 108.2014068, + 16.074192 + ], + [ + 108.1988197, + 16.0736534 + ], + [ + 108.1946447, + 16.0731689 + ], + [ + 108.1919899, + 16.0732907 + ], + [ + 108.1872645, + 16.0740515 + ], + [ + 108.1795891, + 16.0758997 + ], + [ + 108.1790709, + 16.076148 + ], + [ + 108.1787527, + 16.0765067 + ], + [ + 108.1785685, + 16.0763609 + ], + [ + 108.1782671, + 16.0764793 + ], + [ + 108.178442, + 16.0766793 + ], + [ + 108.1792614, + 16.0766718 + ], + [ + 108.1783991, + 16.0768277 + ], + [ + 108.1782225, + 16.0766207 + ], + [ + 108.1779249, + 16.0766679 + ], + [ + 108.1739816, + 16.0781674 + ], + [ + 108.1681649, + 16.0808416 + ], + [ + 108.1676454, + 16.0800972 + ], + [ + 108.1667795, + 16.0806552 + ], + [ + 108.1663906, + 16.0800979 + ], + [ + 108.1662126, + 16.0802127 + ], + [ + 108.1637782, + 16.0767359 + ] + ] + ] + } +} diff --git a/src/data/boundaries/dn.json b/src/data/boundaries/dn/dn.json similarity index 79% rename from src/data/boundaries/dn.json rename to src/data/boundaries/dn/dn.json index b494617..127287b 100644 --- a/src/data/boundaries/dn.json +++ b/src/data/boundaries/dn/dn.json @@ -3,9 +3,9 @@ "properties": { "code": "DN", "name": "Da Nang", - "basis": "pre-2025-merger extent, unioned from OSM boundary/historic relations", - "parts": 7, - "missingParts": 0, + "level": "province", + "parent": "VN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", "areaKm2": 986.5, "bbox": [ 107.81854, @@ -14,10 +14,12 @@ 16.2255 ], "center": [ - 16.07868, - 108.08095 + 16.0544, + 108.2022 ], - "generatedAt": "2026-08-30T04:03:06.884Z" + "generatedAt": "2026-08-30T07:36:51.990Z", + "parts": 7, + "missingParts": 0 }, "geometry": { "type": "MultiPolygon", @@ -749,8 +751,8 @@ 15.9471613 ], [ - 108.2218754, - 15.9503445 + 108.2218092, + 15.9499712 ], [ 108.2244456, @@ -861,36 +863,32 @@ 16.0504905 ], [ - 108.2477751, - 16.0577417 + 108.2479383, + 16.0567485 ], [ - 108.2468918, - 16.0675965 + 108.2468928, + 16.0705626 ], [ 108.2473528, 16.0763139 ], [ - 108.2494787, - 16.0869294 + 108.2498625, + 16.0880915 ], [ - 108.2537013, - 16.0969023 + 108.2547063, + 16.0983603 ], [ - 108.2558006, - 16.0994467 + 108.2570809, + 16.1004097 ], [ - 108.2587984, - 16.1013331 - ], - [ - 108.2618515, - 16.1020152 + 108.2609105, + 16.1019828 ], [ 108.2644034, @@ -1213,16 +1211,12 @@ 16.12994 ], [ - 108.2207336, - 16.1294114 + 108.2206107, + 16.1286376 ], [ - 108.2214092, - 16.1253608 - ], - [ - 108.2205994, - 16.1241474 + 108.2209887, + 16.1245237 ], [ 108.2188185, @@ -1385,8 +1379,8 @@ 16.1043222 ], [ - 108.2393896, - 16.0988628 + 108.2395084, + 16.0991055 ], [ 108.237476, @@ -1417,16 +1411,20 @@ 16.1010555 ], [ - 108.2287139, - 16.1015858 + 108.2287102, + 16.1015012 ], [ - 108.2275621, - 16.1091433 + 108.2276282, + 16.1088978 ], [ - 108.2252836, - 16.1090575 + 108.2256757, + 16.1091823 + ], + [ + 108.2233137, + 16.1072045 ], [ 108.2149991, @@ -1477,8 +1475,8 @@ 16.0863245 ], [ - 108.2056965, - 16.0797638 + 108.2063863, + 16.0811539 ], [ 108.2014068, @@ -1489,32 +1487,44 @@ 16.0731689 ], [ - 108.1842622, - 16.0746895 + 108.1872645, + 16.0740515 ], [ - 108.1739816, - 16.0781674 + 108.1795891, + 16.0758997 ], [ - 108.1641868, - 16.0830919 + 108.1782671, + 16.0764793 ], [ - 108.1514418, - 16.0916966 + 108.1792614, + 16.0766718 ], [ - 108.1423974, - 16.0998453 + 108.1681649, + 16.0808416 ], [ - 108.1315738, - 16.1130775 + 108.1595417, + 16.0859521 ], [ - 108.1314437, - 16.1164409 + 108.1458038, + 16.0965209 + ], + [ + 108.1389041, + 16.103517 + ], + [ + 108.1313604, + 16.1135573 + ], + [ + 108.1310892, + 16.1154024 ], [ 108.1320835, @@ -1545,12 +1555,12 @@ 16.1313246 ], [ - 108.1232659, - 16.1349892 + 108.1232448, + 16.1343148 ], [ - 108.1245349, - 16.1400972 + 108.1246011, + 16.1402605 ], [ 108.1262087, @@ -1569,16 +1579,20 @@ 16.1400461 ], [ - 108.1385012, - 16.1418299 + 108.1375723, + 16.1411024 ], [ 108.1395958, 16.1437195 ], [ - 108.1395994, - 16.1462941 + 108.1393982, + 16.1471241 + ], + [ + 108.1383141, + 16.1479677 ], [ 108.1369618, @@ -1825,20 +1839,20 @@ 16.1845569 ], [ - 108.1191613, - 16.1811288 + 108.1192894, + 16.1811608 ], [ 108.1160979, 16.1828323 ], [ - 108.1110885, - 16.1821333 + 108.1109712, + 16.1821696 ], [ - 108.1076149, - 16.1851716 + 108.107908, + 16.1850078 ], [ 108.1051197, @@ -1849,24 +1863,20 @@ 16.1857654 ], [ - 108.1007213, - 16.1866743 - ], - [ - 108.0979521, - 16.1857461 + 108.1005676, + 16.1866671 ], [ 108.0948213, 16.1834853 ], [ - 108.0937482, - 16.1808037 + 108.0936416, + 16.1806804 ], [ - 108.09246, - 16.1801517 + 108.0921489, + 16.1801184 ], [ 108.0858047, @@ -1893,12 +1903,12 @@ 16.1840545 ], [ - 108.0616507, - 16.1803585 + 108.0610963, + 16.1798918 ], [ - 108.0588251, - 16.1790417 + 108.0584829, + 16.1790573 ], [ 108.036899, @@ -1985,8 +1995,8 @@ 16.1920087 ], [ - 107.9559906, - 16.1890938 + 107.9561164, + 16.189106 ], [ 107.9510164, @@ -2025,20 +2035,20 @@ 16.2081327 ], [ - 107.9135245, - 16.2144119 + 107.9145378, + 16.2134675 ], [ - 107.9100849, - 16.2154467 + 107.9100538, + 16.2154353 ], [ 107.9083372, 16.214094 ], [ - 107.9054296, - 16.2142213 + 107.9055072, + 16.214273 ], [ 107.9035883, @@ -2053,8 +2063,8 @@ 16.2051553 ], [ - 107.8900981, - 16.2063297 + 107.8901597, + 16.2063701 ], [ 107.8898711, @@ -2065,8 +2075,8 @@ 16.1996755 ], [ - 107.883012, - 16.2000092 + 107.8831581, + 16.2000466 ], [ 107.8784466, @@ -2077,12 +2087,16 @@ 16.1971294 ], [ - 107.8757023, - 16.1969082 + 107.8759112, + 16.1969754 ], [ - 107.874788, - 16.1958879 + 107.8747093, + 16.195741 + ], + [ + 107.8768641, + 16.1915966 ], [ 107.8772951, @@ -2244,6 +2258,384 @@ 107.8185394, 16.0582918 ] + ], + [ + [ + 108.2244456, + 15.9561285 + ], + [ + 108.22490230822314, + 15.95859325833631 + ], + [ + 108.2248356, + 15.9577657 + ], + [ + 108.2244456, + 15.9561285 + ] + ], + [ + [ + 108.1577075, + 15.9968464 + ], + [ + 108.15770824193828, + 15.996991923913033 + ], + [ + 108.1580695, + 15.996341 + ], + [ + 108.1577075, + 15.9968464 + ] + ], + [ + [ + 108.16022107188016, + 16.034832868239565 + ], + [ + 108.160336, + 16.0349249 + ], + [ + 108.16055821891827, + 16.03492459005462 + ], + [ + 108.16022107188016, + 16.034832868239565 + ] + ], + [ + [ + 108.16088914579271, + 16.0349241284861 + ], + [ + 108.1622001, + 16.0349223 + ], + [ + 108.16228256376017, + 16.03484039674117 + ], + [ + 108.16088914579271, + 16.0349241284861 + ] + ], + [ + [ + 108.16240273711556, + 16.03472104019704 + ], + [ + 108.1629063, + 16.0342209 + ], + [ + 108.16312563354812, + 16.03379588770228 + ], + [ + 108.16240273711556, + 16.03472104019704 + ] + ], + [ + [ + 108.1631121, + 16.031602 + ], + [ + 108.16318933010803, + 16.032120984957178 + ], + [ + 108.16313449031094, + 16.031555032290377 + ], + [ + 108.1631121, + 16.031602 + ] + ], + [ + [ + 108.16316409983804, + 16.031492920974667 + ], + [ + 108.164008, + 16.0305657 + ], + [ + 108.1632759, + 16.0312584 + ], + [ + 108.16316409983804, + 16.031492920974667 + ] + ], + [ + [ + 108.1632816265041, + 16.03349361326586 + ], + [ + 108.1633159, + 16.0334272 + ], + [ + 108.16330634768717, + 16.033328619093243 + ], + [ + 108.1632816265041, + 16.03349361326586 + ] + ], + [ + [ + 108.1907680722458, + 16.026191802488903 + ], + [ + 108.1911735836572, + 16.025089311751618 + ], + [ + 108.1910655, + 16.0253073 + ], + [ + 108.1907680722458, + 16.026191802488903 + ] + ], + [ + [ + 108.19139150045966, + 16.024649806804298 + ], + [ + 108.1925758, + 16.0230246 + ], + [ + 108.1914988, + 16.0244334 + ], + [ + 108.19139150045966, + 16.024649806804298 + ] + ], + [ + [ + 108.2019395043177, + 16.064712361891978 + ], + [ + 108.2020235, + 16.064716 + ], + [ + 108.20206298578704, + 16.06468233013534 + ], + [ + 108.2019395043177, + 16.064712361891978 + ] + ], + [ + [ + 108.2022044623575, + 16.064561691866793 + ], + [ + 108.2023521, + 16.0644358 + ], + [ + 108.2039387, + 16.0613375 + ], + [ + 108.2022044623575, + 16.064561691866793 + ] + ], + [ + [ + 108.2105123, + 16.0524394 + ], + [ + 108.21271319335202, + 16.0560258346521 + ], + [ + 108.2120927, + 16.0548307 + ], + [ + 108.2105123, + 16.0524394 + ] + ], + [ + [ + 108.2128118564316, + 16.05635869394854 + ], + [ + 108.2145593, + 16.0654636 + ], + [ + 108.2129488, + 16.0568207 + ], + [ + 108.2128118564316, + 16.05635869394854 + ] + ], + [ + [ + 108.2168663, + 15.9704269 + ], + [ + 108.21686895066311, + 15.97067122286418 + ], + [ + 108.21691051178922, + 15.970259037642903 + ], + [ + 108.2168663, + 15.9704269 + ] + ], + [ + [ + 108.2171198343186, + 15.969464286428526 + ], + [ + 108.21724241235806, + 15.969094169432301 + ], + [ + 108.2171891, + 15.9692013 + ], + [ + 108.2171198343186, + 15.969464286428526 + ] + ], + [ + [ + 108.21802868002611, + 15.973749305205336 + ], + [ + 108.2181906, + 15.974046 + ], + [ + 108.21862255402532, + 15.974553163152773 + ], + [ + 108.21802868002611, + 15.973749305205336 + ] + ], + [ + [ + 108.21953497118656, + 15.964487298948132 + ], + [ + 108.21965495381457, + 15.96429250177398 + ], + [ + 108.2196131, + 15.9643303 + ], + [ + 108.21953497118656, + 15.964487298948132 + ] + ], + [ + [ + 108.2234852, + 15.9621025 + ], + [ + 108.2244541, + 15.9610835 + ], + [ + 108.22450040342555, + 15.960976722235495 + ], + [ + 108.2234852, + 15.9621025 + ] + ], + [ + [ + 108.22461575633884, + 15.96071071327262 + ], + [ + 108.2247949, + 15.9602976 + ], + [ + 108.22481349676606, + 15.960134751942578 + ], + [ + 108.22461575633884, + 15.96071071327262 + ] + ], + [ + [ + 108.22488039792634, + 15.959548912235272 + ], + [ + 108.2249384, + 15.959041 + ], + [ + 108.22492812723578, + 15.958913559764524 + ], + [ + 108.22488039792634, + 15.959548912235272 + ] ] ], [ diff --git a/src/data/boundaries/hn/hn-bactuliem.json b/src/data/boundaries/hn/hn-bactuliem.json new file mode 100644 index 0000000..1d5b378 --- /dev/null +++ b/src/data/boundaries/hn/hn-bactuliem.json @@ -0,0 +1,710 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-BACTULIEM", + "name": "Bac Tu Liem", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 45.4, + "bbox": [ + 105.71721, + 21.03798, + 105.80499, + 21.10812 + ], + "center": [ + 21.07198, + 105.7613 + ], + "generatedAt": "2026-08-30T07:33:16.285Z", + "osm": "relation/9421138" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.7172148, + 21.0712355 + ], + [ + 105.7177709, + 21.071264 + ], + [ + 105.7180273, + 21.0704879 + ], + [ + 105.7177875, + 21.070236 + ], + [ + 105.7209055, + 21.069546 + ], + [ + 105.7206813, + 21.0686153 + ], + [ + 105.7242902, + 21.0660372 + ], + [ + 105.7290196, + 21.060956 + ], + [ + 105.7296708, + 21.0590002 + ], + [ + 105.7290123, + 21.0587964 + ], + [ + 105.729456, + 21.0575117 + ], + [ + 105.7287954, + 21.0569625 + ], + [ + 105.7331864, + 21.0540117 + ], + [ + 105.7372045, + 21.0441581 + ], + [ + 105.7388708, + 21.0449021 + ], + [ + 105.7505533, + 21.0406432 + ], + [ + 105.7533722, + 21.0379753 + ], + [ + 105.7550854, + 21.0385187 + ], + [ + 105.7577856, + 21.038869 + ], + [ + 105.7585526, + 21.0383606 + ], + [ + 105.7606735, + 21.0400505 + ], + [ + 105.7614552, + 21.0416514 + ], + [ + 105.7677076, + 21.0395819 + ], + [ + 105.7687531, + 21.0424519 + ], + [ + 105.7745243, + 21.0484179 + ], + [ + 105.7758297, + 21.0489147 + ], + [ + 105.7814669, + 21.0489455 + ], + [ + 105.781148, + 21.044065 + ], + [ + 105.7847189, + 21.0440079 + ], + [ + 105.7849287, + 21.0438414 + ], + [ + 105.7855808, + 21.0445483 + ], + [ + 105.7863727, + 21.044547 + ], + [ + 105.7863683, + 21.0461652 + ], + [ + 105.7902709, + 21.0461741 + ], + [ + 105.7901611, + 21.0473156 + ], + [ + 105.7882538, + 21.0466332 + ], + [ + 105.7881109, + 21.0470506 + ], + [ + 105.7886883, + 21.0472371 + ], + [ + 105.7885454, + 21.0475958 + ], + [ + 105.78821, + 21.0477957 + ], + [ + 105.7880777, + 21.0481963 + ], + [ + 105.7877438, + 21.0481887 + ], + [ + 105.7877187, + 21.0486217 + ], + [ + 105.7875544, + 21.0485959 + ], + [ + 105.7867629, + 21.0493078 + ], + [ + 105.7869581, + 21.0512359 + ], + [ + 105.788501, + 21.0512736 + ], + [ + 105.7892838, + 21.0518971 + ], + [ + 105.7897289, + 21.0509462 + ], + [ + 105.7899361, + 21.0492466 + ], + [ + 105.7906035, + 21.0493027 + ], + [ + 105.790804, + 21.0489432 + ], + [ + 105.7914564, + 21.0491413 + ], + [ + 105.7915076, + 21.047914 + ], + [ + 105.7910959, + 21.0478662 + ], + [ + 105.7908962, + 21.048326 + ], + [ + 105.7900461, + 21.0482409 + ], + [ + 105.7901045, + 21.0477222 + ], + [ + 105.7906557, + 21.0478079 + ], + [ + 105.7907356, + 21.0461762 + ], + [ + 105.7946172, + 21.0461932 + ], + [ + 105.7946129, + 21.048313 + ], + [ + 105.7949588, + 21.0483131 + ], + [ + 105.7949581, + 21.0485986 + ], + [ + 105.7945973, + 21.0488423 + ], + [ + 105.7947797, + 21.0489629 + ], + [ + 105.7941513, + 21.0498371 + ], + [ + 105.7948877, + 21.050306 + ], + [ + 105.7948851, + 21.0518683 + ], + [ + 105.8007069, + 21.0518971 + ], + [ + 105.8007018, + 21.0567735 + ], + [ + 105.7976453, + 21.0568003 + ], + [ + 105.7976596, + 21.0597544 + ], + [ + 105.7984755, + 21.0597574 + ], + [ + 105.8049927, + 21.0658798 + ], + [ + 105.8037064, + 21.0674998 + ], + [ + 105.8047729, + 21.068625 + ], + [ + 105.8041905, + 21.0690542 + ], + [ + 105.804408, + 21.0693096 + ], + [ + 105.8032616, + 21.0699916 + ], + [ + 105.80403, + 21.0711055 + ], + [ + 105.8033512, + 21.0714843 + ], + [ + 105.8037447, + 21.0723715 + ], + [ + 105.7999578, + 21.0738816 + ], + [ + 105.8011754, + 21.0766859 + ], + [ + 105.801256, + 21.0784971 + ], + [ + 105.7993462, + 21.0787609 + ], + [ + 105.7994434, + 21.0798267 + ], + [ + 105.7986633, + 21.0797393 + ], + [ + 105.7966414, + 21.0798818 + ], + [ + 105.7944054, + 21.0811956 + ], + [ + 105.7918724, + 21.0833089 + ], + [ + 105.7927984, + 21.0842162 + ], + [ + 105.792696, + 21.0854118 + ], + [ + 105.7932273, + 21.0869727 + ], + [ + 105.7931286, + 21.0901194 + ], + [ + 105.7917802, + 21.0901655 + ], + [ + 105.7917862, + 21.0911942 + ], + [ + 105.7942616, + 21.0973691 + ], + [ + 105.7731891, + 21.0982549 + ], + [ + 105.7608903, + 21.0990715 + ], + [ + 105.7517735, + 21.0977709 + ], + [ + 105.748926, + 21.0989445 + ], + [ + 105.740566, + 21.1081244 + ], + [ + 105.7335099, + 21.1022258 + ], + [ + 105.7318037, + 21.1013992 + ], + [ + 105.731791, + 21.1012382 + ], + [ + 105.7311677, + 21.101054 + ], + [ + 105.7310919, + 21.100615 + ], + [ + 105.7298323, + 21.1009218 + ], + [ + 105.7294277, + 21.0995887 + ], + [ + 105.7289175, + 21.0996337 + ], + [ + 105.7286733, + 21.0998273 + ], + [ + 105.7274975, + 21.0988334 + ], + [ + 105.7262363, + 21.0991244 + ], + [ + 105.7252674, + 21.096873 + ], + [ + 105.7247853, + 21.0969532 + ], + [ + 105.7259417, + 21.095795 + ], + [ + 105.7269542, + 21.0939562 + ], + [ + 105.7261293, + 21.0935348 + ], + [ + 105.7262942, + 21.0932899 + ], + [ + 105.7265122, + 21.0919147 + ], + [ + 105.7261578, + 21.0891501 + ], + [ + 105.726252, + 21.0884495 + ], + [ + 105.7269955, + 21.0884496 + ], + [ + 105.7269863, + 21.0875725 + ], + [ + 105.7267844, + 21.08725 + ], + [ + 105.7269128, + 21.0869468 + ], + [ + 105.726599, + 21.0853843 + ], + [ + 105.7266735, + 21.085195 + ], + [ + 105.7279064, + 21.0844887 + ], + [ + 105.728035, + 21.0836758 + ], + [ + 105.7279997, + 21.083015 + ], + [ + 105.727674, + 21.0830562 + ], + [ + 105.7277621, + 21.081501 + ], + [ + 105.727371, + 21.0815494 + ], + [ + 105.7270607, + 21.0812317 + ], + [ + 105.7263841, + 21.0799384 + ], + [ + 105.7261638, + 21.0799543 + ], + [ + 105.7261434, + 21.0797391 + ], + [ + 105.7256631, + 21.0797413 + ], + [ + 105.7258054, + 21.0791807 + ], + [ + 105.7255006, + 21.0789379 + ], + [ + 105.7255537, + 21.0785361 + ], + [ + 105.7252699, + 21.0784772 + ], + [ + 105.7252621, + 21.0779078 + ], + [ + 105.7243497, + 21.0775992 + ], + [ + 105.7242662, + 21.0769439 + ], + [ + 105.7240961, + 21.0767373 + ], + [ + 105.7242036, + 21.0760387 + ], + [ + 105.7239456, + 21.0759283 + ], + [ + 105.7238569, + 21.0756562 + ], + [ + 105.7241279, + 21.075079 + ], + [ + 105.7229578, + 21.0747123 + ], + [ + 105.722399, + 21.0747635 + ], + [ + 105.7226259, + 21.0744534 + ], + [ + 105.7214755, + 21.0738322 + ], + [ + 105.7213751, + 21.0738984 + ], + [ + 105.7210955, + 21.0731548 + ], + [ + 105.7205562, + 21.0729387 + ], + [ + 105.7204228, + 21.072575 + ], + [ + 105.7206415, + 21.0724823 + ], + [ + 105.7205713, + 21.0721978 + ], + [ + 105.7195249, + 21.0728198 + ], + [ + 105.7188904, + 21.074765 + ], + [ + 105.7179651, + 21.073752 + ], + [ + 105.7182243, + 21.0734808 + ], + [ + 105.7176567, + 21.0732149 + ], + [ + 105.717893, + 21.0724994 + ], + [ + 105.7172148, + 21.0712355 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-badinh.json b/src/data/boundaries/hn/hn-badinh.json new file mode 100644 index 0000000..8fd91a6 --- /dev/null +++ b/src/data/boundaries/hn/hn-badinh.json @@ -0,0 +1,610 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-BADINH", + "name": "Ba Dinh", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 9.2, + "bbox": [ + 105.80135, + 21.01596, + 105.85597, + 21.05337 + ], + "center": [ + 21.03578, + 105.826 + ], + "generatedAt": "2026-08-30T07:33:00.443Z", + "osm": "relation/9421136" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.8013534, + 21.0302334 + ], + [ + 105.8032273, + 21.0291131 + ], + [ + 105.8050074, + 21.0282937 + ], + [ + 105.8053147, + 21.0278839 + ], + [ + 105.8067562, + 21.0275083 + ], + [ + 105.8066266, + 21.0261623 + ], + [ + 105.8068966, + 21.0261608 + ], + [ + 105.8069025, + 21.025964 + ], + [ + 105.8077162, + 21.025925 + ], + [ + 105.8079102, + 21.0261342 + ], + [ + 105.8096483, + 21.0252642 + ], + [ + 105.8102855, + 21.0261951 + ], + [ + 105.8115325, + 21.0246392 + ], + [ + 105.8120498, + 21.0215589 + ], + [ + 105.8108709, + 21.021345 + ], + [ + 105.8104027, + 21.020536 + ], + [ + 105.8113367, + 21.020062 + ], + [ + 105.8105849, + 21.018711 + ], + [ + 105.8149171, + 21.0165734 + ], + [ + 105.8158704, + 21.0159567 + ], + [ + 105.8165767, + 21.0169109 + ], + [ + 105.8173608, + 21.0172825 + ], + [ + 105.8183404, + 21.0184046 + ], + [ + 105.819316, + 21.0190316 + ], + [ + 105.8191122, + 21.0194952 + ], + [ + 105.8192878, + 21.0201126 + ], + [ + 105.8195228, + 21.0205859 + ], + [ + 105.8196582, + 21.0205423 + ], + [ + 105.82065, + 21.0226782 + ], + [ + 105.8210299, + 21.0231258 + ], + [ + 105.8197685, + 21.0234032 + ], + [ + 105.8248194, + 21.0277351 + ], + [ + 105.8272335, + 21.0295029 + ], + [ + 105.8275747, + 21.03032 + ], + [ + 105.8284603, + 21.0311379 + ], + [ + 105.8283936, + 21.031386 + ], + [ + 105.8286772, + 21.0315534 + ], + [ + 105.8288463, + 21.0320518 + ], + [ + 105.8298787, + 21.0317602 + ], + [ + 105.8300006, + 21.0321494 + ], + [ + 105.8302576, + 21.0320793 + ], + [ + 105.8297502, + 21.0303218 + ], + [ + 105.8307945, + 21.0300438 + ], + [ + 105.8308857, + 21.0303829 + ], + [ + 105.8317068, + 21.0301997 + ], + [ + 105.8318224, + 21.0306412 + ], + [ + 105.8315192, + 21.0307155 + ], + [ + 105.8316065, + 21.0312824 + ], + [ + 105.8320219, + 21.0312598 + ], + [ + 105.8321158, + 21.0315737 + ], + [ + 105.8329906, + 21.0313288 + ], + [ + 105.8328713, + 21.0310019 + ], + [ + 105.8332284, + 21.0308417 + ], + [ + 105.8331747, + 21.0306737 + ], + [ + 105.8335628, + 21.0305588 + ], + [ + 105.8338136, + 21.0310934 + ], + [ + 105.83403, + 21.0310278 + ], + [ + 105.8347106, + 21.0298926 + ], + [ + 105.8349492, + 21.0297952 + ], + [ + 105.8357925, + 21.0305184 + ], + [ + 105.8369865, + 21.0301779 + ], + [ + 105.836893, + 21.0299308 + ], + [ + 105.8375757, + 21.0295642 + ], + [ + 105.8378684, + 21.0296354 + ], + [ + 105.8383293, + 21.0294864 + ], + [ + 105.8384777, + 21.0297506 + ], + [ + 105.8391429, + 21.0295599 + ], + [ + 105.8389332, + 21.0289616 + ], + [ + 105.8391988, + 21.0288902 + ], + [ + 105.8391332, + 21.0286196 + ], + [ + 105.8394059, + 21.0285095 + ], + [ + 105.8397698, + 21.0284323 + ], + [ + 105.8398793, + 21.0289422 + ], + [ + 105.8406544, + 21.0287987 + ], + [ + 105.8406182, + 21.028701 + ], + [ + 105.8408062, + 21.0286922 + ], + [ + 105.8407663, + 21.0284898 + ], + [ + 105.8410927, + 21.0283566 + ], + [ + 105.8412352, + 21.0287727 + ], + [ + 105.8415672, + 21.0287502 + ], + [ + 105.841569, + 21.0288646 + ], + [ + 105.8420875, + 21.0287131 + ], + [ + 105.8440669, + 21.030125 + ], + [ + 105.8439406, + 21.0301552 + ], + [ + 105.8442575, + 21.0315898 + ], + [ + 105.8438257, + 21.0316686 + ], + [ + 105.8438773, + 21.0319139 + ], + [ + 105.8437144, + 21.0319452 + ], + [ + 105.8438605, + 21.0328868 + ], + [ + 105.8440313, + 21.0330194 + ], + [ + 105.8442093, + 21.0337496 + ], + [ + 105.8440242, + 21.0337895 + ], + [ + 105.8442231, + 21.0349021 + ], + [ + 105.8441134, + 21.0350784 + ], + [ + 105.8447417, + 21.0385729 + ], + [ + 105.8444986, + 21.0386255 + ], + [ + 105.8446653, + 21.0393873 + ], + [ + 105.8453496, + 21.0393732 + ], + [ + 105.8455139, + 21.0394981 + ], + [ + 105.8456119, + 21.0399869 + ], + [ + 105.8468736, + 21.0398071 + ], + [ + 105.8498029, + 21.0406472 + ], + [ + 105.850373, + 21.0409979 + ], + [ + 105.8511635, + 21.0404082 + ], + [ + 105.8559747, + 21.0422867 + ], + [ + 105.8500753, + 21.049457 + ], + [ + 105.8482762, + 21.0533744 + ], + [ + 105.8442258, + 21.049303 + ], + [ + 105.8440237, + 21.049552 + ], + [ + 105.8432213, + 21.049163 + ], + [ + 105.8431374, + 21.0492496 + ], + [ + 105.8422694, + 21.0486018 + ], + [ + 105.8408247, + 21.0501274 + ], + [ + 105.840108, + 21.0506702 + ], + [ + 105.8392367, + 21.050005 + ], + [ + 105.8385809, + 21.0488143 + ], + [ + 105.8368352, + 21.0466532 + ], + [ + 105.8365711, + 21.0443813 + ], + [ + 105.8363678, + 21.0444067 + ], + [ + 105.835859, + 21.0429612 + ], + [ + 105.8358479, + 21.0427603 + ], + [ + 105.8362631, + 21.0423036 + ], + [ + 105.8362002, + 21.0416431 + ], + [ + 105.8334509, + 21.041894 + ], + [ + 105.8310824, + 21.041664 + ], + [ + 105.8305126, + 21.041389 + ], + [ + 105.828857, + 21.0396975 + ], + [ + 105.8284972, + 21.0395116 + ], + [ + 105.8270974, + 21.0398022 + ], + [ + 105.8220831, + 21.0417144 + ], + [ + 105.8201032, + 21.0420842 + ], + [ + 105.8170597, + 21.0422873 + ], + [ + 105.8150272, + 21.0427711 + ], + [ + 105.813445, + 21.0438392 + ], + [ + 105.811321, + 21.0459144 + ], + [ + 105.8105391, + 21.046368 + ], + [ + 105.8080451, + 21.0473732 + ], + [ + 105.806034, + 21.0475871 + ], + [ + 105.8060641, + 21.0424787 + ], + [ + 105.8066358, + 21.040179 + ], + [ + 105.8062057, + 21.0400902 + ], + [ + 105.806476, + 21.0387044 + ], + [ + 105.8062751, + 21.0368524 + ], + [ + 105.8036452, + 21.0328399 + ], + [ + 105.8013534, + 21.0302334 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-bavi.json b/src/data/boundaries/hn/hn-bavi.json new file mode 100644 index 0000000..cb95408 --- /dev/null +++ b/src/data/boundaries/hn/hn-bavi.json @@ -0,0 +1,3198 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-BAVI", + "name": "Ba Vi", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 415.4, + "bbox": [ + 105.28896, + 21.0074, + 105.47524, + 21.30451 + ], + "center": [ + 21.14125, + 105.38297 + ], + "generatedAt": "2026-08-30T07:33:26.262Z", + "osm": "relation/7115003" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.2889615, + 21.1570007 + ], + [ + 105.2927702, + 21.151339 + ], + [ + 105.2978297, + 21.1448353 + ], + [ + 105.3040393, + 21.137726 + ], + [ + 105.308515, + 21.1331797 + ], + [ + 105.3095861, + 21.131665 + ], + [ + 105.3112141, + 21.1290575 + ], + [ + 105.3137003, + 21.1236069 + ], + [ + 105.3180347, + 21.1169328 + ], + [ + 105.31988, + 21.1136129 + ], + [ + 105.3202249, + 21.1116205 + ], + [ + 105.3202733, + 21.1091748 + ], + [ + 105.3190758, + 21.101702 + ], + [ + 105.3182346, + 21.0974808 + ], + [ + 105.3177477, + 21.0958177 + ], + [ + 105.3168032, + 21.0935251 + ], + [ + 105.3150558, + 21.0899375 + ], + [ + 105.3123622, + 21.0857824 + ], + [ + 105.310559, + 21.0836678 + ], + [ + 105.3060428, + 21.0774618 + ], + [ + 105.3031367, + 21.0737721 + ], + [ + 105.3014133, + 21.0711532 + ], + [ + 105.2995788, + 21.0667194 + ], + [ + 105.2954074, + 21.0584079 + ], + [ + 105.29449, + 21.055989 + ], + [ + 105.2943003, + 21.0550313 + ], + [ + 105.2941628, + 21.0534178 + ], + [ + 105.2949262, + 21.045843 + ], + [ + 105.2955922, + 21.0433206 + ], + [ + 105.2959834, + 21.039958 + ], + [ + 105.296837, + 21.0373596 + ], + [ + 105.2974779, + 21.0356943 + ], + [ + 105.2984942, + 21.0339529 + ], + [ + 105.3023715, + 21.0287377 + ], + [ + 105.3042408, + 21.0246647 + ], + [ + 105.3048259, + 21.0220667 + ], + [ + 105.3062455, + 21.0206774 + ], + [ + 105.3129117, + 21.0170108 + ], + [ + 105.3142517, + 21.0161265 + ], + [ + 105.3154112, + 21.0151478 + ], + [ + 105.3164205, + 21.0138547 + ], + [ + 105.3198139, + 21.0181991 + ], + [ + 105.3201731, + 21.0182907 + ], + [ + 105.3203582, + 21.0176696 + ], + [ + 105.3207471, + 21.0175204 + ], + [ + 105.3208079, + 21.0176859 + ], + [ + 105.3205304, + 21.0183477 + ], + [ + 105.322138, + 21.0190863 + ], + [ + 105.3220232, + 21.0196591 + ], + [ + 105.3202211, + 21.0200773 + ], + [ + 105.3203682, + 21.0202668 + ], + [ + 105.3212319, + 21.0204146 + ], + [ + 105.3217358, + 21.0202024 + ], + [ + 105.322323, + 21.0205307 + ], + [ + 105.3230969, + 21.0206846 + ], + [ + 105.3230394, + 21.0201815 + ], + [ + 105.3231561, + 21.0201284 + ], + [ + 105.323806, + 21.020286 + ], + [ + 105.3237366, + 21.0204395 + ], + [ + 105.3240285, + 21.0206313 + ], + [ + 105.3242853, + 21.0215984 + ], + [ + 105.3245861, + 21.0216147 + ], + [ + 105.325631, + 21.0211739 + ], + [ + 105.3265574, + 21.021511 + ], + [ + 105.3273996, + 21.0237305 + ], + [ + 105.3283807, + 21.0237202 + ], + [ + 105.3288614, + 21.0240712 + ], + [ + 105.3291142, + 21.0236169 + ], + [ + 105.3297595, + 21.0235089 + ], + [ + 105.3302624, + 21.0229822 + ], + [ + 105.3313179, + 21.0228905 + ], + [ + 105.3313582, + 21.022314 + ], + [ + 105.3311249, + 21.0218264 + ], + [ + 105.331098, + 21.0210161 + ], + [ + 105.3307322, + 21.020631 + ], + [ + 105.3303405, + 21.0207671 + ], + [ + 105.3301698, + 21.0205304 + ], + [ + 105.3301832, + 21.019951 + ], + [ + 105.3305898, + 21.0196455 + ], + [ + 105.330217, + 21.0192245 + ], + [ + 105.3303684, + 21.0189983 + ], + [ + 105.330155, + 21.0188188 + ], + [ + 105.3300103, + 21.0182976 + ], + [ + 105.3293909, + 21.0179158 + ], + [ + 105.3293489, + 21.0176384 + ], + [ + 105.328817, + 21.0174382 + ], + [ + 105.3288308, + 21.0166396 + ], + [ + 105.3285133, + 21.0164359 + ], + [ + 105.3279185, + 21.0170535 + ], + [ + 105.3269936, + 21.0167726 + ], + [ + 105.326699, + 21.0163527 + ], + [ + 105.3268939, + 21.014578 + ], + [ + 105.3271421, + 21.0142637 + ], + [ + 105.327647, + 21.014039 + ], + [ + 105.3277372, + 21.0138193 + ], + [ + 105.3267385, + 21.0131189 + ], + [ + 105.3272042, + 21.0123944 + ], + [ + 105.327168, + 21.0121625 + ], + [ + 105.326278, + 21.011037 + ], + [ + 105.3256725, + 21.0112254 + ], + [ + 105.3253569, + 21.011124 + ], + [ + 105.3250038, + 21.0099715 + ], + [ + 105.3252165, + 21.0099761 + ], + [ + 105.3252561, + 21.0102615 + ], + [ + 105.3259118, + 21.0102268 + ], + [ + 105.3260789, + 21.009961 + ], + [ + 105.325539, + 21.0097149 + ], + [ + 105.3264154, + 21.0094567 + ], + [ + 105.3264897, + 21.0087076 + ], + [ + 105.3266644, + 21.0087517 + ], + [ + 105.3268131, + 21.0090791 + ], + [ + 105.3272781, + 21.0088203 + ], + [ + 105.327608, + 21.0091027 + ], + [ + 105.3278461, + 21.0091114 + ], + [ + 105.3282694, + 21.00856 + ], + [ + 105.3287244, + 21.0085998 + ], + [ + 105.3295025, + 21.0079841 + ], + [ + 105.3298645, + 21.0080216 + ], + [ + 105.3302051, + 21.0083338 + ], + [ + 105.3303421, + 21.0081699 + ], + [ + 105.3307512, + 21.0081606 + ], + [ + 105.3309375, + 21.0087126 + ], + [ + 105.3312829, + 21.0083643 + ], + [ + 105.3322384, + 21.0086056 + ], + [ + 105.332447, + 21.00831 + ], + [ + 105.3337058, + 21.0084776 + ], + [ + 105.3352155, + 21.0093826 + ], + [ + 105.3344032, + 21.0097567 + ], + [ + 105.3337472, + 21.0097571 + ], + [ + 105.3336391, + 21.0101933 + ], + [ + 105.3359057, + 21.0113823 + ], + [ + 105.3384258, + 21.0120406 + ], + [ + 105.3385775, + 21.0121684 + ], + [ + 105.3388574, + 21.0134639 + ], + [ + 105.3397059, + 21.0131228 + ], + [ + 105.3409648, + 21.0131141 + ], + [ + 105.3427104, + 21.012726 + ], + [ + 105.3449023, + 21.0132709 + ], + [ + 105.3454954, + 21.0130094 + ], + [ + 105.3460762, + 21.0130054 + ], + [ + 105.3474856, + 21.0137938 + ], + [ + 105.3478825, + 21.0142451 + ], + [ + 105.3493293, + 21.0127063 + ], + [ + 105.3504635, + 21.0097902 + ], + [ + 105.3522217, + 21.0080673 + ], + [ + 105.3534631, + 21.0074013 + ], + [ + 105.3539405, + 21.0076524 + ], + [ + 105.357395, + 21.0084534 + ], + [ + 105.3631801, + 21.0110128 + ], + [ + 105.3651435, + 21.0122716 + ], + [ + 105.3680566, + 21.0127621 + ], + [ + 105.3687419, + 21.0131704 + ], + [ + 105.3709133, + 21.0129672 + ], + [ + 105.3726972, + 21.013183 + ], + [ + 105.3742523, + 21.013613 + ], + [ + 105.376584, + 21.0155019 + ], + [ + 105.3788321, + 21.0185661 + ], + [ + 105.3800347, + 21.0197719 + ], + [ + 105.3841502, + 21.0224767 + ], + [ + 105.3875139, + 21.0244072 + ], + [ + 105.3876507, + 21.0217499 + ], + [ + 105.3866013, + 21.0199365 + ], + [ + 105.3868074, + 21.0177178 + ], + [ + 105.3890694, + 21.0161325 + ], + [ + 105.3922659, + 21.014423 + ], + [ + 105.393694, + 21.0141685 + ], + [ + 105.395283, + 21.014378 + ], + [ + 105.397085, + 21.015084 + ], + [ + 105.397867, + 21.014984 + ], + [ + 105.400498, + 21.013777 + ], + [ + 105.400837, + 21.013776 + ], + [ + 105.402874, + 21.014727 + ], + [ + 105.406099, + 21.016973 + ], + [ + 105.408449, + 21.017923 + ], + [ + 105.409701, + 21.018092 + ], + [ + 105.409989, + 21.017895 + ], + [ + 105.410742, + 21.01657 + ], + [ + 105.412925, + 21.013697 + ], + [ + 105.414089, + 21.012867 + ], + [ + 105.416433, + 21.011611 + ], + [ + 105.416825, + 21.01161 + ], + [ + 105.41928, + 21.013001 + ], + [ + 105.422359, + 21.01341 + ], + [ + 105.424239, + 21.013969 + ], + [ + 105.426261, + 21.014258 + ], + [ + 105.42968, + 21.015107 + ], + [ + 105.430645, + 21.015006 + ], + [ + 105.432502, + 21.01679 + ], + [ + 105.432894, + 21.017059 + ], + [ + 105.433956, + 21.017319 + ], + [ + 105.434425, + 21.017318 + ], + [ + 105.435858, + 21.016702 + ], + [ + 105.437266, + 21.016331 + ], + [ + 105.440125, + 21.015933 + ], + [ + 105.441296, + 21.014876 + ], + [ + 105.4424703, + 21.0145182 + ], + [ + 105.4436489, + 21.0139294 + ], + [ + 105.4453075, + 21.0148299 + ], + [ + 105.4457859, + 21.0149279 + ], + [ + 105.4464761, + 21.0145733 + ], + [ + 105.4471627, + 21.0149797 + ], + [ + 105.4479839, + 21.015047 + ], + [ + 105.4495009, + 21.0142625 + ], + [ + 105.4500024, + 21.0143165 + ], + [ + 105.4503859, + 21.0145808 + ], + [ + 105.45101, + 21.013775 + ], + [ + 105.4526381, + 21.0123349 + ], + [ + 105.4542728, + 21.012003 + ], + [ + 105.4548367, + 21.011637 + ], + [ + 105.4557581, + 21.0119171 + ], + [ + 105.4568454, + 21.011743 + ], + [ + 105.4586008, + 21.0126621 + ], + [ + 105.4590422, + 21.0127096 + ], + [ + 105.4593256, + 21.0131944 + ], + [ + 105.4593454, + 21.0143625 + ], + [ + 105.4596559, + 21.0149612 + ], + [ + 105.4608727, + 21.0154244 + ], + [ + 105.4608226, + 21.0157452 + ], + [ + 105.460486, + 21.0158264 + ], + [ + 105.4600063, + 21.0163162 + ], + [ + 105.4596532, + 21.0173805 + ], + [ + 105.4597283, + 21.0176837 + ], + [ + 105.4604699, + 21.0178286 + ], + [ + 105.4613987, + 21.0183464 + ], + [ + 105.4616871, + 21.018545 + ], + [ + 105.4620238, + 21.0192501 + ], + [ + 105.4623013, + 21.0193434 + ], + [ + 105.4628387, + 21.0192552 + ], + [ + 105.4639267, + 21.0186953 + ], + [ + 105.4645872, + 21.0186681 + ], + [ + 105.464797, + 21.0187862 + ], + [ + 105.4648632, + 21.0197235 + ], + [ + 105.4652621, + 21.020731 + ], + [ + 105.4657625, + 21.0204682 + ], + [ + 105.4662566, + 21.0206632 + ], + [ + 105.4665718, + 21.0205242 + ], + [ + 105.4689376, + 21.0219031 + ], + [ + 105.4652438, + 21.0241621 + ], + [ + 105.4642495, + 21.0252126 + ], + [ + 105.4632767, + 21.0259027 + ], + [ + 105.4634037, + 21.0260749 + ], + [ + 105.4619244, + 21.0271403 + ], + [ + 105.4607974, + 21.0285822 + ], + [ + 105.4602434, + 21.0300997 + ], + [ + 105.4568777, + 21.0328498 + ], + [ + 105.4564371, + 21.0353395 + ], + [ + 105.456519, + 21.0360367 + ], + [ + 105.4582402, + 21.0401279 + ], + [ + 105.4583953, + 21.0551915 + ], + [ + 105.4595933, + 21.0566026 + ], + [ + 105.4603814, + 21.0564825 + ], + [ + 105.4610721, + 21.0577043 + ], + [ + 105.4612817, + 21.0577835 + ], + [ + 105.4613638, + 21.0583096 + ], + [ + 105.461105, + 21.0586236 + ], + [ + 105.4610783, + 21.0590286 + ], + [ + 105.4612858, + 21.0598247 + ], + [ + 105.4609945, + 21.0603034 + ], + [ + 105.4611578, + 21.0606676 + ], + [ + 105.4610023, + 21.0611508 + ], + [ + 105.4611666, + 21.0614629 + ], + [ + 105.4615197, + 21.061558 + ], + [ + 105.4618184, + 21.062444 + ], + [ + 105.4612565, + 21.0627332 + ], + [ + 105.4613037, + 21.0632304 + ], + [ + 105.4608769, + 21.0644429 + ], + [ + 105.4612124, + 21.0648658 + ], + [ + 105.4615036, + 21.0658706 + ], + [ + 105.4622096, + 21.066007 + ], + [ + 105.4623593, + 21.0662204 + ], + [ + 105.4624624, + 21.0665036 + ], + [ + 105.4623188, + 21.0668449 + ], + [ + 105.4627856, + 21.0683212 + ], + [ + 105.4632136, + 21.0681248 + ], + [ + 105.4629101, + 21.0672221 + ], + [ + 105.4629598, + 21.0667505 + ], + [ + 105.4640194, + 21.0667658 + ], + [ + 105.4646112, + 21.0671357 + ], + [ + 105.4646995, + 21.0674856 + ], + [ + 105.4643624, + 21.0679232 + ], + [ + 105.4645919, + 21.0687966 + ], + [ + 105.4643158, + 21.0702241 + ], + [ + 105.4645105, + 21.0705437 + ], + [ + 105.4652584, + 21.070731 + ], + [ + 105.4657235, + 21.0714875 + ], + [ + 105.4658496, + 21.0721444 + ], + [ + 105.4652541, + 21.0726444 + ], + [ + 105.4647355, + 21.072177 + ], + [ + 105.4650902, + 21.0712702 + ], + [ + 105.4649574, + 21.0711099 + ], + [ + 105.4644589, + 21.071272 + ], + [ + 105.4630593, + 21.0710597 + ], + [ + 105.4620715, + 21.0698921 + ], + [ + 105.461573, + 21.0696873 + ], + [ + 105.4613518, + 21.0693234 + ], + [ + 105.4614549, + 21.069168 + ], + [ + 105.4605712, + 21.0682198 + ], + [ + 105.460557, + 21.0677751 + ], + [ + 105.4612407, + 21.0662285 + ], + [ + 105.4605252, + 21.065861 + ], + [ + 105.4604178, + 21.0656052 + ], + [ + 105.4603709, + 21.065294 + ], + [ + 105.460532, + 21.0649787 + ], + [ + 105.4609635, + 21.0647415 + ], + [ + 105.4608735, + 21.0645929 + ], + [ + 105.4604545, + 21.0646932 + ], + [ + 105.4598913, + 21.0637935 + ], + [ + 105.4598671, + 21.063012 + ], + [ + 105.4596365, + 21.0629089 + ], + [ + 105.459317, + 21.0609026 + ], + [ + 105.4594812, + 21.060845 + ], + [ + 105.459288, + 21.0596319 + ], + [ + 105.4590382, + 21.0589133 + ], + [ + 105.4594065, + 21.0587167 + ], + [ + 105.4589289, + 21.0582611 + ], + [ + 105.4590179, + 21.0580161 + ], + [ + 105.4587201, + 21.0579329 + ], + [ + 105.4575164, + 21.058001 + ], + [ + 105.4576996, + 21.0585196 + ], + [ + 105.4569252, + 21.0593154 + ], + [ + 105.4561631, + 21.0594203 + ], + [ + 105.4560262, + 21.059717 + ], + [ + 105.4556489, + 21.0596871 + ], + [ + 105.4555753, + 21.0598697 + ], + [ + 105.4561055, + 21.060172 + ], + [ + 105.4563064, + 21.0600603 + ], + [ + 105.4564804, + 21.0602762 + ], + [ + 105.4568131, + 21.060127 + ], + [ + 105.4570145, + 21.0603334 + ], + [ + 105.4571799, + 21.060274 + ], + [ + 105.4574912, + 21.0610577 + ], + [ + 105.4580502, + 21.0616916 + ], + [ + 105.4580103, + 21.0619748 + ], + [ + 105.4575122, + 21.0619802 + ], + [ + 105.4571913, + 21.0621583 + ], + [ + 105.4572131, + 21.0625094 + ], + [ + 105.4574441, + 21.0627771 + ], + [ + 105.4581762, + 21.0631722 + ], + [ + 105.4584028, + 21.0631086 + ], + [ + 105.4587953, + 21.0634489 + ], + [ + 105.4591797, + 21.0652787 + ], + [ + 105.4597373, + 21.0666899 + ], + [ + 105.4592156, + 21.0680268 + ], + [ + 105.4592066, + 21.0693081 + ], + [ + 105.4599955, + 21.0702805 + ], + [ + 105.4593407, + 21.0707038 + ], + [ + 105.4584781, + 21.0695616 + ], + [ + 105.4570745, + 21.0685689 + ], + [ + 105.4568221, + 21.0676932 + ], + [ + 105.4568925, + 21.0671797 + ], + [ + 105.4564896, + 21.0672365 + ], + [ + 105.4562976, + 21.0667469 + ], + [ + 105.4558354, + 21.0669227 + ], + [ + 105.4552182, + 21.0655737 + ], + [ + 105.4549297, + 21.0657889 + ], + [ + 105.4544917, + 21.0651343 + ], + [ + 105.4544743, + 21.0644904 + ], + [ + 105.4542838, + 21.0645688 + ], + [ + 105.4541691, + 21.0653654 + ], + [ + 105.4545049, + 21.06722 + ], + [ + 105.4543543, + 21.0672841 + ], + [ + 105.4539176, + 21.0671299 + ], + [ + 105.4537565, + 21.0663095 + ], + [ + 105.4529052, + 21.0659489 + ], + [ + 105.4524068, + 21.0655325 + ], + [ + 105.4518215, + 21.0655388 + ], + [ + 105.4513952, + 21.0648981 + ], + [ + 105.4500666, + 21.0640862 + ], + [ + 105.4503665, + 21.0637476 + ], + [ + 105.4501819, + 21.0631309 + ], + [ + 105.4494744, + 21.0625699 + ], + [ + 105.448609, + 21.0632217 + ], + [ + 105.4479431, + 21.0628763 + ], + [ + 105.4473009, + 21.0633372 + ], + [ + 105.446793, + 21.0634521 + ], + [ + 105.4460609, + 21.0631636 + ], + [ + 105.4454301, + 21.0625653 + ], + [ + 105.445257, + 21.0621441 + ], + [ + 105.4438645, + 21.0639196 + ], + [ + 105.4423229, + 21.0651091 + ], + [ + 105.440369, + 21.0656637 + ], + [ + 105.4400462, + 21.0659896 + ], + [ + 105.4398083, + 21.0662891 + ], + [ + 105.4409505, + 21.0665193 + ], + [ + 105.4404203, + 21.0672668 + ], + [ + 105.4397698, + 21.0676224 + ], + [ + 105.4400136, + 21.067811 + ], + [ + 105.4400454, + 21.0681466 + ], + [ + 105.4396951, + 21.0683608 + ], + [ + 105.4390861, + 21.0696966 + ], + [ + 105.4391928, + 21.0700056 + ], + [ + 105.4401025, + 21.0710509 + ], + [ + 105.4408122, + 21.0715107 + ], + [ + 105.4404041, + 21.0724973 + ], + [ + 105.4413675, + 21.0733183 + ], + [ + 105.4415402, + 21.07452 + ], + [ + 105.440957, + 21.0756511 + ], + [ + 105.4406518, + 21.0755665 + ], + [ + 105.4405811, + 21.077002 + ], + [ + 105.4398081, + 21.077306 + ], + [ + 105.4393035, + 21.0779599 + ], + [ + 105.4389475, + 21.0797138 + ], + [ + 105.4410847, + 21.0800489 + ], + [ + 105.4406953, + 21.0817992 + ], + [ + 105.4402567, + 21.081715 + ], + [ + 105.4402166, + 21.0818736 + ], + [ + 105.4396238, + 21.0817949 + ], + [ + 105.4396334, + 21.0819365 + ], + [ + 105.4391555, + 21.0819249 + ], + [ + 105.4391606, + 21.0822555 + ], + [ + 105.4386864, + 21.0823142 + ], + [ + 105.4387753, + 21.0831251 + ], + [ + 105.4396403, + 21.0831639 + ], + [ + 105.4396636, + 21.083971 + ], + [ + 105.4406021, + 21.0840103 + ], + [ + 105.4405386, + 21.0854986 + ], + [ + 105.4406925, + 21.0856553 + ], + [ + 105.4403042, + 21.0862424 + ], + [ + 105.441029, + 21.087626 + ], + [ + 105.4397861, + 21.0882055 + ], + [ + 105.4406565, + 21.0894399 + ], + [ + 105.4407221, + 21.0906356 + ], + [ + 105.441601, + 21.0921695 + ], + [ + 105.4422619, + 21.092599 + ], + [ + 105.4433419, + 21.092969 + ], + [ + 105.4453592, + 21.0949082 + ], + [ + 105.4446034, + 21.0957875 + ], + [ + 105.4428342, + 21.096557 + ], + [ + 105.4412304, + 21.0977008 + ], + [ + 105.4416171, + 21.0981958 + ], + [ + 105.4427417, + 21.0989286 + ], + [ + 105.442252, + 21.0996514 + ], + [ + 105.4420957, + 21.0996611 + ], + [ + 105.4415103, + 21.1016939 + ], + [ + 105.4413007, + 21.1019185 + ], + [ + 105.4402462, + 21.1021477 + ], + [ + 105.4400227, + 21.1024452 + ], + [ + 105.4407307, + 21.1027455 + ], + [ + 105.4412816, + 21.1033287 + ], + [ + 105.4417412, + 21.1035419 + ], + [ + 105.4411173, + 21.103945 + ], + [ + 105.4420532, + 21.1047795 + ], + [ + 105.4419153, + 21.1049424 + ], + [ + 105.4407845, + 21.1045102 + ], + [ + 105.4368729, + 21.101899 + ], + [ + 105.4364544, + 21.1019377 + ], + [ + 105.4359172, + 21.1014698 + ], + [ + 105.4342066, + 21.1010368 + ], + [ + 105.433705, + 21.1016236 + ], + [ + 105.4326665, + 21.1021041 + ], + [ + 105.4314833, + 21.1030611 + ], + [ + 105.4312771, + 21.1028577 + ], + [ + 105.4310389, + 21.1034136 + ], + [ + 105.430312, + 21.1038981 + ], + [ + 105.4295361, + 21.1039434 + ], + [ + 105.4292611, + 21.1037471 + ], + [ + 105.4287916, + 21.1039884 + ], + [ + 105.4279558, + 21.1040927 + ], + [ + 105.4272074, + 21.1036277 + ], + [ + 105.4265415, + 21.1036364 + ], + [ + 105.4260632, + 21.1040465 + ], + [ + 105.4256759, + 21.1040576 + ], + [ + 105.4255769, + 21.1044144 + ], + [ + 105.4265756, + 21.1045341 + ], + [ + 105.4269207, + 21.1052972 + ], + [ + 105.4238467, + 21.104599 + ], + [ + 105.4240634, + 21.1054586 + ], + [ + 105.4310402, + 21.106752 + ], + [ + 105.4309762, + 21.1083633 + ], + [ + 105.4306915, + 21.1092065 + ], + [ + 105.4314904, + 21.1094301 + ], + [ + 105.431379, + 21.1096445 + ], + [ + 105.4303489, + 21.1098249 + ], + [ + 105.4298703, + 21.1105203 + ], + [ + 105.429648, + 21.1136883 + ], + [ + 105.4298539, + 21.1139028 + ], + [ + 105.429833, + 21.1144825 + ], + [ + 105.4301055, + 21.1147982 + ], + [ + 105.4299417, + 21.1153425 + ], + [ + 105.4300763, + 21.1158887 + ], + [ + 105.4295524, + 21.1164273 + ], + [ + 105.42957, + 21.1169673 + ], + [ + 105.4293152, + 21.1175945 + ], + [ + 105.4298435, + 21.1178165 + ], + [ + 105.4305356, + 21.1185608 + ], + [ + 105.4309307, + 21.1191269 + ], + [ + 105.4312486, + 21.120147 + ], + [ + 105.4284443, + 21.1206302 + ], + [ + 105.4269897, + 21.1216088 + ], + [ + 105.4254617, + 21.121981 + ], + [ + 105.4254139, + 21.1222875 + ], + [ + 105.4255435, + 21.1223943 + ], + [ + 105.4269915, + 21.1224731 + ], + [ + 105.4275995, + 21.1230874 + ], + [ + 105.4283712, + 21.1235697 + ], + [ + 105.4284351, + 21.1239267 + ], + [ + 105.4281143, + 21.1241036 + ], + [ + 105.4279076, + 21.1247162 + ], + [ + 105.4284466, + 21.1251255 + ], + [ + 105.4282966, + 21.1253205 + ], + [ + 105.4277515, + 21.1254001 + ], + [ + 105.4273169, + 21.1260289 + ], + [ + 105.4269498, + 21.1262488 + ], + [ + 105.4253121, + 21.1263894 + ], + [ + 105.4245795, + 21.1259813 + ], + [ + 105.4245715, + 21.1266907 + ], + [ + 105.4251641, + 21.1278008 + ], + [ + 105.4250366, + 21.1278262 + ], + [ + 105.4252564, + 21.1283934 + ], + [ + 105.424988, + 21.1285522 + ], + [ + 105.4242579, + 21.1310922 + ], + [ + 105.422389, + 21.1303765 + ], + [ + 105.4208951, + 21.1317732 + ], + [ + 105.4209565, + 21.132045 + ], + [ + 105.4207839, + 21.1323094 + ], + [ + 105.4201536, + 21.1322775 + ], + [ + 105.4198516, + 21.1327895 + ], + [ + 105.4198019, + 21.1331186 + ], + [ + 105.4201944, + 21.1337337 + ], + [ + 105.4197755, + 21.1342169 + ], + [ + 105.4196904, + 21.1351373 + ], + [ + 105.4190449, + 21.1349197 + ], + [ + 105.4180878, + 21.1351866 + ], + [ + 105.4152332, + 21.1350038 + ], + [ + 105.4146453, + 21.1351876 + ], + [ + 105.4141686, + 21.135642 + ], + [ + 105.4140041, + 21.1359602 + ], + [ + 105.4141235, + 21.1362132 + ], + [ + 105.4134442, + 21.1368115 + ], + [ + 105.4172783, + 21.1390925 + ], + [ + 105.4188164, + 21.1391414 + ], + [ + 105.4188463, + 21.1402005 + ], + [ + 105.4196605, + 21.1416772 + ], + [ + 105.4198856, + 21.1415804 + ], + [ + 105.4201107, + 21.141841 + ], + [ + 105.4208073, + 21.1412926 + ], + [ + 105.420977, + 21.1414419 + ], + [ + 105.4212688, + 21.1425488 + ], + [ + 105.4210256, + 21.142614 + ], + [ + 105.4211164, + 21.1428006 + ], + [ + 105.4205295, + 21.1436131 + ], + [ + 105.4211121, + 21.1439882 + ], + [ + 105.4213543, + 21.144386 + ], + [ + 105.4216184, + 21.1444278 + ], + [ + 105.4218093, + 21.1441044 + ], + [ + 105.4225021, + 21.1449487 + ], + [ + 105.4227006, + 21.145715 + ], + [ + 105.4236144, + 21.146371 + ], + [ + 105.4237965, + 21.1468707 + ], + [ + 105.4244069, + 21.1471799 + ], + [ + 105.4243222, + 21.1476024 + ], + [ + 105.4245332, + 21.1477433 + ], + [ + 105.4247264, + 21.1473729 + ], + [ + 105.4255166, + 21.1474948 + ], + [ + 105.4263215, + 21.1480906 + ], + [ + 105.4265044, + 21.1482928 + ], + [ + 105.426413, + 21.1484542 + ], + [ + 105.4266954, + 21.1486556 + ], + [ + 105.4268238, + 21.1484661 + ], + [ + 105.427017, + 21.1484724 + ], + [ + 105.4277192, + 21.1489207 + ], + [ + 105.4279415, + 21.1495962 + ], + [ + 105.4287424, + 21.149642 + ], + [ + 105.4294102, + 21.1500589 + ], + [ + 105.4292865, + 21.1501406 + ], + [ + 105.4293811, + 21.1506757 + ], + [ + 105.4297179, + 21.150576 + ], + [ + 105.4297677, + 21.1509574 + ], + [ + 105.429955, + 21.1510488 + ], + [ + 105.4299174, + 21.1512427 + ], + [ + 105.4301617, + 21.1515845 + ], + [ + 105.4302508, + 21.1514181 + ], + [ + 105.4305902, + 21.1517602 + ], + [ + 105.4307504, + 21.1513707 + ], + [ + 105.4312017, + 21.151521 + ], + [ + 105.4309836, + 21.1520078 + ], + [ + 105.4338456, + 21.1534669 + ], + [ + 105.4343052, + 21.1533579 + ], + [ + 105.4365271, + 21.1514321 + ], + [ + 105.4368786, + 21.151603 + ], + [ + 105.4369234, + 21.1509318 + ], + [ + 105.4375848, + 21.1510692 + ], + [ + 105.4381552, + 21.1508959 + ], + [ + 105.438522, + 21.1505468 + ], + [ + 105.4385249, + 21.1500799 + ], + [ + 105.4390995, + 21.1490588 + ], + [ + 105.4402301, + 21.1492644 + ], + [ + 105.440439, + 21.1478649 + ], + [ + 105.4422646, + 21.1480921 + ], + [ + 105.4427559, + 21.1484264 + ], + [ + 105.4438271, + 21.1478222 + ], + [ + 105.4458987, + 21.1484435 + ], + [ + 105.4458189, + 21.1478231 + ], + [ + 105.446108, + 21.146381 + ], + [ + 105.4495503, + 21.14691 + ], + [ + 105.449617, + 21.1465451 + ], + [ + 105.4497287, + 21.1465489 + ], + [ + 105.4496478, + 21.1461971 + ], + [ + 105.4500255, + 21.1456197 + ], + [ + 105.4496166, + 21.1454412 + ], + [ + 105.4496155, + 21.1452483 + ], + [ + 105.4491741, + 21.1448635 + ], + [ + 105.4486568, + 21.1439913 + ], + [ + 105.4501951, + 21.143393 + ], + [ + 105.4507344, + 21.1428068 + ], + [ + 105.4508646, + 21.1427738 + ], + [ + 105.4510078, + 21.1430481 + ], + [ + 105.4507802, + 21.1433713 + ], + [ + 105.45086, + 21.1435239 + ], + [ + 105.4509965, + 21.1436352 + ], + [ + 105.4512778, + 21.1434813 + ], + [ + 105.4520731, + 21.1440791 + ], + [ + 105.452305, + 21.1440307 + ], + [ + 105.4526684, + 21.1435197 + ], + [ + 105.4528123, + 21.1436141 + ], + [ + 105.4521328, + 21.144536 + ], + [ + 105.4522517, + 21.1449338 + ], + [ + 105.4530846, + 21.145314 + ], + [ + 105.4534177, + 21.1452065 + ], + [ + 105.4535597, + 21.145466 + ], + [ + 105.4530554, + 21.1458098 + ], + [ + 105.4514456, + 21.1463922 + ], + [ + 105.4509865, + 21.1467781 + ], + [ + 105.4506311, + 21.1474719 + ], + [ + 105.4514166, + 21.1478888 + ], + [ + 105.4523011, + 21.1468251 + ], + [ + 105.4527939, + 21.1464899 + ], + [ + 105.4532385, + 21.1465335 + ], + [ + 105.4541361, + 21.1462735 + ], + [ + 105.4547005, + 21.1457824 + ], + [ + 105.4559886, + 21.1451135 + ], + [ + 105.4561829, + 21.1453068 + ], + [ + 105.4561331, + 21.1458755 + ], + [ + 105.4569556, + 21.14607 + ], + [ + 105.4575099, + 21.1466417 + ], + [ + 105.4578942, + 21.1475941 + ], + [ + 105.457456, + 21.147926 + ], + [ + 105.458198, + 21.149024 + ], + [ + 105.4586356, + 21.1488729 + ], + [ + 105.4587418, + 21.1491776 + ], + [ + 105.4591575, + 21.1493369 + ], + [ + 105.4594865, + 21.1500192 + ], + [ + 105.4607055, + 21.1499159 + ], + [ + 105.4611479, + 21.1500643 + ], + [ + 105.4611546, + 21.1513618 + ], + [ + 105.4614525, + 21.152239 + ], + [ + 105.4605285, + 21.1533298 + ], + [ + 105.4606571, + 21.1535618 + ], + [ + 105.4614069, + 21.1536128 + ], + [ + 105.4614824, + 21.1542284 + ], + [ + 105.4617265, + 21.1543458 + ], + [ + 105.4621606, + 21.155298 + ], + [ + 105.4619627, + 21.1558354 + ], + [ + 105.4619912, + 21.1563696 + ], + [ + 105.4623794, + 21.1563798 + ], + [ + 105.4637013, + 21.1557877 + ], + [ + 105.4643507, + 21.1568873 + ], + [ + 105.4640346, + 21.1570228 + ], + [ + 105.4635739, + 21.1584888 + ], + [ + 105.4630468, + 21.1588214 + ], + [ + 105.4631628, + 21.1592272 + ], + [ + 105.464146, + 21.1600876 + ], + [ + 105.4646085, + 21.1597838 + ], + [ + 105.4647069, + 21.1601374 + ], + [ + 105.4662755, + 21.1609219 + ], + [ + 105.4657043, + 21.1612092 + ], + [ + 105.4650616, + 21.1623288 + ], + [ + 105.4655421, + 21.1625562 + ], + [ + 105.4658193, + 21.162033 + ], + [ + 105.466359, + 21.1622375 + ], + [ + 105.4663221, + 21.162913 + ], + [ + 105.4666716, + 21.1632412 + ], + [ + 105.4673088, + 21.1634546 + ], + [ + 105.4671046, + 21.1640666 + ], + [ + 105.4673007, + 21.1641309 + ], + [ + 105.4671238, + 21.1647433 + ], + [ + 105.4672666, + 21.1650289 + ], + [ + 105.4669684, + 21.1654175 + ], + [ + 105.4672325, + 21.1653481 + ], + [ + 105.4673686, + 21.1657532 + ], + [ + 105.4668745, + 21.1660521 + ], + [ + 105.4670777, + 21.1664025 + ], + [ + 105.4669121, + 21.1664995 + ], + [ + 105.467126, + 21.1666904 + ], + [ + 105.4673486, + 21.1673698 + ], + [ + 105.4673704, + 21.1676661 + ], + [ + 105.467054, + 21.1680772 + ], + [ + 105.4671008, + 21.1682619 + ], + [ + 105.4678505, + 21.1688382 + ], + [ + 105.4689, + 21.1683026 + ], + [ + 105.4688444, + 21.1680141 + ], + [ + 105.4692384, + 21.1678801 + ], + [ + 105.4700759, + 21.1691355 + ], + [ + 105.4752382, + 21.1718775 + ], + [ + 105.4720175, + 21.1742086 + ], + [ + 105.4698751, + 21.1761782 + ], + [ + 105.4695613, + 21.1766479 + ], + [ + 105.4693818, + 21.1789103 + ], + [ + 105.4699563, + 21.1804871 + ], + [ + 105.4698484, + 21.1818564 + ], + [ + 105.4691242, + 21.1836487 + ], + [ + 105.4668973, + 21.1863902 + ], + [ + 105.466331, + 21.2009119 + ], + [ + 105.4647003, + 21.2006506 + ], + [ + 105.4638956, + 21.2012593 + ], + [ + 105.4630307, + 21.2031028 + ], + [ + 105.4644572, + 21.2033913 + ], + [ + 105.4639109, + 21.2063089 + ], + [ + 105.4624713, + 21.2060325 + ], + [ + 105.4614273, + 21.2081003 + ], + [ + 105.4612532, + 21.2081406 + ], + [ + 105.4632375, + 21.2086839 + ], + [ + 105.4623136, + 21.2134188 + ], + [ + 105.4623195, + 21.2145953 + ], + [ + 105.4610781, + 21.21888 + ], + [ + 105.4593901, + 21.2233799 + ], + [ + 105.4564893, + 21.2282016 + ], + [ + 105.4536154, + 21.2341854 + ], + [ + 105.4514907, + 21.237245 + ], + [ + 105.4507654, + 21.2388002 + ], + [ + 105.4502701, + 21.2395016 + ], + [ + 105.4492268, + 21.2407261 + ], + [ + 105.4481062, + 21.2416242 + ], + [ + 105.4474066, + 21.2424158 + ], + [ + 105.4468477, + 21.2433124 + ], + [ + 105.4460114, + 21.2453681 + ], + [ + 105.445567, + 21.2470016 + ], + [ + 105.4445627, + 21.2523859 + ], + [ + 105.4442189, + 21.2552605 + ], + [ + 105.4440035, + 21.2602582 + ], + [ + 105.4431678, + 21.2663221 + ], + [ + 105.4439745, + 21.2700524 + ], + [ + 105.440403, + 21.2714997 + ], + [ + 105.4326187, + 21.2741139 + ], + [ + 105.4270895, + 21.2782561 + ], + [ + 105.4211444, + 21.2847771 + ], + [ + 105.4202505, + 21.285276 + ], + [ + 105.4140927, + 21.2930874 + ], + [ + 105.4116546, + 21.295162 + ], + [ + 105.4066001, + 21.2988004 + ], + [ + 105.4060857, + 21.2996708 + ], + [ + 105.4011006, + 21.3020395 + ], + [ + 105.3967678, + 21.3043122 + ], + [ + 105.395805, + 21.3045067 + ], + [ + 105.3950882, + 21.3043087 + ], + [ + 105.3946561, + 21.3034131 + ], + [ + 105.3933598, + 21.3024856 + ], + [ + 105.3914981, + 21.302438 + ], + [ + 105.3888121, + 21.3020469 + ], + [ + 105.3881739, + 21.3016703 + ], + [ + 105.383325, + 21.296907 + ], + [ + 105.3828133, + 21.2961757 + ], + [ + 105.3821849, + 21.2960385 + ], + [ + 105.3781271, + 21.2959312 + ], + [ + 105.3775291, + 21.2956744 + ], + [ + 105.3771714, + 21.2951936 + ], + [ + 105.3771467, + 21.2938334 + ], + [ + 105.3763641, + 21.293018 + ], + [ + 105.3744664, + 21.2922259 + ], + [ + 105.3709845, + 21.2902599 + ], + [ + 105.3686708, + 21.2891617 + ], + [ + 105.3648481, + 21.2868911 + ], + [ + 105.3620018, + 21.2847086 + ], + [ + 105.3605148, + 21.2823372 + ], + [ + 105.3576025, + 21.279577 + ], + [ + 105.3562961, + 21.2785341 + ], + [ + 105.3561646, + 21.2753153 + ], + [ + 105.356392, + 21.2724229 + ], + [ + 105.3562619, + 21.2607843 + ], + [ + 105.3543555, + 21.2555082 + ], + [ + 105.354261, + 21.2521624 + ], + [ + 105.3539287, + 21.2481823 + ], + [ + 105.3498371, + 21.230034 + ], + [ + 105.3481789, + 21.2253751 + ], + [ + 105.3464557, + 21.2244267 + ], + [ + 105.339315, + 21.2100551 + ], + [ + 105.3440377, + 21.2082164 + ], + [ + 105.3417688, + 21.2037179 + ], + [ + 105.3390169, + 21.2017574 + ], + [ + 105.3374719, + 21.2012472 + ], + [ + 105.3363454, + 21.2011872 + ], + [ + 105.3356159, + 21.2013573 + ], + [ + 105.3291914, + 21.2041128 + ], + [ + 105.3247809, + 21.2032259 + ], + [ + 105.3122152, + 21.1960522 + ], + [ + 105.3036905, + 21.1915845 + ], + [ + 105.3032963, + 21.1897521 + ], + [ + 105.2959469, + 21.1752606 + ], + [ + 105.2932485, + 21.1719729 + ], + [ + 105.2922364, + 21.1698565 + ], + [ + 105.2908165, + 21.1658811 + ], + [ + 105.2889615, + 21.1570007 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-caugiay.json b/src/data/boundaries/hn/hn-caugiay.json new file mode 100644 index 0000000..32a8a68 --- /dev/null +++ b/src/data/boundaries/hn/hn-caugiay.json @@ -0,0 +1,598 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-CAUGIAY", + "name": "Cau Giay", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 12.5, + "bbox": [ + 105.76716, + 21.00066, + 105.81352, + 21.05879 + ], + "center": [ + 21.0306, + 105.79168 + ], + "generatedAt": "2026-08-30T07:33:07.812Z", + "osm": "relation/9421132" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.7671552, + 21.037974 + ], + [ + 105.76838, + 21.0375786 + ], + [ + 105.7681368, + 21.0369085 + ], + [ + 105.7687349, + 21.0367241 + ], + [ + 105.768541, + 21.0359941 + ], + [ + 105.7704902, + 21.035438 + ], + [ + 105.7715069, + 21.035458 + ], + [ + 105.7713989, + 21.0351084 + ], + [ + 105.7728314, + 21.0346244 + ], + [ + 105.7739591, + 21.0335768 + ], + [ + 105.773558, + 21.0329239 + ], + [ + 105.7743821, + 21.0325638 + ], + [ + 105.7744746, + 21.0327242 + ], + [ + 105.774857, + 21.0325864 + ], + [ + 105.7754638, + 21.0326857 + ], + [ + 105.7754519, + 21.0316668 + ], + [ + 105.7763153, + 21.0316715 + ], + [ + 105.77687, + 21.0309349 + ], + [ + 105.7788567, + 21.0317565 + ], + [ + 105.7789263, + 21.0316035 + ], + [ + 105.7798595, + 21.0323643 + ], + [ + 105.7799473, + 21.0315499 + ], + [ + 105.7818257, + 21.0312663 + ], + [ + 105.7815738, + 21.0294594 + ], + [ + 105.7838889, + 21.0292615 + ], + [ + 105.7840713, + 21.0243703 + ], + [ + 105.7815587, + 21.0221948 + ], + [ + 105.7850393, + 21.0180582 + ], + [ + 105.7850953, + 21.0170482 + ], + [ + 105.785472, + 21.0162432 + ], + [ + 105.7902222, + 21.0104008 + ], + [ + 105.7896689, + 21.0100039 + ], + [ + 105.7903402, + 21.0091788 + ], + [ + 105.789528, + 21.0086363 + ], + [ + 105.7923279, + 21.0051517 + ], + [ + 105.7911792, + 21.0042771 + ], + [ + 105.7923268, + 21.0029651 + ], + [ + 105.7912413, + 21.0020701 + ], + [ + 105.7923056, + 21.0006558 + ], + [ + 105.7946544, + 21.0022956 + ], + [ + 105.7941053, + 21.0030027 + ], + [ + 105.7976586, + 21.0054696 + ], + [ + 105.7987992, + 21.0040802 + ], + [ + 105.8029771, + 21.007087 + ], + [ + 105.8046619, + 21.0085679 + ], + [ + 105.804979, + 21.0080815 + ], + [ + 105.8054112, + 21.00838 + ], + [ + 105.807369, + 21.0072094 + ], + [ + 105.8086536, + 21.0080805 + ], + [ + 105.8101905, + 21.0070798 + ], + [ + 105.8106943, + 21.0069677 + ], + [ + 105.812051, + 21.0071526 + ], + [ + 105.8135162, + 21.0088516 + ], + [ + 105.8076252, + 21.012689 + ], + [ + 105.8041936, + 21.0157182 + ], + [ + 105.8030396, + 21.0171604 + ], + [ + 105.8012422, + 21.0203624 + ], + [ + 105.8001477, + 21.0219911 + ], + [ + 105.7980183, + 21.0237715 + ], + [ + 105.7976474, + 21.0244273 + ], + [ + 105.797701, + 21.0251591 + ], + [ + 105.7983286, + 21.0268031 + ], + [ + 105.8035437, + 21.032707 + ], + [ + 105.8062751, + 21.0368524 + ], + [ + 105.806476, + 21.0387044 + ], + [ + 105.8062057, + 21.0400902 + ], + [ + 105.8066358, + 21.040179 + ], + [ + 105.8060641, + 21.0424787 + ], + [ + 105.806034, + 21.0475871 + ], + [ + 105.8064319, + 21.0485954 + ], + [ + 105.8073546, + 21.0501456 + ], + [ + 105.8091278, + 21.0524025 + ], + [ + 105.8088619, + 21.0543138 + ], + [ + 105.8088495, + 21.0587904 + ], + [ + 105.8081818, + 21.0587044 + ], + [ + 105.8081608, + 21.0556049 + ], + [ + 105.8078521, + 21.0558373 + ], + [ + 105.8072297, + 21.0555079 + ], + [ + 105.8066696, + 21.0561522 + ], + [ + 105.8062956, + 21.0558457 + ], + [ + 105.8056078, + 21.0546947 + ], + [ + 105.806194, + 21.0542752 + ], + [ + 105.8054074, + 21.0530567 + ], + [ + 105.8052993, + 21.0531065 + ], + [ + 105.8048501, + 21.0523938 + ], + [ + 105.8044541, + 21.052675 + ], + [ + 105.8044655, + 21.052119 + ], + [ + 105.8032079, + 21.0514579 + ], + [ + 105.8017784, + 21.0495312 + ], + [ + 105.8000849, + 21.0495234 + ], + [ + 105.7983277, + 21.0477188 + ], + [ + 105.7976126, + 21.047933 + ], + [ + 105.7970657, + 21.0484688 + ], + [ + 105.7970526, + 21.0489978 + ], + [ + 105.7963237, + 21.0490036 + ], + [ + 105.7963479, + 21.0502891 + ], + [ + 105.7948877, + 21.050306 + ], + [ + 105.7941513, + 21.0498371 + ], + [ + 105.7947797, + 21.0489629 + ], + [ + 105.7945973, + 21.0488423 + ], + [ + 105.7949581, + 21.0485986 + ], + [ + 105.7949588, + 21.0483131 + ], + [ + 105.7946129, + 21.048313 + ], + [ + 105.7946172, + 21.0461932 + ], + [ + 105.7907356, + 21.0461762 + ], + [ + 105.7906557, + 21.0478079 + ], + [ + 105.7901045, + 21.0477222 + ], + [ + 105.7900461, + 21.0482409 + ], + [ + 105.7908962, + 21.048326 + ], + [ + 105.7910959, + 21.0478662 + ], + [ + 105.7915076, + 21.047914 + ], + [ + 105.7914564, + 21.0491413 + ], + [ + 105.790804, + 21.0489432 + ], + [ + 105.7906035, + 21.0493027 + ], + [ + 105.7899361, + 21.0492466 + ], + [ + 105.7897289, + 21.0509462 + ], + [ + 105.7892838, + 21.0518971 + ], + [ + 105.788501, + 21.0512736 + ], + [ + 105.7869581, + 21.0512359 + ], + [ + 105.7867629, + 21.0493078 + ], + [ + 105.7875544, + 21.0485959 + ], + [ + 105.7877187, + 21.0486217 + ], + [ + 105.7877438, + 21.0481887 + ], + [ + 105.7880777, + 21.0481963 + ], + [ + 105.78821, + 21.0477957 + ], + [ + 105.7885454, + 21.0475958 + ], + [ + 105.7886883, + 21.0472371 + ], + [ + 105.7881109, + 21.0470506 + ], + [ + 105.7882538, + 21.0466332 + ], + [ + 105.7901611, + 21.0473156 + ], + [ + 105.7902709, + 21.0461741 + ], + [ + 105.7863683, + 21.0461652 + ], + [ + 105.7863727, + 21.044547 + ], + [ + 105.7855808, + 21.0445483 + ], + [ + 105.7849287, + 21.0438414 + ], + [ + 105.7847189, + 21.0440079 + ], + [ + 105.781148, + 21.044065 + ], + [ + 105.7814669, + 21.0489455 + ], + [ + 105.7758297, + 21.0489147 + ], + [ + 105.7745243, + 21.0484179 + ], + [ + 105.7687531, + 21.0424519 + ], + [ + 105.7671552, + 21.037974 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-chuongmy.json b/src/data/boundaries/hn/hn-chuongmy.json new file mode 100644 index 0000000..e1a02c1 --- /dev/null +++ b/src/data/boundaries/hn/hn-chuongmy.json @@ -0,0 +1,3294 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-CHUONGMY", + "name": "Chuong My", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 238.6, + "bbox": [ + 105.55102, + 20.7919, + 105.75984, + 20.96484 + ], + "center": [ + 20.87763, + 105.66036 + ], + "generatedAt": "2026-08-30T07:33:29.843Z", + "osm": "relation/7115367" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.5510221, + 20.807929 + ], + [ + 105.5520462, + 20.8069012 + ], + [ + 105.5530561, + 20.8064595 + ], + [ + 105.5559542, + 20.806451 + ], + [ + 105.5594282, + 20.8080935 + ], + [ + 105.5612385, + 20.8083947 + ], + [ + 105.5632719, + 20.8085193 + ], + [ + 105.5691754, + 20.8083618 + ], + [ + 105.5715136, + 20.8084946 + ], + [ + 105.5754867, + 20.8079185 + ], + [ + 105.5770831, + 20.8086365 + ], + [ + 105.5784666, + 20.8090077 + ], + [ + 105.5809106, + 20.8110788 + ], + [ + 105.582064, + 20.8115991 + ], + [ + 105.5833585, + 20.8118179 + ], + [ + 105.5833854, + 20.8143713 + ], + [ + 105.5835561, + 20.8158012 + ], + [ + 105.5839458, + 20.8171709 + ], + [ + 105.5846271, + 20.8183579 + ], + [ + 105.5854056, + 20.8192708 + ], + [ + 105.586767, + 20.8196354 + ], + [ + 105.5878369, + 20.8202742 + ], + [ + 105.5880586, + 20.8209432 + ], + [ + 105.5871297, + 20.8255624 + ], + [ + 105.5872781, + 20.8275024 + ], + [ + 105.5878828, + 20.8290827 + ], + [ + 105.5885173, + 20.829861 + ], + [ + 105.5903075, + 20.8308354 + ], + [ + 105.5912812, + 20.8307443 + ], + [ + 105.5922935, + 20.8310176 + ], + [ + 105.5932379, + 20.830777 + ], + [ + 105.5948075, + 20.8306687 + ], + [ + 105.5960475, + 20.8312754 + ], + [ + 105.597679, + 20.8332202 + ], + [ + 105.5980001, + 20.8338451 + ], + [ + 105.596735, + 20.8352408 + ], + [ + 105.5966287, + 20.8374298 + ], + [ + 105.5969697, + 20.8386404 + ], + [ + 105.600946, + 20.8414176 + ], + [ + 105.6032884, + 20.8385827 + ], + [ + 105.6038668, + 20.8389743 + ], + [ + 105.6042521, + 20.838974 + ], + [ + 105.6061463, + 20.8382796 + ], + [ + 105.6068528, + 20.8381887 + ], + [ + 105.608838, + 20.8384677 + ], + [ + 105.6101282, + 20.837825 + ], + [ + 105.6114116, + 20.8363472 + ], + [ + 105.6127765, + 20.8358331 + ], + [ + 105.6140251, + 20.8350135 + ], + [ + 105.6147205, + 20.8343318 + ], + [ + 105.6154484, + 20.8331775 + ], + [ + 105.6159049, + 20.832063 + ], + [ + 105.6166469, + 20.8314673 + ], + [ + 105.619629, + 20.8315792 + ], + [ + 105.6207219, + 20.8312806 + ], + [ + 105.6218362, + 20.83186 + ], + [ + 105.6240807, + 20.8317817 + ], + [ + 105.6249009, + 20.8325999 + ], + [ + 105.6259716, + 20.8328361 + ], + [ + 105.6284033, + 20.8342912 + ], + [ + 105.632156, + 20.835341 + ], + [ + 105.6337835, + 20.8369666 + ], + [ + 105.6337691, + 20.8385583 + ], + [ + 105.6351185, + 20.8386975 + ], + [ + 105.6353163, + 20.8391226 + ], + [ + 105.6367098, + 20.8393545 + ], + [ + 105.6363412, + 20.8380266 + ], + [ + 105.6357518, + 20.837471 + ], + [ + 105.6356216, + 20.8367579 + ], + [ + 105.635221, + 20.8361473 + ], + [ + 105.635369, + 20.8357157 + ], + [ + 105.6359559, + 20.8356155 + ], + [ + 105.6361447, + 20.8353937 + ], + [ + 105.6359763, + 20.8341345 + ], + [ + 105.6353945, + 20.8333785 + ], + [ + 105.6355323, + 20.8328299 + ], + [ + 105.6363318, + 20.8320591 + ], + [ + 105.6416854, + 20.8330324 + ], + [ + 105.6424009, + 20.8310516 + ], + [ + 105.6406408, + 20.8305543 + ], + [ + 105.6410391, + 20.8294873 + ], + [ + 105.6420537, + 20.8278257 + ], + [ + 105.6417665, + 20.8261276 + ], + [ + 105.6409797, + 20.825255 + ], + [ + 105.6412667, + 20.8243896 + ], + [ + 105.6411842, + 20.8241009 + ], + [ + 105.6396764, + 20.8238281 + ], + [ + 105.6386362, + 20.8226234 + ], + [ + 105.637254, + 20.8220972 + ], + [ + 105.6365113, + 20.8214526 + ], + [ + 105.635578, + 20.8214685 + ], + [ + 105.6350967, + 20.8219711 + ], + [ + 105.6343341, + 20.8221296 + ], + [ + 105.6336689, + 20.8215653 + ], + [ + 105.6335087, + 20.8217052 + ], + [ + 105.6334914, + 20.8220428 + ], + [ + 105.6331471, + 20.8219701 + ], + [ + 105.6332324, + 20.8218249 + ], + [ + 105.6329279, + 20.8213297 + ], + [ + 105.6329089, + 20.8208179 + ], + [ + 105.6327393, + 20.820748 + ], + [ + 105.6302156, + 20.820837 + ], + [ + 105.6301993, + 20.8206401 + ], + [ + 105.6305652, + 20.8206189 + ], + [ + 105.6305527, + 20.8203667 + ], + [ + 105.6302746, + 20.8201341 + ], + [ + 105.6303288, + 20.8198271 + ], + [ + 105.6311654, + 20.8204359 + ], + [ + 105.6319822, + 20.8204474 + ], + [ + 105.6322283, + 20.8203057 + ], + [ + 105.6323176, + 20.8198472 + ], + [ + 105.6315335, + 20.8190824 + ], + [ + 105.6316497, + 20.8185328 + ], + [ + 105.6311909, + 20.8178342 + ], + [ + 105.6313204, + 20.8171464 + ], + [ + 105.6296269, + 20.8167155 + ], + [ + 105.6293227, + 20.8161057 + ], + [ + 105.6287662, + 20.8160443 + ], + [ + 105.6283154, + 20.8161807 + ], + [ + 105.6273782, + 20.8157109 + ], + [ + 105.6273827, + 20.8144688 + ], + [ + 105.6280253, + 20.814426 + ], + [ + 105.6282366, + 20.8154429 + ], + [ + 105.629193, + 20.8155346 + ], + [ + 105.6294137, + 20.815791 + ], + [ + 105.6299366, + 20.8156803 + ], + [ + 105.6307012, + 20.815942 + ], + [ + 105.6310246, + 20.8157925 + ], + [ + 105.6314453, + 20.8148871 + ], + [ + 105.6314146, + 20.8146675 + ], + [ + 105.6307695, + 20.8141764 + ], + [ + 105.6308022, + 20.8140193 + ], + [ + 105.6321126, + 20.8139858 + ], + [ + 105.632337, + 20.8137432 + ], + [ + 105.6320594, + 20.812806 + ], + [ + 105.6319444, + 20.8116439 + ], + [ + 105.6313573, + 20.8115441 + ], + [ + 105.631052, + 20.8113092 + ], + [ + 105.6311084, + 20.810908 + ], + [ + 105.6314225, + 20.8104848 + ], + [ + 105.6323335, + 20.8098738 + ], + [ + 105.6324064, + 20.8091964 + ], + [ + 105.6322407, + 20.8078232 + ], + [ + 105.6326976, + 20.8069705 + ], + [ + 105.6330238, + 20.8053812 + ], + [ + 105.6325615, + 20.8041779 + ], + [ + 105.6324956, + 20.803021 + ], + [ + 105.6326586, + 20.8028006 + ], + [ + 105.6343229, + 20.8024894 + ], + [ + 105.6346236, + 20.8022996 + ], + [ + 105.634845, + 20.8006969 + ], + [ + 105.6341098, + 20.7989227 + ], + [ + 105.6332531, + 20.797742 + ], + [ + 105.6331594, + 20.7962369 + ], + [ + 105.6312946, + 20.7946055 + ], + [ + 105.630706, + 20.793671 + ], + [ + 105.630806, + 20.7935178 + ], + [ + 105.6323086, + 20.7932988 + ], + [ + 105.6333798, + 20.7929626 + ], + [ + 105.6337867, + 20.7932846 + ], + [ + 105.6348498, + 20.7937117 + ], + [ + 105.6346074, + 20.7940138 + ], + [ + 105.6350181, + 20.7942487 + ], + [ + 105.6351073, + 20.7950908 + ], + [ + 105.6352945, + 20.7952864 + ], + [ + 105.6359046, + 20.7954517 + ], + [ + 105.6364114, + 20.7953026 + ], + [ + 105.6373022, + 20.7936242 + ], + [ + 105.6408212, + 20.7927326 + ], + [ + 105.6411723, + 20.7920437 + ], + [ + 105.6414916, + 20.791901 + ], + [ + 105.6419472, + 20.7919675 + ], + [ + 105.6421016, + 20.7921178 + ], + [ + 105.6420866, + 20.792688 + ], + [ + 105.6435572, + 20.7926178 + ], + [ + 105.6450286, + 20.7964431 + ], + [ + 105.6459478, + 20.7964474 + ], + [ + 105.6465972, + 20.7957565 + ], + [ + 105.646649, + 20.7955531 + ], + [ + 105.6464086, + 20.7950522 + ], + [ + 105.6465094, + 20.7943955 + ], + [ + 105.6463133, + 20.7934835 + ], + [ + 105.6463695, + 20.7924326 + ], + [ + 105.6483218, + 20.7923282 + ], + [ + 105.648011, + 20.7935739 + ], + [ + 105.6503669, + 20.7941453 + ], + [ + 105.6500716, + 20.7959845 + ], + [ + 105.6500536, + 20.7988025 + ], + [ + 105.6503596, + 20.8006725 + ], + [ + 105.6501846, + 20.8060405 + ], + [ + 105.6498346, + 20.8091785 + ], + [ + 105.6492586, + 20.8093705 + ], + [ + 105.6490986, + 20.8096555 + ], + [ + 105.6485426, + 20.8134225 + ], + [ + 105.6530396, + 20.8141105 + ], + [ + 105.6552016, + 20.8141195 + ], + [ + 105.6571411, + 20.8144753 + ], + [ + 105.6621047, + 20.8140137 + ], + [ + 105.6632405, + 20.8141811 + ], + [ + 105.6633523, + 20.8138371 + ], + [ + 105.6641275, + 20.8139904 + ], + [ + 105.6642079, + 20.8136895 + ], + [ + 105.6648312, + 20.813855 + ], + [ + 105.6649563, + 20.8141446 + ], + [ + 105.6640577, + 20.8148679 + ], + [ + 105.6628728, + 20.8151361 + ], + [ + 105.6632921, + 20.8152917 + ], + [ + 105.6636761, + 20.8152289 + ], + [ + 105.6648892, + 20.8144667 + ], + [ + 105.6650501, + 20.8141809 + ], + [ + 105.6652486, + 20.814231 + ], + [ + 105.6660567, + 20.8132016 + ], + [ + 105.6674403, + 20.8127102 + ], + [ + 105.6685477, + 20.8137045 + ], + [ + 105.667951, + 20.8156993 + ], + [ + 105.6685068, + 20.8158092 + ], + [ + 105.6684941, + 20.8153242 + ], + [ + 105.6688696, + 20.8150333 + ], + [ + 105.6690244, + 20.8145663 + ], + [ + 105.669245, + 20.8144425 + ], + [ + 105.6695568, + 20.8145362 + ], + [ + 105.6694302, + 20.8150684 + ], + [ + 105.6695241, + 20.8157303 + ], + [ + 105.6690842, + 20.8160512 + ], + [ + 105.6693844, + 20.8164838 + ], + [ + 105.6707268, + 20.8157431 + ], + [ + 105.6712661, + 20.8141642 + ], + [ + 105.671643, + 20.8137697 + ], + [ + 105.6720239, + 20.8139954 + ], + [ + 105.6727393, + 20.8139896 + ], + [ + 105.6733323, + 20.8145198 + ], + [ + 105.6737987, + 20.8145649 + ], + [ + 105.6743091, + 20.8148378 + ], + [ + 105.6758448, + 20.8145759 + ], + [ + 105.6762886, + 20.8146924 + ], + [ + 105.6766847, + 20.8144315 + ], + [ + 105.6774391, + 20.8146492 + ], + [ + 105.6787884, + 20.8146121 + ], + [ + 105.67989, + 20.8144666 + ], + [ + 105.6799345, + 20.8139908 + ], + [ + 105.6802747, + 20.8140781 + ], + [ + 105.6805728, + 20.8138006 + ], + [ + 105.6806289, + 20.8135191 + ], + [ + 105.6811348, + 20.8136144 + ], + [ + 105.6813322, + 20.8128826 + ], + [ + 105.6820138, + 20.813002 + ], + [ + 105.6816865, + 20.8146522 + ], + [ + 105.6824523, + 20.8142361 + ], + [ + 105.6848985, + 20.8140806 + ], + [ + 105.6849693, + 20.8137909 + ], + [ + 105.6860304, + 20.8138098 + ], + [ + 105.686268, + 20.8128071 + ], + [ + 105.6885753, + 20.8130413 + ], + [ + 105.6886967, + 20.8127826 + ], + [ + 105.68991, + 20.8127225 + ], + [ + 105.689847, + 20.8123116 + ], + [ + 105.6925321, + 20.8122303 + ], + [ + 105.6925267, + 20.8125111 + ], + [ + 105.69372, + 20.8125906 + ], + [ + 105.6949085, + 20.814231 + ], + [ + 105.6950641, + 20.8146247 + ], + [ + 105.6949085, + 20.8146873 + ], + [ + 105.6953358, + 20.8158235 + ], + [ + 105.6974053, + 20.815897 + ], + [ + 105.697816, + 20.8164273 + ], + [ + 105.6974003, + 20.8165947 + ], + [ + 105.6973224, + 20.8172691 + ], + [ + 105.6983876, + 20.8175238 + ], + [ + 105.6985349, + 20.8189372 + ], + [ + 105.6991303, + 20.8193756 + ], + [ + 105.6985505, + 20.8199646 + ], + [ + 105.698214, + 20.8206236 + ], + [ + 105.6963639, + 20.825068 + ], + [ + 105.6967163, + 20.8253474 + ], + [ + 105.6970167, + 20.825914 + ], + [ + 105.6970221, + 20.8264454 + ], + [ + 105.6971632, + 20.8264665 + ], + [ + 105.6968564, + 20.8284097 + ], + [ + 105.7067717, + 20.8289607 + ], + [ + 105.7068433, + 20.8296296 + ], + [ + 105.7074146, + 20.8295557 + ], + [ + 105.7074735, + 20.8299707 + ], + [ + 105.7086357, + 20.8297182 + ], + [ + 105.7088748, + 20.8295189 + ], + [ + 105.7096678, + 20.8299666 + ], + [ + 105.7107139, + 20.8273549 + ], + [ + 105.710535, + 20.8266234 + ], + [ + 105.7104115, + 20.8264051 + ], + [ + 105.7097825, + 20.8260744 + ], + [ + 105.7075334, + 20.8254964 + ], + [ + 105.7068685, + 20.8248736 + ], + [ + 105.7067183, + 20.8239059 + ], + [ + 105.7067805, + 20.821154 + ], + [ + 105.7070454, + 20.8191595 + ], + [ + 105.7076963, + 20.8174956 + ], + [ + 105.7092662, + 20.815247 + ], + [ + 105.7096517, + 20.814185 + ], + [ + 105.7097313, + 20.8121903 + ], + [ + 105.7090912, + 20.8096948 + ], + [ + 105.7096006, + 20.8095505 + ], + [ + 105.7161223, + 20.8083061 + ], + [ + 105.724333, + 20.8076248 + ], + [ + 105.7272462, + 20.8076149 + ], + [ + 105.7305631, + 20.8084878 + ], + [ + 105.7331069, + 20.8093808 + ], + [ + 105.7358415, + 20.808908 + ], + [ + 105.7418424, + 20.8054188 + ], + [ + 105.7429806, + 20.8051528 + ], + [ + 105.7439365, + 20.8052403 + ], + [ + 105.7451551, + 20.8058196 + ], + [ + 105.7483619, + 20.8092632 + ], + [ + 105.7500029, + 20.8107972 + ], + [ + 105.7550212, + 20.8136101 + ], + [ + 105.7551699, + 20.8143423 + ], + [ + 105.7531993, + 20.8178134 + ], + [ + 105.7526956, + 20.8198291 + ], + [ + 105.7530142, + 20.8236517 + ], + [ + 105.7541844, + 20.8257705 + ], + [ + 105.7553651, + 20.8288205 + ], + [ + 105.7596733, + 20.8337909 + ], + [ + 105.7598398, + 20.8348803 + ], + [ + 105.7595103, + 20.8368818 + ], + [ + 105.756153, + 20.836725 + ], + [ + 105.748944, + 20.836725 + ], + [ + 105.7439658, + 20.8364041 + ], + [ + 105.7406959, + 20.8364041 + ], + [ + 105.737243, + 20.8374274 + ], + [ + 105.7335702, + 20.8401524 + ], + [ + 105.7342277, + 20.8432658 + ], + [ + 105.736238, + 20.8450815 + ], + [ + 105.7372722, + 20.8455627 + ], + [ + 105.7388815, + 20.84603 + ], + [ + 105.74224, + 20.8463519 + ], + [ + 105.7463578, + 20.8465124 + ], + [ + 105.7520145, + 20.8473133 + ], + [ + 105.7548835, + 20.8479442 + ], + [ + 105.7557172, + 20.8501255 + ], + [ + 105.7552133, + 20.8520088 + ], + [ + 105.753518, + 20.8539099 + ], + [ + 105.7497607, + 20.8561443 + ], + [ + 105.7419735, + 20.8586309 + ], + [ + 105.7370439, + 20.8624084 + ], + [ + 105.7334303, + 20.8644988 + ], + [ + 105.730848, + 20.8680377 + ], + [ + 105.7284316, + 20.8706181 + ], + [ + 105.7280826, + 20.872738 + ], + [ + 105.728529, + 20.8755103 + ], + [ + 105.7289447, + 20.876008 + ], + [ + 105.7301938, + 20.8759214 + ], + [ + 105.733196, + 20.8736088 + ], + [ + 105.7344464, + 20.8731628 + ], + [ + 105.7350064, + 20.8732853 + ], + [ + 105.7364383, + 20.8742037 + ], + [ + 105.7373889, + 20.8751708 + ], + [ + 105.738385, + 20.8774089 + ], + [ + 105.7388985, + 20.8810868 + ], + [ + 105.7390695, + 20.8838049 + ], + [ + 105.7387284, + 20.8877896 + ], + [ + 105.7356615, + 20.8925651 + ], + [ + 105.7322726, + 20.894148 + ], + [ + 105.7300742, + 20.89399 + ], + [ + 105.72686, + 20.8932571 + ], + [ + 105.7267685, + 20.8970737 + ], + [ + 105.7251205, + 20.8983059 + ], + [ + 105.7270727, + 20.8997354 + ], + [ + 105.7280904, + 20.9013199 + ], + [ + 105.7294651, + 20.9054936 + ], + [ + 105.7332692, + 20.9101781 + ], + [ + 105.733971, + 20.910342 + ], + [ + 105.735119, + 20.9109113 + ], + [ + 105.7342923, + 20.911326 + ], + [ + 105.733853, + 20.9108185 + ], + [ + 105.7300052, + 20.912661 + ], + [ + 105.7281131, + 20.9138608 + ], + [ + 105.7268237, + 20.9150489 + ], + [ + 105.7267063, + 20.9149631 + ], + [ + 105.7264716, + 20.9152015 + ], + [ + 105.7268441, + 20.9155638 + ], + [ + 105.7267114, + 20.915702 + ], + [ + 105.7260378, + 20.9152444 + ], + [ + 105.7247211, + 20.9163122 + ], + [ + 105.7248333, + 20.9166841 + ], + [ + 105.723856, + 20.9177805 + ], + [ + 105.7248917, + 20.9185071 + ], + [ + 105.7254204, + 20.9186133 + ], + [ + 105.7274447, + 20.9247928 + ], + [ + 105.7262069, + 20.9249276 + ], + [ + 105.7257197, + 20.9247591 + ], + [ + 105.7255645, + 20.9250793 + ], + [ + 105.7244134, + 20.9258916 + ], + [ + 105.7233993, + 20.9260332 + ], + [ + 105.7217353, + 20.9268336 + ], + [ + 105.7199168, + 20.9274693 + ], + [ + 105.7197868, + 20.9273497 + ], + [ + 105.7193646, + 20.9277107 + ], + [ + 105.7191908, + 20.9275528 + ], + [ + 105.7155759, + 20.9281458 + ], + [ + 105.7151854, + 20.9275363 + ], + [ + 105.7096412, + 20.9284513 + ], + [ + 105.7095754, + 20.9279319 + ], + [ + 105.7091718, + 20.9271269 + ], + [ + 105.7087015, + 20.9273849 + ], + [ + 105.7088016, + 20.9276314 + ], + [ + 105.7086529, + 20.9277363 + ], + [ + 105.7086991, + 20.9279477 + ], + [ + 105.7082354, + 20.9282093 + ], + [ + 105.7080208, + 20.9279207 + ], + [ + 105.7078448, + 20.928025 + ], + [ + 105.7076781, + 20.9278508 + ], + [ + 105.7075021, + 20.9279914 + ], + [ + 105.7075786, + 20.928337 + ], + [ + 105.707844, + 20.928256 + ], + [ + 105.7081017, + 20.9287088 + ], + [ + 105.7071654, + 20.9288476 + ], + [ + 105.7057398, + 20.9309393 + ], + [ + 105.7059853, + 20.932243 + ], + [ + 105.7053362, + 20.9321102 + ], + [ + 105.705286, + 20.9323083 + ], + [ + 105.705286, + 20.9328657 + ], + [ + 105.7060977, + 20.9332622 + ], + [ + 105.7062814, + 20.9332193 + ], + [ + 105.7066132, + 20.9335625 + ], + [ + 105.7093789, + 20.9349299 + ], + [ + 105.7107779, + 20.9352814 + ], + [ + 105.7121798, + 20.93527 + ], + [ + 105.7134798, + 20.9349984 + ], + [ + 105.7178063, + 20.9335345 + ], + [ + 105.7250056, + 20.9316244 + ], + [ + 105.7264169, + 20.9297049 + ], + [ + 105.7280666, + 20.9299151 + ], + [ + 105.7298443, + 20.9307515 + ], + [ + 105.7261417, + 20.9405401 + ], + [ + 105.7255063, + 20.9413113 + ], + [ + 105.7247391, + 20.9416991 + ], + [ + 105.7241736, + 20.9419202 + ], + [ + 105.7236308, + 20.9419196 + ], + [ + 105.7232412, + 20.941801 + ], + [ + 105.7228202, + 20.9411291 + ], + [ + 105.7227487, + 20.9379561 + ], + [ + 105.7225675, + 20.9369273 + ], + [ + 105.7220628, + 20.9358939 + ], + [ + 105.7213795, + 20.9351926 + ], + [ + 105.7206924, + 20.9348456 + ], + [ + 105.7192936, + 20.9344719 + ], + [ + 105.7165506, + 20.9346216 + ], + [ + 105.7140359, + 20.9357725 + ], + [ + 105.7120288, + 20.9377495 + ], + [ + 105.7113964, + 20.9389919 + ], + [ + 105.7111557, + 20.9403409 + ], + [ + 105.7114629, + 20.9416936 + ], + [ + 105.7125274, + 20.9431986 + ], + [ + 105.713276, + 20.9438777 + ], + [ + 105.7137747, + 20.9447244 + ], + [ + 105.7152879, + 20.9456488 + ], + [ + 105.7163572, + 20.9458064 + ], + [ + 105.7178057, + 20.9469006 + ], + [ + 105.722507, + 20.9489459 + ], + [ + 105.7251162, + 20.950964 + ], + [ + 105.7231951, + 20.9523022 + ], + [ + 105.7201469, + 20.9538777 + ], + [ + 105.7179755, + 20.9538752 + ], + [ + 105.7171977, + 20.9548471 + ], + [ + 105.7155079, + 20.9559242 + ], + [ + 105.7142633, + 20.9561947 + ], + [ + 105.7123241, + 20.9555081 + ], + [ + 105.7123455, + 20.9559592 + ], + [ + 105.7116645, + 20.9557694 + ], + [ + 105.7114765, + 20.9562322 + ], + [ + 105.7111949, + 20.9561546 + ], + [ + 105.7107538, + 20.9564332 + ], + [ + 105.7091553, + 20.9577158 + ], + [ + 105.7072374, + 20.9562704 + ], + [ + 105.7061416, + 20.9572467 + ], + [ + 105.7046554, + 20.9579054 + ], + [ + 105.7044421, + 20.9568261 + ], + [ + 105.70288, + 20.9570814 + ], + [ + 105.7007168, + 20.9570765 + ], + [ + 105.700097, + 20.9563766 + ], + [ + 105.6991759, + 20.9558665 + ], + [ + 105.6975108, + 20.9568559 + ], + [ + 105.696373, + 20.9549022 + ], + [ + 105.6945035, + 20.9552504 + ], + [ + 105.6935774, + 20.9557532 + ], + [ + 105.6933415, + 20.9567301 + ], + [ + 105.6935996, + 20.9575022 + ], + [ + 105.6951874, + 20.9598366 + ], + [ + 105.6949353, + 20.9602875 + ], + [ + 105.6958634, + 20.9628422 + ], + [ + 105.6962086, + 20.9643896 + ], + [ + 105.6955576, + 20.9646156 + ], + [ + 105.6955951, + 20.9647909 + ], + [ + 105.6953819, + 20.9648413 + ], + [ + 105.6931871, + 20.9621878 + ], + [ + 105.6924923, + 20.9615606 + ], + [ + 105.6903058, + 20.9624114 + ], + [ + 105.6898338, + 20.9620708 + ], + [ + 105.6887171, + 20.962232 + ], + [ + 105.6857625, + 20.9618187 + ], + [ + 105.6864539, + 20.9584498 + ], + [ + 105.6829412, + 20.9579154 + ], + [ + 105.6833107, + 20.9553459 + ], + [ + 105.6797111, + 20.9544764 + ], + [ + 105.6799284, + 20.9540919 + ], + [ + 105.6794941, + 20.9537736 + ], + [ + 105.6797057, + 20.9532966 + ], + [ + 105.6792478, + 20.9530835 + ], + [ + 105.6793088, + 20.952966 + ], + [ + 105.6789896, + 20.9528257 + ], + [ + 105.6790996, + 20.9526478 + ], + [ + 105.6789252, + 20.9525511 + ], + [ + 105.6792528, + 20.9517227 + ], + [ + 105.6792471, + 20.9509596 + ], + [ + 105.6789145, + 20.9510197 + ], + [ + 105.6784934, + 20.9506139 + ], + [ + 105.6772462, + 20.9510297 + ], + [ + 105.6765724, + 20.9515407 + ], + [ + 105.6629679, + 20.9490384 + ], + [ + 105.6520146, + 20.9515908 + ], + [ + 105.6461897, + 20.9511052 + ], + [ + 105.6456533, + 20.9522663 + ], + [ + 105.6451722, + 20.9520794 + ], + [ + 105.6448746, + 20.9521419 + ], + [ + 105.6416578, + 20.9554093 + ], + [ + 105.640111, + 20.9543762 + ], + [ + 105.6393786, + 20.9540981 + ], + [ + 105.63944, + 20.9550175 + ], + [ + 105.6363827, + 20.9545315 + ], + [ + 105.6362298, + 20.9549222 + ], + [ + 105.6362766, + 20.9554456 + ], + [ + 105.6339828, + 20.9557324 + ], + [ + 105.6334162, + 20.9538953 + ], + [ + 105.6328046, + 20.9498324 + ], + [ + 105.632525, + 20.9498475 + ], + [ + 105.6317049, + 20.9493765 + ], + [ + 105.6299041, + 20.9481538 + ], + [ + 105.6306331, + 20.9473232 + ], + [ + 105.6291868, + 20.9466614 + ], + [ + 105.6292816, + 20.9462579 + ], + [ + 105.6286984, + 20.9459717 + ], + [ + 105.6283568, + 20.9462522 + ], + [ + 105.6274429, + 20.9453936 + ], + [ + 105.6274429, + 20.9449803 + ], + [ + 105.6270245, + 20.9447198 + ], + [ + 105.6265607, + 20.94392 + ], + [ + 105.6267321, + 20.9432819 + ], + [ + 105.6262439, + 20.9432869 + ], + [ + 105.6259757, + 20.9427684 + ], + [ + 105.6258738, + 20.9419618 + ], + [ + 105.626024, + 20.9411351 + ], + [ + 105.6248738, + 20.9407593 + ], + [ + 105.6245738, + 20.9408746 + ], + [ + 105.6242667, + 20.9403827 + ], + [ + 105.6220942, + 20.9400569 + ], + [ + 105.6235434, + 20.9386079 + ], + [ + 105.6236261, + 20.9380689 + ], + [ + 105.62247, + 20.937683 + ], + [ + 105.620107, + 20.9363754 + ], + [ + 105.6182329, + 20.9361215 + ], + [ + 105.6183878, + 20.9357147 + ], + [ + 105.6184915, + 20.9340204 + ], + [ + 105.6187896, + 20.9336903 + ], + [ + 105.6199309, + 20.933239 + ], + [ + 105.6202269, + 20.9328465 + ], + [ + 105.620255, + 20.9324539 + ], + [ + 105.6188178, + 20.9304315 + ], + [ + 105.617919, + 20.9301179 + ], + [ + 105.6171263, + 20.9302367 + ], + [ + 105.6167545, + 20.930593 + ], + [ + 105.6163632, + 20.9320354 + ], + [ + 105.6157248, + 20.9327212 + ], + [ + 105.6148846, + 20.9331437 + ], + [ + 105.6139969, + 20.9329414 + ], + [ + 105.6127394, + 20.9320038 + ], + [ + 105.6126046, + 20.9315526 + ], + [ + 105.6127364, + 20.9309984 + ], + [ + 105.6148382, + 20.9291871 + ], + [ + 105.6154617, + 20.9280976 + ], + [ + 105.6154218, + 20.9272396 + ], + [ + 105.6149974, + 20.92606 + ], + [ + 105.6145137, + 20.9256082 + ], + [ + 105.609415, + 20.9233652 + ], + [ + 105.6083197, + 20.9233277 + ], + [ + 105.6062187, + 20.9240721 + ], + [ + 105.605418, + 20.9238699 + ], + [ + 105.6042576, + 20.9225622 + ], + [ + 105.6021222, + 20.9225091 + ], + [ + 105.6014515, + 20.9218421 + ], + [ + 105.6011512, + 20.921101 + ], + [ + 105.6012596, + 20.9203622 + ], + [ + 105.6023971, + 20.918827 + ], + [ + 105.6023257, + 20.9184353 + ], + [ + 105.6017324, + 20.9182065 + ], + [ + 105.6006739, + 20.9183777 + ], + [ + 105.5986666, + 20.9183388 + ], + [ + 105.5977772, + 20.9180685 + ], + [ + 105.5974517, + 20.9176177 + ], + [ + 105.597749, + 20.9133589 + ], + [ + 105.5974625, + 20.9129618 + ], + [ + 105.5966353, + 20.9128799 + ], + [ + 105.5946293, + 20.91371 + ], + [ + 105.5940946, + 20.9136232 + ], + [ + 105.5934034, + 20.913192 + ], + [ + 105.5929778, + 20.9126548 + ], + [ + 105.5927836, + 20.9110265 + ], + [ + 105.5918848, + 20.9115677 + ], + [ + 105.5912405, + 20.9114825 + ], + [ + 105.5911057, + 20.9116315 + ], + [ + 105.5923381, + 20.9123519 + ], + [ + 105.5923408, + 20.9125799 + ], + [ + 105.5908712, + 20.9127469 + ], + [ + 105.589833, + 20.9125273 + ], + [ + 105.589833, + 20.9124045 + ], + [ + 105.5881024, + 20.9122967 + ], + [ + 105.5878025, + 20.9116629 + ], + [ + 105.5871186, + 20.9112169 + ], + [ + 105.5858472, + 20.9111931 + ], + [ + 105.5850248, + 20.9101417 + ], + [ + 105.5839907, + 20.9109623 + ], + [ + 105.5837486, + 20.9105088 + ], + [ + 105.5830621, + 20.9106532 + ], + [ + 105.5825266, + 20.9101646 + ], + [ + 105.5823952, + 20.9098238 + ], + [ + 105.5825105, + 20.9094655 + ], + [ + 105.5823711, + 20.9093853 + ], + [ + 105.581703, + 20.9097215 + ], + [ + 105.5813697, + 20.9104759 + ], + [ + 105.581475, + 20.9107289 + ], + [ + 105.5822425, + 20.9111506 + ], + [ + 105.5823479, + 20.9117832 + ], + [ + 105.5822576, + 20.912219 + ], + [ + 105.5818836, + 20.9124293 + ], + [ + 105.5815959, + 20.9138377 + ], + [ + 105.5801421, + 20.9138928 + ], + [ + 105.5800348, + 20.914444 + ], + [ + 105.5797841, + 20.9145765 + ], + [ + 105.5795225, + 20.9151856 + ], + [ + 105.5794635, + 20.9157619 + ], + [ + 105.5791122, + 20.9157168 + ], + [ + 105.5790278, + 20.915995 + ], + [ + 105.577289, + 20.9151819 + ], + [ + 105.574885, + 20.9134702 + ], + [ + 105.5726314, + 20.9137399 + ], + [ + 105.5720406, + 20.9135931 + ], + [ + 105.5713123, + 20.9130999 + ], + [ + 105.5672839, + 20.9111539 + ], + [ + 105.5629105, + 20.9093269 + ], + [ + 105.5619683, + 20.9093894 + ], + [ + 105.5617242, + 20.9091671 + ], + [ + 105.5613443, + 20.9092266 + ], + [ + 105.5604344, + 20.9098805 + ], + [ + 105.5601647, + 20.9098813 + ], + [ + 105.5585271, + 20.9087876 + ], + [ + 105.5579179, + 20.9081797 + ], + [ + 105.5586916, + 20.9075671 + ], + [ + 105.5588856, + 20.9071571 + ], + [ + 105.560289, + 20.905846 + ], + [ + 105.5600032, + 20.9055552 + ], + [ + 105.5584671, + 20.9067519 + ], + [ + 105.5575742, + 20.9070302 + ], + [ + 105.5571437, + 20.9069199 + ], + [ + 105.5564558, + 20.9063205 + ], + [ + 105.5554955, + 20.9047452 + ], + [ + 105.5561847, + 20.9040305 + ], + [ + 105.5584603, + 20.9026042 + ], + [ + 105.5592037, + 20.9023109 + ], + [ + 105.5596655, + 20.9017186 + ], + [ + 105.5593013, + 20.9014861 + ], + [ + 105.5593013, + 20.9012933 + ], + [ + 105.5611855, + 20.9007876 + ], + [ + 105.5616907, + 20.9005179 + ], + [ + 105.5624991, + 20.8994189 + ], + [ + 105.563625, + 20.8992773 + ], + [ + 105.5638082, + 20.8990084 + ], + [ + 105.563792, + 20.898672 + ], + [ + 105.5626295, + 20.8985522 + ], + [ + 105.5622308, + 20.8986533 + ], + [ + 105.5618313, + 20.8985379 + ], + [ + 105.5612452, + 20.8980797 + ], + [ + 105.5604636, + 20.8962482 + ], + [ + 105.5600015, + 20.8938443 + ], + [ + 105.5598422, + 20.8907502 + ], + [ + 105.5596129, + 20.8904764 + ], + [ + 105.5585066, + 20.8900936 + ], + [ + 105.5573265, + 20.8894526 + ], + [ + 105.5568108, + 20.8888649 + ], + [ + 105.5563422, + 20.887853 + ], + [ + 105.5555983, + 20.8874863 + ], + [ + 105.5555575, + 20.8867038 + ], + [ + 105.5549762, + 20.8863467 + ], + [ + 105.5557308, + 20.8852845 + ], + [ + 105.5560389, + 20.8850858 + ], + [ + 105.5561685, + 20.883689 + ], + [ + 105.5528535, + 20.8832445 + ], + [ + 105.5529419, + 20.8827499 + ], + [ + 105.5534072, + 20.882775 + ], + [ + 105.5536848, + 20.8825232 + ], + [ + 105.5537224, + 20.8801399 + ], + [ + 105.5541199, + 20.879681 + ], + [ + 105.5563885, + 20.8795334 + ], + [ + 105.5592755, + 20.8808011 + ], + [ + 105.5594894, + 20.8802419 + ], + [ + 105.5601309, + 20.8797953 + ], + [ + 105.5598652, + 20.8795828 + ], + [ + 105.5594301, + 20.8795665 + ], + [ + 105.559297, + 20.879389 + ], + [ + 105.5593896, + 20.8788554 + ], + [ + 105.5599935, + 20.8784445 + ], + [ + 105.5599929, + 20.8782845 + ], + [ + 105.5596517, + 20.8781255 + ], + [ + 105.5595933, + 20.8776812 + ], + [ + 105.5606322, + 20.8772868 + ], + [ + 105.5609719, + 20.8770544 + ], + [ + 105.561235, + 20.8765736 + ], + [ + 105.561783, + 20.8764117 + ], + [ + 105.561877, + 20.8762692 + ], + [ + 105.5616109, + 20.8759145 + ], + [ + 105.5616646, + 20.8755648 + ], + [ + 105.5636909, + 20.8761862 + ], + [ + 105.5642439, + 20.8757753 + ], + [ + 105.564589, + 20.8750175 + ], + [ + 105.5659375, + 20.875105 + ], + [ + 105.5663737, + 20.8738324 + ], + [ + 105.5672413, + 20.8732568 + ], + [ + 105.5677281, + 20.8726212 + ], + [ + 105.5685533, + 20.8723219 + ], + [ + 105.5695455, + 20.8702581 + ], + [ + 105.5704903, + 20.8698757 + ], + [ + 105.5711001, + 20.8691677 + ], + [ + 105.5718963, + 20.8687919 + ], + [ + 105.5731287, + 20.8690613 + ], + [ + 105.5737099, + 20.8676356 + ], + [ + 105.5749904, + 20.8671612 + ], + [ + 105.5755328, + 20.8672943 + ], + [ + 105.5756766, + 20.8664585 + ], + [ + 105.5754679, + 20.8640169 + ], + [ + 105.5793931, + 20.8614299 + ], + [ + 105.5801959, + 20.8625287 + ], + [ + 105.5807994, + 20.8612906 + ], + [ + 105.582339, + 20.8594208 + ], + [ + 105.5830156, + 20.8588156 + ], + [ + 105.5857391, + 20.8572037 + ], + [ + 105.5853368, + 20.8565931 + ], + [ + 105.5845329, + 20.8561353 + ], + [ + 105.5844949, + 20.8559743 + ], + [ + 105.5848124, + 20.8556858 + ], + [ + 105.5851014, + 20.8544799 + ], + [ + 105.5861004, + 20.8537522 + ], + [ + 105.5862269, + 20.8535033 + ], + [ + 105.5862413, + 20.8529227 + ], + [ + 105.5847946, + 20.850652 + ], + [ + 105.5847518, + 20.8484014 + ], + [ + 105.5862265, + 20.8478289 + ], + [ + 105.5864508, + 20.8475278 + ], + [ + 105.5858213, + 20.8468458 + ], + [ + 105.5862768, + 20.846432 + ], + [ + 105.5855331, + 20.8462376 + ], + [ + 105.5856833, + 20.8456637 + ], + [ + 105.5855285, + 20.845055 + ], + [ + 105.5862706, + 20.8448194 + ], + [ + 105.5863639, + 20.8443174 + ], + [ + 105.5866114, + 20.8442807 + ], + [ + 105.5869166, + 20.8443872 + ], + [ + 105.5871464, + 20.844709 + ], + [ + 105.5874738, + 20.8456217 + ], + [ + 105.5877791, + 20.845764 + ], + [ + 105.5881787, + 20.8456372 + ], + [ + 105.5881574, + 20.8450639 + ], + [ + 105.5878317, + 20.8445811 + ], + [ + 105.5873364, + 20.8445649 + ], + [ + 105.587107, + 20.8443506 + ], + [ + 105.5871062, + 20.8441715 + ], + [ + 105.5876388, + 20.8439726 + ], + [ + 105.5876756, + 20.8436498 + ], + [ + 105.5874073, + 20.8432209 + ], + [ + 105.5869874, + 20.8430072 + ], + [ + 105.5859213, + 20.8431721 + ], + [ + 105.5852803, + 20.842784 + ], + [ + 105.5852026, + 20.8419219 + ], + [ + 105.5862503, + 20.8412725 + ], + [ + 105.5863464, + 20.8410187 + ], + [ + 105.5861833, + 20.8406644 + ], + [ + 105.5855668, + 20.8402406 + ], + [ + 105.5851759, + 20.8395424 + ], + [ + 105.5835997, + 20.8387954 + ], + [ + 105.5834556, + 20.8377915 + ], + [ + 105.5820847, + 20.8374613 + ], + [ + 105.5816413, + 20.8371381 + ], + [ + 105.5810558, + 20.8363284 + ], + [ + 105.580354, + 20.8361482 + ], + [ + 105.5802878, + 20.8357324 + ], + [ + 105.5805977, + 20.8349907 + ], + [ + 105.5803796, + 20.8337296 + ], + [ + 105.5804411, + 20.8305702 + ], + [ + 105.5795998, + 20.8294649 + ], + [ + 105.5795585, + 20.826712 + ], + [ + 105.5777986, + 20.8248367 + ], + [ + 105.5766518, + 20.8240962 + ], + [ + 105.5755337, + 20.8226953 + ], + [ + 105.5746458, + 20.8223396 + ], + [ + 105.5718978, + 20.8217013 + ], + [ + 105.5685557, + 20.8220622 + ], + [ + 105.5665537, + 20.821873 + ], + [ + 105.5653308, + 20.821942 + ], + [ + 105.5638585, + 20.8222254 + ], + [ + 105.5630127, + 20.822212 + ], + [ + 105.5622482, + 20.8218964 + ], + [ + 105.561679, + 20.8212926 + ], + [ + 105.560521, + 20.8191907 + ], + [ + 105.5601405, + 20.8177109 + ], + [ + 105.5601398, + 20.8160954 + ], + [ + 105.5597568, + 20.813822 + ], + [ + 105.5593104, + 20.8125059 + ], + [ + 105.558464, + 20.8113967 + ], + [ + 105.555495, + 20.8089949 + ], + [ + 105.5536591, + 20.8083598 + ], + [ + 105.5510221, + 20.807929 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-danphuong.json b/src/data/boundaries/hn/hn-danphuong.json new file mode 100644 index 0000000..837ed1d --- /dev/null +++ b/src/data/boundaries/hn/hn-danphuong.json @@ -0,0 +1,998 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-DANPHUONG", + "name": "Dan Phuong", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 78.4, + "bbox": [ + 105.62321, + 21.06614, + 105.74057, + 21.17336 + ], + "center": [ + 21.11385, + 105.67739 + ], + "generatedAt": "2026-08-30T07:33:31.743Z", + "osm": "relation/7115780" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.6232142, + 21.1351267 + ], + [ + 105.6234883, + 21.1341216 + ], + [ + 105.6253135, + 21.1317565 + ], + [ + 105.6286663, + 21.1287595 + ], + [ + 105.6299934, + 21.1270003 + ], + [ + 105.6304026, + 21.1261905 + ], + [ + 105.6303826, + 21.1245616 + ], + [ + 105.6298338, + 21.1238542 + ], + [ + 105.6280875, + 21.1225418 + ], + [ + 105.6272215, + 21.1222092 + ], + [ + 105.625225, + 21.1209983 + ], + [ + 105.6243925, + 21.1202217 + ], + [ + 105.6243925, + 21.1185962 + ], + [ + 105.6250627, + 21.1175761 + ], + [ + 105.6260433, + 21.1166614 + ], + [ + 105.629789, + 21.113978 + ], + [ + 105.6312804, + 21.1136292 + ], + [ + 105.6369767, + 21.1116116 + ], + [ + 105.6371333, + 21.1117231 + ], + [ + 105.6375546, + 21.1114975 + ], + [ + 105.6372728, + 21.1099561 + ], + [ + 105.6394702, + 21.1095991 + ], + [ + 105.6385442, + 21.1054658 + ], + [ + 105.6363967, + 21.107024 + ], + [ + 105.6342593, + 21.1007474 + ], + [ + 105.6400122, + 21.0987586 + ], + [ + 105.6425373, + 21.0973355 + ], + [ + 105.6446079, + 21.0951669 + ], + [ + 105.6458912, + 21.0940879 + ], + [ + 105.647371, + 21.0909683 + ], + [ + 105.647399, + 21.0894163 + ], + [ + 105.646813, + 21.0886543 + ], + [ + 105.645531, + 21.0878063 + ], + [ + 105.645177, + 21.0871933 + ], + [ + 105.6448, + 21.0858583 + ], + [ + 105.644816, + 21.0846963 + ], + [ + 105.645676, + 21.0833093 + ], + [ + 105.645715, + 21.0828633 + ], + [ + 105.64533, + 21.0795713 + ], + [ + 105.645231, + 21.075942 + ], + [ + 105.646384, + 21.0704763 + ], + [ + 105.646589, + 21.0700493 + ], + [ + 105.648172, + 21.0688803 + ], + [ + 105.648913, + 21.0684903 + ], + [ + 105.649902, + 21.0682543 + ], + [ + 105.651964, + 21.0681883 + ], + [ + 105.652708, + 21.0684563 + ], + [ + 105.656842, + 21.0704743 + ], + [ + 105.657941, + 21.0717683 + ], + [ + 105.658479, + 21.0720763 + ], + [ + 105.6591826, + 21.0721043 + ], + [ + 105.6595379, + 21.071964 + ], + [ + 105.660167, + 21.0713533 + ], + [ + 105.661558, + 21.0687133 + ], + [ + 105.6636599, + 21.0661423 + ], + [ + 105.6655423, + 21.0666612 + ], + [ + 105.6667126, + 21.0675512 + ], + [ + 105.6660082, + 21.0683503 + ], + [ + 105.6656136, + 21.0679953 + ], + [ + 105.6646736, + 21.0679168 + ], + [ + 105.6638742, + 21.0680984 + ], + [ + 105.6637555, + 21.0706619 + ], + [ + 105.6667732, + 21.0726336 + ], + [ + 105.6670585, + 21.0724021 + ], + [ + 105.6687745, + 21.0718207 + ], + [ + 105.6698921, + 21.0704552 + ], + [ + 105.6704125, + 21.0700465 + ], + [ + 105.6709285, + 21.0703379 + ], + [ + 105.6714671, + 21.0704021 + ], + [ + 105.6723339, + 21.0702111 + ], + [ + 105.6725343, + 21.0703123 + ], + [ + 105.6718014, + 21.0716138 + ], + [ + 105.6731037, + 21.0723544 + ], + [ + 105.6730113, + 21.0725328 + ], + [ + 105.6760818, + 21.073839 + ], + [ + 105.6748646, + 21.0755127 + ], + [ + 105.6759457, + 21.0762558 + ], + [ + 105.6755436, + 21.0766896 + ], + [ + 105.6795661, + 21.0810304 + ], + [ + 105.6774992, + 21.0815813 + ], + [ + 105.6776299, + 21.0820597 + ], + [ + 105.6772528, + 21.0828747 + ], + [ + 105.6774194, + 21.0829666 + ], + [ + 105.6774119, + 21.0834286 + ], + [ + 105.6770984, + 21.0835894 + ], + [ + 105.6773275, + 21.0843117 + ], + [ + 105.6787659, + 21.0849019 + ], + [ + 105.6791144, + 21.0849433 + ], + [ + 105.6799874, + 21.0846818 + ], + [ + 105.680754, + 21.0853376 + ], + [ + 105.6810443, + 21.0853318 + ], + [ + 105.681772, + 21.0858425 + ], + [ + 105.6832408, + 21.0871174 + ], + [ + 105.6838481, + 21.0873435 + ], + [ + 105.6837754, + 21.0875349 + ], + [ + 105.6850631, + 21.0878272 + ], + [ + 105.6853127, + 21.0885772 + ], + [ + 105.6857238, + 21.089108 + ], + [ + 105.6857241, + 21.0894216 + ], + [ + 105.6868217, + 21.090284 + ], + [ + 105.6868197, + 21.0898583 + ], + [ + 105.6872821, + 21.0894921 + ], + [ + 105.6874715, + 21.0895577 + ], + [ + 105.6881985, + 21.0892207 + ], + [ + 105.6883117, + 21.0887667 + ], + [ + 105.6886311, + 21.0888257 + ], + [ + 105.6887389, + 21.0884804 + ], + [ + 105.6900243, + 21.0885836 + ], + [ + 105.6901243, + 21.0883206 + ], + [ + 105.6907182, + 21.0882351 + ], + [ + 105.6955784, + 21.0863373 + ], + [ + 105.6968242, + 21.0867724 + ], + [ + 105.6976076, + 21.084954 + ], + [ + 105.6964687, + 21.0849105 + ], + [ + 105.6964734, + 21.0834671 + ], + [ + 105.6982362, + 21.0835771 + ], + [ + 105.6980501, + 21.0825966 + ], + [ + 105.7014809, + 21.0808355 + ], + [ + 105.7011983, + 21.0800199 + ], + [ + 105.7014318, + 21.0797668 + ], + [ + 105.7005633, + 21.07777 + ], + [ + 105.6999267, + 21.0773198 + ], + [ + 105.6997612, + 21.0765248 + ], + [ + 105.6988449, + 21.0750055 + ], + [ + 105.7048673, + 21.0714623 + ], + [ + 105.7053572, + 21.0722031 + ], + [ + 105.706726, + 21.0718596 + ], + [ + 105.7071262, + 21.0720236 + ], + [ + 105.7071802, + 21.0718758 + ], + [ + 105.7076695, + 21.0719715 + ], + [ + 105.7080063, + 21.0715577 + ], + [ + 105.7079076, + 21.0712771 + ], + [ + 105.7082411, + 21.071109 + ], + [ + 105.7091892, + 21.0740592 + ], + [ + 105.7159534, + 21.0722462 + ], + [ + 105.7159004, + 21.0715435 + ], + [ + 105.7172148, + 21.0712355 + ], + [ + 105.717893, + 21.0724994 + ], + [ + 105.7176567, + 21.0732149 + ], + [ + 105.7182243, + 21.0734808 + ], + [ + 105.7179651, + 21.073752 + ], + [ + 105.7188904, + 21.074765 + ], + [ + 105.7195249, + 21.0728198 + ], + [ + 105.7205713, + 21.0721978 + ], + [ + 105.7206415, + 21.0724823 + ], + [ + 105.7204228, + 21.072575 + ], + [ + 105.7205562, + 21.0729387 + ], + [ + 105.7210955, + 21.0731548 + ], + [ + 105.7213751, + 21.0738984 + ], + [ + 105.7214755, + 21.0738322 + ], + [ + 105.7226259, + 21.0744534 + ], + [ + 105.722399, + 21.0747635 + ], + [ + 105.7229578, + 21.0747123 + ], + [ + 105.7241279, + 21.075079 + ], + [ + 105.7238569, + 21.0756562 + ], + [ + 105.7239456, + 21.0759283 + ], + [ + 105.7242036, + 21.0760387 + ], + [ + 105.7240961, + 21.0767373 + ], + [ + 105.7242662, + 21.0769439 + ], + [ + 105.7243497, + 21.0775992 + ], + [ + 105.7252621, + 21.0779078 + ], + [ + 105.7252699, + 21.0784772 + ], + [ + 105.7255537, + 21.0785361 + ], + [ + 105.7255006, + 21.0789379 + ], + [ + 105.7258054, + 21.0791807 + ], + [ + 105.7256631, + 21.0797413 + ], + [ + 105.7261434, + 21.0797391 + ], + [ + 105.7261638, + 21.0799543 + ], + [ + 105.7263841, + 21.0799384 + ], + [ + 105.7270607, + 21.0812317 + ], + [ + 105.727371, + 21.0815494 + ], + [ + 105.7277116, + 21.0814124 + ], + [ + 105.7278099, + 21.081731 + ], + [ + 105.727674, + 21.0830562 + ], + [ + 105.7279997, + 21.083015 + ], + [ + 105.7279064, + 21.0844887 + ], + [ + 105.7266735, + 21.085195 + ], + [ + 105.726599, + 21.0853843 + ], + [ + 105.7269128, + 21.0869468 + ], + [ + 105.7267844, + 21.08725 + ], + [ + 105.7269863, + 21.0875725 + ], + [ + 105.7269955, + 21.0884496 + ], + [ + 105.726252, + 21.0884495 + ], + [ + 105.7261578, + 21.0891501 + ], + [ + 105.7265122, + 21.0919147 + ], + [ + 105.7262942, + 21.0932899 + ], + [ + 105.7261293, + 21.0935348 + ], + [ + 105.7269542, + 21.0939562 + ], + [ + 105.7259417, + 21.095795 + ], + [ + 105.7247853, + 21.0969532 + ], + [ + 105.7252674, + 21.096873 + ], + [ + 105.7262363, + 21.0991244 + ], + [ + 105.7274975, + 21.0988334 + ], + [ + 105.7286733, + 21.0998273 + ], + [ + 105.7289175, + 21.0996337 + ], + [ + 105.7294277, + 21.0995887 + ], + [ + 105.7298323, + 21.1009218 + ], + [ + 105.7310919, + 21.100615 + ], + [ + 105.7311677, + 21.101054 + ], + [ + 105.731791, + 21.1012382 + ], + [ + 105.7318037, + 21.1013992 + ], + [ + 105.7335099, + 21.1022258 + ], + [ + 105.740566, + 21.1081244 + ], + [ + 105.738269, + 21.1096484 + ], + [ + 105.735302, + 21.1131721 + ], + [ + 105.7363918, + 21.113523 + ], + [ + 105.7321391, + 21.1218232 + ], + [ + 105.7304145, + 21.1263186 + ], + [ + 105.7286309, + 21.127151 + ], + [ + 105.7279578, + 21.1276248 + ], + [ + 105.7269119, + 21.1296485 + ], + [ + 105.7244352, + 21.13199 + ], + [ + 105.7249459, + 21.1325338 + ], + [ + 105.7239945, + 21.1330415 + ], + [ + 105.7238063, + 21.1327841 + ], + [ + 105.7195116, + 21.1341786 + ], + [ + 105.7192349, + 21.1321075 + ], + [ + 105.71642, + 21.133357 + ], + [ + 105.711291, + 21.136382 + ], + [ + 105.706103, + 21.139114 + ], + [ + 105.701448, + 21.141234 + ], + [ + 105.694598, + 21.143035 + ], + [ + 105.685496, + 21.146238 + ], + [ + 105.675185, + 21.147611 + ], + [ + 105.6731391, + 21.1476627 + ], + [ + 105.667178, + 21.148283 + ], + [ + 105.661881, + 21.148384 + ], + [ + 105.657907, + 21.150081 + ], + [ + 105.6554277, + 21.1522683 + ], + [ + 105.6368172, + 21.1580849 + ], + [ + 105.633042, + 21.1686774 + ], + [ + 105.6310592, + 21.1703849 + ], + [ + 105.6263194, + 21.1733562 + ], + [ + 105.6276567, + 21.1496248 + ], + [ + 105.6277266, + 21.1458104 + ], + [ + 105.6278687, + 21.145583 + ], + [ + 105.6278458, + 21.1439434 + ], + [ + 105.6276399, + 21.1435062 + ], + [ + 105.6264573, + 21.1425442 + ], + [ + 105.626241, + 21.1421571 + ], + [ + 105.6234945, + 21.1360542 + ], + [ + 105.6232142, + 21.1351267 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-donganh.json b/src/data/boundaries/hn/hn-donganh.json new file mode 100644 index 0000000..87fcce0 --- /dev/null +++ b/src/data/boundaries/hn/hn-donganh.json @@ -0,0 +1,1588 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-DONGANH", + "name": "Dong Anh", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 186.1, + "bbox": [ + 105.73214, + 21.06689, + 105.92674, + 21.20628 + ], + "center": [ + 21.13619, + 105.84265 + ], + "generatedAt": "2026-08-30T07:33:36.328Z", + "osm": "relation/7114815" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.7321391, + 21.1218232 + ], + [ + 105.7363918, + 21.113523 + ], + [ + 105.735302, + 21.1131721 + ], + [ + 105.738269, + 21.1096484 + ], + [ + 105.740566, + 21.1081244 + ], + [ + 105.748926, + 21.0989445 + ], + [ + 105.7517735, + 21.0977709 + ], + [ + 105.7608903, + 21.0990715 + ], + [ + 105.7731891, + 21.0982549 + ], + [ + 105.8093796, + 21.0966938 + ], + [ + 105.8115686, + 21.0964006 + ], + [ + 105.8181654, + 21.0949711 + ], + [ + 105.8271842, + 21.0913874 + ], + [ + 105.834592, + 21.0865736 + ], + [ + 105.8410552, + 21.0808132 + ], + [ + 105.8441845, + 21.0804038 + ], + [ + 105.846071, + 21.0799644 + ], + [ + 105.848901, + 21.0775404 + ], + [ + 105.852719, + 21.0748454 + ], + [ + 105.859975, + 21.0688544 + ], + [ + 105.861983, + 21.0677094 + ], + [ + 105.864115, + 21.0669794 + ], + [ + 105.866492, + 21.0668914 + ], + [ + 105.86863, + 21.0672214 + ], + [ + 105.8769172, + 21.0704398 + ], + [ + 105.8778604, + 21.0709307 + ], + [ + 105.8830911, + 21.0748154 + ], + [ + 105.8848871, + 21.0759447 + ], + [ + 105.8879581, + 21.0774476 + ], + [ + 105.8907941, + 21.0785021 + ], + [ + 105.8934199, + 21.0792939 + ], + [ + 105.8956617, + 21.0797776 + ], + [ + 105.8975328, + 21.0799138 + ], + [ + 105.8993696, + 21.0798257 + ], + [ + 105.9011892, + 21.0793852 + ], + [ + 105.902726, + 21.0784186 + ], + [ + 105.9036326, + 21.07973 + ], + [ + 105.9048799, + 21.082513 + ], + [ + 105.9048504, + 21.0845576 + ], + [ + 105.9050757, + 21.0859917 + ], + [ + 105.9048881, + 21.0869527 + ], + [ + 105.9049203, + 21.0881239 + ], + [ + 105.9057199, + 21.0897177 + ], + [ + 105.9052795, + 21.0896329 + ], + [ + 105.9049108, + 21.0899039 + ], + [ + 105.9042884, + 21.0892495 + ], + [ + 105.9020501, + 21.0918439 + ], + [ + 105.9013957, + 21.093209 + ], + [ + 105.8991882, + 21.0957891 + ], + [ + 105.8984587, + 21.0969227 + ], + [ + 105.898338, + 21.0968676 + ], + [ + 105.8964054, + 21.098329 + ], + [ + 105.8978029, + 21.1011555 + ], + [ + 105.8992861, + 21.1009215 + ], + [ + 105.9002859, + 21.1062839 + ], + [ + 105.9013849, + 21.1053256 + ], + [ + 105.9015593, + 21.1054782 + ], + [ + 105.9035924, + 21.1099422 + ], + [ + 105.9047927, + 21.1117538 + ], + [ + 105.9054324, + 21.1125257 + ], + [ + 105.9056792, + 21.1125157 + ], + [ + 105.9057355, + 21.1139132 + ], + [ + 105.9055558, + 21.1141547 + ], + [ + 105.9072241, + 21.1156071 + ], + [ + 105.9096783, + 21.117311 + ], + [ + 105.9118134, + 21.1180917 + ], + [ + 105.9155906, + 21.1189427 + ], + [ + 105.915387, + 21.122021 + ], + [ + 105.9145088, + 21.1219505 + ], + [ + 105.9143552, + 21.1220769 + ], + [ + 105.9142904, + 21.1226986 + ], + [ + 105.9137251, + 21.1226405 + ], + [ + 105.913684, + 21.1228269 + ], + [ + 105.9145478, + 21.1229519 + ], + [ + 105.9129209, + 21.126243 + ], + [ + 105.9142591, + 21.1272432 + ], + [ + 105.9145625, + 21.126819 + ], + [ + 105.9152013, + 21.1264112 + ], + [ + 105.9157769, + 21.1269513 + ], + [ + 105.9155937, + 21.1270964 + ], + [ + 105.9192856, + 21.1299253 + ], + [ + 105.9177977, + 21.132107 + ], + [ + 105.9218934, + 21.1353555 + ], + [ + 105.923614, + 21.1330856 + ], + [ + 105.9245969, + 21.1333192 + ], + [ + 105.9245443, + 21.1342214 + ], + [ + 105.9251796, + 21.1345 + ], + [ + 105.9253605, + 21.1363651 + ], + [ + 105.9238471, + 21.1381543 + ], + [ + 105.9263232, + 21.1405158 + ], + [ + 105.9252582, + 21.1415871 + ], + [ + 105.92619, + 21.142283 + ], + [ + 105.9264232, + 21.1435346 + ], + [ + 105.9262444, + 21.1435308 + ], + [ + 105.9267356, + 21.1445232 + ], + [ + 105.9251402, + 21.1451192 + ], + [ + 105.9256536, + 21.1469203 + ], + [ + 105.9234417, + 21.1472417 + ], + [ + 105.9221023, + 21.1518658 + ], + [ + 105.9196392, + 21.1553141 + ], + [ + 105.920396, + 21.1565058 + ], + [ + 105.9211585, + 21.1595367 + ], + [ + 105.9229154, + 21.1617116 + ], + [ + 105.9224507, + 21.1619501 + ], + [ + 105.922254, + 21.1623355 + ], + [ + 105.9225565, + 21.1631282 + ], + [ + 105.9221188, + 21.1634582 + ], + [ + 105.9192928, + 21.1631857 + ], + [ + 105.9184353, + 21.1652134 + ], + [ + 105.9177016, + 21.1663076 + ], + [ + 105.9171827, + 21.1679361 + ], + [ + 105.9170655, + 21.1687826 + ], + [ + 105.9178374, + 21.1690538 + ], + [ + 105.917542, + 21.1694387 + ], + [ + 105.9172079, + 21.1693165 + ], + [ + 105.917019, + 21.1695979 + ], + [ + 105.9168603, + 21.1715793 + ], + [ + 105.9181351, + 21.1715882 + ], + [ + 105.9183831, + 21.1735282 + ], + [ + 105.9210797, + 21.1737396 + ], + [ + 105.9209256, + 21.1761473 + ], + [ + 105.9210083, + 21.1763836 + ], + [ + 105.9216735, + 21.1769476 + ], + [ + 105.9202439, + 21.1783903 + ], + [ + 105.9236741, + 21.1827229 + ], + [ + 105.9185903, + 21.1850938 + ], + [ + 105.9160817, + 21.1870037 + ], + [ + 105.915353, + 21.1872642 + ], + [ + 105.9161766, + 21.1888207 + ], + [ + 105.9138812, + 21.1901521 + ], + [ + 105.9132, + 21.1900723 + ], + [ + 105.9122986, + 21.1902265 + ], + [ + 105.9123868, + 21.191994 + ], + [ + 105.9122373, + 21.192016 + ], + [ + 105.9123696, + 21.1923682 + ], + [ + 105.9070493, + 21.1924157 + ], + [ + 105.9070071, + 21.1908258 + ], + [ + 105.9065754, + 21.187298 + ], + [ + 105.9057217, + 21.1844525 + ], + [ + 105.9056149, + 21.1830111 + ], + [ + 105.905162, + 21.182634 + ], + [ + 105.904362, + 21.1827445 + ], + [ + 105.9021748, + 21.1826656 + ], + [ + 105.9008734, + 21.1821828 + ], + [ + 105.900268, + 21.1817437 + ], + [ + 105.900189, + 21.1811667 + ], + [ + 105.90055, + 21.1800661 + ], + [ + 105.9016801, + 21.1786882 + ], + [ + 105.9014102, + 21.1780074 + ], + [ + 105.9007958, + 21.1777495 + ], + [ + 105.8982991, + 21.1775766 + ], + [ + 105.8964182, + 21.1769155 + ], + [ + 105.8959128, + 21.1772298 + ], + [ + 105.8960515, + 21.1781355 + ], + [ + 105.8979709, + 21.1802467 + ], + [ + 105.8985576, + 21.1813149 + ], + [ + 105.8986677, + 21.1823675 + ], + [ + 105.898117, + 21.1833561 + ], + [ + 105.8953492, + 21.1851284 + ], + [ + 105.8928496, + 21.1845161 + ], + [ + 105.8894256, + 21.1852298 + ], + [ + 105.8884958, + 21.1859613 + ], + [ + 105.8874139, + 21.1895316 + ], + [ + 105.8869079, + 21.1899039 + ], + [ + 105.88518, + 21.1894636 + ], + [ + 105.8826842, + 21.1878052 + ], + [ + 105.8802173, + 21.1870668 + ], + [ + 105.8772179, + 21.1865643 + ], + [ + 105.8765775, + 21.1867768 + ], + [ + 105.8761489, + 21.1873665 + ], + [ + 105.8760014, + 21.1883095 + ], + [ + 105.8763368, + 21.1889351 + ], + [ + 105.8769012, + 21.1892184 + ], + [ + 105.8775037, + 21.1892285 + ], + [ + 105.8788733, + 21.188568 + ], + [ + 105.8798773, + 21.1884499 + ], + [ + 105.8810941, + 21.1888159 + ], + [ + 105.8820407, + 21.1895605 + ], + [ + 105.8831857, + 21.19112 + ], + [ + 105.8840487, + 21.1946334 + ], + [ + 105.8859432, + 21.198591 + ], + [ + 105.8867507, + 21.1993535 + ], + [ + 105.8896387, + 21.2005303 + ], + [ + 105.8910053, + 21.2014697 + ], + [ + 105.8918278, + 21.2023094 + ], + [ + 105.8918832, + 21.2028945 + ], + [ + 105.891367, + 21.2035717 + ], + [ + 105.88746, + 21.2056213 + ], + [ + 105.8866201, + 21.2056573 + ], + [ + 105.8853929, + 21.2052087 + ], + [ + 105.8840368, + 21.2039257 + ], + [ + 105.8829045, + 21.2033212 + ], + [ + 105.8786984, + 21.2030934 + ], + [ + 105.8772872, + 21.2027135 + ], + [ + 105.8756198, + 21.2018225 + ], + [ + 105.8750407, + 21.2018848 + ], + [ + 105.8741637, + 21.2027023 + ], + [ + 105.8723929, + 21.2061646 + ], + [ + 105.8717739, + 21.2062783 + ], + [ + 105.8712822, + 21.2054999 + ], + [ + 105.8714306, + 21.2035171 + ], + [ + 105.8718118, + 21.202721 + ], + [ + 105.8725994, + 21.2016997 + ], + [ + 105.8728504, + 21.2008324 + ], + [ + 105.8724885, + 21.1990305 + ], + [ + 105.8718209, + 21.1978267 + ], + [ + 105.8701929, + 21.1971908 + ], + [ + 105.8684189, + 21.1973393 + ], + [ + 105.8670481, + 21.1977132 + ], + [ + 105.8666897, + 21.1981056 + ], + [ + 105.8665822, + 21.198728 + ], + [ + 105.8673904, + 21.2001801 + ], + [ + 105.8672288, + 21.2006435 + ], + [ + 105.8665478, + 21.2008655 + ], + [ + 105.8654478, + 21.2008265 + ], + [ + 105.8641663, + 21.200472 + ], + [ + 105.8632282, + 21.2000738 + ], + [ + 105.8623668, + 21.1993484 + ], + [ + 105.8611866, + 21.1971027 + ], + [ + 105.8602074, + 21.1958271 + ], + [ + 105.8591491, + 21.1950304 + ], + [ + 105.8571512, + 21.1937921 + ], + [ + 105.853119, + 21.1920983 + ], + [ + 105.8508397, + 21.1906107 + ], + [ + 105.846763, + 21.1889342 + ], + [ + 105.8447563, + 21.1887592 + ], + [ + 105.8439327, + 21.188958 + ], + [ + 105.8418187, + 21.190146 + ], + [ + 105.8407464, + 21.1903408 + ], + [ + 105.8399254, + 21.1902829 + ], + [ + 105.8391314, + 21.1899159 + ], + [ + 105.8380624, + 21.1889651 + ], + [ + 105.8360542, + 21.1866732 + ], + [ + 105.8347402, + 21.1860633 + ], + [ + 105.834378, + 21.1861631 + ], + [ + 105.8324684, + 21.1875915 + ], + [ + 105.8295957, + 21.1883813 + ], + [ + 105.8284757, + 21.1883683 + ], + [ + 105.8266071, + 21.1876794 + ], + [ + 105.8245366, + 21.1873731 + ], + [ + 105.8228442, + 21.1869175 + ], + [ + 105.821581, + 21.186378 + ], + [ + 105.8188202, + 21.184562 + ], + [ + 105.8178298, + 21.184236 + ], + [ + 105.8158662, + 21.1841087 + ], + [ + 105.8136853, + 21.184316 + ], + [ + 105.8129918, + 21.1845058 + ], + [ + 105.8125615, + 21.1851721 + ], + [ + 105.8126406, + 21.1857327 + ], + [ + 105.8131057, + 21.1861013 + ], + [ + 105.8147913, + 21.1864888 + ], + [ + 105.8151877, + 21.186781 + ], + [ + 105.8152011, + 21.1874983 + ], + [ + 105.8149656, + 21.1883251 + ], + [ + 105.8142379, + 21.1892775 + ], + [ + 105.8130118, + 21.1903354 + ], + [ + 105.812146, + 21.1907715 + ], + [ + 105.8110884, + 21.1910262 + ], + [ + 105.8096186, + 21.1910655 + ], + [ + 105.8082912, + 21.1907839 + ], + [ + 105.8046342, + 21.1889866 + ], + [ + 105.8033531, + 21.1879181 + ], + [ + 105.8012831, + 21.1873377 + ], + [ + 105.8006452, + 21.1873654 + ], + [ + 105.799889, + 21.1875935 + ], + [ + 105.7990856, + 21.1883494 + ], + [ + 105.7984701, + 21.1899177 + ], + [ + 105.7976906, + 21.190985 + ], + [ + 105.7967071, + 21.1917971 + ], + [ + 105.7954036, + 21.1924796 + ], + [ + 105.7937101, + 21.1923626 + ], + [ + 105.7924099, + 21.1918477 + ], + [ + 105.7908515, + 21.1906107 + ], + [ + 105.7903159, + 21.1905456 + ], + [ + 105.7894121, + 21.1884074 + ], + [ + 105.7895596, + 21.1882304 + ], + [ + 105.7879002, + 21.1863574 + ], + [ + 105.788269, + 21.1862 + ], + [ + 105.7881434, + 21.1858512 + ], + [ + 105.7883529, + 21.1857786 + ], + [ + 105.7884588, + 21.1854539 + ], + [ + 105.788298, + 21.1852541 + ], + [ + 105.7894304, + 21.1847847 + ], + [ + 105.7894026, + 21.184609 + ], + [ + 105.7906236, + 21.1840162 + ], + [ + 105.7899272, + 21.1820177 + ], + [ + 105.7909048, + 21.1817295 + ], + [ + 105.7904388, + 21.1800757 + ], + [ + 105.7898127, + 21.1801974 + ], + [ + 105.7891111, + 21.1800226 + ], + [ + 105.7881183, + 21.1801367 + ], + [ + 105.7879426, + 21.1789408 + ], + [ + 105.7849988, + 21.1795104 + ], + [ + 105.7846303, + 21.178109 + ], + [ + 105.783769, + 21.1782525 + ], + [ + 105.7837156, + 21.1773915 + ], + [ + 105.7809978, + 21.1783418 + ], + [ + 105.7807676, + 21.1773614 + ], + [ + 105.7754877, + 21.1790047 + ], + [ + 105.7752294, + 21.1782377 + ], + [ + 105.7740707, + 21.1784927 + ], + [ + 105.7738646, + 21.1778541 + ], + [ + 105.7719379, + 21.1782303 + ], + [ + 105.7710534, + 21.1755317 + ], + [ + 105.7707842, + 21.1726227 + ], + [ + 105.7714329, + 21.1693473 + ], + [ + 105.77018, + 21.1693113 + ], + [ + 105.7707077, + 21.1665891 + ], + [ + 105.7704819, + 21.1664831 + ], + [ + 105.7711805, + 21.1572621 + ], + [ + 105.7720221, + 21.1495261 + ], + [ + 105.7719795, + 21.1489239 + ], + [ + 105.7716157, + 21.1491592 + ], + [ + 105.7709022, + 21.1482046 + ], + [ + 105.7724467, + 21.1460926 + ], + [ + 105.7719935, + 21.1451051 + ], + [ + 105.7724855, + 21.1444911 + ], + [ + 105.7725925, + 21.1438971 + ], + [ + 105.7722885, + 21.1433051 + ], + [ + 105.7708365, + 21.1421671 + ], + [ + 105.7695985, + 21.1406552 + ], + [ + 105.7680352, + 21.1381138 + ], + [ + 105.765739, + 21.1359716 + ], + [ + 105.764567, + 21.1356238 + ], + [ + 105.76326, + 21.1354149 + ], + [ + 105.761739, + 21.1358783 + ], + [ + 105.760812, + 21.1358263 + ], + [ + 105.7604414, + 21.1357442 + ], + [ + 105.7601434, + 21.1350563 + ], + [ + 105.7599741, + 21.1348453 + ], + [ + 105.7595767, + 21.134804 + ], + [ + 105.759588, + 21.1346752 + ], + [ + 105.7586913, + 21.134625 + ], + [ + 105.7562594, + 21.1349677 + ], + [ + 105.7537388, + 21.1346848 + ], + [ + 105.75337, + 21.134901 + ], + [ + 105.7529748, + 21.1349082 + ], + [ + 105.7528149, + 21.1348306 + ], + [ + 105.753572, + 21.1337477 + ], + [ + 105.7532518, + 21.1315807 + ], + [ + 105.7509446, + 21.1323706 + ], + [ + 105.751127, + 21.1336708 + ], + [ + 105.7513761, + 21.1335865 + ], + [ + 105.751428, + 21.133824 + ], + [ + 105.7511683, + 21.133914 + ], + [ + 105.7512191, + 21.1341762 + ], + [ + 105.7496675, + 21.1347067 + ], + [ + 105.7500382, + 21.1370653 + ], + [ + 105.749483, + 21.1371972 + ], + [ + 105.7495948, + 21.137784 + ], + [ + 105.7478189, + 21.1381129 + ], + [ + 105.747554, + 21.1376447 + ], + [ + 105.7473633, + 21.1366845 + ], + [ + 105.7467715, + 21.1366367 + ], + [ + 105.7459591, + 21.133904 + ], + [ + 105.7440334, + 21.1344441 + ], + [ + 105.7433169, + 21.1318733 + ], + [ + 105.742891, + 21.1319702 + ], + [ + 105.7430289, + 21.132572 + ], + [ + 105.7421307, + 21.1327349 + ], + [ + 105.7415028, + 21.1309153 + ], + [ + 105.7414241, + 21.1302374 + ], + [ + 105.7415524, + 21.1302144 + ], + [ + 105.7410765, + 21.128799 + ], + [ + 105.7402626, + 21.1288407 + ], + [ + 105.7389929, + 21.1285043 + ], + [ + 105.7391817, + 21.1282896 + ], + [ + 105.73891, + 21.127752 + ], + [ + 105.7392193, + 21.1272959 + ], + [ + 105.7388501, + 21.1268185 + ], + [ + 105.7389033, + 21.1263555 + ], + [ + 105.7387099, + 21.1263128 + ], + [ + 105.7386163, + 21.1257989 + ], + [ + 105.7388097, + 21.1256328 + ], + [ + 105.7386067, + 21.1252093 + ], + [ + 105.7372188, + 21.1257469 + ], + [ + 105.7359995, + 21.1237708 + ], + [ + 105.7355598, + 21.1238252 + ], + [ + 105.7354106, + 21.1229539 + ], + [ + 105.736109, + 21.1226214 + ], + [ + 105.7358811, + 21.1218728 + ], + [ + 105.7356369, + 21.1217584 + ], + [ + 105.7354582, + 21.1218644 + ], + [ + 105.7321391, + 21.1218232 + ] + ], + [ + [ + 105.8440158, + 21.1698663 + ], + [ + 105.8440204, + 21.1700806 + ], + [ + 105.8444102, + 21.1700986 + ], + [ + 105.8444083, + 21.1698543 + ], + [ + 105.8440158, + 21.1698663 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-dongda.json b/src/data/boundaries/hn/hn-dongda.json new file mode 100644 index 0000000..fbdb059 --- /dev/null +++ b/src/data/boundaries/hn/hn-dongda.json @@ -0,0 +1,482 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-DONGDA", + "name": "Dong Da", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 9.9, + "bbox": [ + 105.79763, + 20.99742, + 105.84263, + 21.03215 + ], + "center": [ + 21.01547, + 105.82503 + ], + "generatedAt": "2026-08-30T07:33:09.725Z", + "osm": "relation/9421135" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.79763, + 21.0246548 + ], + [ + 105.7980183, + 21.0237715 + ], + [ + 105.8001477, + 21.0219911 + ], + [ + 105.8012422, + 21.0203624 + ], + [ + 105.8030396, + 21.0171604 + ], + [ + 105.8041936, + 21.0157182 + ], + [ + 105.8076252, + 21.012689 + ], + [ + 105.8138247, + 21.0086444 + ], + [ + 105.8149192, + 21.007683 + ], + [ + 105.8166057, + 21.0051511 + ], + [ + 105.8181305, + 21.001585 + ], + [ + 105.8202057, + 21.003109 + ], + [ + 105.8267548, + 21.0014485 + ], + [ + 105.8329565, + 20.9996053 + ], + [ + 105.8369412, + 20.9988668 + ], + [ + 105.8426251, + 20.997416 + ], + [ + 105.8413071, + 21.0004611 + ], + [ + 105.8413457, + 21.0162192 + ], + [ + 105.8410033, + 21.0174836 + ], + [ + 105.8413359, + 21.0175282 + ], + [ + 105.841352, + 21.0188286 + ], + [ + 105.8411571, + 21.0191634 + ], + [ + 105.8409006, + 21.0192317 + ], + [ + 105.8409566, + 21.0228612 + ], + [ + 105.8410133, + 21.02333 + ], + [ + 105.8412059, + 21.0233319 + ], + [ + 105.8412317, + 21.0247813 + ], + [ + 105.841053, + 21.0247821 + ], + [ + 105.8410075, + 21.0268439 + ], + [ + 105.8410999, + 21.027382 + ], + [ + 105.8415518, + 21.0276316 + ], + [ + 105.8415672, + 21.0287502 + ], + [ + 105.8412352, + 21.0287727 + ], + [ + 105.8410927, + 21.0283566 + ], + [ + 105.8407663, + 21.0284898 + ], + [ + 105.8408062, + 21.0286922 + ], + [ + 105.8406182, + 21.028701 + ], + [ + 105.8406544, + 21.0287987 + ], + [ + 105.8398793, + 21.0289422 + ], + [ + 105.8397698, + 21.0284323 + ], + [ + 105.8394059, + 21.0285095 + ], + [ + 105.8391332, + 21.0286196 + ], + [ + 105.8391988, + 21.0288902 + ], + [ + 105.8389332, + 21.0289616 + ], + [ + 105.8391429, + 21.0295599 + ], + [ + 105.8384777, + 21.0297506 + ], + [ + 105.8383293, + 21.0294864 + ], + [ + 105.8378684, + 21.0296354 + ], + [ + 105.8375757, + 21.0295642 + ], + [ + 105.836893, + 21.0299308 + ], + [ + 105.8369865, + 21.0301779 + ], + [ + 105.8357925, + 21.0305184 + ], + [ + 105.8349492, + 21.0297952 + ], + [ + 105.8347106, + 21.0298926 + ], + [ + 105.83403, + 21.0310278 + ], + [ + 105.8338136, + 21.0310934 + ], + [ + 105.8335628, + 21.0305588 + ], + [ + 105.8331747, + 21.0306737 + ], + [ + 105.8332284, + 21.0308417 + ], + [ + 105.8328713, + 21.0310019 + ], + [ + 105.8329906, + 21.0313288 + ], + [ + 105.8321158, + 21.0315737 + ], + [ + 105.8320219, + 21.0312598 + ], + [ + 105.8316065, + 21.0312824 + ], + [ + 105.8315192, + 21.0307155 + ], + [ + 105.8318224, + 21.0306412 + ], + [ + 105.8317068, + 21.0301997 + ], + [ + 105.8308857, + 21.0303829 + ], + [ + 105.8307945, + 21.0300438 + ], + [ + 105.8297502, + 21.0303218 + ], + [ + 105.8302576, + 21.0320793 + ], + [ + 105.8300006, + 21.0321494 + ], + [ + 105.8298787, + 21.0317602 + ], + [ + 105.8288463, + 21.0320518 + ], + [ + 105.8286772, + 21.0315534 + ], + [ + 105.8283936, + 21.031386 + ], + [ + 105.8284603, + 21.0311379 + ], + [ + 105.8275747, + 21.03032 + ], + [ + 105.8272335, + 21.0295029 + ], + [ + 105.8248194, + 21.0277351 + ], + [ + 105.8197685, + 21.0234032 + ], + [ + 105.8210299, + 21.0231258 + ], + [ + 105.82065, + 21.0226782 + ], + [ + 105.8196582, + 21.0205423 + ], + [ + 105.8195228, + 21.0205859 + ], + [ + 105.8192878, + 21.0201126 + ], + [ + 105.8191122, + 21.0194952 + ], + [ + 105.819316, + 21.0190316 + ], + [ + 105.8183404, + 21.0184046 + ], + [ + 105.8173608, + 21.0172825 + ], + [ + 105.8165767, + 21.0169109 + ], + [ + 105.8158704, + 21.0159567 + ], + [ + 105.8149171, + 21.0165734 + ], + [ + 105.8105849, + 21.018711 + ], + [ + 105.8113367, + 21.020062 + ], + [ + 105.8104027, + 21.020536 + ], + [ + 105.8108709, + 21.021345 + ], + [ + 105.8120498, + 21.0215589 + ], + [ + 105.8115325, + 21.0246392 + ], + [ + 105.8102855, + 21.0261951 + ], + [ + 105.8096483, + 21.0252642 + ], + [ + 105.8079102, + 21.0261342 + ], + [ + 105.8077162, + 21.025925 + ], + [ + 105.8069025, + 21.025964 + ], + [ + 105.8068966, + 21.0261608 + ], + [ + 105.8066266, + 21.0261623 + ], + [ + 105.8067562, + 21.0275083 + ], + [ + 105.8053147, + 21.0278839 + ], + [ + 105.8050074, + 21.0282937 + ], + [ + 105.8032273, + 21.0291131 + ], + [ + 105.8013534, + 21.0302334 + ], + [ + 105.7983286, + 21.0268031 + ], + [ + 105.79763, + 21.0246548 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-gialam.json b/src/data/boundaries/hn/hn-gialam.json new file mode 100644 index 0000000..252b481 --- /dev/null +++ b/src/data/boundaries/hn/hn-gialam.json @@ -0,0 +1,1558 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-GIALAM", + "name": "Gia Lam", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 117.2, + "bbox": [ + 105.88147, + 20.92633, + 106.02004, + 21.12119 + ], + "center": [ + 21.02888, + 105.95055 + ], + "generatedAt": "2026-08-30T07:33:40.318Z", + "osm": "relation/7115759" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.8814665, + 20.9331361 + ], + [ + 105.8818509, + 20.9308146 + ], + [ + 105.8839721, + 20.9294276 + ], + [ + 105.8870391, + 20.928837 + ], + [ + 105.8920425, + 20.929332 + ], + [ + 105.8955991, + 20.9292713 + ], + [ + 105.8977891, + 20.9290071 + ], + [ + 105.9002531, + 20.9286871 + ], + [ + 105.9037101, + 20.9279501 + ], + [ + 105.9084591, + 20.9263283 + ], + [ + 105.9116392, + 20.9297752 + ], + [ + 105.9157999, + 20.9357539 + ], + [ + 105.9145084, + 20.936691 + ], + [ + 105.9147906, + 20.9373247 + ], + [ + 105.9135641, + 20.9380762 + ], + [ + 105.9122376, + 20.9383996 + ], + [ + 105.9115962, + 20.9387601 + ], + [ + 105.9100767, + 20.942083 + ], + [ + 105.9030199, + 20.9471529 + ], + [ + 105.9047654, + 20.9500273 + ], + [ + 105.9053289, + 20.9514501 + ], + [ + 105.9056479, + 20.9534362 + ], + [ + 105.9053794, + 20.9536147 + ], + [ + 105.9073081, + 20.9581767 + ], + [ + 105.9078425, + 20.9609357 + ], + [ + 105.9083044, + 20.9622896 + ], + [ + 105.9122216, + 20.9693414 + ], + [ + 105.9123712, + 20.9708832 + ], + [ + 105.913199, + 20.9708054 + ], + [ + 105.913257, + 20.9731029 + ], + [ + 105.9129866, + 20.9737153 + ], + [ + 105.9141792, + 20.9736108 + ], + [ + 105.9142847, + 20.9743793 + ], + [ + 105.9148042, + 20.9745653 + ], + [ + 105.9148007, + 20.9748164 + ], + [ + 105.9183193, + 20.9750762 + ], + [ + 105.9184386, + 20.9757616 + ], + [ + 105.9197844, + 20.9757135 + ], + [ + 105.9197929, + 20.9745878 + ], + [ + 105.9223799, + 20.9746612 + ], + [ + 105.9225179, + 20.9757183 + ], + [ + 105.9244606, + 20.9757426 + ], + [ + 105.9244298, + 20.9745438 + ], + [ + 105.9298386, + 20.9726673 + ], + [ + 105.9302081, + 20.9725758 + ], + [ + 105.9322605, + 20.9735945 + ], + [ + 105.9362033, + 20.9697641 + ], + [ + 105.9384749, + 20.9701572 + ], + [ + 105.938921, + 20.9691512 + ], + [ + 105.9395652, + 20.9690167 + ], + [ + 105.9397863, + 20.9679486 + ], + [ + 105.9476533, + 20.9692991 + ], + [ + 105.9478944, + 20.9682241 + ], + [ + 105.9484879, + 20.9683604 + ], + [ + 105.9483724, + 20.9677642 + ], + [ + 105.948719, + 20.9676691 + ], + [ + 105.948673, + 20.9675137 + ], + [ + 105.9488741, + 20.9674559 + ], + [ + 105.948428, + 20.9670239 + ], + [ + 105.9495868, + 20.9670082 + ], + [ + 105.9495884, + 20.9666367 + ], + [ + 105.9500277, + 20.9666877 + ], + [ + 105.9501694, + 20.9669706 + ], + [ + 105.9503998, + 20.9669662 + ], + [ + 105.9504016, + 20.9667147 + ], + [ + 105.9518549, + 20.9665833 + ], + [ + 105.9520202, + 20.967095 + ], + [ + 105.952237, + 20.9670893 + ], + [ + 105.9524074, + 20.9678272 + ], + [ + 105.9535148, + 20.9676925 + ], + [ + 105.953857, + 20.9680109 + ], + [ + 105.9546586, + 20.9676577 + ], + [ + 105.9550625, + 20.9675769 + ], + [ + 105.9551042, + 20.9677505 + ], + [ + 105.9554182, + 20.967698 + ], + [ + 105.9553852, + 20.967261 + ], + [ + 105.9557309, + 20.9671836 + ], + [ + 105.9561191, + 20.9682138 + ], + [ + 105.9564521, + 20.9679103 + ], + [ + 105.9567813, + 20.9678904 + ], + [ + 105.9568115, + 20.9661119 + ], + [ + 105.9585797, + 20.9660095 + ], + [ + 105.9587122, + 20.9648282 + ], + [ + 105.9593455, + 20.9646195 + ], + [ + 105.9591592, + 20.96416 + ], + [ + 105.9611163, + 20.963177 + ], + [ + 105.9612925, + 20.963191 + ], + [ + 105.9616444, + 20.9638961 + ], + [ + 105.9629006, + 20.9634936 + ], + [ + 105.9640796, + 20.9634125 + ], + [ + 105.9646637, + 20.9658465 + ], + [ + 105.9644236, + 20.9658523 + ], + [ + 105.964483, + 20.9679742 + ], + [ + 105.9652195, + 20.9679694 + ], + [ + 105.964706, + 20.9724594 + ], + [ + 105.9624185, + 20.9734661 + ], + [ + 105.9631433, + 20.9747275 + ], + [ + 105.9613732, + 20.9758723 + ], + [ + 105.9630105, + 20.9801808 + ], + [ + 105.9623534, + 20.981185 + ], + [ + 105.9617834, + 20.9813746 + ], + [ + 105.9623046, + 20.9823275 + ], + [ + 105.9627483, + 20.9822688 + ], + [ + 105.9632321, + 20.9829469 + ], + [ + 105.9651399, + 20.9841795 + ], + [ + 105.9651571, + 20.9850201 + ], + [ + 105.9651194, + 20.9851759 + ], + [ + 105.9639868, + 20.9845544 + ], + [ + 105.9632827, + 20.9859066 + ], + [ + 105.9635042, + 20.9860297 + ], + [ + 105.9613374, + 20.9882622 + ], + [ + 105.9616479, + 20.9892505 + ], + [ + 105.9650611, + 20.9910194 + ], + [ + 105.9656714, + 20.9903662 + ], + [ + 105.9665888, + 20.9910518 + ], + [ + 105.9688289, + 20.9886927 + ], + [ + 105.9722503, + 20.9897198 + ], + [ + 105.9724686, + 20.9918627 + ], + [ + 105.9722918, + 20.9933662 + ], + [ + 105.9720933, + 20.993862 + ], + [ + 105.971498, + 20.9944829 + ], + [ + 105.9714026, + 20.995732 + ], + [ + 105.9717208, + 20.9959883 + ], + [ + 105.9714879, + 20.9964014 + ], + [ + 105.9718446, + 20.9965826 + ], + [ + 105.9717126, + 20.9970535 + ], + [ + 105.9719273, + 20.9971985 + ], + [ + 105.9728137, + 20.9963885 + ], + [ + 105.9735226, + 20.9963112 + ], + [ + 105.9757824, + 20.9981405 + ], + [ + 105.9762456, + 20.9978808 + ], + [ + 105.9771547, + 20.9989042 + ], + [ + 105.9779664, + 20.9990171 + ], + [ + 105.978926, + 20.9982965 + ], + [ + 105.9814641, + 20.997537 + ], + [ + 105.981885, + 20.9971572 + ], + [ + 105.9827106, + 20.9968306 + ], + [ + 105.9851755, + 20.9967649 + ], + [ + 105.9863639, + 20.9969746 + ], + [ + 105.9879511, + 20.997553 + ], + [ + 105.989768, + 20.9991221 + ], + [ + 105.9913657, + 21.0010328 + ], + [ + 105.9940317, + 21.0001939 + ], + [ + 105.9941918, + 21.0006814 + ], + [ + 105.9990737, + 20.9998644 + ], + [ + 105.99913, + 21.0000021 + ], + [ + 105.9996504, + 20.9998618 + ], + [ + 105.9996936, + 20.9999909 + ], + [ + 105.9999682, + 20.9999988 + ], + [ + 106.0001533, + 21.0010162 + ], + [ + 106.000333, + 21.0009974 + ], + [ + 106.0003558, + 21.0012215 + ], + [ + 106.0008399, + 21.0011991 + ], + [ + 105.9995379, + 21.0054657 + ], + [ + 106.0011979, + 21.0056718 + ], + [ + 106.0010455, + 21.0069701 + ], + [ + 106.001248, + 21.007005 + ], + [ + 106.0013252, + 21.0074905 + ], + [ + 106.0022493, + 21.0077852 + ], + [ + 106.0048278, + 21.0079687 + ], + [ + 106.0048614, + 21.0085301 + ], + [ + 106.0084532, + 21.0082679 + ], + [ + 106.0089207, + 21.0105301 + ], + [ + 106.0100388, + 21.0107875 + ], + [ + 106.0100845, + 21.0109586 + ], + [ + 106.0098148, + 21.012257 + ], + [ + 106.0096047, + 21.0124002 + ], + [ + 106.0066249, + 21.0115833 + ], + [ + 106.0053689, + 21.011533 + ], + [ + 106.0044677, + 21.0116699 + ], + [ + 106.0054212, + 21.013456 + ], + [ + 106.0048935, + 21.0138224 + ], + [ + 106.0061647, + 21.0150592 + ], + [ + 106.0032778, + 21.0174818 + ], + [ + 106.0039714, + 21.0187749 + ], + [ + 106.0037751, + 21.0188409 + ], + [ + 106.0045846, + 21.0220389 + ], + [ + 106.0069665, + 21.0242585 + ], + [ + 106.0094391, + 21.0243752 + ], + [ + 106.0064648, + 21.0288541 + ], + [ + 106.0128601, + 21.030271 + ], + [ + 106.015019, + 21.0327571 + ], + [ + 106.0162231, + 21.0344448 + ], + [ + 106.0163849, + 21.0343677 + ], + [ + 106.0189589, + 21.0390681 + ], + [ + 106.018735, + 21.0391476 + ], + [ + 106.0180713, + 21.0382453 + ], + [ + 106.0176255, + 21.0384012 + ], + [ + 106.0182825, + 21.0399648 + ], + [ + 106.0193285, + 21.0396068 + ], + [ + 106.0200407, + 21.0413999 + ], + [ + 106.0197307, + 21.0450574 + ], + [ + 106.0200298, + 21.047621 + ], + [ + 106.0192284, + 21.0478639 + ], + [ + 106.0139013, + 21.0509548 + ], + [ + 106.0152474, + 21.0528359 + ], + [ + 106.0136764, + 21.0537797 + ], + [ + 106.0143741, + 21.0559555 + ], + [ + 106.0110549, + 21.0569732 + ], + [ + 106.0113455, + 21.0581982 + ], + [ + 106.0101728, + 21.0577274 + ], + [ + 106.0098744, + 21.056015 + ], + [ + 106.0082246, + 21.0555325 + ], + [ + 106.0080746, + 21.0579657 + ], + [ + 106.0082329, + 21.0582472 + ], + [ + 106.0079133, + 21.0585786 + ], + [ + 106.0086087, + 21.0592895 + ], + [ + 106.0089708, + 21.0603712 + ], + [ + 106.0085896, + 21.0607069 + ], + [ + 106.0086544, + 21.0609218 + ], + [ + 106.009572, + 21.0623169 + ], + [ + 106.0090461, + 21.0627714 + ], + [ + 106.0091924, + 21.0628961 + ], + [ + 106.0088699, + 21.0633949 + ], + [ + 106.0090112, + 21.0635363 + ], + [ + 106.0086965, + 21.0642205 + ], + [ + 106.0067481, + 21.0628828 + ], + [ + 106.0030583, + 21.067921 + ], + [ + 106.0022684, + 21.0692463 + ], + [ + 106.0014089, + 21.0688777 + ], + [ + 106.0005568, + 21.0709161 + ], + [ + 106.0003106, + 21.0722876 + ], + [ + 105.9994348, + 21.0737639 + ], + [ + 105.9997208, + 21.0740946 + ], + [ + 105.9996382, + 21.0745581 + ], + [ + 105.9937029, + 21.0689285 + ], + [ + 105.9866455, + 21.0699818 + ], + [ + 105.9805805, + 21.0699541 + ], + [ + 105.9781735, + 21.0701317 + ], + [ + 105.9681912, + 21.0721444 + ], + [ + 105.968722, + 21.0737364 + ], + [ + 105.9681894, + 21.0738677 + ], + [ + 105.967423, + 21.0743728 + ], + [ + 105.9661623, + 21.075743 + ], + [ + 105.9635822, + 21.0776083 + ], + [ + 105.9618948, + 21.0781098 + ], + [ + 105.9601092, + 21.0880491 + ], + [ + 105.9579932, + 21.0913648 + ], + [ + 105.9558151, + 21.090432 + ], + [ + 105.9457189, + 21.0850473 + ], + [ + 105.9445371, + 21.0853402 + ], + [ + 105.9401924, + 21.0833533 + ], + [ + 105.9393182, + 21.0876582 + ], + [ + 105.9399563, + 21.0882554 + ], + [ + 105.9395763, + 21.0885886 + ], + [ + 105.9401551, + 21.0889303 + ], + [ + 105.9395946, + 21.0895783 + ], + [ + 105.9402739, + 21.0899458 + ], + [ + 105.9381512, + 21.0937735 + ], + [ + 105.9366811, + 21.0932061 + ], + [ + 105.9361519, + 21.0941633 + ], + [ + 105.935943, + 21.0952141 + ], + [ + 105.9356295, + 21.095148 + ], + [ + 105.934474, + 21.0965241 + ], + [ + 105.9363761, + 21.1015212 + ], + [ + 105.9353588, + 21.1020061 + ], + [ + 105.9351023, + 21.1017576 + ], + [ + 105.9340086, + 21.1028516 + ], + [ + 105.9342441, + 21.103059 + ], + [ + 105.9336004, + 21.1037366 + ], + [ + 105.9348624, + 21.1049381 + ], + [ + 105.933906, + 21.1066558 + ], + [ + 105.9309656, + 21.1087915 + ], + [ + 105.9313942, + 21.1092415 + ], + [ + 105.9314291, + 21.1100484 + ], + [ + 105.9309958, + 21.1111297 + ], + [ + 105.9304577, + 21.1115084 + ], + [ + 105.9301523, + 21.111962 + ], + [ + 105.9298548, + 21.1120565 + ], + [ + 105.9294226, + 21.1118279 + ], + [ + 105.9293402, + 21.1121488 + ], + [ + 105.9286696, + 21.1121099 + ], + [ + 105.9275502, + 21.1125034 + ], + [ + 105.9273212, + 21.1117232 + ], + [ + 105.9248075, + 21.1132318 + ], + [ + 105.9255362, + 21.1143843 + ], + [ + 105.9250286, + 21.114891 + ], + [ + 105.9236061, + 21.1156794 + ], + [ + 105.9210677, + 21.1164267 + ], + [ + 105.9232036, + 21.1201042 + ], + [ + 105.9234711, + 21.1200031 + ], + [ + 105.9237569, + 21.1203993 + ], + [ + 105.9232966, + 21.1205698 + ], + [ + 105.9232958, + 21.1207782 + ], + [ + 105.9225712, + 21.1211949 + ], + [ + 105.9224881, + 21.1206647 + ], + [ + 105.9214751, + 21.1184814 + ], + [ + 105.9196505, + 21.1189986 + ], + [ + 105.9189798, + 21.118903 + ], + [ + 105.9174651, + 21.1190573 + ], + [ + 105.9155906, + 21.1189427 + ], + [ + 105.9118134, + 21.1180917 + ], + [ + 105.9096783, + 21.117311 + ], + [ + 105.9072241, + 21.1156071 + ], + [ + 105.9055558, + 21.1141547 + ], + [ + 105.9057355, + 21.1139132 + ], + [ + 105.9056792, + 21.1125157 + ], + [ + 105.9054324, + 21.1125257 + ], + [ + 105.9047927, + 21.1117538 + ], + [ + 105.9035924, + 21.1099422 + ], + [ + 105.9015593, + 21.1054782 + ], + [ + 105.9013849, + 21.1053256 + ], + [ + 105.9002859, + 21.1062839 + ], + [ + 105.8992861, + 21.1009215 + ], + [ + 105.8978029, + 21.1011555 + ], + [ + 105.8964054, + 21.098329 + ], + [ + 105.898338, + 21.0968676 + ], + [ + 105.8984587, + 21.0969227 + ], + [ + 105.8991882, + 21.0957891 + ], + [ + 105.9013957, + 21.093209 + ], + [ + 105.9020501, + 21.0918439 + ], + [ + 105.9042884, + 21.0892495 + ], + [ + 105.9049108, + 21.0899039 + ], + [ + 105.9052795, + 21.0896329 + ], + [ + 105.9057199, + 21.0897177 + ], + [ + 105.9049203, + 21.0881239 + ], + [ + 105.9048881, + 21.0869527 + ], + [ + 105.9050757, + 21.0859917 + ], + [ + 105.9048504, + 21.0845576 + ], + [ + 105.9048799, + 21.082513 + ], + [ + 105.9036326, + 21.07973 + ], + [ + 105.902726, + 21.0784186 + ], + [ + 105.9157, + 21.076792 + ], + [ + 105.9208897, + 21.0749899 + ], + [ + 105.924045, + 21.072633 + ], + [ + 105.9269924, + 21.0694404 + ], + [ + 105.9330641, + 21.056503 + ], + [ + 105.9352365, + 21.0483503 + ], + [ + 105.937179, + 21.0431956 + ], + [ + 105.9387681, + 21.0410105 + ], + [ + 105.9348101, + 21.0356593 + ], + [ + 105.9352619, + 21.0352395 + ], + [ + 105.9343787, + 21.0340708 + ], + [ + 105.9342153, + 21.0342177 + ], + [ + 105.9342198, + 21.034549 + ], + [ + 105.9339097, + 21.0348313 + ], + [ + 105.9312824, + 21.0299682 + ], + [ + 105.9289069, + 21.0278544 + ], + [ + 105.9277037, + 21.0270713 + ], + [ + 105.9269211, + 21.025679 + ], + [ + 105.9288995, + 21.0248291 + ], + [ + 105.9294986, + 21.0261197 + ], + [ + 105.9348428, + 21.0246706 + ], + [ + 105.9342452, + 21.0240047 + ], + [ + 105.9350089, + 21.0237395 + ], + [ + 105.9344436, + 21.0225857 + ], + [ + 105.9376942, + 21.0211843 + ], + [ + 105.9259879, + 21.0198422 + ], + [ + 105.9261194, + 21.0173509 + ], + [ + 105.9234018, + 21.0169388 + ], + [ + 105.9236632, + 21.0150335 + ], + [ + 105.9241676, + 21.0151067 + ], + [ + 105.9242871, + 21.0144345 + ], + [ + 105.9222444, + 21.0141154 + ], + [ + 105.9225365, + 21.0121697 + ], + [ + 105.9197986, + 21.0120237 + ], + [ + 105.9204944, + 21.0044573 + ], + [ + 105.9185546, + 21.0044067 + ], + [ + 105.9190838, + 21.0035474 + ], + [ + 105.915022, + 21.0022128 + ], + [ + 105.9127359, + 21.0033699 + ], + [ + 105.9120181, + 21.0051272 + ], + [ + 105.9110797, + 21.004051 + ], + [ + 105.9100155, + 21.004964 + ], + [ + 105.9087246, + 21.0039587 + ], + [ + 105.9083546, + 21.0044997 + ], + [ + 105.9052356, + 21.0031057 + ], + [ + 105.9038626, + 21.0028187 + ], + [ + 105.9033156, + 21.0025557 + ], + [ + 105.9043846, + 21.0008137 + ], + [ + 105.9007397, + 20.9941093 + ], + [ + 105.9035184, + 20.9915822 + ], + [ + 105.9067548, + 20.9878294 + ], + [ + 105.9086238, + 20.9846903 + ], + [ + 105.9087898, + 20.9820266 + ], + [ + 105.9078727, + 20.9778785 + ], + [ + 105.9028778, + 20.9677639 + ], + [ + 105.8975067, + 20.9601173 + ], + [ + 105.890152, + 20.9516888 + ], + [ + 105.8860035, + 20.9454443 + ], + [ + 105.8820244, + 20.9388416 + ], + [ + 105.8814665, + 20.9331361 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-hadong.json b/src/data/boundaries/hn/hn-hadong.json new file mode 100644 index 0000000..752bc94 --- /dev/null +++ b/src/data/boundaries/hn/hn-hadong.json @@ -0,0 +1,1370 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-HADONG", + "name": "Ha Dong", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 49.2, + "bbox": [ + 105.70525, + 20.91082, + 105.8043, + 20.99698 + ], + "center": [ + 20.95356, + 105.75706 + ], + "generatedAt": "2026-08-30T07:33:19.741Z", + "osm": "relation/9424587" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.7052511, + 20.9326872 + ], + [ + 105.7053362, + 20.9321102 + ], + [ + 105.7059853, + 20.932243 + ], + [ + 105.7057398, + 20.9309393 + ], + [ + 105.7071654, + 20.9288476 + ], + [ + 105.7081017, + 20.9287088 + ], + [ + 105.707844, + 20.928256 + ], + [ + 105.7075786, + 20.928337 + ], + [ + 105.7075021, + 20.9279914 + ], + [ + 105.7076781, + 20.9278508 + ], + [ + 105.7078448, + 20.928025 + ], + [ + 105.7080208, + 20.9279207 + ], + [ + 105.7082354, + 20.9282093 + ], + [ + 105.7086991, + 20.9279477 + ], + [ + 105.7086529, + 20.9277363 + ], + [ + 105.7088016, + 20.9276314 + ], + [ + 105.7087015, + 20.9273849 + ], + [ + 105.7091718, + 20.9271269 + ], + [ + 105.7095754, + 20.9279319 + ], + [ + 105.7096412, + 20.9284513 + ], + [ + 105.7151854, + 20.9275363 + ], + [ + 105.7155759, + 20.9281458 + ], + [ + 105.7191908, + 20.9275528 + ], + [ + 105.7193646, + 20.9277107 + ], + [ + 105.7197868, + 20.9273497 + ], + [ + 105.7199168, + 20.9274693 + ], + [ + 105.7217353, + 20.9268336 + ], + [ + 105.7233993, + 20.9260332 + ], + [ + 105.7244134, + 20.9258916 + ], + [ + 105.7255645, + 20.9250793 + ], + [ + 105.7257197, + 20.9247591 + ], + [ + 105.7262069, + 20.9249276 + ], + [ + 105.7274447, + 20.9247928 + ], + [ + 105.7254204, + 20.9186133 + ], + [ + 105.7248917, + 20.9185071 + ], + [ + 105.723856, + 20.9177805 + ], + [ + 105.7248333, + 20.9166841 + ], + [ + 105.7247211, + 20.9163122 + ], + [ + 105.7260378, + 20.9152444 + ], + [ + 105.7267114, + 20.915702 + ], + [ + 105.7268441, + 20.9155638 + ], + [ + 105.7264716, + 20.9152015 + ], + [ + 105.7267063, + 20.9149631 + ], + [ + 105.7268237, + 20.9150489 + ], + [ + 105.7281131, + 20.9138608 + ], + [ + 105.7300052, + 20.912661 + ], + [ + 105.733853, + 20.9108185 + ], + [ + 105.7342923, + 20.911326 + ], + [ + 105.735119, + 20.9109113 + ], + [ + 105.736173, + 20.911696 + ], + [ + 105.7364945, + 20.9121322 + ], + [ + 105.7364295, + 20.9130754 + ], + [ + 105.7369144, + 20.9139622 + ], + [ + 105.7392864, + 20.9137554 + ], + [ + 105.7392499, + 20.913441 + ], + [ + 105.7407441, + 20.912531 + ], + [ + 105.7411483, + 20.9126776 + ], + [ + 105.7417005, + 20.9134411 + ], + [ + 105.7421264, + 20.9136884 + ], + [ + 105.7420345, + 20.9153793 + ], + [ + 105.7496384, + 20.9166544 + ], + [ + 105.7487433, + 20.9205814 + ], + [ + 105.7492231, + 20.9201428 + ], + [ + 105.7495293, + 20.920119 + ], + [ + 105.7501009, + 20.9201953 + ], + [ + 105.7500498, + 20.920753 + ], + [ + 105.7507684, + 20.9208514 + ], + [ + 105.7504492, + 20.9231715 + ], + [ + 105.7514579, + 20.9233237 + ], + [ + 105.7508375, + 20.926195 + ], + [ + 105.749132, + 20.926273 + ], + [ + 105.7499461, + 20.9285979 + ], + [ + 105.7498775, + 20.9290789 + ], + [ + 105.750283, + 20.9302995 + ], + [ + 105.7517183, + 20.9297661 + ], + [ + 105.752094, + 20.9307155 + ], + [ + 105.7539532, + 20.9297905 + ], + [ + 105.7545749, + 20.930867 + ], + [ + 105.7551975, + 20.9298707 + ], + [ + 105.757193, + 20.9304666 + ], + [ + 105.7566928, + 20.9318298 + ], + [ + 105.7567082, + 20.9321444 + ], + [ + 105.7578973, + 20.9321349 + ], + [ + 105.757984, + 20.9306096 + ], + [ + 105.7595027, + 20.9316798 + ], + [ + 105.7621434, + 20.9298993 + ], + [ + 105.7601776, + 20.9284042 + ], + [ + 105.7647782, + 20.925362 + ], + [ + 105.7645473, + 20.9248261 + ], + [ + 105.7664545, + 20.9240373 + ], + [ + 105.7678464, + 20.9255272 + ], + [ + 105.7705375, + 20.9226289 + ], + [ + 105.7728698, + 20.9235108 + ], + [ + 105.7726703, + 20.9238923 + ], + [ + 105.7739873, + 20.9248486 + ], + [ + 105.7723781, + 20.9268156 + ], + [ + 105.7769078, + 20.9303501 + ], + [ + 105.7778889, + 20.9292198 + ], + [ + 105.7784045, + 20.9296124 + ], + [ + 105.7789707, + 20.9289748 + ], + [ + 105.7811408, + 20.9290365 + ], + [ + 105.7811577, + 20.9284055 + ], + [ + 105.7837308, + 20.9285088 + ], + [ + 105.7835311, + 20.9357415 + ], + [ + 105.7856354, + 20.9358147 + ], + [ + 105.785567, + 20.936885 + ], + [ + 105.786322, + 20.9389221 + ], + [ + 105.7879831, + 20.9383639 + ], + [ + 105.7884802, + 20.939733 + ], + [ + 105.7892379, + 20.9395027 + ], + [ + 105.7897834, + 20.9396512 + ], + [ + 105.7897311, + 20.9410536 + ], + [ + 105.7882132, + 20.9409868 + ], + [ + 105.7885041, + 20.9420581 + ], + [ + 105.7917659, + 20.9422477 + ], + [ + 105.7947778, + 20.9505875 + ], + [ + 105.7942111, + 20.9519721 + ], + [ + 105.7944152, + 20.9538756 + ], + [ + 105.7947532, + 20.9549966 + ], + [ + 105.7959077, + 20.9553066 + ], + [ + 105.7960321, + 20.9551691 + ], + [ + 105.7966804, + 20.9554939 + ], + [ + 105.7978648, + 20.9556936 + ], + [ + 105.7978908, + 20.9559558 + ], + [ + 105.7983118, + 20.9560107 + ], + [ + 105.7984431, + 20.9573641 + ], + [ + 105.7989471, + 20.9574181 + ], + [ + 105.8003666, + 20.9583935 + ], + [ + 105.8009378, + 20.9582824 + ], + [ + 105.8021675, + 20.9570053 + ], + [ + 105.8029928, + 20.9582897 + ], + [ + 105.8042984, + 20.9589977 + ], + [ + 105.7927223, + 20.9652844 + ], + [ + 105.7938162, + 20.9670775 + ], + [ + 105.7932562, + 20.9678197 + ], + [ + 105.7929789, + 20.9675788 + ], + [ + 105.7921931, + 20.9680411 + ], + [ + 105.7923835, + 20.9684345 + ], + [ + 105.7915826, + 20.9689167 + ], + [ + 105.7913086, + 20.9684973 + ], + [ + 105.7904617, + 20.9689632 + ], + [ + 105.791228, + 20.9691818 + ], + [ + 105.7921193, + 20.9697222 + ], + [ + 105.7933777, + 20.9707436 + ], + [ + 105.7939063, + 20.9719034 + ], + [ + 105.7940402, + 20.9729903 + ], + [ + 105.793659, + 20.973713 + ], + [ + 105.7948616, + 20.974012 + ], + [ + 105.7948739, + 20.973615 + ], + [ + 105.7960684, + 20.9737665 + ], + [ + 105.7999935, + 20.974973 + ], + [ + 105.7988574, + 20.9770987 + ], + [ + 105.798668, + 20.9783551 + ], + [ + 105.7971903, + 20.9780898 + ], + [ + 105.7949476, + 20.9806884 + ], + [ + 105.7955052, + 20.9811626 + ], + [ + 105.7953377, + 20.9813821 + ], + [ + 105.7956622, + 20.9817121 + ], + [ + 105.795291, + 20.982213 + ], + [ + 105.7968003, + 20.9833435 + ], + [ + 105.7965398, + 20.9837136 + ], + [ + 105.7969411, + 20.9839901 + ], + [ + 105.7964294, + 20.9844567 + ], + [ + 105.7964739, + 20.9847567 + ], + [ + 105.7959401, + 20.9853732 + ], + [ + 105.7949499, + 20.9849325 + ], + [ + 105.7948593, + 20.9850655 + ], + [ + 105.7944442, + 20.984765 + ], + [ + 105.7941755, + 20.9850986 + ], + [ + 105.7931848, + 20.9843837 + ], + [ + 105.7928814, + 20.9854332 + ], + [ + 105.7897013, + 20.9852567 + ], + [ + 105.7864091, + 20.9856433 + ], + [ + 105.7840789, + 20.9865921 + ], + [ + 105.7843063, + 20.9868325 + ], + [ + 105.7863146, + 20.9860584 + ], + [ + 105.78731, + 20.9859762 + ], + [ + 105.7874252, + 20.9864116 + ], + [ + 105.7879352, + 20.9862953 + ], + [ + 105.7882976, + 20.9868821 + ], + [ + 105.7861041, + 20.9877465 + ], + [ + 105.7864437, + 20.9881802 + ], + [ + 105.7852904, + 20.988882 + ], + [ + 105.78511, + 20.9886388 + ], + [ + 105.7841529, + 20.9890349 + ], + [ + 105.7838931, + 20.988496 + ], + [ + 105.784454, + 20.9881959 + ], + [ + 105.7839731, + 20.987276 + ], + [ + 105.7836958, + 20.9870738 + ], + [ + 105.7826911, + 20.9875166 + ], + [ + 105.782013, + 20.9880076 + ], + [ + 105.7814921, + 20.9886629 + ], + [ + 105.7808261, + 20.9888688 + ], + [ + 105.7804894, + 20.9886834 + ], + [ + 105.7806688, + 20.9880135 + ], + [ + 105.7805248, + 20.9875245 + ], + [ + 105.779169, + 20.9862188 + ], + [ + 105.7783358, + 20.9849664 + ], + [ + 105.777975, + 20.9840923 + ], + [ + 105.7760811, + 20.9856467 + ], + [ + 105.7754288, + 20.9859777 + ], + [ + 105.7749279, + 20.9858929 + ], + [ + 105.7733568, + 20.9848879 + ], + [ + 105.7728386, + 20.9854614 + ], + [ + 105.7721358, + 20.98516 + ], + [ + 105.7716595, + 20.9857806 + ], + [ + 105.7707865, + 20.9853404 + ], + [ + 105.7681407, + 20.9834497 + ], + [ + 105.7678482, + 20.9835775 + ], + [ + 105.7673187, + 20.9834042 + ], + [ + 105.7671158, + 20.9839577 + ], + [ + 105.7672867, + 20.984035 + ], + [ + 105.7669373, + 20.9847527 + ], + [ + 105.7659272, + 20.984543 + ], + [ + 105.7660663, + 20.9830231 + ], + [ + 105.7647552, + 20.9829025 + ], + [ + 105.7645049, + 20.9812494 + ], + [ + 105.7642056, + 20.9811898 + ], + [ + 105.7641513, + 20.9801265 + ], + [ + 105.7615828, + 20.97966 + ], + [ + 105.7576629, + 20.9823668 + ], + [ + 105.7584133, + 20.9849471 + ], + [ + 105.7581558, + 20.985199 + ], + [ + 105.756219, + 20.9899041 + ], + [ + 105.7553275, + 20.9894294 + ], + [ + 105.7548599, + 20.9898737 + ], + [ + 105.7525767, + 20.9909776 + ], + [ + 105.7444992, + 20.9939051 + ], + [ + 105.7443237, + 20.9941521 + ], + [ + 105.7441635, + 20.9955025 + ], + [ + 105.7404099, + 20.9945812 + ], + [ + 105.7401505, + 20.9954395 + ], + [ + 105.7388871, + 20.99484 + ], + [ + 105.7377685, + 20.9966434 + ], + [ + 105.7366529, + 20.9967289 + ], + [ + 105.7361368, + 20.9969824 + ], + [ + 105.7352933, + 20.9965275 + ], + [ + 105.7304714, + 20.9953126 + ], + [ + 105.7304951, + 20.994801 + ], + [ + 105.7301444, + 20.9947854 + ], + [ + 105.7301705, + 20.9941349 + ], + [ + 105.7302908, + 20.994073 + ], + [ + 105.7301786, + 20.9936705 + ], + [ + 105.7314575, + 20.9933033 + ], + [ + 105.7315501, + 20.9931234 + ], + [ + 105.7314439, + 20.9927112 + ], + [ + 105.7305684, + 20.992554 + ], + [ + 105.7300252, + 20.9920582 + ], + [ + 105.730054, + 20.9917423 + ], + [ + 105.7305062, + 20.9918457 + ], + [ + 105.7306018, + 20.9914108 + ], + [ + 105.7302422, + 20.9913187 + ], + [ + 105.7307073, + 20.9904841 + ], + [ + 105.7328356, + 20.9906428 + ], + [ + 105.7351653, + 20.9862791 + ], + [ + 105.7378827, + 20.9856155 + ], + [ + 105.7377486, + 20.9863382 + ], + [ + 105.738884, + 20.9867248 + ], + [ + 105.7406928, + 20.9837837 + ], + [ + 105.7416818, + 20.9826089 + ], + [ + 105.7398126, + 20.980872 + ], + [ + 105.7411102, + 20.9796609 + ], + [ + 105.7402159, + 20.9788028 + ], + [ + 105.7410496, + 20.9780364 + ], + [ + 105.7412578, + 20.9770736 + ], + [ + 105.7405761, + 20.9769596 + ], + [ + 105.7406649, + 20.9764864 + ], + [ + 105.7405314, + 20.976465 + ], + [ + 105.7411039, + 20.9738212 + ], + [ + 105.7404591, + 20.9730511 + ], + [ + 105.7395487, + 20.9712907 + ], + [ + 105.7390466, + 20.9709288 + ], + [ + 105.7393825, + 20.970536 + ], + [ + 105.7390685, + 20.9704551 + ], + [ + 105.7393356, + 20.9694897 + ], + [ + 105.7399653, + 20.9694408 + ], + [ + 105.740101, + 20.9686923 + ], + [ + 105.7410076, + 20.9689222 + ], + [ + 105.7411897, + 20.9681203 + ], + [ + 105.7416509, + 20.9680551 + ], + [ + 105.741921, + 20.9675167 + ], + [ + 105.7419954, + 20.967038 + ], + [ + 105.7412186, + 20.9669018 + ], + [ + 105.7412927, + 20.966237 + ], + [ + 105.7405945, + 20.9660002 + ], + [ + 105.7410143, + 20.9649485 + ], + [ + 105.7420633, + 20.9654155 + ], + [ + 105.7427492, + 20.9642108 + ], + [ + 105.7396247, + 20.9626102 + ], + [ + 105.7390373, + 20.9637789 + ], + [ + 105.7357584, + 20.9621224 + ], + [ + 105.7316259, + 20.9596319 + ], + [ + 105.7305304, + 20.9608227 + ], + [ + 105.7251828, + 20.9554222 + ], + [ + 105.7258913, + 20.953227 + ], + [ + 105.7256404, + 20.9518988 + ], + [ + 105.7251162, + 20.950964 + ], + [ + 105.722507, + 20.9489459 + ], + [ + 105.7178057, + 20.9469006 + ], + [ + 105.7163572, + 20.9458064 + ], + [ + 105.7152879, + 20.9456488 + ], + [ + 105.7137747, + 20.9447244 + ], + [ + 105.713276, + 20.9438777 + ], + [ + 105.7125274, + 20.9431986 + ], + [ + 105.7114629, + 20.9416936 + ], + [ + 105.7111557, + 20.9403409 + ], + [ + 105.7113964, + 20.9389919 + ], + [ + 105.7120288, + 20.9377495 + ], + [ + 105.7140359, + 20.9357725 + ], + [ + 105.7165506, + 20.9346216 + ], + [ + 105.7192936, + 20.9344719 + ], + [ + 105.7206924, + 20.9348456 + ], + [ + 105.7213795, + 20.9351926 + ], + [ + 105.7220628, + 20.9358939 + ], + [ + 105.7225675, + 20.9369273 + ], + [ + 105.7228798, + 20.9395927 + ], + [ + 105.7228202, + 20.9411291 + ], + [ + 105.7232412, + 20.941801 + ], + [ + 105.7241736, + 20.9419202 + ], + [ + 105.7255063, + 20.9413113 + ], + [ + 105.7261417, + 20.9405401 + ], + [ + 105.7298443, + 20.9307515 + ], + [ + 105.7280666, + 20.9299151 + ], + [ + 105.7264169, + 20.9297049 + ], + [ + 105.7250056, + 20.9316244 + ], + [ + 105.7178063, + 20.9335345 + ], + [ + 105.7134798, + 20.9349984 + ], + [ + 105.7121798, + 20.93527 + ], + [ + 105.7107779, + 20.9352814 + ], + [ + 105.7093789, + 20.9349299 + ], + [ + 105.7066132, + 20.9335625 + ], + [ + 105.7062814, + 20.9332193 + ], + [ + 105.7060977, + 20.9332622 + ], + [ + 105.705286, + 20.9328657 + ], + [ + 105.7052511, + 20.9326872 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-haibatrung.json b/src/data/boundaries/hn/hn-haibatrung.json new file mode 100644 index 0000000..9880447 --- /dev/null +++ b/src/data/boundaries/hn/hn-haibatrung.json @@ -0,0 +1,562 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-HAIBATRUNG", + "name": "Hai Ba Trung", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 10.2, + "bbox": [ + 105.8409, + 20.98996, + 105.88241, + 21.02127 + ], + "center": [ + 21.00564, + 105.8585 + ], + "generatedAt": "2026-08-30T07:33:11.569Z", + "osm": "relation/9421134" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.8409006, + 21.0192317 + ], + [ + 105.8411571, + 21.0191634 + ], + [ + 105.841352, + 21.0188286 + ], + [ + 105.8413359, + 21.0175282 + ], + [ + 105.8410033, + 21.0174836 + ], + [ + 105.8413457, + 21.0162192 + ], + [ + 105.8413071, + 21.0004611 + ], + [ + 105.8426824, + 20.997311 + ], + [ + 105.8428695, + 20.9957401 + ], + [ + 105.8425839, + 20.994849 + ], + [ + 105.8414087, + 20.9929659 + ], + [ + 105.8411886, + 20.9929628 + ], + [ + 105.8411756, + 20.9919248 + ], + [ + 105.8428248, + 20.9920654 + ], + [ + 105.843141, + 20.9931785 + ], + [ + 105.8443126, + 20.9940228 + ], + [ + 105.8458192, + 20.9925998 + ], + [ + 105.8456544, + 20.9922011 + ], + [ + 105.8459961, + 20.9917533 + ], + [ + 105.8467974, + 20.9911812 + ], + [ + 105.8475677, + 20.9909222 + ], + [ + 105.8479098, + 20.9905742 + ], + [ + 105.8482817, + 20.9908963 + ], + [ + 105.8484787, + 20.9904435 + ], + [ + 105.8487434, + 20.9902447 + ], + [ + 105.8489188, + 20.9903358 + ], + [ + 105.849041, + 20.9901407 + ], + [ + 105.8496863, + 20.990697 + ], + [ + 105.8505542, + 20.9899563 + ], + [ + 105.8511636, + 20.9901261 + ], + [ + 105.8510641, + 20.9905631 + ], + [ + 105.8515647, + 20.9908538 + ], + [ + 105.8514088, + 20.9912889 + ], + [ + 105.8514058, + 20.9923667 + ], + [ + 105.8505306, + 20.9923501 + ], + [ + 105.8506917, + 20.9926461 + ], + [ + 105.8504896, + 20.993027 + ], + [ + 105.851882, + 20.9942179 + ], + [ + 105.852036, + 20.9942139 + ], + [ + 105.851999, + 20.9940662 + ], + [ + 105.8536312, + 20.9937274 + ], + [ + 105.8541609, + 20.9940503 + ], + [ + 105.85431, + 20.9938819 + ], + [ + 105.854684, + 20.9941274 + ], + [ + 105.8548683, + 20.9938775 + ], + [ + 105.8550186, + 20.9940436 + ], + [ + 105.8551597, + 20.9938418 + ], + [ + 105.8555695, + 20.9941406 + ], + [ + 105.8557034, + 20.9939455 + ], + [ + 105.8560404, + 20.9941804 + ], + [ + 105.8566845, + 20.9935897 + ], + [ + 105.8568523, + 20.9932301 + ], + [ + 105.8579469, + 20.9932692 + ], + [ + 105.8581562, + 20.9935798 + ], + [ + 105.8579425, + 20.993756 + ], + [ + 105.8585435, + 20.994838 + ], + [ + 105.8593716, + 20.9947641 + ], + [ + 105.8594805, + 20.9950567 + ], + [ + 105.8608939, + 20.9954426 + ], + [ + 105.8614024, + 20.9947667 + ], + [ + 105.8615169, + 20.9948506 + ], + [ + 105.861818, + 20.9945149 + ], + [ + 105.8616064, + 20.9942574 + ], + [ + 105.8608399, + 20.9939673 + ], + [ + 105.8611964, + 20.9927201 + ], + [ + 105.8626307, + 20.9928521 + ], + [ + 105.8622775, + 20.9958169 + ], + [ + 105.8629987, + 20.9959648 + ], + [ + 105.8630106, + 20.9957128 + ], + [ + 105.8636336, + 20.9956965 + ], + [ + 105.8636403, + 20.9946166 + ], + [ + 105.8659151, + 20.9946297 + ], + [ + 105.8659215, + 20.9930825 + ], + [ + 105.8709818, + 20.9931021 + ], + [ + 105.8716353, + 20.9929267 + ], + [ + 105.873143, + 20.9928553 + ], + [ + 105.8735265, + 20.9926631 + ], + [ + 105.8737572, + 20.9929762 + ], + [ + 105.8740158, + 20.9943008 + ], + [ + 105.8759682, + 20.994278 + ], + [ + 105.8758187, + 20.9970787 + ], + [ + 105.8762911, + 20.9972551 + ], + [ + 105.877997, + 20.9972956 + ], + [ + 105.8780005, + 20.9989079 + ], + [ + 105.8781821, + 20.9989131 + ], + [ + 105.8782384, + 21.0001483 + ], + [ + 105.8768964, + 21.0007996 + ], + [ + 105.8753194, + 21.001117 + ], + [ + 105.8754403, + 21.0021742 + ], + [ + 105.8765913, + 21.0021076 + ], + [ + 105.8794424, + 21.000662 + ], + [ + 105.8817704, + 21.0012523 + ], + [ + 105.8824116, + 21.0037588 + ], + [ + 105.8814425, + 21.0041734 + ], + [ + 105.8786959, + 21.006401 + ], + [ + 105.8731684, + 21.011577 + ], + [ + 105.8680358, + 21.0179708 + ], + [ + 105.8672823, + 21.020032 + ], + [ + 105.8612895, + 21.0183922 + ], + [ + 105.8587169, + 21.0190341 + ], + [ + 105.8566804, + 21.0186808 + ], + [ + 105.8567313, + 21.0188421 + ], + [ + 105.8560218, + 21.0189765 + ], + [ + 105.8555275, + 21.0187658 + ], + [ + 105.8555972, + 21.0184582 + ], + [ + 105.8546249, + 21.0181302 + ], + [ + 105.8534767, + 21.0184226 + ], + [ + 105.853418, + 21.0183008 + ], + [ + 105.8526657, + 21.0183963 + ], + [ + 105.8527107, + 21.0186607 + ], + [ + 105.8522116, + 21.0188035 + ], + [ + 105.8519903, + 21.0182123 + ], + [ + 105.8508894, + 21.0184278 + ], + [ + 105.8510876, + 21.0191321 + ], + [ + 105.8504023, + 21.019334 + ], + [ + 105.8503176, + 21.0191076 + ], + [ + 105.8498617, + 21.0190691 + ], + [ + 105.8497252, + 21.0186569 + ], + [ + 105.8488176, + 21.0188274 + ], + [ + 105.8476581, + 21.0190908 + ], + [ + 105.8477513, + 21.0193581 + ], + [ + 105.8472204, + 21.019478 + ], + [ + 105.8472985, + 21.0197226 + ], + [ + 105.8469863, + 21.0198135 + ], + [ + 105.846934, + 21.0196501 + ], + [ + 105.8440974, + 21.0201524 + ], + [ + 105.8441356, + 21.0202818 + ], + [ + 105.8417808, + 21.021032 + ], + [ + 105.8418589, + 21.0212625 + ], + [ + 105.8411301, + 21.021271 + ], + [ + 105.8411255, + 21.0210586 + ], + [ + 105.8409287, + 21.0210536 + ], + [ + 105.8409006, + 21.0192317 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-hoaiduc.json b/src/data/boundaries/hn/hn-hoaiduc.json new file mode 100644 index 0000000..9c20571 --- /dev/null +++ b/src/data/boundaries/hn/hn-hoaiduc.json @@ -0,0 +1,1582 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-HOAIDUC", + "name": "Hoai Duc", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 85.3, + "bbox": [ + 105.64615, + 20.95542, + 105.74275, + 21.09028 + ], + "center": [ + 21.02405, + 105.69946 + ], + "generatedAt": "2026-08-30T07:33:42.269Z", + "osm": "relation/7115795" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.646147, + 21.0626873 + ], + [ + 105.647054, + 21.0597343 + ], + [ + 105.64787, + 21.0587543 + ], + [ + 105.649136, + 21.0556883 + ], + [ + 105.649678, + 21.0502741 + ], + [ + 105.6503965, + 21.0459102 + ], + [ + 105.6509286, + 21.0440936 + ], + [ + 105.6517279, + 21.043116 + ], + [ + 105.6526124, + 21.0426333 + ], + [ + 105.6530479, + 21.0408882 + ], + [ + 105.6529441, + 21.0403285 + ], + [ + 105.6545968, + 21.039539 + ], + [ + 105.654338, + 21.038877 + ], + [ + 105.6546282, + 21.0387009 + ], + [ + 105.654665, + 21.0376245 + ], + [ + 105.6613679, + 21.0349645 + ], + [ + 105.6612937, + 21.0347113 + ], + [ + 105.6621845, + 21.034485 + ], + [ + 105.6622709, + 21.0346645 + ], + [ + 105.6630262, + 21.0343972 + ], + [ + 105.6634994, + 21.0337672 + ], + [ + 105.6634477, + 21.0336031 + ], + [ + 105.6644271, + 21.0337274 + ], + [ + 105.6665843, + 21.0310708 + ], + [ + 105.6672682, + 21.0305539 + ], + [ + 105.6670713, + 21.0302076 + ], + [ + 105.6675828, + 21.0294937 + ], + [ + 105.6668703, + 21.0289556 + ], + [ + 105.6673033, + 21.028253 + ], + [ + 105.667487, + 21.0282956 + ], + [ + 105.6680089, + 21.0267209 + ], + [ + 105.668915, + 21.0267646 + ], + [ + 105.66906, + 21.0248418 + ], + [ + 105.66929, + 21.0248206 + ], + [ + 105.6687226, + 21.0237912 + ], + [ + 105.677228, + 21.0191626 + ], + [ + 105.6766821, + 21.0148487 + ], + [ + 105.6768913, + 21.0143149 + ], + [ + 105.6766017, + 21.0127172 + ], + [ + 105.6769323, + 21.0115827 + ], + [ + 105.6766546, + 21.0103316 + ], + [ + 105.676846, + 21.009492 + ], + [ + 105.676213, + 21.008538 + ], + [ + 105.675073, + 21.00812 + ], + [ + 105.6732959, + 21.0084739 + ], + [ + 105.6710172, + 21.0093009 + ], + [ + 105.6694534, + 21.0096411 + ], + [ + 105.667922, + 21.009752 + ], + [ + 105.6664971, + 21.0094811 + ], + [ + 105.6648282, + 21.0083749 + ], + [ + 105.6636875, + 21.0073779 + ], + [ + 105.6633809, + 21.0066383 + ], + [ + 105.663996, + 21.0027864 + ], + [ + 105.6642988, + 21.0019419 + ], + [ + 105.6665362, + 20.9988061 + ], + [ + 105.6671062, + 20.9986229 + ], + [ + 105.6669896, + 20.9970568 + ], + [ + 105.66747, + 20.9962392 + ], + [ + 105.6675717, + 20.9936043 + ], + [ + 105.6670625, + 20.9905668 + ], + [ + 105.6659968, + 20.9863825 + ], + [ + 105.6656097, + 20.9859001 + ], + [ + 105.6656894, + 20.9855564 + ], + [ + 105.6650702, + 20.9835791 + ], + [ + 105.6650959, + 20.9830384 + ], + [ + 105.6652688, + 20.9827665 + ], + [ + 105.6658076, + 20.9823415 + ], + [ + 105.6674539, + 20.982093 + ], + [ + 105.6679803, + 20.9821856 + ], + [ + 105.6707629, + 20.9836768 + ], + [ + 105.6716949, + 20.9843637 + ], + [ + 105.6732645, + 20.9846979 + ], + [ + 105.6743132, + 20.9864694 + ], + [ + 105.6747049, + 20.9866067 + ], + [ + 105.6759747, + 20.986173 + ], + [ + 105.6762885, + 20.9858208 + ], + [ + 105.6766856, + 20.9848458 + ], + [ + 105.6772876, + 20.9841436 + ], + [ + 105.679225, + 20.9826489 + ], + [ + 105.6797024, + 20.9816214 + ], + [ + 105.6815555, + 20.9792617 + ], + [ + 105.681959, + 20.97835 + ], + [ + 105.6825977, + 20.9777852 + ], + [ + 105.6836676, + 20.9773252 + ], + [ + 105.6860555, + 20.9751586 + ], + [ + 105.6874366, + 20.9747981 + ], + [ + 105.6862465, + 20.9726347 + ], + [ + 105.6839398, + 20.970281 + ], + [ + 105.6849121, + 20.9695237 + ], + [ + 105.685034, + 20.9696415 + ], + [ + 105.6852319, + 20.9692101 + ], + [ + 105.686151, + 20.969642 + ], + [ + 105.6861523, + 20.9701183 + ], + [ + 105.68708, + 20.9699495 + ], + [ + 105.6875769, + 20.9705307 + ], + [ + 105.6885547, + 20.9721343 + ], + [ + 105.6891693, + 20.972666 + ], + [ + 105.6887474, + 20.9728753 + ], + [ + 105.6893041, + 20.9744639 + ], + [ + 105.6900269, + 20.9747333 + ], + [ + 105.6915745, + 20.9760585 + ], + [ + 105.6936493, + 20.9775314 + ], + [ + 105.696653, + 20.978045 + ], + [ + 105.698656, + 20.977708 + ], + [ + 105.70151, + 20.976105 + ], + [ + 105.703875, + 20.97401 + ], + [ + 105.705468, + 20.973254 + ], + [ + 105.708344, + 20.972364 + ], + [ + 105.710031, + 20.97104 + ], + [ + 105.710826, + 20.970342 + ], + [ + 105.712102, + 20.968489 + ], + [ + 105.7129951, + 20.968265 + ], + [ + 105.7136762, + 20.9677362 + ], + [ + 105.7138556, + 20.965589 + ], + [ + 105.7152962, + 20.9631485 + ], + [ + 105.7171874, + 20.9614192 + ], + [ + 105.724106, + 20.9565706 + ], + [ + 105.7251828, + 20.9554222 + ], + [ + 105.7305304, + 20.9608227 + ], + [ + 105.7316259, + 20.9596319 + ], + [ + 105.7357584, + 20.9621224 + ], + [ + 105.7390373, + 20.9637789 + ], + [ + 105.7396247, + 20.9626102 + ], + [ + 105.7427492, + 20.9642108 + ], + [ + 105.7420633, + 20.9654155 + ], + [ + 105.7410143, + 20.9649485 + ], + [ + 105.7405945, + 20.9660002 + ], + [ + 105.7412927, + 20.966237 + ], + [ + 105.7412186, + 20.9669018 + ], + [ + 105.7419954, + 20.967038 + ], + [ + 105.741921, + 20.9675167 + ], + [ + 105.7416509, + 20.9680551 + ], + [ + 105.7411897, + 20.9681203 + ], + [ + 105.7410076, + 20.9689222 + ], + [ + 105.740101, + 20.9686923 + ], + [ + 105.7399653, + 20.9694408 + ], + [ + 105.7393356, + 20.9694897 + ], + [ + 105.7390685, + 20.9704551 + ], + [ + 105.7393825, + 20.970536 + ], + [ + 105.7390466, + 20.9709288 + ], + [ + 105.7395487, + 20.9712907 + ], + [ + 105.7404591, + 20.9730511 + ], + [ + 105.7411039, + 20.9738212 + ], + [ + 105.7405314, + 20.976465 + ], + [ + 105.7406649, + 20.9764864 + ], + [ + 105.7405761, + 20.9769596 + ], + [ + 105.7412578, + 20.9770736 + ], + [ + 105.7410496, + 20.9780364 + ], + [ + 105.7402159, + 20.9788028 + ], + [ + 105.7411102, + 20.9796609 + ], + [ + 105.7398126, + 20.980872 + ], + [ + 105.7416818, + 20.9826089 + ], + [ + 105.7406928, + 20.9837837 + ], + [ + 105.738884, + 20.9867248 + ], + [ + 105.7377486, + 20.9863382 + ], + [ + 105.7378827, + 20.9856155 + ], + [ + 105.7351653, + 20.9862791 + ], + [ + 105.7328356, + 20.9906428 + ], + [ + 105.7307073, + 20.9904841 + ], + [ + 105.7302422, + 20.9913187 + ], + [ + 105.7306018, + 20.9914108 + ], + [ + 105.7305062, + 20.9918457 + ], + [ + 105.730054, + 20.9917423 + ], + [ + 105.7300252, + 20.9920582 + ], + [ + 105.7305684, + 20.992554 + ], + [ + 105.7314439, + 20.9927112 + ], + [ + 105.7315501, + 20.9931234 + ], + [ + 105.7314575, + 20.9933033 + ], + [ + 105.7301786, + 20.9936705 + ], + [ + 105.7302908, + 20.994073 + ], + [ + 105.7301705, + 20.9941349 + ], + [ + 105.7301444, + 20.9947854 + ], + [ + 105.7304951, + 20.994801 + ], + [ + 105.7304714, + 20.9953126 + ], + [ + 105.7352933, + 20.9965275 + ], + [ + 105.734642, + 21.0027733 + ], + [ + 105.7341395, + 21.0027566 + ], + [ + 105.7336731, + 21.0042858 + ], + [ + 105.7351481, + 21.0050517 + ], + [ + 105.7354352, + 21.0057915 + ], + [ + 105.7352881, + 21.0065041 + ], + [ + 105.7358041, + 21.0081832 + ], + [ + 105.7330678, + 21.0081356 + ], + [ + 105.7331006, + 21.0088612 + ], + [ + 105.7322403, + 21.0118537 + ], + [ + 105.7339706, + 21.0154285 + ], + [ + 105.7325516, + 21.0168076 + ], + [ + 105.7314199, + 21.0170569 + ], + [ + 105.7312698, + 21.016531 + ], + [ + 105.7298245, + 21.0179927 + ], + [ + 105.7318943, + 21.0195202 + ], + [ + 105.7334891, + 21.0213493 + ], + [ + 105.7339401, + 21.0214691 + ], + [ + 105.7344356, + 21.0226617 + ], + [ + 105.7350108, + 21.0225604 + ], + [ + 105.7349928, + 21.0219194 + ], + [ + 105.7356748, + 21.0216587 + ], + [ + 105.7361321, + 21.0218284 + ], + [ + 105.7360296, + 21.022637 + ], + [ + 105.7365049, + 21.0223737 + ], + [ + 105.736992, + 21.0233022 + ], + [ + 105.7373888, + 21.0233561 + ], + [ + 105.7377014, + 21.0232163 + ], + [ + 105.7377985, + 21.0227527 + ], + [ + 105.7375958, + 21.0225302 + ], + [ + 105.7377577, + 21.0223356 + ], + [ + 105.7381521, + 21.022317 + ], + [ + 105.7385766, + 21.0226287 + ], + [ + 105.7389711, + 21.0237957 + ], + [ + 105.7391098, + 21.0250557 + ], + [ + 105.7390352, + 21.0253674 + ], + [ + 105.7387183, + 21.0256557 + ], + [ + 105.737573, + 21.025782 + ], + [ + 105.7376945, + 21.0263062 + ], + [ + 105.7383855, + 21.0268519 + ], + [ + 105.7384084, + 21.0273801 + ], + [ + 105.7379724, + 21.0277714 + ], + [ + 105.7383666, + 21.0280314 + ], + [ + 105.7382135, + 21.0284153 + ], + [ + 105.7377724, + 21.0283352 + ], + [ + 105.7372438, + 21.0292288 + ], + [ + 105.7374506, + 21.0299225 + ], + [ + 105.7371653, + 21.03044 + ], + [ + 105.7371318, + 21.031008 + ], + [ + 105.7371934, + 21.0314655 + ], + [ + 105.7386467, + 21.0317996 + ], + [ + 105.7384347, + 21.0326087 + ], + [ + 105.738947, + 21.0327142 + ], + [ + 105.738698, + 21.0336842 + ], + [ + 105.7385907, + 21.0356285 + ], + [ + 105.7382584, + 21.035574 + ], + [ + 105.7381194, + 21.0361481 + ], + [ + 105.7385343, + 21.0362903 + ], + [ + 105.7385201, + 21.0365003 + ], + [ + 105.737761, + 21.0364883 + ], + [ + 105.7364153, + 21.0369263 + ], + [ + 105.7347716, + 21.0368658 + ], + [ + 105.7347822, + 21.0373786 + ], + [ + 105.7344242, + 21.037534 + ], + [ + 105.7339299, + 21.0381434 + ], + [ + 105.7335914, + 21.0382606 + ], + [ + 105.7341082, + 21.0397201 + ], + [ + 105.7339636, + 21.0400469 + ], + [ + 105.7336747, + 21.0401029 + ], + [ + 105.7336209, + 21.0402557 + ], + [ + 105.7340858, + 21.0407417 + ], + [ + 105.7334343, + 21.041596 + ], + [ + 105.7335238, + 21.0421012 + ], + [ + 105.7331304, + 21.0425022 + ], + [ + 105.7332142, + 21.0427168 + ], + [ + 105.733554, + 21.0427936 + ], + [ + 105.7334706, + 21.0432823 + ], + [ + 105.7330194, + 21.0437805 + ], + [ + 105.7323085, + 21.0437831 + ], + [ + 105.7324254, + 21.0441141 + ], + [ + 105.7320982, + 21.0447302 + ], + [ + 105.7325861, + 21.0449842 + ], + [ + 105.732584, + 21.0454148 + ], + [ + 105.7318508, + 21.046273 + ], + [ + 105.731203, + 21.0467185 + ], + [ + 105.7309605, + 21.0464972 + ], + [ + 105.7301069, + 21.046918 + ], + [ + 105.7301375, + 21.0470275 + ], + [ + 105.7293435, + 21.047176 + ], + [ + 105.729502, + 21.0480528 + ], + [ + 105.7279511, + 21.0484161 + ], + [ + 105.7286835, + 21.050539 + ], + [ + 105.7281444, + 21.0508357 + ], + [ + 105.7282015, + 21.0512385 + ], + [ + 105.7265554, + 21.0527566 + ], + [ + 105.7294564, + 21.0565602 + ], + [ + 105.7287954, + 21.0569625 + ], + [ + 105.729456, + 21.0575117 + ], + [ + 105.7290123, + 21.0587964 + ], + [ + 105.7296708, + 21.0590002 + ], + [ + 105.7290196, + 21.060956 + ], + [ + 105.7242902, + 21.0660372 + ], + [ + 105.7206813, + 21.0686153 + ], + [ + 105.7209055, + 21.069546 + ], + [ + 105.7177875, + 21.070236 + ], + [ + 105.7180273, + 21.0704879 + ], + [ + 105.7177709, + 21.071264 + ], + [ + 105.7172148, + 21.0712355 + ], + [ + 105.7159004, + 21.0715435 + ], + [ + 105.7159534, + 21.0722462 + ], + [ + 105.7091892, + 21.0740592 + ], + [ + 105.7082411, + 21.071109 + ], + [ + 105.7079076, + 21.0712771 + ], + [ + 105.7080063, + 21.0715577 + ], + [ + 105.7076695, + 21.0719715 + ], + [ + 105.7071802, + 21.0718758 + ], + [ + 105.7071262, + 21.0720236 + ], + [ + 105.706726, + 21.0718596 + ], + [ + 105.7053572, + 21.0722031 + ], + [ + 105.7048673, + 21.0714623 + ], + [ + 105.6988449, + 21.0750055 + ], + [ + 105.6997612, + 21.0765248 + ], + [ + 105.6999267, + 21.0773198 + ], + [ + 105.7005633, + 21.07777 + ], + [ + 105.7014318, + 21.0797668 + ], + [ + 105.7011983, + 21.0800199 + ], + [ + 105.7014809, + 21.0808355 + ], + [ + 105.6980501, + 21.0825966 + ], + [ + 105.6982362, + 21.0835771 + ], + [ + 105.6964734, + 21.0834671 + ], + [ + 105.6964687, + 21.0849105 + ], + [ + 105.6976076, + 21.084954 + ], + [ + 105.6968242, + 21.0867724 + ], + [ + 105.6955784, + 21.0863373 + ], + [ + 105.6907182, + 21.0882351 + ], + [ + 105.6901243, + 21.0883206 + ], + [ + 105.6900243, + 21.0885836 + ], + [ + 105.6887389, + 21.0884804 + ], + [ + 105.6886311, + 21.0888257 + ], + [ + 105.6883117, + 21.0887667 + ], + [ + 105.6881985, + 21.0892207 + ], + [ + 105.6874715, + 21.0895577 + ], + [ + 105.6872821, + 21.0894921 + ], + [ + 105.6868197, + 21.0898583 + ], + [ + 105.6868217, + 21.090284 + ], + [ + 105.6857241, + 21.0894216 + ], + [ + 105.6857238, + 21.089108 + ], + [ + 105.6853127, + 21.0885772 + ], + [ + 105.6850631, + 21.0878272 + ], + [ + 105.6837754, + 21.0875349 + ], + [ + 105.6838481, + 21.0873435 + ], + [ + 105.6832408, + 21.0871174 + ], + [ + 105.681772, + 21.0858425 + ], + [ + 105.6810443, + 21.0853318 + ], + [ + 105.680754, + 21.0853376 + ], + [ + 105.6799874, + 21.0846818 + ], + [ + 105.6791144, + 21.0849433 + ], + [ + 105.6787659, + 21.0849019 + ], + [ + 105.6773275, + 21.0843117 + ], + [ + 105.6770984, + 21.0835894 + ], + [ + 105.6774119, + 21.0834286 + ], + [ + 105.6774194, + 21.0829666 + ], + [ + 105.6772528, + 21.0828747 + ], + [ + 105.6776299, + 21.0820597 + ], + [ + 105.6774992, + 21.0815813 + ], + [ + 105.6795661, + 21.0810304 + ], + [ + 105.6755436, + 21.0766896 + ], + [ + 105.6759457, + 21.0762558 + ], + [ + 105.6748646, + 21.0755127 + ], + [ + 105.6760818, + 21.073839 + ], + [ + 105.6730113, + 21.0725328 + ], + [ + 105.6731037, + 21.0723544 + ], + [ + 105.6718014, + 21.0716138 + ], + [ + 105.6725343, + 21.0703123 + ], + [ + 105.6723339, + 21.0702111 + ], + [ + 105.6714671, + 21.0704021 + ], + [ + 105.6709285, + 21.0703379 + ], + [ + 105.6704125, + 21.0700465 + ], + [ + 105.6698921, + 21.0704552 + ], + [ + 105.6687745, + 21.0718207 + ], + [ + 105.6670585, + 21.0724021 + ], + [ + 105.6667732, + 21.0726336 + ], + [ + 105.6637555, + 21.0706619 + ], + [ + 105.6638742, + 21.0680984 + ], + [ + 105.6646736, + 21.0679168 + ], + [ + 105.6656136, + 21.0679953 + ], + [ + 105.6660082, + 21.0683503 + ], + [ + 105.6667126, + 21.0675512 + ], + [ + 105.6655423, + 21.0666612 + ], + [ + 105.6636599, + 21.0661423 + ], + [ + 105.6645363, + 21.0645686 + ], + [ + 105.6649564, + 21.0626357 + ], + [ + 105.6649137, + 21.0622934 + ], + [ + 105.6643097, + 21.0617342 + ], + [ + 105.6641838, + 21.0607214 + ], + [ + 105.6638605, + 21.0600991 + ], + [ + 105.6633068, + 21.059619 + ], + [ + 105.6622344, + 21.0589181 + ], + [ + 105.6616822, + 21.058737 + ], + [ + 105.6602624, + 21.0586929 + ], + [ + 105.6576489, + 21.0591792 + ], + [ + 105.6556605, + 21.0600539 + ], + [ + 105.6540358, + 21.0611621 + ], + [ + 105.6519077, + 21.0629989 + ], + [ + 105.6510104, + 21.0634914 + ], + [ + 105.6496911, + 21.0649535 + ], + [ + 105.6483134, + 21.0646755 + ], + [ + 105.6480121, + 21.0651588 + ], + [ + 105.647497, + 21.0652368 + ], + [ + 105.6472744, + 21.064962 + ], + [ + 105.6470973, + 21.0641841 + ], + [ + 105.6462651, + 21.0633146 + ], + [ + 105.646147, + 21.0626873 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-hoangmai.json b/src/data/boundaries/hn/hn-hoangmai.json new file mode 100644 index 0000000..7886ecb --- /dev/null +++ b/src/data/boundaries/hn/hn-hoangmai.json @@ -0,0 +1,858 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-HOANGMAI", + "name": "Hoang Mai", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 40.1, + "bbox": [ + 105.80739, + 20.94544, + 105.90879, + 21.00376 + ], + "center": [ + 20.97454, + 105.86322 + ], + "generatedAt": "2026-08-30T07:33:13.064Z", + "osm": "relation/9421133" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.8073883, + 20.9739057 + ], + [ + 105.8087599, + 20.973206 + ], + [ + 105.8082688, + 20.9724803 + ], + [ + 105.8131645, + 20.9696438 + ], + [ + 105.8140956, + 20.9710772 + ], + [ + 105.8152349, + 20.9705667 + ], + [ + 105.8157566, + 20.9700722 + ], + [ + 105.8166237, + 20.971319 + ], + [ + 105.8180039, + 20.9711294 + ], + [ + 105.8183579, + 20.9717445 + ], + [ + 105.8196487, + 20.9723682 + ], + [ + 105.8249893, + 20.9707413 + ], + [ + 105.8237194, + 20.967736 + ], + [ + 105.8219327, + 20.966127 + ], + [ + 105.8192678, + 20.9642224 + ], + [ + 105.8180924, + 20.963129 + ], + [ + 105.8182594, + 20.9623872 + ], + [ + 105.8185481, + 20.9624377 + ], + [ + 105.8185567, + 20.9611756 + ], + [ + 105.8166564, + 20.9608991 + ], + [ + 105.8163757, + 20.9599285 + ], + [ + 105.817469, + 20.9597115 + ], + [ + 105.8182167, + 20.959376 + ], + [ + 105.8195475, + 20.9579177 + ], + [ + 105.8203648, + 20.9573014 + ], + [ + 105.8256989, + 20.956419 + ], + [ + 105.8271392, + 20.9555681 + ], + [ + 105.8289386, + 20.954084 + ], + [ + 105.8307969, + 20.9530369 + ], + [ + 105.8311049, + 20.9535796 + ], + [ + 105.8314843, + 20.9534231 + ], + [ + 105.8318021, + 20.9540825 + ], + [ + 105.8310231, + 20.9543572 + ], + [ + 105.8314232, + 20.9554382 + ], + [ + 105.8337708, + 20.955162 + ], + [ + 105.833992, + 20.9566307 + ], + [ + 105.8347473, + 20.9567337 + ], + [ + 105.8351364, + 20.9583798 + ], + [ + 105.8358761, + 20.9583165 + ], + [ + 105.8359567, + 20.9588966 + ], + [ + 105.8362429, + 20.9589126 + ], + [ + 105.8363521, + 20.9579625 + ], + [ + 105.8381068, + 20.9581249 + ], + [ + 105.8386025, + 20.9570166 + ], + [ + 105.8390306, + 20.9574783 + ], + [ + 105.8426819, + 20.9581852 + ], + [ + 105.8441773, + 20.9511261 + ], + [ + 105.8464429, + 20.9517253 + ], + [ + 105.8499454, + 20.9529268 + ], + [ + 105.852479, + 20.9541788 + ], + [ + 105.8537395, + 20.9550156 + ], + [ + 105.8584958, + 20.9573193 + ], + [ + 105.8600388, + 20.9536839 + ], + [ + 105.8637161, + 20.9513283 + ], + [ + 105.866502, + 20.950883 + ], + [ + 105.8668097, + 20.9516407 + ], + [ + 105.8687627, + 20.950853 + ], + [ + 105.872107, + 20.9559281 + ], + [ + 105.8792114, + 20.951191 + ], + [ + 105.8860035, + 20.9454443 + ], + [ + 105.890152, + 20.9516888 + ], + [ + 105.8975067, + 20.9601173 + ], + [ + 105.9028778, + 20.9677639 + ], + [ + 105.9078727, + 20.9778785 + ], + [ + 105.9087898, + 20.9820266 + ], + [ + 105.9086238, + 20.9846903 + ], + [ + 105.9067548, + 20.9878294 + ], + [ + 105.9035184, + 20.9915822 + ], + [ + 105.9007397, + 20.9941093 + ], + [ + 105.897819, + 20.9964489 + ], + [ + 105.8943127, + 20.9988433 + ], + [ + 105.8874507, + 21.001401 + ], + [ + 105.8824116, + 21.0037588 + ], + [ + 105.8817704, + 21.0012523 + ], + [ + 105.8797133, + 21.0006589 + ], + [ + 105.8794424, + 21.000662 + ], + [ + 105.8765913, + 21.0021076 + ], + [ + 105.8754403, + 21.0021742 + ], + [ + 105.8753194, + 21.001117 + ], + [ + 105.8768964, + 21.0007996 + ], + [ + 105.8782384, + 21.0001483 + ], + [ + 105.8781821, + 20.9989131 + ], + [ + 105.8780005, + 20.9989079 + ], + [ + 105.877997, + 20.9972956 + ], + [ + 105.8762911, + 20.9972551 + ], + [ + 105.8758187, + 20.9970787 + ], + [ + 105.8759682, + 20.994278 + ], + [ + 105.8740158, + 20.9943008 + ], + [ + 105.8737572, + 20.9929762 + ], + [ + 105.8735265, + 20.9926631 + ], + [ + 105.873143, + 20.9928553 + ], + [ + 105.8716353, + 20.9929267 + ], + [ + 105.8709818, + 20.9931021 + ], + [ + 105.8659215, + 20.9930825 + ], + [ + 105.8659151, + 20.9946297 + ], + [ + 105.8636403, + 20.9946166 + ], + [ + 105.8636336, + 20.9956965 + ], + [ + 105.8630106, + 20.9957128 + ], + [ + 105.8629987, + 20.9959648 + ], + [ + 105.8622775, + 20.9958169 + ], + [ + 105.8626307, + 20.9928521 + ], + [ + 105.8611964, + 20.9927201 + ], + [ + 105.8608399, + 20.9939673 + ], + [ + 105.8616064, + 20.9942574 + ], + [ + 105.861818, + 20.9945149 + ], + [ + 105.8615169, + 20.9948506 + ], + [ + 105.8614024, + 20.9947667 + ], + [ + 105.8608939, + 20.9954426 + ], + [ + 105.8594805, + 20.9950567 + ], + [ + 105.8593716, + 20.9947641 + ], + [ + 105.8585435, + 20.994838 + ], + [ + 105.8579425, + 20.993756 + ], + [ + 105.8581562, + 20.9935798 + ], + [ + 105.8579469, + 20.9932692 + ], + [ + 105.8568523, + 20.9932301 + ], + [ + 105.8566845, + 20.9935897 + ], + [ + 105.8560404, + 20.9941804 + ], + [ + 105.8557034, + 20.9939455 + ], + [ + 105.8555695, + 20.9941406 + ], + [ + 105.8551597, + 20.9938418 + ], + [ + 105.8550186, + 20.9940436 + ], + [ + 105.8548683, + 20.9938775 + ], + [ + 105.854684, + 20.9941274 + ], + [ + 105.85431, + 20.9938819 + ], + [ + 105.8541609, + 20.9940503 + ], + [ + 105.8536312, + 20.9937274 + ], + [ + 105.851999, + 20.9940662 + ], + [ + 105.852036, + 20.9942139 + ], + [ + 105.851882, + 20.9942179 + ], + [ + 105.8504896, + 20.993027 + ], + [ + 105.8506917, + 20.9926461 + ], + [ + 105.8505306, + 20.9923501 + ], + [ + 105.8514058, + 20.9923667 + ], + [ + 105.8514088, + 20.9912889 + ], + [ + 105.8515647, + 20.9908538 + ], + [ + 105.8510641, + 20.9905631 + ], + [ + 105.8511636, + 20.9901261 + ], + [ + 105.8505542, + 20.9899563 + ], + [ + 105.8496863, + 20.990697 + ], + [ + 105.849041, + 20.9901407 + ], + [ + 105.8489188, + 20.9903358 + ], + [ + 105.8487434, + 20.9902447 + ], + [ + 105.8484787, + 20.9904435 + ], + [ + 105.8482817, + 20.9908963 + ], + [ + 105.8479098, + 20.9905742 + ], + [ + 105.8475677, + 20.9909222 + ], + [ + 105.8467974, + 20.9911812 + ], + [ + 105.8459961, + 20.9917533 + ], + [ + 105.8456544, + 20.9922011 + ], + [ + 105.8458192, + 20.9925998 + ], + [ + 105.8443126, + 20.9940228 + ], + [ + 105.843141, + 20.9931785 + ], + [ + 105.8428248, + 20.9920654 + ], + [ + 105.8411756, + 20.9919248 + ], + [ + 105.8410587, + 20.9854146 + ], + [ + 105.8375177, + 20.9838812 + ], + [ + 105.8365391, + 20.9857867 + ], + [ + 105.8356537, + 20.9855105 + ], + [ + 105.835289, + 20.9865866 + ], + [ + 105.8349722, + 20.9867733 + ], + [ + 105.8339923, + 20.9882282 + ], + [ + 105.8338235, + 20.9880845 + ], + [ + 105.8335351, + 20.9884566 + ], + [ + 105.8337948, + 20.9886077 + ], + [ + 105.8335481, + 20.9893916 + ], + [ + 105.8332758, + 20.9891907 + ], + [ + 105.8331242, + 20.9892538 + ], + [ + 105.832593, + 20.9898237 + ], + [ + 105.8324136, + 20.9903439 + ], + [ + 105.8319262, + 20.990325 + ], + [ + 105.8309168, + 20.9919633 + ], + [ + 105.8305148, + 20.9932046 + ], + [ + 105.8302384, + 20.993544 + ], + [ + 105.8293818, + 20.9930265 + ], + [ + 105.8284586, + 20.993581 + ], + [ + 105.8281027, + 20.9930484 + ], + [ + 105.827863, + 20.993133 + ], + [ + 105.8275234, + 20.9926901 + ], + [ + 105.8272994, + 20.9916723 + ], + [ + 105.8270288, + 20.9914228 + ], + [ + 105.8267682, + 20.9915716 + ], + [ + 105.8263722, + 20.991313 + ], + [ + 105.8244454, + 20.9892345 + ], + [ + 105.8249429, + 20.988673 + ], + [ + 105.8229859, + 20.9868674 + ], + [ + 105.820343, + 20.9854372 + ], + [ + 105.8204299, + 20.9852386 + ], + [ + 105.8194547, + 20.9848938 + ], + [ + 105.819547, + 20.9846233 + ], + [ + 105.8186721, + 20.9843114 + ], + [ + 105.8188331, + 20.9839253 + ], + [ + 105.8187154, + 20.9830612 + ], + [ + 105.8189901, + 20.9828929 + ], + [ + 105.8189662, + 20.9824693 + ], + [ + 105.8187176, + 20.9813471 + ], + [ + 105.8183402, + 20.9807013 + ], + [ + 105.8166696, + 20.9820833 + ], + [ + 105.8156492, + 20.9832811 + ], + [ + 105.8145841, + 20.9823579 + ], + [ + 105.8134186, + 20.9805625 + ], + [ + 105.8112612, + 20.9815285 + ], + [ + 105.8108342, + 20.9812607 + ], + [ + 105.8096224, + 20.9828803 + ], + [ + 105.8092191, + 20.9817649 + ], + [ + 105.8081011, + 20.9810101 + ], + [ + 105.8097509, + 20.9792912 + ], + [ + 105.8073883, + 20.9739057 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-hoankiem.json b/src/data/boundaries/hn/hn-hoankiem.json new file mode 100644 index 0000000..5be2e6c --- /dev/null +++ b/src/data/boundaries/hn/hn-hoankiem.json @@ -0,0 +1,310 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-HOANKIEM", + "name": "Hoan Kiem", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 5.3, + "bbox": [ + 105.84093, + 21.01813, + 105.86728, + 21.04321 + ], + "center": [ + 21.02901, + 105.85378 + ], + "generatedAt": "2026-08-30T07:33:02.346Z", + "osm": "relation/9421131" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.8409287, + 21.0210536 + ], + [ + 105.8411255, + 21.0210586 + ], + [ + 105.8411301, + 21.021271 + ], + [ + 105.8418589, + 21.0212625 + ], + [ + 105.8417808, + 21.021032 + ], + [ + 105.8441356, + 21.0202818 + ], + [ + 105.8440974, + 21.0201524 + ], + [ + 105.846934, + 21.0196501 + ], + [ + 105.8469863, + 21.0198135 + ], + [ + 105.8472985, + 21.0197226 + ], + [ + 105.8472204, + 21.019478 + ], + [ + 105.8477513, + 21.0193581 + ], + [ + 105.8476581, + 21.0190908 + ], + [ + 105.8497252, + 21.0186569 + ], + [ + 105.8498617, + 21.0190691 + ], + [ + 105.8503176, + 21.0191076 + ], + [ + 105.8504023, + 21.019334 + ], + [ + 105.8510876, + 21.0191321 + ], + [ + 105.8508894, + 21.0184278 + ], + [ + 105.8519903, + 21.0182123 + ], + [ + 105.8522116, + 21.0188035 + ], + [ + 105.8527107, + 21.0186607 + ], + [ + 105.8526657, + 21.0183963 + ], + [ + 105.853418, + 21.0183008 + ], + [ + 105.8534767, + 21.0184226 + ], + [ + 105.8546249, + 21.0181302 + ], + [ + 105.8555972, + 21.0184582 + ], + [ + 105.8555275, + 21.0187658 + ], + [ + 105.8560218, + 21.0189765 + ], + [ + 105.8567313, + 21.0188421 + ], + [ + 105.8566804, + 21.0186808 + ], + [ + 105.8587169, + 21.0190341 + ], + [ + 105.8612895, + 21.0183922 + ], + [ + 105.8672823, + 21.020032 + ], + [ + 105.8653775, + 21.0275484 + ], + [ + 105.8628687, + 21.0336415 + ], + [ + 105.8583502, + 21.04321 + ], + [ + 105.8511635, + 21.0404082 + ], + [ + 105.850373, + 21.0409979 + ], + [ + 105.8498029, + 21.0406472 + ], + [ + 105.8468736, + 21.0398071 + ], + [ + 105.8456119, + 21.0399869 + ], + [ + 105.8455139, + 21.0394981 + ], + [ + 105.8453496, + 21.0393732 + ], + [ + 105.8446653, + 21.0393873 + ], + [ + 105.8444986, + 21.0386255 + ], + [ + 105.8447417, + 21.0385729 + ], + [ + 105.8441134, + 21.0350784 + ], + [ + 105.8442231, + 21.0349021 + ], + [ + 105.8440242, + 21.0337895 + ], + [ + 105.8442093, + 21.0337496 + ], + [ + 105.8440313, + 21.0330194 + ], + [ + 105.8438605, + 21.0328868 + ], + [ + 105.8437144, + 21.0319452 + ], + [ + 105.8438773, + 21.0319139 + ], + [ + 105.8438257, + 21.0316686 + ], + [ + 105.8442575, + 21.0315898 + ], + [ + 105.8439406, + 21.0301552 + ], + [ + 105.8440669, + 21.030125 + ], + [ + 105.8420875, + 21.0287131 + ], + [ + 105.841569, + 21.0288646 + ], + [ + 105.8415518, + 21.0276316 + ], + [ + 105.8410999, + 21.027382 + ], + [ + 105.8410075, + 21.0268439 + ], + [ + 105.841053, + 21.0247821 + ], + [ + 105.8412317, + 21.0247813 + ], + [ + 105.8412059, + 21.0233319 + ], + [ + 105.8410133, + 21.02333 + ], + [ + 105.8409566, + 21.0228612 + ], + [ + 105.8409287, + 21.0210536 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-longbien.json b/src/data/boundaries/hn/hn-longbien.json new file mode 100644 index 0000000..d9dce7a --- /dev/null +++ b/src/data/boundaries/hn/hn-longbien.json @@ -0,0 +1,386 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-LONGBIEN", + "name": "Long Bien", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 60, + "bbox": [ + 105.84106, + 20.99411, + 105.93877, + 21.08081 + ], + "center": [ + 21.04246, + 105.89397 + ], + "generatedAt": "2026-08-30T07:33:05.809Z", + "osm": "relation/7115863" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.8410552, + 21.0808132 + ], + [ + 105.8425051, + 21.0741428 + ], + [ + 105.8451151, + 21.0583303 + ], + [ + 105.8482762, + 21.0533744 + ], + [ + 105.8500753, + 21.049457 + ], + [ + 105.8539784, + 21.0445588 + ], + [ + 105.8559747, + 21.0422867 + ], + [ + 105.8583502, + 21.04321 + ], + [ + 105.8628687, + 21.0336415 + ], + [ + 105.8653775, + 21.0275484 + ], + [ + 105.8672823, + 21.020032 + ], + [ + 105.8680358, + 21.0179708 + ], + [ + 105.8731684, + 21.011577 + ], + [ + 105.8786959, + 21.006401 + ], + [ + 105.8814425, + 21.0041734 + ], + [ + 105.8874507, + 21.001401 + ], + [ + 105.8943127, + 20.9988433 + ], + [ + 105.897819, + 20.9964489 + ], + [ + 105.9007397, + 20.9941093 + ], + [ + 105.9043846, + 21.0008137 + ], + [ + 105.9033156, + 21.0025557 + ], + [ + 105.9038626, + 21.0028187 + ], + [ + 105.9052356, + 21.0031057 + ], + [ + 105.9083546, + 21.0044997 + ], + [ + 105.9087246, + 21.0039587 + ], + [ + 105.9100155, + 21.004964 + ], + [ + 105.9110797, + 21.004051 + ], + [ + 105.9120181, + 21.0051272 + ], + [ + 105.9127359, + 21.0033699 + ], + [ + 105.915022, + 21.0022128 + ], + [ + 105.9190838, + 21.0035474 + ], + [ + 105.9185546, + 21.0044067 + ], + [ + 105.9204944, + 21.0044573 + ], + [ + 105.9197986, + 21.0120237 + ], + [ + 105.9225365, + 21.0121697 + ], + [ + 105.9222444, + 21.0141154 + ], + [ + 105.9242871, + 21.0144345 + ], + [ + 105.9241676, + 21.0151067 + ], + [ + 105.9236632, + 21.0150335 + ], + [ + 105.9234018, + 21.0169388 + ], + [ + 105.9261194, + 21.0173509 + ], + [ + 105.9259879, + 21.0198422 + ], + [ + 105.9376942, + 21.0211843 + ], + [ + 105.9344436, + 21.0225857 + ], + [ + 105.9350089, + 21.0237395 + ], + [ + 105.9342452, + 21.0240047 + ], + [ + 105.9348428, + 21.0246706 + ], + [ + 105.9294986, + 21.0261197 + ], + [ + 105.9288995, + 21.0248291 + ], + [ + 105.9269211, + 21.025679 + ], + [ + 105.9277037, + 21.0270713 + ], + [ + 105.9289069, + 21.0278544 + ], + [ + 105.9312824, + 21.0299682 + ], + [ + 105.9339097, + 21.0348313 + ], + [ + 105.9342198, + 21.034549 + ], + [ + 105.9342153, + 21.0342177 + ], + [ + 105.9343787, + 21.0340708 + ], + [ + 105.9352619, + 21.0352395 + ], + [ + 105.9348101, + 21.0356593 + ], + [ + 105.9387681, + 21.0410105 + ], + [ + 105.937179, + 21.0431956 + ], + [ + 105.9352365, + 21.0483503 + ], + [ + 105.9330641, + 21.056503 + ], + [ + 105.9269924, + 21.0694404 + ], + [ + 105.924045, + 21.072633 + ], + [ + 105.9208897, + 21.0749899 + ], + [ + 105.9157, + 21.076792 + ], + [ + 105.902726, + 21.0784186 + ], + [ + 105.9011892, + 21.0793852 + ], + [ + 105.8993696, + 21.0798257 + ], + [ + 105.8975328, + 21.0799138 + ], + [ + 105.8956617, + 21.0797776 + ], + [ + 105.8934199, + 21.0792939 + ], + [ + 105.8907941, + 21.0785021 + ], + [ + 105.8879581, + 21.0774476 + ], + [ + 105.8848871, + 21.0759447 + ], + [ + 105.8830911, + 21.0748154 + ], + [ + 105.8778604, + 21.0709307 + ], + [ + 105.8769172, + 21.0704398 + ], + [ + 105.86863, + 21.0672214 + ], + [ + 105.866492, + 21.0668914 + ], + [ + 105.864115, + 21.0669794 + ], + [ + 105.861983, + 21.0677094 + ], + [ + 105.859975, + 21.0688544 + ], + [ + 105.852719, + 21.0748454 + ], + [ + 105.848901, + 21.0775404 + ], + [ + 105.846071, + 21.0799644 + ], + [ + 105.8441845, + 21.0804038 + ], + [ + 105.8410552, + 21.0808132 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-melinh.json b/src/data/boundaries/hn/hn-melinh.json new file mode 100644 index 0000000..c4c488e --- /dev/null +++ b/src/data/boundaries/hn/hn-melinh.json @@ -0,0 +1,1846 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-MELINH", + "name": "Me Linh", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 141.2, + "bbox": [ + 105.61499, + 21.12176, + 105.7909, + 21.23963 + ], + "center": [ + 21.18352, + 105.7058 + ], + "generatedAt": "2026-08-30T07:33:46.120Z", + "osm": "relation/7114823" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.6149889, + 21.2076252 + ], + [ + 105.6152478, + 21.2060008 + ], + [ + 105.6161302, + 21.2061173 + ], + [ + 105.6164957, + 21.2057826 + ], + [ + 105.6165359, + 21.2047796 + ], + [ + 105.6162946, + 21.203843 + ], + [ + 105.6162259, + 21.2025864 + ], + [ + 105.619844, + 21.2018823 + ], + [ + 105.6198051, + 21.2012457 + ], + [ + 105.6207719, + 21.2012088 + ], + [ + 105.6208185, + 21.2013828 + ], + [ + 105.6222282, + 21.2006887 + ], + [ + 105.6224995, + 21.2007066 + ], + [ + 105.6226484, + 21.2004545 + ], + [ + 105.6216015, + 21.1972251 + ], + [ + 105.6216169, + 21.1958853 + ], + [ + 105.6219545, + 21.1958757 + ], + [ + 105.6219881, + 21.1956334 + ], + [ + 105.6221642, + 21.1956177 + ], + [ + 105.622199, + 21.1948454 + ], + [ + 105.6216401, + 21.1951135 + ], + [ + 105.6215521, + 21.1948829 + ], + [ + 105.6237089, + 21.1942162 + ], + [ + 105.6244656, + 21.1936087 + ], + [ + 105.6247093, + 21.1924598 + ], + [ + 105.6246227, + 21.1912444 + ], + [ + 105.6249267, + 21.189093 + ], + [ + 105.6247827, + 21.188056 + ], + [ + 105.6250584, + 21.1873829 + ], + [ + 105.625723, + 21.1868017 + ], + [ + 105.6293055, + 21.1848807 + ], + [ + 105.6270582, + 21.1829973 + ], + [ + 105.6279282, + 21.1816257 + ], + [ + 105.6283983, + 21.1818054 + ], + [ + 105.6287035, + 21.1813431 + ], + [ + 105.6283402, + 21.1811706 + ], + [ + 105.6282925, + 21.1806389 + ], + [ + 105.627687, + 21.1808179 + ], + [ + 105.6268864, + 21.1813459 + ], + [ + 105.625621, + 21.1816509 + ], + [ + 105.6248307, + 21.1813084 + ], + [ + 105.6243833, + 21.1807354 + ], + [ + 105.6243571, + 21.1801823 + ], + [ + 105.6246569, + 21.1795758 + ], + [ + 105.626705, + 21.1781387 + ], + [ + 105.6268536, + 21.1762565 + ], + [ + 105.6263194, + 21.1733562 + ], + [ + 105.6310592, + 21.1703849 + ], + [ + 105.633042, + 21.1686774 + ], + [ + 105.6368172, + 21.1580849 + ], + [ + 105.6554277, + 21.1522683 + ], + [ + 105.657907, + 21.150081 + ], + [ + 105.661881, + 21.148384 + ], + [ + 105.667178, + 21.148283 + ], + [ + 105.6731391, + 21.1476627 + ], + [ + 105.675185, + 21.147611 + ], + [ + 105.685496, + 21.146238 + ], + [ + 105.694598, + 21.143035 + ], + [ + 105.701448, + 21.141234 + ], + [ + 105.706103, + 21.139114 + ], + [ + 105.711291, + 21.136382 + ], + [ + 105.71642, + 21.133357 + ], + [ + 105.7192349, + 21.1321075 + ], + [ + 105.7195116, + 21.1341786 + ], + [ + 105.7238063, + 21.1327841 + ], + [ + 105.7239945, + 21.1330415 + ], + [ + 105.7249459, + 21.1325338 + ], + [ + 105.7244352, + 21.13199 + ], + [ + 105.7269119, + 21.1296485 + ], + [ + 105.7279578, + 21.1276248 + ], + [ + 105.7286309, + 21.127151 + ], + [ + 105.7304145, + 21.1263186 + ], + [ + 105.7321391, + 21.1218232 + ], + [ + 105.7354582, + 21.1218644 + ], + [ + 105.7356369, + 21.1217584 + ], + [ + 105.7358811, + 21.1218728 + ], + [ + 105.736109, + 21.1226214 + ], + [ + 105.7354106, + 21.1229539 + ], + [ + 105.7355598, + 21.1238252 + ], + [ + 105.7359995, + 21.1237708 + ], + [ + 105.7372188, + 21.1257469 + ], + [ + 105.7386067, + 21.1252093 + ], + [ + 105.7388097, + 21.1256328 + ], + [ + 105.7386163, + 21.1257989 + ], + [ + 105.7387099, + 21.1263128 + ], + [ + 105.7389033, + 21.1263555 + ], + [ + 105.7388501, + 21.1268185 + ], + [ + 105.7392193, + 21.1272959 + ], + [ + 105.73891, + 21.127752 + ], + [ + 105.7391817, + 21.1282896 + ], + [ + 105.7389929, + 21.1285043 + ], + [ + 105.7402626, + 21.1288407 + ], + [ + 105.7410765, + 21.128799 + ], + [ + 105.7415524, + 21.1302144 + ], + [ + 105.7414241, + 21.1302374 + ], + [ + 105.7415028, + 21.1309153 + ], + [ + 105.7421307, + 21.1327349 + ], + [ + 105.7430289, + 21.132572 + ], + [ + 105.742891, + 21.1319702 + ], + [ + 105.7433169, + 21.1318733 + ], + [ + 105.7440334, + 21.1344441 + ], + [ + 105.7459591, + 21.133904 + ], + [ + 105.7467715, + 21.1366367 + ], + [ + 105.7473633, + 21.1366845 + ], + [ + 105.747554, + 21.1376447 + ], + [ + 105.7478189, + 21.1381129 + ], + [ + 105.7495948, + 21.137784 + ], + [ + 105.749483, + 21.1371972 + ], + [ + 105.7500382, + 21.1370653 + ], + [ + 105.7496675, + 21.1347067 + ], + [ + 105.7512191, + 21.1341762 + ], + [ + 105.7511683, + 21.133914 + ], + [ + 105.751428, + 21.133824 + ], + [ + 105.7513761, + 21.1335865 + ], + [ + 105.751127, + 21.1336708 + ], + [ + 105.7509446, + 21.1323706 + ], + [ + 105.7532518, + 21.1315807 + ], + [ + 105.753572, + 21.1337477 + ], + [ + 105.7528149, + 21.1348306 + ], + [ + 105.7529748, + 21.1349082 + ], + [ + 105.75337, + 21.134901 + ], + [ + 105.7537388, + 21.1346848 + ], + [ + 105.7562594, + 21.1349677 + ], + [ + 105.7586913, + 21.134625 + ], + [ + 105.759588, + 21.1346752 + ], + [ + 105.7595767, + 21.134804 + ], + [ + 105.7599741, + 21.1348453 + ], + [ + 105.7601434, + 21.1350563 + ], + [ + 105.7604414, + 21.1357442 + ], + [ + 105.760812, + 21.1358263 + ], + [ + 105.761739, + 21.1358783 + ], + [ + 105.76326, + 21.1354149 + ], + [ + 105.764567, + 21.1356238 + ], + [ + 105.765739, + 21.1359716 + ], + [ + 105.7680352, + 21.1381138 + ], + [ + 105.7695985, + 21.1406552 + ], + [ + 105.7708365, + 21.1421671 + ], + [ + 105.7722885, + 21.1433051 + ], + [ + 105.7725925, + 21.1438971 + ], + [ + 105.7724855, + 21.1444911 + ], + [ + 105.7719935, + 21.1451051 + ], + [ + 105.7724467, + 21.1460926 + ], + [ + 105.7709022, + 21.1482046 + ], + [ + 105.7716157, + 21.1491592 + ], + [ + 105.7719795, + 21.1489239 + ], + [ + 105.7720221, + 21.1495261 + ], + [ + 105.7711805, + 21.1572621 + ], + [ + 105.7704819, + 21.1664831 + ], + [ + 105.7707077, + 21.1665891 + ], + [ + 105.77018, + 21.1693113 + ], + [ + 105.7714329, + 21.1693473 + ], + [ + 105.7707842, + 21.1726227 + ], + [ + 105.7710534, + 21.1755317 + ], + [ + 105.7719379, + 21.1782303 + ], + [ + 105.7738646, + 21.1778541 + ], + [ + 105.7740707, + 21.1784927 + ], + [ + 105.7752294, + 21.1782377 + ], + [ + 105.7754877, + 21.1790047 + ], + [ + 105.7807676, + 21.1773614 + ], + [ + 105.7809978, + 21.1783418 + ], + [ + 105.7837156, + 21.1773915 + ], + [ + 105.783769, + 21.1782525 + ], + [ + 105.7846303, + 21.178109 + ], + [ + 105.7849988, + 21.1795104 + ], + [ + 105.7879426, + 21.1789408 + ], + [ + 105.7881183, + 21.1801367 + ], + [ + 105.7891111, + 21.1800226 + ], + [ + 105.7898127, + 21.1801974 + ], + [ + 105.7904388, + 21.1800757 + ], + [ + 105.7909048, + 21.1817295 + ], + [ + 105.7899272, + 21.1820177 + ], + [ + 105.7906236, + 21.1840162 + ], + [ + 105.7894026, + 21.184609 + ], + [ + 105.7894304, + 21.1847847 + ], + [ + 105.788298, + 21.1852541 + ], + [ + 105.7884588, + 21.1854539 + ], + [ + 105.7883529, + 21.1857786 + ], + [ + 105.7881434, + 21.1858512 + ], + [ + 105.788269, + 21.1862 + ], + [ + 105.7879002, + 21.1863574 + ], + [ + 105.7895596, + 21.1882304 + ], + [ + 105.7894121, + 21.1884074 + ], + [ + 105.7903159, + 21.1905456 + ], + [ + 105.7899603, + 21.1907501 + ], + [ + 105.7897403, + 21.1912074 + ], + [ + 105.7895619, + 21.1928699 + ], + [ + 105.7887979, + 21.1957193 + ], + [ + 105.7876767, + 21.1970717 + ], + [ + 105.7866762, + 21.1976783 + ], + [ + 105.7841456, + 21.1986102 + ], + [ + 105.7793201, + 21.1995334 + ], + [ + 105.7775666, + 21.2003205 + ], + [ + 105.7751807, + 21.2025104 + ], + [ + 105.7714642, + 21.2050727 + ], + [ + 105.7708695, + 21.2058196 + ], + [ + 105.7702094, + 21.2071096 + ], + [ + 105.769456, + 21.209943 + ], + [ + 105.7694039, + 21.211223 + ], + [ + 105.7698507, + 21.2117907 + ], + [ + 105.7697013, + 21.2128865 + ], + [ + 105.7692809, + 21.2136894 + ], + [ + 105.7687615, + 21.214062 + ], + [ + 105.7682255, + 21.2140742 + ], + [ + 105.765319, + 21.2130935 + ], + [ + 105.7642824, + 21.2129381 + ], + [ + 105.7627858, + 21.2130459 + ], + [ + 105.7618115, + 21.2133873 + ], + [ + 105.7600475, + 21.2151661 + ], + [ + 105.7590693, + 21.2169831 + ], + [ + 105.7589573, + 21.2175471 + ], + [ + 105.7590156, + 21.2198475 + ], + [ + 105.7587833, + 21.221364 + ], + [ + 105.7580701, + 21.2228099 + ], + [ + 105.7572368, + 21.2229142 + ], + [ + 105.7565993, + 21.2226075 + ], + [ + 105.7559916, + 21.2219078 + ], + [ + 105.7552108, + 21.2215958 + ], + [ + 105.7544591, + 21.221568 + ], + [ + 105.7537331, + 21.2218261 + ], + [ + 105.7533037, + 21.2222827 + ], + [ + 105.7528687, + 21.2233574 + ], + [ + 105.7524908, + 21.225032 + ], + [ + 105.7520771, + 21.2260974 + ], + [ + 105.7513293, + 21.2269444 + ], + [ + 105.7502752, + 21.2277939 + ], + [ + 105.7490656, + 21.22842 + ], + [ + 105.7459053, + 21.2295503 + ], + [ + 105.7436947, + 21.2305627 + ], + [ + 105.7425472, + 21.2313352 + ], + [ + 105.7407961, + 21.2316935 + ], + [ + 105.7380548, + 21.2315164 + ], + [ + 105.7346389, + 21.2331355 + ], + [ + 105.7334233, + 21.2318115 + ], + [ + 105.7296205, + 21.2284608 + ], + [ + 105.7247023, + 21.2247895 + ], + [ + 105.721821, + 21.227846 + ], + [ + 105.7211897, + 21.2271488 + ], + [ + 105.7214234, + 21.2265537 + ], + [ + 105.7210357, + 21.2257553 + ], + [ + 105.7206367, + 21.2256158 + ], + [ + 105.7204824, + 21.2253141 + ], + [ + 105.7201555, + 21.225176 + ], + [ + 105.7199828, + 21.2246032 + ], + [ + 105.7196882, + 21.2246165 + ], + [ + 105.719968, + 21.2241689 + ], + [ + 105.7195367, + 21.2232682 + ], + [ + 105.7190668, + 21.2230635 + ], + [ + 105.7188244, + 21.2232679 + ], + [ + 105.7188071, + 21.2229726 + ], + [ + 105.7185035, + 21.2228312 + ], + [ + 105.7180609, + 21.2230699 + ], + [ + 105.7176983, + 21.2228035 + ], + [ + 105.715648, + 21.2245159 + ], + [ + 105.7126888, + 21.2226112 + ], + [ + 105.7122693, + 21.2232782 + ], + [ + 105.7119737, + 21.2229422 + ], + [ + 105.7115856, + 21.2229025 + ], + [ + 105.7118987, + 21.2223378 + ], + [ + 105.7115136, + 21.2222622 + ], + [ + 105.7114227, + 21.2223781 + ], + [ + 105.7106525, + 21.2218474 + ], + [ + 105.7111486, + 21.2213746 + ], + [ + 105.711273, + 21.2208368 + ], + [ + 105.7110548, + 21.220682 + ], + [ + 105.7106159, + 21.2207356 + ], + [ + 105.7105621, + 21.2204114 + ], + [ + 105.7098469, + 21.2196306 + ], + [ + 105.709034, + 21.2194539 + ], + [ + 105.7084124, + 21.2195137 + ], + [ + 105.7077044, + 21.2200945 + ], + [ + 105.7075689, + 21.2204518 + ], + [ + 105.7073114, + 21.2204796 + ], + [ + 105.7069042, + 21.2201679 + ], + [ + 105.706406, + 21.2203394 + ], + [ + 105.7060645, + 21.2206915 + ], + [ + 105.7059349, + 21.2212921 + ], + [ + 105.705321, + 21.2212186 + ], + [ + 105.7051105, + 21.2214427 + ], + [ + 105.7048226, + 21.2213585 + ], + [ + 105.7044853, + 21.220898 + ], + [ + 105.7038184, + 21.2211002 + ], + [ + 105.7036792, + 21.220973 + ], + [ + 105.7034435, + 21.2210442 + ], + [ + 105.7032764, + 21.2213119 + ], + [ + 105.7025134, + 21.219671 + ], + [ + 105.7025921, + 21.2195074 + ], + [ + 105.7022426, + 21.2190501 + ], + [ + 105.7023575, + 21.2189208 + ], + [ + 105.7018087, + 21.2186093 + ], + [ + 105.7011713, + 21.219746 + ], + [ + 105.7001565, + 21.2198903 + ], + [ + 105.7000322, + 21.2196984 + ], + [ + 105.6996292, + 21.2198343 + ], + [ + 105.6985675, + 21.2196673 + ], + [ + 105.6985967, + 21.2188297 + ], + [ + 105.6987511, + 21.2185819 + ], + [ + 105.6985301, + 21.2184512 + ], + [ + 105.6973615, + 21.2185988 + ], + [ + 105.697325, + 21.2183512 + ], + [ + 105.6982197, + 21.2139227 + ], + [ + 105.698237, + 21.2136734 + ], + [ + 105.6978648, + 21.2135723 + ], + [ + 105.695576, + 21.2161739 + ], + [ + 105.6933345, + 21.2215051 + ], + [ + 105.6932065, + 21.2213829 + ], + [ + 105.6928446, + 21.2215465 + ], + [ + 105.6925225, + 21.2213117 + ], + [ + 105.6920679, + 21.221277 + ], + [ + 105.6919532, + 21.2207654 + ], + [ + 105.6915604, + 21.2204267 + ], + [ + 105.6912649, + 21.2207516 + ], + [ + 105.6902384, + 21.2198771 + ], + [ + 105.6896343, + 21.2206957 + ], + [ + 105.6896258, + 21.2211281 + ], + [ + 105.6890596, + 21.2212413 + ], + [ + 105.6886746, + 21.2214987 + ], + [ + 105.6887055, + 21.2224743 + ], + [ + 105.6879687, + 21.2227867 + ], + [ + 105.6858604, + 21.2264987 + ], + [ + 105.6858652, + 21.2296657 + ], + [ + 105.6853691, + 21.2298163 + ], + [ + 105.6853726, + 21.2301628 + ], + [ + 105.6845729, + 21.2298819 + ], + [ + 105.6833755, + 21.2297673 + ], + [ + 105.6827868, + 21.2299825 + ], + [ + 105.6825517, + 21.2303452 + ], + [ + 105.6824745, + 21.2311328 + ], + [ + 105.682849, + 21.2315689 + ], + [ + 105.6834497, + 21.2318584 + ], + [ + 105.6844277, + 21.2319751 + ], + [ + 105.6861374, + 21.2318188 + ], + [ + 105.68726, + 21.2320029 + ], + [ + 105.6881051, + 21.2323474 + ], + [ + 105.6889302, + 21.233226 + ], + [ + 105.6888384, + 21.2338733 + ], + [ + 105.6884955, + 21.234338 + ], + [ + 105.6878527, + 21.2347519 + ], + [ + 105.6857649, + 21.2354448 + ], + [ + 105.6835398, + 21.2354098 + ], + [ + 105.6825115, + 21.235108 + ], + [ + 105.6809069, + 21.2343156 + ], + [ + 105.6801815, + 21.2329692 + ], + [ + 105.6795817, + 21.2304572 + ], + [ + 105.6790856, + 21.2291712 + ], + [ + 105.6781976, + 21.2279789 + ], + [ + 105.6771152, + 21.2271553 + ], + [ + 105.6761665, + 21.2269444 + ], + [ + 105.675742, + 21.2270381 + ], + [ + 105.672712, + 21.2291661 + ], + [ + 105.6715722, + 21.2300599 + ], + [ + 105.6712151, + 21.2306133 + ], + [ + 105.6749877, + 21.2336648 + ], + [ + 105.6751859, + 21.2340932 + ], + [ + 105.6752224, + 21.2349518 + ], + [ + 105.6746395, + 21.23615 + ], + [ + 105.6739545, + 21.2364594 + ], + [ + 105.6732337, + 21.2360943 + ], + [ + 105.6723084, + 21.2338594 + ], + [ + 105.6718813, + 21.2333705 + ], + [ + 105.6705061, + 21.2328547 + ], + [ + 105.6690526, + 21.2330598 + ], + [ + 105.6683026, + 21.2334614 + ], + [ + 105.6685077, + 21.2354537 + ], + [ + 105.6683804, + 21.2362209 + ], + [ + 105.6679945, + 21.237633 + ], + [ + 105.6673805, + 21.2391993 + ], + [ + 105.6670879, + 21.2395377 + ], + [ + 105.6667615, + 21.239631 + ], + [ + 105.6663359, + 21.2394794 + ], + [ + 105.6643881, + 21.2367867 + ], + [ + 105.6641008, + 21.2367285 + ], + [ + 105.6625513, + 21.2354092 + ], + [ + 105.6619689, + 21.235081 + ], + [ + 105.6601039, + 21.2346589 + ], + [ + 105.6567538, + 21.2347179 + ], + [ + 105.6560029, + 21.2349049 + ], + [ + 105.6552199, + 21.2352452 + ], + [ + 105.654341, + 21.2360459 + ], + [ + 105.6527805, + 21.2379839 + ], + [ + 105.6524217, + 21.2381386 + ], + [ + 105.6514738, + 21.2381423 + ], + [ + 105.6506231, + 21.2379615 + ], + [ + 105.6476102, + 21.2366545 + ], + [ + 105.6446601, + 21.234734 + ], + [ + 105.6443472, + 21.2341678 + ], + [ + 105.6440824, + 21.2334022 + ], + [ + 105.644078, + 21.2323903 + ], + [ + 105.6447861, + 21.2298731 + ], + [ + 105.6448776, + 21.2283702 + ], + [ + 105.6452649, + 21.2272342 + ], + [ + 105.6454924, + 21.2269572 + ], + [ + 105.6472402, + 21.2267513 + ], + [ + 105.6493002, + 21.226958 + ], + [ + 105.650701, + 21.22591 + ], + [ + 105.6512884, + 21.2256931 + ], + [ + 105.651746, + 21.225722 + ], + [ + 105.6523689, + 21.2261489 + ], + [ + 105.6534857, + 21.2274019 + ], + [ + 105.6539115, + 21.2276149 + ], + [ + 105.654369, + 21.2275824 + ], + [ + 105.6549228, + 21.2271816 + ], + [ + 105.6586475, + 21.223196 + ], + [ + 105.6589093, + 21.2221746 + ], + [ + 105.6587706, + 21.2214784 + ], + [ + 105.657981, + 21.2203161 + ], + [ + 105.6557193, + 21.2188224 + ], + [ + 105.6531659, + 21.217851 + ], + [ + 105.6472269, + 21.2162334 + ], + [ + 105.6453607, + 21.2154431 + ], + [ + 105.644184, + 21.215417 + ], + [ + 105.6431394, + 21.215697 + ], + [ + 105.6392582, + 21.2175516 + ], + [ + 105.6382461, + 21.2178007 + ], + [ + 105.6365466, + 21.2177765 + ], + [ + 105.6359567, + 21.2174108 + ], + [ + 105.635628, + 21.216952 + ], + [ + 105.6355607, + 21.2164607 + ], + [ + 105.6363331, + 21.2149716 + ], + [ + 105.6370835, + 21.2139376 + ], + [ + 105.6389795, + 21.2124378 + ], + [ + 105.6392765, + 21.2119543 + ], + [ + 105.6394174, + 21.2113799 + ], + [ + 105.639501, + 21.2076368 + ], + [ + 105.6389676, + 21.2072723 + ], + [ + 105.6385136, + 21.2072098 + ], + [ + 105.6358035, + 21.2080132 + ], + [ + 105.6353973, + 21.2067356 + ], + [ + 105.6345655, + 21.2066901 + ], + [ + 105.6326539, + 21.2051941 + ], + [ + 105.632199, + 21.2053879 + ], + [ + 105.632295, + 21.2056009 + ], + [ + 105.6326008, + 21.2055956 + ], + [ + 105.6329657, + 21.2059376 + ], + [ + 105.633795, + 21.2073417 + ], + [ + 105.6329331, + 21.2076637 + ], + [ + 105.6325262, + 21.2069407 + ], + [ + 105.6321982, + 21.2070794 + ], + [ + 105.6320092, + 21.2068432 + ], + [ + 105.6316962, + 21.2069958 + ], + [ + 105.6326492, + 21.2085876 + ], + [ + 105.630627, + 21.2091205 + ], + [ + 105.6288701, + 21.210967 + ], + [ + 105.6282819, + 21.2109692 + ], + [ + 105.6244581, + 21.2090626 + ], + [ + 105.6230152, + 21.2079292 + ], + [ + 105.6222404, + 21.2065 + ], + [ + 105.6212461, + 21.2059047 + ], + [ + 105.6206563, + 21.2059719 + ], + [ + 105.6185167, + 21.2070602 + ], + [ + 105.6171629, + 21.2085193 + ], + [ + 105.6167811, + 21.2087097 + ], + [ + 105.6161925, + 21.2085816 + ], + [ + 105.6153707, + 21.2076614 + ], + [ + 105.6149889, + 21.2076252 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-myduc.json b/src/data/boundaries/hn/hn-myduc.json new file mode 100644 index 0000000..81cb324 --- /dev/null +++ b/src/data/boundaries/hn/hn-myduc.json @@ -0,0 +1,2226 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-MYDUC", + "name": "My Duc", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 226.9, + "bbox": [ + 105.64768, + 20.56452, + 105.81286, + 20.82997 + ], + "center": [ + 20.68678, + 105.72026 + ], + "generatedAt": "2026-08-30T07:33:50.074Z", + "osm": "relation/7115398" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.6476787, + 20.7764954 + ], + [ + 105.6493701, + 20.7764663 + ], + [ + 105.6487391, + 20.7747735 + ], + [ + 105.6487711, + 20.7740849 + ], + [ + 105.6493358, + 20.7721349 + ], + [ + 105.6492638, + 20.7713084 + ], + [ + 105.6483507, + 20.7679719 + ], + [ + 105.6483936, + 20.7668684 + ], + [ + 105.648853, + 20.7652287 + ], + [ + 105.649718, + 20.7643078 + ], + [ + 105.6492593, + 20.7634229 + ], + [ + 105.6495127, + 20.7624927 + ], + [ + 105.6490426, + 20.7620592 + ], + [ + 105.6491763, + 20.7615911 + ], + [ + 105.6498878, + 20.7606579 + ], + [ + 105.6505029, + 20.758876 + ], + [ + 105.6510544, + 20.7578796 + ], + [ + 105.65099, + 20.755231 + ], + [ + 105.6512547, + 20.7534777 + ], + [ + 105.6530985, + 20.7532392 + ], + [ + 105.6537857, + 20.7528976 + ], + [ + 105.6538997, + 20.7517583 + ], + [ + 105.653574, + 20.7507266 + ], + [ + 105.6538315, + 20.7499752 + ], + [ + 105.6539402, + 20.7483925 + ], + [ + 105.6542168, + 20.7473621 + ], + [ + 105.6549275, + 20.7467834 + ], + [ + 105.6557429, + 20.7452483 + ], + [ + 105.6570518, + 20.7438737 + ], + [ + 105.6575775, + 20.7430309 + ], + [ + 105.6575775, + 20.7421279 + ], + [ + 105.6578565, + 20.7410644 + ], + [ + 105.6590152, + 20.7408436 + ], + [ + 105.6604206, + 20.7400911 + ], + [ + 105.6615257, + 20.7385158 + ], + [ + 105.6626522, + 20.7377734 + ], + [ + 105.6635535, + 20.7366496 + ], + [ + 105.6644547, + 20.7359572 + ], + [ + 105.6653345, + 20.7354455 + ], + [ + 105.6670618, + 20.7350442 + ], + [ + 105.6659245, + 20.7331979 + ], + [ + 105.6656885, + 20.732034 + ], + [ + 105.6643581, + 20.7290237 + ], + [ + 105.6621909, + 20.7262542 + ], + [ + 105.6618047, + 20.7259732 + ], + [ + 105.6616115, + 20.7249296 + ], + [ + 105.6618476, + 20.7238258 + ], + [ + 105.6618722, + 20.7226182 + ], + [ + 105.6629164, + 20.7203314 + ], + [ + 105.6640239, + 20.7172345 + ], + [ + 105.6650106, + 20.716938 + ], + [ + 105.6666561, + 20.715201 + ], + [ + 105.6691314, + 20.7132905 + ], + [ + 105.669601, + 20.7127571 + ], + [ + 105.6701765, + 20.7119015 + ], + [ + 105.6705857, + 20.7090903 + ], + [ + 105.671521, + 20.7074901 + ], + [ + 105.6738625, + 20.7051894 + ], + [ + 105.6762768, + 20.7034229 + ], + [ + 105.6778598, + 20.7016574 + ], + [ + 105.6816111, + 20.6984728 + ], + [ + 105.6813645, + 20.6981839 + ], + [ + 105.6811791, + 20.6975479 + ], + [ + 105.68124, + 20.6969695 + ], + [ + 105.6825309, + 20.6954645 + ], + [ + 105.6825305, + 20.6951754 + ], + [ + 105.6815052, + 20.6935632 + ], + [ + 105.6807514, + 20.6911478 + ], + [ + 105.6794648, + 20.6910281 + ], + [ + 105.6797672, + 20.6877469 + ], + [ + 105.6791303, + 20.6840626 + ], + [ + 105.6789048, + 20.6837603 + ], + [ + 105.6769106, + 20.6835205 + ], + [ + 105.6750758, + 20.68198 + ], + [ + 105.6719382, + 20.6802746 + ], + [ + 105.6689477, + 20.6806405 + ], + [ + 105.6687101, + 20.6802398 + ], + [ + 105.6691086, + 20.6788514 + ], + [ + 105.6699682, + 20.6769421 + ], + [ + 105.669556, + 20.6761991 + ], + [ + 105.6703019, + 20.6745577 + ], + [ + 105.6711341, + 20.673818 + ], + [ + 105.6716907, + 20.6726494 + ], + [ + 105.671981, + 20.6714911 + ], + [ + 105.6735527, + 20.6703217 + ], + [ + 105.6721945, + 20.6678755 + ], + [ + 105.6737438, + 20.664937 + ], + [ + 105.6745644, + 20.6649636 + ], + [ + 105.6752717, + 20.6636473 + ], + [ + 105.6770886, + 20.664331 + ], + [ + 105.6769967, + 20.6654179 + ], + [ + 105.6775385, + 20.6656739 + ], + [ + 105.6770825, + 20.6676214 + ], + [ + 105.676294, + 20.6676816 + ], + [ + 105.6764388, + 20.6715965 + ], + [ + 105.6769146, + 20.6714981 + ], + [ + 105.6778121, + 20.6667581 + ], + [ + 105.6800295, + 20.6625663 + ], + [ + 105.6800584, + 20.6619072 + ], + [ + 105.6798139, + 20.6614719 + ], + [ + 105.6790129, + 20.660836 + ], + [ + 105.6783355, + 20.6605474 + ], + [ + 105.6789916, + 20.6581974 + ], + [ + 105.6797467, + 20.6567554 + ], + [ + 105.6803307, + 20.6560316 + ], + [ + 105.6793743, + 20.6542101 + ], + [ + 105.6806554, + 20.653039 + ], + [ + 105.6809072, + 20.6524089 + ], + [ + 105.6806153, + 20.6511821 + ], + [ + 105.6801662, + 20.6503752 + ], + [ + 105.6796826, + 20.6489693 + ], + [ + 105.6786884, + 20.647236 + ], + [ + 105.6785904, + 20.6466674 + ], + [ + 105.6789981, + 20.6453179 + ], + [ + 105.6796617, + 20.6442669 + ], + [ + 105.6803536, + 20.6424071 + ], + [ + 105.6810177, + 20.6415059 + ], + [ + 105.6816838, + 20.640994 + ], + [ + 105.6820941, + 20.6402436 + ], + [ + 105.6843738, + 20.639307 + ], + [ + 105.6865574, + 20.6379162 + ], + [ + 105.6856023, + 20.6371651 + ], + [ + 105.6835685, + 20.6351134 + ], + [ + 105.6847663, + 20.6330004 + ], + [ + 105.6811927, + 20.6301113 + ], + [ + 105.6783591, + 20.6284076 + ], + [ + 105.6780822, + 20.6283789 + ], + [ + 105.6772835, + 20.6297394 + ], + [ + 105.6770066, + 20.6298264 + ], + [ + 105.6764526, + 20.6297691 + ], + [ + 105.6744228, + 20.6290559 + ], + [ + 105.6739588, + 20.6289906 + ], + [ + 105.6732511, + 20.6291938 + ], + [ + 105.672606, + 20.6302647 + ], + [ + 105.6721352, + 20.6319176 + ], + [ + 105.6710863, + 20.6322227 + ], + [ + 105.670208, + 20.6321304 + ], + [ + 105.6693839, + 20.6302302 + ], + [ + 105.6686039, + 20.6292274 + ], + [ + 105.6676304, + 20.6292562 + ], + [ + 105.6664919, + 20.6295263 + ], + [ + 105.6656995, + 20.6301801 + ], + [ + 105.6635553, + 20.6281329 + ], + [ + 105.6658288, + 20.6245148 + ], + [ + 105.666751, + 20.6235303 + ], + [ + 105.6668116, + 20.6226336 + ], + [ + 105.6660725, + 20.6222004 + ], + [ + 105.6653945, + 20.6213332 + ], + [ + 105.6657317, + 20.6201179 + ], + [ + 105.6657913, + 20.6183243 + ], + [ + 105.6661899, + 20.6169932 + ], + [ + 105.6681754, + 20.6174299 + ], + [ + 105.6691139, + 20.6172797 + ], + [ + 105.6708565, + 20.6160916 + ], + [ + 105.6734358, + 20.6158919 + ], + [ + 105.6751169, + 20.6167289 + ], + [ + 105.6767539, + 20.6160494 + ], + [ + 105.6773147, + 20.616293 + ], + [ + 105.6776947, + 20.6168684 + ], + [ + 105.6776233, + 20.617074 + ], + [ + 105.678485, + 20.6169283 + ], + [ + 105.6794695, + 20.6165224 + ], + [ + 105.6809171, + 20.6173021 + ], + [ + 105.6815944, + 20.617388 + ], + [ + 105.6819329, + 20.6173588 + ], + [ + 105.6821819, + 20.6170901 + ], + [ + 105.682559, + 20.6160402 + ], + [ + 105.6828546, + 20.6158822 + ], + [ + 105.684148, + 20.6164306 + ], + [ + 105.6848868, + 20.6164587 + ], + [ + 105.6864253, + 20.6159941 + ], + [ + 105.6868256, + 20.6161383 + ], + [ + 105.6873497, + 20.6167743 + ], + [ + 105.6881595, + 20.6185356 + ], + [ + 105.6906488, + 20.6213134 + ], + [ + 105.6909563, + 20.6210115 + ], + [ + 105.692096, + 20.6216878 + ], + [ + 105.6954176, + 20.6199181 + ], + [ + 105.696989, + 20.6197557 + ], + [ + 105.697403, + 20.6198438 + ], + [ + 105.6980095, + 20.6202606 + ], + [ + 105.6986833, + 20.6217672 + ], + [ + 105.6997585, + 20.6214363 + ], + [ + 105.7012281, + 20.6213556 + ], + [ + 105.7040325, + 20.6156276 + ], + [ + 105.7040607, + 20.6146722 + ], + [ + 105.7037298, + 20.6133856 + ], + [ + 105.7040831, + 20.6125678 + ], + [ + 105.7041127, + 20.6120884 + ], + [ + 105.7036604, + 20.6105926 + ], + [ + 105.7047706, + 20.6098692 + ], + [ + 105.7053085, + 20.609208 + ], + [ + 105.7050512, + 20.6086101 + ], + [ + 105.7043799, + 20.6079239 + ], + [ + 105.7042876, + 20.6074828 + ], + [ + 105.7053245, + 20.6057635 + ], + [ + 105.7052895, + 20.6051047 + ], + [ + 105.7042967, + 20.6036711 + ], + [ + 105.7040077, + 20.6030733 + ], + [ + 105.7040375, + 20.6026538 + ], + [ + 105.7052726, + 20.6014205 + ], + [ + 105.706446, + 20.600607 + ], + [ + 105.70692, + 20.5999161 + ], + [ + 105.7075546, + 20.599554 + ], + [ + 105.7082867, + 20.5986957 + ], + [ + 105.7109955, + 20.5990686 + ], + [ + 105.7184718, + 20.5972944 + ], + [ + 105.7201941, + 20.5964532 + ], + [ + 105.7228428, + 20.5977807 + ], + [ + 105.7264646, + 20.6035086 + ], + [ + 105.7273474, + 20.6053554 + ], + [ + 105.7279305, + 20.6041973 + ], + [ + 105.7296785, + 20.6024258 + ], + [ + 105.730975, + 20.6007729 + ], + [ + 105.7328788, + 20.5996192 + ], + [ + 105.7355042, + 20.5986907 + ], + [ + 105.7396479, + 20.5984527 + ], + [ + 105.7416502, + 20.5995783 + ], + [ + 105.7436895, + 20.5985313 + ], + [ + 105.7443228, + 20.5979295 + ], + [ + 105.7450814, + 20.5969078 + ], + [ + 105.7460563, + 20.5945973 + ], + [ + 105.7470021, + 20.592826 + ], + [ + 105.747508, + 20.5921948 + ], + [ + 105.7493462, + 20.5907788 + ], + [ + 105.7523441, + 20.5895231 + ], + [ + 105.7538181, + 20.5876403 + ], + [ + 105.754124, + 20.5865114 + ], + [ + 105.7549076, + 20.5853386 + ], + [ + 105.7563976, + 20.5842512 + ], + [ + 105.7648151, + 20.5758768 + ], + [ + 105.7659493, + 20.5733578 + ], + [ + 105.7671266, + 20.5716033 + ], + [ + 105.7679117, + 20.569362 + ], + [ + 105.7685816, + 20.5653102 + ], + [ + 105.7687658, + 20.5650784 + ], + [ + 105.7706116, + 20.5647862 + ], + [ + 105.7771343, + 20.5645154 + ], + [ + 105.7776269, + 20.5646594 + ], + [ + 105.7792816, + 20.5661442 + ], + [ + 105.7796983, + 20.5661965 + ], + [ + 105.7800567, + 20.5660868 + ], + [ + 105.7816581, + 20.5648843 + ], + [ + 105.7821504, + 20.5648546 + ], + [ + 105.7836954, + 20.5660057 + ], + [ + 105.7856613, + 20.5665559 + ], + [ + 105.7902461, + 20.5665193 + ], + [ + 105.7921548, + 20.567037 + ], + [ + 105.7949155, + 20.567482 + ], + [ + 105.7954586, + 20.5679286 + ], + [ + 105.7963131, + 20.5692577 + ], + [ + 105.7965875, + 20.5703385 + ], + [ + 105.7968301, + 20.5728267 + ], + [ + 105.7974677, + 20.574885 + ], + [ + 105.7978022, + 20.5755048 + ], + [ + 105.7994275, + 20.58163 + ], + [ + 105.8015113, + 20.5838602 + ], + [ + 105.801728, + 20.5845543 + ], + [ + 105.8017608, + 20.5855958 + ], + [ + 105.8014856, + 20.5864643 + ], + [ + 105.8007521, + 20.5878673 + ], + [ + 105.8010805, + 20.5902807 + ], + [ + 105.8009881, + 20.5918234 + ], + [ + 105.8012826, + 20.59322 + ], + [ + 105.8054223, + 20.5994603 + ], + [ + 105.8063071, + 20.5992298 + ], + [ + 105.8065279, + 20.5989381 + ], + [ + 105.8066809, + 20.5979599 + ], + [ + 105.8068795, + 20.5976474 + ], + [ + 105.8077641, + 20.5973129 + ], + [ + 105.8085201, + 20.5990387 + ], + [ + 105.8069956, + 20.6003731 + ], + [ + 105.8069296, + 20.6005813 + ], + [ + 105.8083496, + 20.6023058 + ], + [ + 105.8103307, + 20.6033633 + ], + [ + 105.8116282, + 20.6044403 + ], + [ + 105.8087102, + 20.6054887 + ], + [ + 105.8080912, + 20.6058644 + ], + [ + 105.8067877, + 20.6070943 + ], + [ + 105.8057228, + 20.608863 + ], + [ + 105.8055992, + 20.6099323 + ], + [ + 105.8058185, + 20.6106889 + ], + [ + 105.8061238, + 20.6113776 + ], + [ + 105.8076394, + 20.6128185 + ], + [ + 105.8111464, + 20.6150485 + ], + [ + 105.8119324, + 20.6157362 + ], + [ + 105.8128563, + 20.6170778 + ], + [ + 105.8128299, + 20.618191 + ], + [ + 105.8126518, + 20.6185362 + ], + [ + 105.8122694, + 20.6187898 + ], + [ + 105.8112869, + 20.6189556 + ], + [ + 105.8083598, + 20.618116 + ], + [ + 105.8065806, + 20.61718 + ], + [ + 105.8050561, + 20.6159753 + ], + [ + 105.8042709, + 20.6148731 + ], + [ + 105.8038418, + 20.6132939 + ], + [ + 105.803151, + 20.6127514 + ], + [ + 105.8011683, + 20.6120497 + ], + [ + 105.7987368, + 20.6118782 + ], + [ + 105.7975285, + 20.6119704 + ], + [ + 105.7966644, + 20.6121691 + ], + [ + 105.7957648, + 20.6126013 + ], + [ + 105.7934515, + 20.6145932 + ], + [ + 105.7916177, + 20.6157021 + ], + [ + 105.7889843, + 20.6167521 + ], + [ + 105.7858522, + 20.6176721 + ], + [ + 105.784274, + 20.6184144 + ], + [ + 105.783191, + 20.6192376 + ], + [ + 105.781781, + 20.6209657 + ], + [ + 105.7805365, + 20.6221269 + ], + [ + 105.7794652, + 20.6228114 + ], + [ + 105.7779378, + 20.623257 + ], + [ + 105.7773334, + 20.6236122 + ], + [ + 105.7769738, + 20.6244387 + ], + [ + 105.777437, + 20.6253776 + ], + [ + 105.7786277, + 20.6262762 + ], + [ + 105.780146, + 20.6268499 + ], + [ + 105.7837005, + 20.6274148 + ], + [ + 105.7911086, + 20.6274351 + ], + [ + 105.7932598, + 20.627597 + ], + [ + 105.7954769, + 20.6281866 + ], + [ + 105.7979001, + 20.629589 + ], + [ + 105.8018925, + 20.6327943 + ], + [ + 105.8026841, + 20.6336981 + ], + [ + 105.8032128, + 20.6346145 + ], + [ + 105.8036231, + 20.636019 + ], + [ + 105.8036645, + 20.6373913 + ], + [ + 105.8033821, + 20.6390215 + ], + [ + 105.8027387, + 20.6407262 + ], + [ + 105.8020086, + 20.6418385 + ], + [ + 105.8009215, + 20.6427943 + ], + [ + 105.7950476, + 20.6449813 + ], + [ + 105.7934993, + 20.6458239 + ], + [ + 105.7918645, + 20.6470372 + ], + [ + 105.7894942, + 20.6495676 + ], + [ + 105.7868253, + 20.6533626 + ], + [ + 105.7845533, + 20.6569301 + ], + [ + 105.783523, + 20.6582289 + ], + [ + 105.7799673, + 20.6614943 + ], + [ + 105.7765017, + 20.6639304 + ], + [ + 105.7743072, + 20.6668484 + ], + [ + 105.7730383, + 20.6681529 + ], + [ + 105.7686536, + 20.6716188 + ], + [ + 105.7603598, + 20.6765854 + ], + [ + 105.7576454, + 20.6784022 + ], + [ + 105.7455856, + 20.6873655 + ], + [ + 105.7435852, + 20.6894432 + ], + [ + 105.7429509, + 20.6906123 + ], + [ + 105.7426331, + 20.6917202 + ], + [ + 105.7425815, + 20.6932258 + ], + [ + 105.7428376, + 20.694209 + ], + [ + 105.7436273, + 20.6952416 + ], + [ + 105.7450134, + 20.6961878 + ], + [ + 105.746037, + 20.6966485 + ], + [ + 105.7474672, + 20.6970303 + ], + [ + 105.7538368, + 20.6976489 + ], + [ + 105.7560342, + 20.6981742 + ], + [ + 105.7582052, + 20.6993249 + ], + [ + 105.7604782, + 20.701453 + ], + [ + 105.7624411, + 20.70509 + ], + [ + 105.7631369, + 20.7075901 + ], + [ + 105.7629848, + 20.7109848 + ], + [ + 105.762073, + 20.7161072 + ], + [ + 105.7621203, + 20.7171311 + ], + [ + 105.7624716, + 20.7183049 + ], + [ + 105.7636489, + 20.7200323 + ], + [ + 105.7654346, + 20.7214063 + ], + [ + 105.7674416, + 20.7221161 + ], + [ + 105.7699454, + 20.7224878 + ], + [ + 105.7706753, + 20.7227709 + ], + [ + 105.7710664, + 20.7235115 + ], + [ + 105.7707664, + 20.7248101 + ], + [ + 105.7683594, + 20.7272222 + ], + [ + 105.7613808, + 20.7312574 + ], + [ + 105.7598064, + 20.7312788 + ], + [ + 105.7564517, + 20.7291784 + ], + [ + 105.7539677, + 20.7283943 + ], + [ + 105.749492, + 20.7281488 + ], + [ + 105.743474, + 20.7274187 + ], + [ + 105.7405838, + 20.7263056 + ], + [ + 105.735369, + 20.7219709 + ], + [ + 105.733592, + 20.7217255 + ], + [ + 105.7319567, + 20.7218741 + ], + [ + 105.7306945, + 20.7224711 + ], + [ + 105.730378, + 20.7232739 + ], + [ + 105.7305665, + 20.7240097 + ], + [ + 105.731129, + 20.7248193 + ], + [ + 105.7327974, + 20.726475 + ], + [ + 105.7333824, + 20.7295548 + ], + [ + 105.7318554, + 20.7357781 + ], + [ + 105.7296632, + 20.7375571 + ], + [ + 105.7268839, + 20.7385844 + ], + [ + 105.722534, + 20.7394514 + ], + [ + 105.7107616, + 20.742267 + ], + [ + 105.7056722, + 20.7429893 + ], + [ + 105.7022466, + 20.7431495 + ], + [ + 105.7014128, + 20.7431495 + ], + [ + 105.6981628, + 20.7417588 + ], + [ + 105.6971028, + 20.7424379 + ], + [ + 105.6966204, + 20.7452732 + ], + [ + 105.6967668, + 20.7490981 + ], + [ + 105.6974887, + 20.7510372 + ], + [ + 105.6984557, + 20.7515632 + ], + [ + 105.7053155, + 20.7515791 + ], + [ + 105.7069715, + 20.7521399 + ], + [ + 105.7098323, + 20.7534904 + ], + [ + 105.7131261, + 20.7558129 + ], + [ + 105.7143652, + 20.7568463 + ], + [ + 105.7154294, + 20.7580263 + ], + [ + 105.7237915, + 20.7676918 + ], + [ + 105.7252066, + 20.7698414 + ], + [ + 105.7263333, + 20.7728948 + ], + [ + 105.7263068, + 20.7752 + ], + [ + 105.7254135, + 20.7775238 + ], + [ + 105.7236786, + 20.7789716 + ], + [ + 105.7190103, + 20.7815318 + ], + [ + 105.716942, + 20.7831432 + ], + [ + 105.7155102, + 20.7850073 + ], + [ + 105.7140794, + 20.788058 + ], + [ + 105.7095521, + 20.7927105 + ], + [ + 105.7056779, + 20.7979212 + ], + [ + 105.7052565, + 20.7988563 + ], + [ + 105.7052345, + 20.7992566 + ], + [ + 105.7064229, + 20.8030417 + ], + [ + 105.7081585, + 20.8077649 + ], + [ + 105.7090912, + 20.8096948 + ], + [ + 105.7097313, + 20.8121903 + ], + [ + 105.7096517, + 20.814185 + ], + [ + 105.7094581, + 20.814825 + ], + [ + 105.7076963, + 20.8174956 + ], + [ + 105.7070454, + 20.8191595 + ], + [ + 105.7067805, + 20.821154 + ], + [ + 105.7067183, + 20.8239059 + ], + [ + 105.7068685, + 20.8248736 + ], + [ + 105.7075334, + 20.8254964 + ], + [ + 105.7097825, + 20.8260744 + ], + [ + 105.7104115, + 20.8264051 + ], + [ + 105.710535, + 20.8266234 + ], + [ + 105.7107139, + 20.8273549 + ], + [ + 105.7096678, + 20.8299666 + ], + [ + 105.7088748, + 20.8295189 + ], + [ + 105.7086357, + 20.8297182 + ], + [ + 105.7074735, + 20.8299707 + ], + [ + 105.7074146, + 20.8295557 + ], + [ + 105.7068433, + 20.8296296 + ], + [ + 105.7067717, + 20.8289607 + ], + [ + 105.6968564, + 20.8284097 + ], + [ + 105.6971632, + 20.8264665 + ], + [ + 105.6970221, + 20.8264454 + ], + [ + 105.6970167, + 20.825914 + ], + [ + 105.6967163, + 20.8253474 + ], + [ + 105.6963639, + 20.825068 + ], + [ + 105.698214, + 20.8206236 + ], + [ + 105.6985505, + 20.8199646 + ], + [ + 105.6991303, + 20.8193756 + ], + [ + 105.6985349, + 20.8189372 + ], + [ + 105.6983876, + 20.8175238 + ], + [ + 105.6973224, + 20.8172691 + ], + [ + 105.6974003, + 20.8165947 + ], + [ + 105.697816, + 20.8164273 + ], + [ + 105.6974053, + 20.815897 + ], + [ + 105.6953358, + 20.8158235 + ], + [ + 105.6949085, + 20.8146873 + ], + [ + 105.6950641, + 20.8146247 + ], + [ + 105.6949085, + 20.814231 + ], + [ + 105.6941043, + 20.8129769 + ], + [ + 105.69372, + 20.8125906 + ], + [ + 105.6925267, + 20.8125111 + ], + [ + 105.6925321, + 20.8122303 + ], + [ + 105.689847, + 20.8123116 + ], + [ + 105.68991, + 20.8127225 + ], + [ + 105.6886967, + 20.8127826 + ], + [ + 105.6885753, + 20.8130413 + ], + [ + 105.686268, + 20.8128071 + ], + [ + 105.6860304, + 20.8138098 + ], + [ + 105.6849693, + 20.8137909 + ], + [ + 105.6848985, + 20.8140806 + ], + [ + 105.6824523, + 20.8142361 + ], + [ + 105.6816865, + 20.8146522 + ], + [ + 105.6820138, + 20.813002 + ], + [ + 105.6813322, + 20.8128826 + ], + [ + 105.6811348, + 20.8136144 + ], + [ + 105.6806289, + 20.8135191 + ], + [ + 105.6805728, + 20.8138006 + ], + [ + 105.6802747, + 20.8140781 + ], + [ + 105.6799345, + 20.8139908 + ], + [ + 105.67989, + 20.8144666 + ], + [ + 105.6787884, + 20.8146121 + ], + [ + 105.6774391, + 20.8146492 + ], + [ + 105.6766847, + 20.8144315 + ], + [ + 105.6762886, + 20.8146924 + ], + [ + 105.6758448, + 20.8145759 + ], + [ + 105.6743091, + 20.8148378 + ], + [ + 105.6737987, + 20.8145649 + ], + [ + 105.6733323, + 20.8145198 + ], + [ + 105.6727393, + 20.8139896 + ], + [ + 105.6720239, + 20.8139954 + ], + [ + 105.671643, + 20.8137697 + ], + [ + 105.6712661, + 20.8141642 + ], + [ + 105.6707268, + 20.8157431 + ], + [ + 105.6693844, + 20.8164838 + ], + [ + 105.6690842, + 20.8160512 + ], + [ + 105.6695241, + 20.8157303 + ], + [ + 105.6694302, + 20.8150684 + ], + [ + 105.6695568, + 20.8145362 + ], + [ + 105.669245, + 20.8144425 + ], + [ + 105.6690244, + 20.8145663 + ], + [ + 105.6688696, + 20.8150333 + ], + [ + 105.6684941, + 20.8153242 + ], + [ + 105.6685068, + 20.8158092 + ], + [ + 105.667951, + 20.8156993 + ], + [ + 105.6685477, + 20.8137045 + ], + [ + 105.6674403, + 20.8127102 + ], + [ + 105.6660567, + 20.8132016 + ], + [ + 105.6652486, + 20.814231 + ], + [ + 105.6650501, + 20.8141809 + ], + [ + 105.6648892, + 20.8144667 + ], + [ + 105.6636761, + 20.8152289 + ], + [ + 105.6632921, + 20.8152917 + ], + [ + 105.6628728, + 20.8151361 + ], + [ + 105.6640577, + 20.8148679 + ], + [ + 105.6649563, + 20.8141446 + ], + [ + 105.6648312, + 20.813855 + ], + [ + 105.6642079, + 20.8136895 + ], + [ + 105.6641275, + 20.8139904 + ], + [ + 105.6633523, + 20.8138371 + ], + [ + 105.6632405, + 20.8141811 + ], + [ + 105.6621047, + 20.8140137 + ], + [ + 105.6571411, + 20.8144753 + ], + [ + 105.6552016, + 20.8141195 + ], + [ + 105.6530396, + 20.8141105 + ], + [ + 105.6485426, + 20.8134225 + ], + [ + 105.6490986, + 20.8096555 + ], + [ + 105.6492586, + 20.8093705 + ], + [ + 105.6498346, + 20.8091785 + ], + [ + 105.6501846, + 20.8060405 + ], + [ + 105.6503596, + 20.8006725 + ], + [ + 105.6500536, + 20.7988025 + ], + [ + 105.6500716, + 20.7959845 + ], + [ + 105.6503669, + 20.7941453 + ], + [ + 105.648011, + 20.7935739 + ], + [ + 105.6483218, + 20.7923282 + ], + [ + 105.6483383, + 20.7898403 + ], + [ + 105.648651, + 20.7885656 + ], + [ + 105.64831, + 20.7845216 + ], + [ + 105.6485461, + 20.7825571 + ], + [ + 105.6483137, + 20.7793304 + ], + [ + 105.6479698, + 20.7787104 + ], + [ + 105.6476787, + 20.7764954 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-namtuliem.json b/src/data/boundaries/hn/hn-namtuliem.json new file mode 100644 index 0000000..775f220 --- /dev/null +++ b/src/data/boundaries/hn/hn-namtuliem.json @@ -0,0 +1,954 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-NAMTULIEM", + "name": "Nam Tu Liem", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 32.1, + "bbox": [ + 105.72656, + 20.97966, + 105.7992, + 21.05656 + ], + "center": [ + 21.01256, + 105.76151 + ], + "generatedAt": "2026-08-30T07:33:18.197Z", + "osm": "relation/9421137" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.7265554, + 21.0527566 + ], + [ + 105.7282015, + 21.0512385 + ], + [ + 105.7281444, + 21.0508357 + ], + [ + 105.7286835, + 21.050539 + ], + [ + 105.7279511, + 21.0484161 + ], + [ + 105.729502, + 21.0480528 + ], + [ + 105.7293435, + 21.047176 + ], + [ + 105.7301375, + 21.0470275 + ], + [ + 105.7301069, + 21.046918 + ], + [ + 105.7309605, + 21.0464972 + ], + [ + 105.731203, + 21.0467185 + ], + [ + 105.7318508, + 21.046273 + ], + [ + 105.732584, + 21.0454148 + ], + [ + 105.7325861, + 21.0449842 + ], + [ + 105.7320982, + 21.0447302 + ], + [ + 105.7324254, + 21.0441141 + ], + [ + 105.7323085, + 21.0437831 + ], + [ + 105.7330194, + 21.0437805 + ], + [ + 105.7334706, + 21.0432823 + ], + [ + 105.733554, + 21.0427936 + ], + [ + 105.7332142, + 21.0427168 + ], + [ + 105.7331304, + 21.0425022 + ], + [ + 105.7335238, + 21.0421012 + ], + [ + 105.7334343, + 21.041596 + ], + [ + 105.7340858, + 21.0407417 + ], + [ + 105.7336209, + 21.0402557 + ], + [ + 105.7336747, + 21.0401029 + ], + [ + 105.7339636, + 21.0400469 + ], + [ + 105.7341082, + 21.0397201 + ], + [ + 105.7335914, + 21.0382606 + ], + [ + 105.7339299, + 21.0381434 + ], + [ + 105.7344242, + 21.037534 + ], + [ + 105.7347822, + 21.0373786 + ], + [ + 105.7347716, + 21.0368658 + ], + [ + 105.7364153, + 21.0369263 + ], + [ + 105.737761, + 21.0364883 + ], + [ + 105.7385201, + 21.0365003 + ], + [ + 105.7385343, + 21.0362903 + ], + [ + 105.7381194, + 21.0361481 + ], + [ + 105.7382584, + 21.035574 + ], + [ + 105.7385907, + 21.0356285 + ], + [ + 105.738698, + 21.0336842 + ], + [ + 105.738947, + 21.0327142 + ], + [ + 105.7384347, + 21.0326087 + ], + [ + 105.7386467, + 21.0317996 + ], + [ + 105.7371934, + 21.0314655 + ], + [ + 105.7371318, + 21.031008 + ], + [ + 105.7371653, + 21.03044 + ], + [ + 105.7374506, + 21.0299225 + ], + [ + 105.7372438, + 21.0292288 + ], + [ + 105.7377724, + 21.0283352 + ], + [ + 105.7382135, + 21.0284153 + ], + [ + 105.7383666, + 21.0280314 + ], + [ + 105.7379724, + 21.0277714 + ], + [ + 105.7384084, + 21.0273801 + ], + [ + 105.7383855, + 21.0268519 + ], + [ + 105.7376945, + 21.0263062 + ], + [ + 105.737573, + 21.025782 + ], + [ + 105.7387183, + 21.0256557 + ], + [ + 105.7390352, + 21.0253674 + ], + [ + 105.7391098, + 21.0250557 + ], + [ + 105.7389711, + 21.0237957 + ], + [ + 105.7385766, + 21.0226287 + ], + [ + 105.7381521, + 21.022317 + ], + [ + 105.7377577, + 21.0223356 + ], + [ + 105.7375958, + 21.0225302 + ], + [ + 105.7377985, + 21.0227527 + ], + [ + 105.7377014, + 21.0232163 + ], + [ + 105.7373888, + 21.0233561 + ], + [ + 105.736992, + 21.0233022 + ], + [ + 105.7365049, + 21.0223737 + ], + [ + 105.7360296, + 21.022637 + ], + [ + 105.7361321, + 21.0218284 + ], + [ + 105.7356748, + 21.0216587 + ], + [ + 105.7349928, + 21.0219194 + ], + [ + 105.7350108, + 21.0225604 + ], + [ + 105.7344356, + 21.0226617 + ], + [ + 105.7339401, + 21.0214691 + ], + [ + 105.7334891, + 21.0213493 + ], + [ + 105.7318943, + 21.0195202 + ], + [ + 105.7298245, + 21.0179927 + ], + [ + 105.7312698, + 21.016531 + ], + [ + 105.7314199, + 21.0170569 + ], + [ + 105.7325516, + 21.0168076 + ], + [ + 105.7339706, + 21.0154285 + ], + [ + 105.7322403, + 21.0118537 + ], + [ + 105.7331006, + 21.0088612 + ], + [ + 105.7330678, + 21.0081356 + ], + [ + 105.7358041, + 21.0081832 + ], + [ + 105.7352881, + 21.0065041 + ], + [ + 105.7354352, + 21.0057915 + ], + [ + 105.7351481, + 21.0050517 + ], + [ + 105.7336731, + 21.0042858 + ], + [ + 105.7341395, + 21.0027566 + ], + [ + 105.734642, + 21.0027733 + ], + [ + 105.7352933, + 20.9965275 + ], + [ + 105.7361368, + 20.9969824 + ], + [ + 105.7366529, + 20.9967289 + ], + [ + 105.7377685, + 20.9966434 + ], + [ + 105.7388871, + 20.99484 + ], + [ + 105.7401505, + 20.9954395 + ], + [ + 105.7404099, + 20.9945812 + ], + [ + 105.7441635, + 20.9955025 + ], + [ + 105.7443237, + 20.9941521 + ], + [ + 105.7444992, + 20.9939051 + ], + [ + 105.7525767, + 20.9909776 + ], + [ + 105.7548599, + 20.9898737 + ], + [ + 105.7553275, + 20.9894294 + ], + [ + 105.756219, + 20.9899041 + ], + [ + 105.7581558, + 20.985199 + ], + [ + 105.7584133, + 20.9849471 + ], + [ + 105.7576629, + 20.9823668 + ], + [ + 105.7615828, + 20.97966 + ], + [ + 105.7641513, + 20.9801265 + ], + [ + 105.7642056, + 20.9811898 + ], + [ + 105.7645049, + 20.9812494 + ], + [ + 105.7647552, + 20.9829025 + ], + [ + 105.7660663, + 20.9830231 + ], + [ + 105.7659272, + 20.984543 + ], + [ + 105.7669373, + 20.9847527 + ], + [ + 105.7672867, + 20.984035 + ], + [ + 105.7671158, + 20.9839577 + ], + [ + 105.7673187, + 20.9834042 + ], + [ + 105.7678482, + 20.9835775 + ], + [ + 105.7681407, + 20.9834497 + ], + [ + 105.7707865, + 20.9853404 + ], + [ + 105.7716595, + 20.9857806 + ], + [ + 105.7721358, + 20.98516 + ], + [ + 105.7728386, + 20.9854614 + ], + [ + 105.7733568, + 20.9848879 + ], + [ + 105.7749279, + 20.9858929 + ], + [ + 105.7754288, + 20.9859777 + ], + [ + 105.7760811, + 20.9856467 + ], + [ + 105.777975, + 20.9840923 + ], + [ + 105.7783358, + 20.9849664 + ], + [ + 105.779169, + 20.9862188 + ], + [ + 105.7805248, + 20.9875245 + ], + [ + 105.7806688, + 20.9880135 + ], + [ + 105.7804894, + 20.9886834 + ], + [ + 105.7808261, + 20.9888688 + ], + [ + 105.7814921, + 20.9886629 + ], + [ + 105.782013, + 20.9880076 + ], + [ + 105.7826911, + 20.9875166 + ], + [ + 105.7836958, + 20.9870738 + ], + [ + 105.7839731, + 20.987276 + ], + [ + 105.784454, + 20.9881959 + ], + [ + 105.7838931, + 20.988496 + ], + [ + 105.7841529, + 20.9890349 + ], + [ + 105.78511, + 20.9886388 + ], + [ + 105.7852904, + 20.988882 + ], + [ + 105.7864437, + 20.9881802 + ], + [ + 105.7861041, + 20.9877465 + ], + [ + 105.7882976, + 20.9868821 + ], + [ + 105.7881639, + 20.9864807 + ], + [ + 105.7879352, + 20.9862953 + ], + [ + 105.7874252, + 20.9864116 + ], + [ + 105.78731, + 20.9859762 + ], + [ + 105.7867901, + 20.9859547 + ], + [ + 105.7843063, + 20.9868325 + ], + [ + 105.7840789, + 20.9865921 + ], + [ + 105.7869418, + 20.9855189 + ], + [ + 105.7897013, + 20.9852567 + ], + [ + 105.7928814, + 20.9854332 + ], + [ + 105.7931848, + 20.9843837 + ], + [ + 105.7992035, + 20.9886543 + ], + [ + 105.7988803, + 20.9889204 + ], + [ + 105.7985698, + 20.988713 + ], + [ + 105.7955672, + 20.9916585 + ], + [ + 105.7967488, + 20.9952297 + ], + [ + 105.7953683, + 20.9955984 + ], + [ + 105.7959189, + 20.9987431 + ], + [ + 105.7954202, + 20.9985766 + ], + [ + 105.7925225, + 20.9990195 + ], + [ + 105.7921847, + 20.9994064 + ], + [ + 105.7924921, + 20.9996747 + ], + [ + 105.7926058, + 21.0000689 + ], + [ + 105.7931229, + 20.9999287 + ], + [ + 105.7932928, + 21.0006987 + ], + [ + 105.7929681, + 21.0011358 + ], + [ + 105.7923056, + 21.0006558 + ], + [ + 105.7912413, + 21.0020701 + ], + [ + 105.7923268, + 21.0029651 + ], + [ + 105.7911792, + 21.0042771 + ], + [ + 105.7923279, + 21.0051517 + ], + [ + 105.789528, + 21.0086363 + ], + [ + 105.7903402, + 21.0091788 + ], + [ + 105.7896689, + 21.0100039 + ], + [ + 105.7902222, + 21.0104008 + ], + [ + 105.785472, + 21.0162432 + ], + [ + 105.7850953, + 21.0170482 + ], + [ + 105.7850393, + 21.0180582 + ], + [ + 105.7815587, + 21.0221948 + ], + [ + 105.7840713, + 21.0243703 + ], + [ + 105.7838889, + 21.0292615 + ], + [ + 105.7815738, + 21.0294594 + ], + [ + 105.7818257, + 21.0312663 + ], + [ + 105.7799473, + 21.0315499 + ], + [ + 105.7798595, + 21.0323643 + ], + [ + 105.7789263, + 21.0316035 + ], + [ + 105.7788567, + 21.0317565 + ], + [ + 105.77687, + 21.0309349 + ], + [ + 105.7763153, + 21.0316715 + ], + [ + 105.7754519, + 21.0316668 + ], + [ + 105.7754638, + 21.0326857 + ], + [ + 105.774857, + 21.0325864 + ], + [ + 105.7744746, + 21.0327242 + ], + [ + 105.7743821, + 21.0325638 + ], + [ + 105.773558, + 21.0329239 + ], + [ + 105.7739591, + 21.0335768 + ], + [ + 105.7728314, + 21.0346244 + ], + [ + 105.7713989, + 21.0351084 + ], + [ + 105.7715069, + 21.035458 + ], + [ + 105.7704902, + 21.035438 + ], + [ + 105.768541, + 21.0359941 + ], + [ + 105.7687349, + 21.0367241 + ], + [ + 105.7681368, + 21.0369085 + ], + [ + 105.76838, + 21.0375786 + ], + [ + 105.7671552, + 21.037974 + ], + [ + 105.7677076, + 21.0395819 + ], + [ + 105.7614552, + 21.0416514 + ], + [ + 105.7606735, + 21.0400505 + ], + [ + 105.7585526, + 21.0383606 + ], + [ + 105.7577856, + 21.038869 + ], + [ + 105.7550854, + 21.0385187 + ], + [ + 105.7533722, + 21.0379753 + ], + [ + 105.7505533, + 21.0406432 + ], + [ + 105.7388708, + 21.0449021 + ], + [ + 105.7372045, + 21.0441581 + ], + [ + 105.7331864, + 21.0540117 + ], + [ + 105.7294564, + 21.0565602 + ], + [ + 105.7265554, + 21.0527566 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-phuctho.json b/src/data/boundaries/hn/hn-phuctho.json new file mode 100644 index 0000000..4df9037 --- /dev/null +++ b/src/data/boundaries/hn/hn-phuctho.json @@ -0,0 +1,1830 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-PHUCTHO", + "name": "Phuc Tho", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 120.1, + "bbox": [ + 105.50053, + 21.04026, + 105.66491, + 21.17912 + ], + "center": [ + 21.11707, + 105.58374 + ], + "generatedAt": "2026-08-30T07:33:58.043Z", + "osm": "relation/7114829" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.5005289, + 21.0983369 + ], + [ + 105.5007357, + 21.0978749 + ], + [ + 105.5012443, + 21.0980171 + ], + [ + 105.5018933, + 21.0974511 + ], + [ + 105.5019212, + 21.0965414 + ], + [ + 105.501183, + 21.0962703 + ], + [ + 105.5012581, + 21.0958375 + ], + [ + 105.5017856, + 21.095696 + ], + [ + 105.5019709, + 21.0952221 + ], + [ + 105.5025887, + 21.0955211 + ], + [ + 105.5037135, + 21.0951125 + ], + [ + 105.5058798, + 21.0956926 + ], + [ + 105.5065188, + 21.0962322 + ], + [ + 105.5074062, + 21.0964688 + ], + [ + 105.5075133, + 21.096881 + ], + [ + 105.5072805, + 21.0974539 + ], + [ + 105.5075409, + 21.0978026 + ], + [ + 105.507892, + 21.0978109 + ], + [ + 105.5082038, + 21.0976608 + ], + [ + 105.5104061, + 21.0953961 + ], + [ + 105.511498, + 21.0951407 + ], + [ + 105.5116838, + 21.094805 + ], + [ + 105.5113024, + 21.0946611 + ], + [ + 105.511414, + 21.0944404 + ], + [ + 105.5110591, + 21.0942887 + ], + [ + 105.5104479, + 21.0945718 + ], + [ + 105.510263, + 21.0941503 + ], + [ + 105.510332, + 21.0939423 + ], + [ + 105.5107408, + 21.0935877 + ], + [ + 105.5111198, + 21.0936706 + ], + [ + 105.5114823, + 21.0935449 + ], + [ + 105.512093, + 21.0918368 + ], + [ + 105.5143987, + 21.0902142 + ], + [ + 105.514774, + 21.0901663 + ], + [ + 105.5154022, + 21.0905421 + ], + [ + 105.5153141, + 21.0906972 + ], + [ + 105.5155512, + 21.0907567 + ], + [ + 105.5155832, + 21.0909363 + ], + [ + 105.5154051, + 21.0914388 + ], + [ + 105.516032, + 21.0920283 + ], + [ + 105.5165014, + 21.091852 + ], + [ + 105.516848, + 21.0919003 + ], + [ + 105.5168437, + 21.0922345 + ], + [ + 105.517322, + 21.0918407 + ], + [ + 105.5172761, + 21.0903873 + ], + [ + 105.5181826, + 21.0902136 + ], + [ + 105.5195146, + 21.0905046 + ], + [ + 105.520054, + 21.090032 + ], + [ + 105.5206899, + 21.0900867 + ], + [ + 105.5207585, + 21.0899111 + ], + [ + 105.5217181, + 21.090196 + ], + [ + 105.5220064, + 21.0896281 + ], + [ + 105.5225443, + 21.0895348 + ], + [ + 105.5227889, + 21.0891649 + ], + [ + 105.5229466, + 21.0890456 + ], + [ + 105.523209, + 21.0891496 + ], + [ + 105.5233035, + 21.0889417 + ], + [ + 105.5234841, + 21.0890077 + ], + [ + 105.5235665, + 21.0893576 + ], + [ + 105.5241823, + 21.0889879 + ], + [ + 105.5252402, + 21.0894007 + ], + [ + 105.5259788, + 21.0893927 + ], + [ + 105.526609, + 21.0896546 + ], + [ + 105.5269788, + 21.0895841 + ], + [ + 105.5273728, + 21.0892264 + ], + [ + 105.5277278, + 21.0899062 + ], + [ + 105.5277475, + 21.0902774 + ], + [ + 105.5286398, + 21.0913391 + ], + [ + 105.529396, + 21.0913339 + ], + [ + 105.5297602, + 21.0911491 + ], + [ + 105.5300321, + 21.0908782 + ], + [ + 105.5300224, + 21.0905815 + ], + [ + 105.5302089, + 21.0904842 + ], + [ + 105.5302951, + 21.0908868 + ], + [ + 105.5367317, + 21.0911625 + ], + [ + 105.5374982, + 21.0911802 + ], + [ + 105.5375567, + 21.0910626 + ], + [ + 105.5389283, + 21.0913413 + ], + [ + 105.5393535, + 21.0910741 + ], + [ + 105.5395753, + 21.0914275 + ], + [ + 105.5394706, + 21.092206 + ], + [ + 105.5397179, + 21.0926132 + ], + [ + 105.5403353, + 21.0928406 + ], + [ + 105.5404259, + 21.0932025 + ], + [ + 105.5407361, + 21.0932607 + ], + [ + 105.5406898, + 21.093414 + ], + [ + 105.5411537, + 21.09383 + ], + [ + 105.5420196, + 21.0941035 + ], + [ + 105.5423212, + 21.0943722 + ], + [ + 105.5425317, + 21.0952671 + ], + [ + 105.542887, + 21.0953035 + ], + [ + 105.5430425, + 21.0955722 + ], + [ + 105.5429556, + 21.0958582 + ], + [ + 105.5436364, + 21.0962659 + ], + [ + 105.5440151, + 21.0954095 + ], + [ + 105.5436861, + 21.0951423 + ], + [ + 105.5437789, + 21.0950079 + ], + [ + 105.5456476, + 21.0944592 + ], + [ + 105.5466945, + 21.0949976 + ], + [ + 105.5470819, + 21.0947328 + ], + [ + 105.5472053, + 21.0942053 + ], + [ + 105.5476707, + 21.0940208 + ], + [ + 105.5477608, + 21.0938281 + ], + [ + 105.5479191, + 21.0941291 + ], + [ + 105.5484319, + 21.0941829 + ], + [ + 105.5485186, + 21.093952 + ], + [ + 105.5487183, + 21.094143 + ], + [ + 105.5492469, + 21.0941534 + ], + [ + 105.5494211, + 21.0940103 + ], + [ + 105.549307, + 21.0957614 + ], + [ + 105.5498825, + 21.0970525 + ], + [ + 105.5506178, + 21.0968893 + ], + [ + 105.5510726, + 21.0972074 + ], + [ + 105.5512265, + 21.0967297 + ], + [ + 105.5517884, + 21.096994 + ], + [ + 105.5522921, + 21.0967438 + ], + [ + 105.5524761, + 21.0964711 + ], + [ + 105.5526688, + 21.0969753 + ], + [ + 105.5527907, + 21.0968891 + ], + [ + 105.5540754, + 21.0973451 + ], + [ + 105.5548285, + 21.096391 + ], + [ + 105.5574518, + 21.1019853 + ], + [ + 105.5634917, + 21.1000654 + ], + [ + 105.5711814, + 21.1004688 + ], + [ + 105.573737, + 21.1001963 + ], + [ + 105.5754864, + 21.0996463 + ], + [ + 105.5753058, + 21.0991364 + ], + [ + 105.5756673, + 21.0987827 + ], + [ + 105.575469, + 21.0981683 + ], + [ + 105.5754993, + 21.0977175 + ], + [ + 105.5759032, + 21.0964027 + ], + [ + 105.5755799, + 21.094677 + ], + [ + 105.5762686, + 21.0944467 + ], + [ + 105.5760946, + 21.0940304 + ], + [ + 105.576632, + 21.0937279 + ], + [ + 105.5767264, + 21.0934596 + ], + [ + 105.5766912, + 21.0928459 + ], + [ + 105.5757998, + 21.0901743 + ], + [ + 105.5754367, + 21.0884101 + ], + [ + 105.5762884, + 21.0879494 + ], + [ + 105.5760305, + 21.0868322 + ], + [ + 105.5768206, + 21.0862948 + ], + [ + 105.5753689, + 21.0834436 + ], + [ + 105.575349, + 21.0830916 + ], + [ + 105.5751206, + 21.0829487 + ], + [ + 105.5749305, + 21.0821411 + ], + [ + 105.5762626, + 21.0808557 + ], + [ + 105.5772466, + 21.0800283 + ], + [ + 105.5809106, + 21.0778859 + ], + [ + 105.581435, + 21.0780396 + ], + [ + 105.5823356, + 21.0766442 + ], + [ + 105.5834135, + 21.075635 + ], + [ + 105.5833283, + 21.0752152 + ], + [ + 105.5915996, + 21.0769138 + ], + [ + 105.5916595, + 21.0767796 + ], + [ + 105.5922423, + 21.0769155 + ], + [ + 105.5922026, + 21.0771403 + ], + [ + 105.5937381, + 21.0775357 + ], + [ + 105.5939625, + 21.0772332 + ], + [ + 105.5942499, + 21.0772958 + ], + [ + 105.5946133, + 21.076689 + ], + [ + 105.5949148, + 21.075348 + ], + [ + 105.5946633, + 21.0752837 + ], + [ + 105.5948941, + 21.0746846 + ], + [ + 105.598773, + 21.0735341 + ], + [ + 105.5998117, + 21.0735317 + ], + [ + 105.6011355, + 21.0732954 + ], + [ + 105.603476, + 21.0719697 + ], + [ + 105.607236, + 21.0704827 + ], + [ + 105.6075056, + 21.0705026 + ], + [ + 105.6078262, + 21.0707771 + ], + [ + 105.607761, + 21.0709578 + ], + [ + 105.6081894, + 21.0714087 + ], + [ + 105.6083657, + 21.0712986 + ], + [ + 105.6093188, + 21.0725377 + ], + [ + 105.615684, + 21.0674423 + ], + [ + 105.6160766, + 21.0678733 + ], + [ + 105.6151337, + 21.0685891 + ], + [ + 105.6169062, + 21.0698113 + ], + [ + 105.6181582, + 21.0677338 + ], + [ + 105.6193546, + 21.067496 + ], + [ + 105.6246968, + 21.0646416 + ], + [ + 105.6266458, + 21.0630909 + ], + [ + 105.6290454, + 21.0601741 + ], + [ + 105.6291799, + 21.059822 + ], + [ + 105.6287727, + 21.0596617 + ], + [ + 105.6288373, + 21.059457 + ], + [ + 105.6321553, + 21.0523716 + ], + [ + 105.6307027, + 21.0512006 + ], + [ + 105.6321143, + 21.0484621 + ], + [ + 105.634662, + 21.0443423 + ], + [ + 105.6430079, + 21.0439157 + ], + [ + 105.6432911, + 21.0408669 + ], + [ + 105.6445457, + 21.0433971 + ], + [ + 105.6468658, + 21.0423581 + ], + [ + 105.6469535, + 21.0429062 + ], + [ + 105.6466777, + 21.0443381 + ], + [ + 105.6472042, + 21.0443916 + ], + [ + 105.6471206, + 21.045363 + ], + [ + 105.647391, + 21.0461363 + ], + [ + 105.6479772, + 21.0461552 + ], + [ + 105.6481585, + 21.0452594 + ], + [ + 105.6478973, + 21.043796 + ], + [ + 105.6479105, + 21.0429515 + ], + [ + 105.6469989, + 21.042642 + ], + [ + 105.6473145, + 21.0405408 + ], + [ + 105.6482845, + 21.0402605 + ], + [ + 105.6488254, + 21.0415696 + ], + [ + 105.6497665, + 21.0432264 + ], + [ + 105.6503866, + 21.0439941 + ], + [ + 105.6509286, + 21.0440936 + ], + [ + 105.6503965, + 21.0459102 + ], + [ + 105.649678, + 21.0502741 + ], + [ + 105.649136, + 21.0556883 + ], + [ + 105.64787, + 21.0587543 + ], + [ + 105.647054, + 21.0597343 + ], + [ + 105.646225, + 21.0621423 + ], + [ + 105.646148, + 21.0630063 + ], + [ + 105.6462651, + 21.0633146 + ], + [ + 105.6470973, + 21.0641841 + ], + [ + 105.6472744, + 21.064962 + ], + [ + 105.647497, + 21.0652368 + ], + [ + 105.6480121, + 21.0651588 + ], + [ + 105.6483134, + 21.0646755 + ], + [ + 105.6496911, + 21.0649535 + ], + [ + 105.6510104, + 21.0634914 + ], + [ + 105.6519077, + 21.0629989 + ], + [ + 105.6540358, + 21.0611621 + ], + [ + 105.6556605, + 21.0600539 + ], + [ + 105.6576489, + 21.0591792 + ], + [ + 105.6602624, + 21.0586929 + ], + [ + 105.6616822, + 21.058737 + ], + [ + 105.6622344, + 21.0589181 + ], + [ + 105.6633068, + 21.059619 + ], + [ + 105.6638605, + 21.0600991 + ], + [ + 105.6641838, + 21.0607214 + ], + [ + 105.6643097, + 21.0617342 + ], + [ + 105.6649137, + 21.0622934 + ], + [ + 105.664915, + 21.0630466 + ], + [ + 105.6645363, + 21.0645686 + ], + [ + 105.6633304, + 21.066657 + ], + [ + 105.661558, + 21.0687133 + ], + [ + 105.660167, + 21.0713533 + ], + [ + 105.6595379, + 21.071964 + ], + [ + 105.6591826, + 21.0721043 + ], + [ + 105.658479, + 21.0720763 + ], + [ + 105.657941, + 21.0717683 + ], + [ + 105.656842, + 21.0704743 + ], + [ + 105.651964, + 21.0681883 + ], + [ + 105.650995, + 21.0681333 + ], + [ + 105.648913, + 21.0684903 + ], + [ + 105.647143, + 21.0695243 + ], + [ + 105.646589, + 21.0700493 + ], + [ + 105.646384, + 21.0704763 + ], + [ + 105.645231, + 21.075942 + ], + [ + 105.64533, + 21.0795713 + ], + [ + 105.645691, + 21.0821273 + ], + [ + 105.645676, + 21.0833093 + ], + [ + 105.644816, + 21.0846963 + ], + [ + 105.644736, + 21.0853553 + ], + [ + 105.645177, + 21.0871933 + ], + [ + 105.645531, + 21.0878063 + ], + [ + 105.646813, + 21.0886543 + ], + [ + 105.647399, + 21.0894163 + ], + [ + 105.647371, + 21.0909683 + ], + [ + 105.6458912, + 21.0940879 + ], + [ + 105.6446079, + 21.0951669 + ], + [ + 105.6425373, + 21.0973355 + ], + [ + 105.6400122, + 21.0987586 + ], + [ + 105.6342593, + 21.1007474 + ], + [ + 105.6363967, + 21.107024 + ], + [ + 105.6385442, + 21.1054658 + ], + [ + 105.6394702, + 21.1095991 + ], + [ + 105.6372728, + 21.1099561 + ], + [ + 105.6375546, + 21.1114975 + ], + [ + 105.6371333, + 21.1117231 + ], + [ + 105.6369767, + 21.1116116 + ], + [ + 105.6312804, + 21.1136292 + ], + [ + 105.629789, + 21.113978 + ], + [ + 105.6260433, + 21.1166614 + ], + [ + 105.6250627, + 21.1175761 + ], + [ + 105.6243925, + 21.1185962 + ], + [ + 105.6243925, + 21.1202217 + ], + [ + 105.625225, + 21.1209983 + ], + [ + 105.6272215, + 21.1222092 + ], + [ + 105.6280875, + 21.1225418 + ], + [ + 105.6298338, + 21.1238542 + ], + [ + 105.6303826, + 21.1245616 + ], + [ + 105.6304026, + 21.1261905 + ], + [ + 105.6299934, + 21.1270003 + ], + [ + 105.6286663, + 21.1287595 + ], + [ + 105.6253135, + 21.1317565 + ], + [ + 105.6234883, + 21.1341216 + ], + [ + 105.6232383, + 21.1346898 + ], + [ + 105.6232142, + 21.1351267 + ], + [ + 105.6234945, + 21.1360542 + ], + [ + 105.626241, + 21.1421571 + ], + [ + 105.6264573, + 21.1425442 + ], + [ + 105.6276399, + 21.1435062 + ], + [ + 105.6278458, + 21.1439434 + ], + [ + 105.6278687, + 21.145583 + ], + [ + 105.6277266, + 21.1458104 + ], + [ + 105.6276567, + 21.1496248 + ], + [ + 105.6263194, + 21.1733562 + ], + [ + 105.6258469, + 21.1755333 + ], + [ + 105.6220322, + 21.1781864 + ], + [ + 105.6173096, + 21.1791248 + ], + [ + 105.6089401, + 21.1765423 + ], + [ + 105.6049652, + 21.1745186 + ], + [ + 105.6000641, + 21.1696631 + ], + [ + 105.5840776, + 21.1657556 + ], + [ + 105.5763338, + 21.1640525 + ], + [ + 105.5759067, + 21.1632253 + ], + [ + 105.5759486, + 21.1630547 + ], + [ + 105.5763925, + 21.1629715 + ], + [ + 105.5750747, + 21.1616276 + ], + [ + 105.5736537, + 21.1611292 + ], + [ + 105.5734172, + 21.1616838 + ], + [ + 105.5706938, + 21.1608532 + ], + [ + 105.5707526, + 21.160188 + ], + [ + 105.5671771, + 21.159252 + ], + [ + 105.5580083, + 21.1578792 + ], + [ + 105.5536712, + 21.1574948 + ], + [ + 105.5523094, + 21.1570881 + ], + [ + 105.5462537, + 21.156837 + ], + [ + 105.5341467, + 21.1559042 + ], + [ + 105.5267469, + 21.1556001 + ], + [ + 105.5214269, + 21.1557544 + ], + [ + 105.5155663, + 21.1564173 + ], + [ + 105.515843, + 21.1520023 + ], + [ + 105.5168984, + 21.1518219 + ], + [ + 105.516846, + 21.1512181 + ], + [ + 105.5170085, + 21.151204 + ], + [ + 105.5161016, + 21.1479795 + ], + [ + 105.5165037, + 21.1478645 + ], + [ + 105.5155368, + 21.1448823 + ], + [ + 105.5161905, + 21.1401299 + ], + [ + 105.5166292, + 21.1401751 + ], + [ + 105.5166824, + 21.1398255 + ], + [ + 105.5168845, + 21.1398486 + ], + [ + 105.5169356, + 21.1395918 + ], + [ + 105.5182589, + 21.139647 + ], + [ + 105.5194462, + 21.1393002 + ], + [ + 105.5210271, + 21.1392252 + ], + [ + 105.5213471, + 21.137548 + ], + [ + 105.5222217, + 21.135593 + ], + [ + 105.5234799, + 21.1351994 + ], + [ + 105.5242506, + 21.1352308 + ], + [ + 105.5246351, + 21.1338785 + ], + [ + 105.5237765, + 21.1338804 + ], + [ + 105.5237682, + 21.1336696 + ], + [ + 105.5225124, + 21.1334908 + ], + [ + 105.5210416, + 21.1325969 + ], + [ + 105.5203366, + 21.1317935 + ], + [ + 105.5198787, + 21.1308872 + ], + [ + 105.5199449, + 21.1298142 + ], + [ + 105.518765, + 21.1292086 + ], + [ + 105.5187705, + 21.1289596 + ], + [ + 105.5191928, + 21.1286437 + ], + [ + 105.5189258, + 21.1284052 + ], + [ + 105.5186578, + 21.128403 + ], + [ + 105.5184242, + 21.1286336 + ], + [ + 105.5186856, + 21.1288247 + ], + [ + 105.5178917, + 21.1296705 + ], + [ + 105.5172883, + 21.1291414 + ], + [ + 105.5171591, + 21.1295391 + ], + [ + 105.5162705, + 21.1291447 + ], + [ + 105.5160911, + 21.1288672 + ], + [ + 105.516293, + 21.1285853 + ], + [ + 105.516088, + 21.1284465 + ], + [ + 105.51621, + 21.1282728 + ], + [ + 105.5158574, + 21.1279896 + ], + [ + 105.513938, + 21.1299153 + ], + [ + 105.513478, + 21.1293483 + ], + [ + 105.5135427, + 21.1285048 + ], + [ + 105.5132893, + 21.1283461 + ], + [ + 105.5129177, + 21.1276446 + ], + [ + 105.5126879, + 21.125928 + ], + [ + 105.5120269, + 21.1251455 + ], + [ + 105.5116715, + 21.125005 + ], + [ + 105.5113684, + 21.1252155 + ], + [ + 105.5111342, + 21.1251839 + ], + [ + 105.5108543, + 21.1249198 + ], + [ + 105.5111393, + 21.1247968 + ], + [ + 105.5110596, + 21.1246392 + ], + [ + 105.5104647, + 21.1244232 + ], + [ + 105.509881, + 21.1245471 + ], + [ + 105.5099308, + 21.1248061 + ], + [ + 105.5097662, + 21.1248577 + ], + [ + 105.509651, + 21.1245265 + ], + [ + 105.5093815, + 21.1249659 + ], + [ + 105.5087317, + 21.1248816 + ], + [ + 105.5077549, + 21.1243044 + ], + [ + 105.507531, + 21.1235104 + ], + [ + 105.5067636, + 21.1236532 + ], + [ + 105.5060575, + 21.1240877 + ], + [ + 105.5056519, + 21.1236428 + ], + [ + 105.5047505, + 21.1230907 + ], + [ + 105.505073, + 21.1225645 + ], + [ + 105.5054332, + 21.1208889 + ], + [ + 105.5052797, + 21.1199639 + ], + [ + 105.5035172, + 21.1180248 + ], + [ + 105.503187, + 21.1175828 + ], + [ + 105.503107, + 21.1171661 + ], + [ + 105.5024469, + 21.1172163 + ], + [ + 105.5023341, + 21.1170084 + ], + [ + 105.5019982, + 21.1170169 + ], + [ + 105.5018144, + 21.1168358 + ], + [ + 105.5024201, + 21.1162409 + ], + [ + 105.5018539, + 21.1156275 + ], + [ + 105.5020852, + 21.1153636 + ], + [ + 105.5024633, + 21.1155401 + ], + [ + 105.5028582, + 21.1151042 + ], + [ + 105.5024974, + 21.1144112 + ], + [ + 105.5018898, + 21.1145115 + ], + [ + 105.5019593, + 21.1137846 + ], + [ + 105.5012269, + 21.1139173 + ], + [ + 105.500749, + 21.1130939 + ], + [ + 105.5012253, + 21.1121964 + ], + [ + 105.5015774, + 21.1120369 + ], + [ + 105.5018257, + 21.1113997 + ], + [ + 105.501455, + 21.1113007 + ], + [ + 105.5016683, + 21.1107753 + ], + [ + 105.5015599, + 21.1102697 + ], + [ + 105.5018341, + 21.1099379 + ], + [ + 105.5023535, + 21.1099606 + ], + [ + 105.502631, + 21.1093471 + ], + [ + 105.5026359, + 21.1091024 + ], + [ + 105.5024985, + 21.1090584 + ], + [ + 105.5027376, + 21.1085991 + ], + [ + 105.502335, + 21.1084055 + ], + [ + 105.5032813, + 21.1073819 + ], + [ + 105.5032973, + 21.1071411 + ], + [ + 105.5037025, + 21.1071284 + ], + [ + 105.5038551, + 21.1069549 + ], + [ + 105.5041219, + 21.107088 + ], + [ + 105.5047149, + 21.1069471 + ], + [ + 105.505782, + 21.1070838 + ], + [ + 105.5060824, + 21.1069561 + ], + [ + 105.505881, + 21.1066046 + ], + [ + 105.5055337, + 21.1049153 + ], + [ + 105.5063553, + 21.1038375 + ], + [ + 105.5056809, + 21.1026623 + ], + [ + 105.5055968, + 21.1018973 + ], + [ + 105.50366, + 21.0999991 + ], + [ + 105.503228, + 21.0999069 + ], + [ + 105.5028614, + 21.099008 + ], + [ + 105.5020671, + 21.0991308 + ], + [ + 105.5017131, + 21.0990376 + ], + [ + 105.5005289, + 21.0983369 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-phuxuyen.json b/src/data/boundaries/hn/hn-phuxuyen.json new file mode 100644 index 0000000..ccca721 --- /dev/null +++ b/src/data/boundaries/hn/hn-phuxuyen.json @@ -0,0 +1,1538 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-PHUXUYEN", + "name": "Phu Xuyen", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 174.1, + "bbox": [ + 105.7918, + 20.65079, + 106.00392, + 20.80684 + ], + "center": [ + 20.73559, + 105.90112 + ], + "generatedAt": "2026-08-30T07:33:53.465Z", + "osm": "relation/7115635" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.7918016, + 20.7614232 + ], + [ + 105.7921087, + 20.7615278 + ], + [ + 105.7922134, + 20.7599646 + ], + [ + 105.7920742, + 20.7599143 + ], + [ + 105.7923109, + 20.7586372 + ], + [ + 105.7937726, + 20.7589327 + ], + [ + 105.7939511, + 20.7576339 + ], + [ + 105.793574, + 20.7504236 + ], + [ + 105.7937805, + 20.7494462 + ], + [ + 105.7939766, + 20.7494906 + ], + [ + 105.7939748, + 20.7505532 + ], + [ + 105.794692, + 20.7506804 + ], + [ + 105.7947068, + 20.7494707 + ], + [ + 105.798498, + 20.7493263 + ], + [ + 105.8033271, + 20.75066 + ], + [ + 105.8069131, + 20.7463162 + ], + [ + 105.8082744, + 20.7452963 + ], + [ + 105.8099654, + 20.7444595 + ], + [ + 105.8111787, + 20.746021 + ], + [ + 105.8132535, + 20.7447533 + ], + [ + 105.8131604, + 20.7445883 + ], + [ + 105.8138588, + 20.7441558 + ], + [ + 105.8136893, + 20.7438592 + ], + [ + 105.8137099, + 20.743293 + ], + [ + 105.8154686, + 20.7420779 + ], + [ + 105.8152832, + 20.7417477 + ], + [ + 105.8204767, + 20.7391756 + ], + [ + 105.8220012, + 20.7416705 + ], + [ + 105.8255172, + 20.7389261 + ], + [ + 105.8252551, + 20.7381556 + ], + [ + 105.8248136, + 20.7378335 + ], + [ + 105.8263076, + 20.7371107 + ], + [ + 105.8302169, + 20.7387699 + ], + [ + 105.8303101, + 20.7389239 + ], + [ + 105.831931, + 20.7391558 + ], + [ + 105.83186, + 20.7394999 + ], + [ + 105.8341409, + 20.7401762 + ], + [ + 105.8367446, + 20.7406306 + ], + [ + 105.8367981, + 20.7398846 + ], + [ + 105.8428334, + 20.7407474 + ], + [ + 105.8427569, + 20.7411728 + ], + [ + 105.8440076, + 20.7417816 + ], + [ + 105.8448846, + 20.7410944 + ], + [ + 105.8456044, + 20.7411541 + ], + [ + 105.8459651, + 20.7370401 + ], + [ + 105.848248, + 20.7376676 + ], + [ + 105.8505427, + 20.7376966 + ], + [ + 105.849606, + 20.7328341 + ], + [ + 105.8529752, + 20.7323432 + ], + [ + 105.852838, + 20.7316095 + ], + [ + 105.8543984, + 20.7315829 + ], + [ + 105.8573672, + 20.7250519 + ], + [ + 105.8548528, + 20.7217655 + ], + [ + 105.8554403, + 20.7210048 + ], + [ + 105.8591808, + 20.7191346 + ], + [ + 105.8580244, + 20.7171526 + ], + [ + 105.8586339, + 20.7164327 + ], + [ + 105.8588819, + 20.7164878 + ], + [ + 105.8601862, + 20.7185074 + ], + [ + 105.8600781, + 20.7149635 + ], + [ + 105.8637173, + 20.7141422 + ], + [ + 105.8675393, + 20.7098687 + ], + [ + 105.868755, + 20.7093487 + ], + [ + 105.8703663, + 20.7092269 + ], + [ + 105.8723835, + 20.709603 + ], + [ + 105.8735301, + 20.709978 + ], + [ + 105.8722268, + 20.7070596 + ], + [ + 105.8726661, + 20.7068757 + ], + [ + 105.8720895, + 20.7059038 + ], + [ + 105.8744609, + 20.7046939 + ], + [ + 105.8746072, + 20.7049656 + ], + [ + 105.8748072, + 20.7049763 + ], + [ + 105.8755076, + 20.7047468 + ], + [ + 105.8753098, + 20.7042777 + ], + [ + 105.8774332, + 20.7032012 + ], + [ + 105.876972, + 20.7024524 + ], + [ + 105.887447, + 20.6964248 + ], + [ + 105.8871745, + 20.6958948 + ], + [ + 105.8877253, + 20.6957013 + ], + [ + 105.8884299, + 20.69332 + ], + [ + 105.8890731, + 20.6931711 + ], + [ + 105.889237, + 20.6921227 + ], + [ + 105.8905392, + 20.6930509 + ], + [ + 105.8914484, + 20.6934633 + ], + [ + 105.8921893, + 20.6921339 + ], + [ + 105.8891961, + 20.6910639 + ], + [ + 105.8874659, + 20.6906306 + ], + [ + 105.886842, + 20.6907831 + ], + [ + 105.88615, + 20.6914857 + ], + [ + 105.8849261, + 20.689575 + ], + [ + 105.8842997, + 20.6880856 + ], + [ + 105.8841956, + 20.6856735 + ], + [ + 105.882401, + 20.6853927 + ], + [ + 105.8833796, + 20.6779436 + ], + [ + 105.8855863, + 20.6792025 + ], + [ + 105.8861825, + 20.675683 + ], + [ + 105.8885545, + 20.6764019 + ], + [ + 105.8934437, + 20.6791825 + ], + [ + 105.8939495, + 20.6799087 + ], + [ + 105.8947326, + 20.6756145 + ], + [ + 105.8967311, + 20.6744048 + ], + [ + 105.8971711, + 20.6743688 + ], + [ + 105.9013077, + 20.6724103 + ], + [ + 105.9037136, + 20.6710106 + ], + [ + 105.9045153, + 20.6703911 + ], + [ + 105.9048443, + 20.6698957 + ], + [ + 105.9054072, + 20.6684059 + ], + [ + 105.9074139, + 20.6689428 + ], + [ + 105.9075955, + 20.668775 + ], + [ + 105.9083005, + 20.6690652 + ], + [ + 105.9146498, + 20.6724037 + ], + [ + 105.9145522, + 20.6727382 + ], + [ + 105.9173748, + 20.6743504 + ], + [ + 105.9180857, + 20.6733055 + ], + [ + 105.9193703, + 20.6749816 + ], + [ + 105.9199161, + 20.6759646 + ], + [ + 105.9228451, + 20.6766861 + ], + [ + 105.9323559, + 20.6801072 + ], + [ + 105.9346806, + 20.6801479 + ], + [ + 105.9386879, + 20.6805099 + ], + [ + 105.9412623, + 20.681387 + ], + [ + 105.9422035, + 20.6818962 + ], + [ + 105.9431434, + 20.6819403 + ], + [ + 105.943554, + 20.681794 + ], + [ + 105.9442381, + 20.6812187 + ], + [ + 105.9455108, + 20.6796552 + ], + [ + 105.946052, + 20.6786771 + ], + [ + 105.9466882, + 20.6763499 + ], + [ + 105.9467655, + 20.667785 + ], + [ + 105.9464966, + 20.6668642 + ], + [ + 105.9456217, + 20.665704 + ], + [ + 105.9432402, + 20.6637179 + ], + [ + 105.9429359, + 20.6610914 + ], + [ + 105.9434954, + 20.6579511 + ], + [ + 105.9452237, + 20.6551131 + ], + [ + 105.9465304, + 20.6541689 + ], + [ + 105.949117, + 20.6529379 + ], + [ + 105.9566844, + 20.651252 + ], + [ + 105.9579854, + 20.650792 + ], + [ + 105.9582732, + 20.6515183 + ], + [ + 105.9570588, + 20.654773 + ], + [ + 105.9569238, + 20.656174 + ], + [ + 105.9578433, + 20.6586508 + ], + [ + 105.9583471, + 20.6591897 + ], + [ + 105.9601709, + 20.661107 + ], + [ + 105.9615888, + 20.6621825 + ], + [ + 105.9641532, + 20.6637528 + ], + [ + 105.9671733, + 20.6649065 + ], + [ + 105.9694414, + 20.6652438 + ], + [ + 105.9744975, + 20.6654449 + ], + [ + 105.9775313, + 20.6657404 + ], + [ + 105.9780049, + 20.6665907 + ], + [ + 105.9786974, + 20.6696463 + ], + [ + 105.9789663, + 20.6716943 + ], + [ + 105.9784358, + 20.6732979 + ], + [ + 105.9784601, + 20.6738029 + ], + [ + 105.9848001, + 20.6805417 + ], + [ + 105.9857758, + 20.6806349 + ], + [ + 105.988602, + 20.6825407 + ], + [ + 105.9900779, + 20.6846205 + ], + [ + 105.9906624, + 20.6836036 + ], + [ + 105.9905114, + 20.6832006 + ], + [ + 105.9906495, + 20.6830521 + ], + [ + 105.9904689, + 20.6827475 + ], + [ + 105.9926368, + 20.6812993 + ], + [ + 105.9935422, + 20.6824662 + ], + [ + 105.9947938, + 20.6815937 + ], + [ + 105.99234, + 20.678587 + ], + [ + 105.9945853, + 20.6772066 + ], + [ + 105.9974938, + 20.6783681 + ], + [ + 105.9956581, + 20.6819932 + ], + [ + 105.9940835, + 20.6831613 + ], + [ + 105.99451, + 20.6844425 + ], + [ + 105.9937782, + 20.6841239 + ], + [ + 105.9918727, + 20.6892017 + ], + [ + 105.9930961, + 20.6896339 + ], + [ + 105.9928988, + 20.6900033 + ], + [ + 105.9980262, + 20.6923715 + ], + [ + 105.9976003, + 20.6931347 + ], + [ + 105.9979886, + 20.6933859 + ], + [ + 105.9956344, + 20.6974382 + ], + [ + 105.9970548, + 20.6984067 + ], + [ + 106.0014322, + 20.7008549 + ], + [ + 106.0023838, + 20.701872 + ], + [ + 106.0039162, + 20.7043467 + ], + [ + 105.9941812, + 20.7042574 + ], + [ + 105.9900067, + 20.7040184 + ], + [ + 105.9881792, + 20.7036172 + ], + [ + 105.9868724, + 20.7028355 + ], + [ + 105.986676, + 20.7019418 + ], + [ + 105.9844492, + 20.7008693 + ], + [ + 105.9825486, + 20.700207 + ], + [ + 105.978881, + 20.6993243 + ], + [ + 105.9765699, + 20.6993832 + ], + [ + 105.9748874, + 20.699623 + ], + [ + 105.9738363, + 20.699959 + ], + [ + 105.9731613, + 20.7005034 + ], + [ + 105.9718563, + 20.7042591 + ], + [ + 105.969617, + 20.7098871 + ], + [ + 105.9641467, + 20.7249735 + ], + [ + 105.9663274, + 20.7308591 + ], + [ + 105.9680904, + 20.7341563 + ], + [ + 105.9668785, + 20.7423489 + ], + [ + 105.9675867, + 20.7560307 + ], + [ + 105.9676704, + 20.7606605 + ], + [ + 105.9682978, + 20.7647242 + ], + [ + 105.9685101, + 20.7678086 + ], + [ + 105.9684352, + 20.7698273 + ], + [ + 105.9669104, + 20.7732365 + ], + [ + 105.9656656, + 20.7749368 + ], + [ + 105.9632078, + 20.7774562 + ], + [ + 105.962099, + 20.7782424 + ], + [ + 105.960296, + 20.779161 + ], + [ + 105.9575902, + 20.780082 + ], + [ + 105.9539122, + 20.7810707 + ], + [ + 105.9491919, + 20.7819316 + ], + [ + 105.9399238, + 20.7832283 + ], + [ + 105.9376332, + 20.7836804 + ], + [ + 105.9347784, + 20.7845401 + ], + [ + 105.9293067, + 20.7865185 + ], + [ + 105.9282665, + 20.7871085 + ], + [ + 105.9268457, + 20.7881889 + ], + [ + 105.9235666, + 20.7912904 + ], + [ + 105.9174843, + 20.7874275 + ], + [ + 105.9173029, + 20.7876903 + ], + [ + 105.9170772, + 20.7875732 + ], + [ + 105.9163035, + 20.7885829 + ], + [ + 105.9132292, + 20.7867381 + ], + [ + 105.9134023, + 20.7855974 + ], + [ + 105.9132175, + 20.7855008 + ], + [ + 105.913614, + 20.7840998 + ], + [ + 105.9142536, + 20.7842211 + ], + [ + 105.9143837, + 20.7831591 + ], + [ + 105.913903, + 20.7830197 + ], + [ + 105.9136004, + 20.7839753 + ], + [ + 105.9125764, + 20.7836528 + ], + [ + 105.9129921, + 20.7824866 + ], + [ + 105.912609, + 20.7822693 + ], + [ + 105.9132428, + 20.7805715 + ], + [ + 105.9123336, + 20.7766761 + ], + [ + 105.9117274, + 20.77638 + ], + [ + 105.912046, + 20.7746045 + ], + [ + 105.9117621, + 20.7744506 + ], + [ + 105.9135316, + 20.772282 + ], + [ + 105.9127839, + 20.7716382 + ], + [ + 105.9158793, + 20.7671082 + ], + [ + 105.9192926, + 20.7638287 + ], + [ + 105.9171027, + 20.7629454 + ], + [ + 105.9156633, + 20.7621468 + ], + [ + 105.9146969, + 20.7619232 + ], + [ + 105.9122968, + 20.7606981 + ], + [ + 105.9116728, + 20.7600404 + ], + [ + 105.9120516, + 20.7595937 + ], + [ + 105.9116628, + 20.7593972 + ], + [ + 105.9118699, + 20.7589788 + ], + [ + 105.9114069, + 20.7590141 + ], + [ + 105.9107439, + 20.7577669 + ], + [ + 105.9105703, + 20.757818 + ], + [ + 105.9104813, + 20.7576774 + ], + [ + 105.9102252, + 20.7578303 + ], + [ + 105.9099916, + 20.7574345 + ], + [ + 105.9092463, + 20.7577856 + ], + [ + 105.9090742, + 20.7575055 + ], + [ + 105.9086094, + 20.7576913 + ], + [ + 105.9081787, + 20.757046 + ], + [ + 105.9060596, + 20.7564826 + ], + [ + 105.9062959, + 20.7556922 + ], + [ + 105.9057195, + 20.7555865 + ], + [ + 105.9048691, + 20.7528961 + ], + [ + 105.9035416, + 20.7535778 + ], + [ + 105.9028842, + 20.7521891 + ], + [ + 105.9013307, + 20.7529266 + ], + [ + 105.9012415, + 20.7536155 + ], + [ + 105.8989676, + 20.7547804 + ], + [ + 105.897948, + 20.7538814 + ], + [ + 105.8963012, + 20.7550637 + ], + [ + 105.8952109, + 20.754497 + ], + [ + 105.8940929, + 20.7553034 + ], + [ + 105.8933187, + 20.7545038 + ], + [ + 105.8914652, + 20.7534312 + ], + [ + 105.8899378, + 20.751918 + ], + [ + 105.8873638, + 20.7537747 + ], + [ + 105.8868825, + 20.7543312 + ], + [ + 105.8866721, + 20.7549225 + ], + [ + 105.8867572, + 20.756067 + ], + [ + 105.8909496, + 20.7636314 + ], + [ + 105.8925595, + 20.7654397 + ], + [ + 105.8954536, + 20.7673201 + ], + [ + 105.8947381, + 20.7687882 + ], + [ + 105.8962059, + 20.7718604 + ], + [ + 105.8956439, + 20.7723109 + ], + [ + 105.896157, + 20.7730967 + ], + [ + 105.8957408, + 20.7736879 + ], + [ + 105.8930042, + 20.7723492 + ], + [ + 105.8923861, + 20.7735843 + ], + [ + 105.8917147, + 20.7731255 + ], + [ + 105.8897245, + 20.7724372 + ], + [ + 105.8869055, + 20.7813539 + ], + [ + 105.884801, + 20.7806407 + ], + [ + 105.8842296, + 20.7826577 + ], + [ + 105.8818496, + 20.7817476 + ], + [ + 105.8789663, + 20.7835461 + ], + [ + 105.8804351, + 20.7843016 + ], + [ + 105.8778239, + 20.7860074 + ], + [ + 105.8775106, + 20.7856262 + ], + [ + 105.8771612, + 20.7855856 + ], + [ + 105.8765071, + 20.7851415 + ], + [ + 105.8683471, + 20.7897415 + ], + [ + 105.8707379, + 20.7929494 + ], + [ + 105.8708771, + 20.7928734 + ], + [ + 105.8716816, + 20.7944584 + ], + [ + 105.8693137, + 20.7958536 + ], + [ + 105.8698143, + 20.7968309 + ], + [ + 105.8595519, + 20.8000703 + ], + [ + 105.8592855, + 20.7997895 + ], + [ + 105.8584805, + 20.799534 + ], + [ + 105.8576882, + 20.7996405 + ], + [ + 105.8541781, + 20.801537 + ], + [ + 105.8529454, + 20.8018787 + ], + [ + 105.8518723, + 20.801679 + ], + [ + 105.8491054, + 20.7996263 + ], + [ + 105.845809, + 20.7976654 + ], + [ + 105.8440341, + 20.7967717 + ], + [ + 105.8417641, + 20.795911 + ], + [ + 105.8384139, + 20.7952958 + ], + [ + 105.8360318, + 20.7950256 + ], + [ + 105.8341801, + 20.7950485 + ], + [ + 105.8339501, + 20.7975046 + ], + [ + 105.8340155, + 20.7982558 + ], + [ + 105.8337913, + 20.7984828 + ], + [ + 105.833284, + 20.7984851 + ], + [ + 105.833125, + 20.7989546 + ], + [ + 105.8331448, + 20.8005794 + ], + [ + 105.8326112, + 20.8006144 + ], + [ + 105.8316228, + 20.8062585 + ], + [ + 105.8266296, + 20.8057458 + ], + [ + 105.8257732, + 20.8066234 + ], + [ + 105.8246672, + 20.8063287 + ], + [ + 105.824453, + 20.8068411 + ], + [ + 105.8169087, + 20.8044978 + ], + [ + 105.8198926, + 20.7970394 + ], + [ + 105.8208572, + 20.7951485 + ], + [ + 105.8184515, + 20.7941254 + ], + [ + 105.8138532, + 20.8020056 + ], + [ + 105.809807, + 20.79868 + ], + [ + 105.8095433, + 20.7979646 + ], + [ + 105.8086451, + 20.7968245 + ], + [ + 105.8097871, + 20.7947669 + ], + [ + 105.8083247, + 20.7922702 + ], + [ + 105.8102651, + 20.7890645 + ], + [ + 105.8100005, + 20.7889432 + ], + [ + 105.81031, + 20.7886374 + ], + [ + 105.8100909, + 20.7877148 + ], + [ + 105.8097023, + 20.7872529 + ], + [ + 105.8098619, + 20.7871459 + ], + [ + 105.8100248, + 20.7874026 + ], + [ + 105.810621, + 20.7869597 + ], + [ + 105.8098757, + 20.7857541 + ], + [ + 105.8087732, + 20.7845135 + ], + [ + 105.8075986, + 20.7813756 + ], + [ + 105.8069862, + 20.7806051 + ], + [ + 105.805991, + 20.7799355 + ], + [ + 105.8049443, + 20.7796027 + ], + [ + 105.8026106, + 20.7796047 + ], + [ + 105.802789, + 20.7784894 + ], + [ + 105.8045476, + 20.7787753 + ], + [ + 105.8054094, + 20.7757131 + ], + [ + 105.8034213, + 20.7752983 + ], + [ + 105.8035886, + 20.7713625 + ], + [ + 105.8003695, + 20.7707208 + ], + [ + 105.8002862, + 20.7711412 + ], + [ + 105.7996298, + 20.7714926 + ], + [ + 105.7980581, + 20.7658985 + ], + [ + 105.7972138, + 20.765753 + ], + [ + 105.7960936, + 20.7616554 + ], + [ + 105.7921036, + 20.7625957 + ], + [ + 105.7918016, + 20.7614232 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-quocoai.json b/src/data/boundaries/hn/hn-quocoai.json new file mode 100644 index 0000000..02042d3 --- /dev/null +++ b/src/data/boundaries/hn/hn-quocoai.json @@ -0,0 +1,2974 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-QUOCOAI", + "name": "Quoc Oai", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 151.4, + "bbox": [ + 105.4782, + 20.90939, + 105.72589, + 21.04616 + ], + "center": [ + 20.96769, + 105.59765 + ], + "generatedAt": "2026-08-30T07:34:01.644Z", + "osm": "relation/7115194" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.4782027, + 20.9487148 + ], + [ + 105.4792158, + 20.9478113 + ], + [ + 105.4806345, + 20.9469949 + ], + [ + 105.4808336, + 20.9459506 + ], + [ + 105.4815508, + 20.9455572 + ], + [ + 105.4827571, + 20.9439292 + ], + [ + 105.4832908, + 20.9434876 + ], + [ + 105.4840001, + 20.9433346 + ], + [ + 105.4842417, + 20.9426677 + ], + [ + 105.4856372, + 20.9411718 + ], + [ + 105.4862914, + 20.9398158 + ], + [ + 105.487851, + 20.9384184 + ], + [ + 105.4889365, + 20.9368096 + ], + [ + 105.4889132, + 20.935939 + ], + [ + 105.488561, + 20.9353978 + ], + [ + 105.4908691, + 20.9339796 + ], + [ + 105.4930311, + 20.933819 + ], + [ + 105.4945893, + 20.933197 + ], + [ + 105.4982239, + 20.9313597 + ], + [ + 105.4993734, + 20.930468 + ], + [ + 105.5009718, + 20.9305618 + ], + [ + 105.5025286, + 20.9303984 + ], + [ + 105.5042771, + 20.928867 + ], + [ + 105.5057112, + 20.9263567 + ], + [ + 105.5062828, + 20.925856 + ], + [ + 105.5125563, + 20.9223143 + ], + [ + 105.513808, + 20.9219713 + ], + [ + 105.5163171, + 20.9219013 + ], + [ + 105.5197822, + 20.9225888 + ], + [ + 105.5209204, + 20.9224409 + ], + [ + 105.5222165, + 20.9217933 + ], + [ + 105.5234931, + 20.9208636 + ], + [ + 105.5245981, + 20.9193326 + ], + [ + 105.525206, + 20.9190605 + ], + [ + 105.5258028, + 20.9190059 + ], + [ + 105.5292026, + 20.9206998 + ], + [ + 105.5338254, + 20.9237166 + ], + [ + 105.5386369, + 20.9275121 + ], + [ + 105.5413597, + 20.9250445 + ], + [ + 105.5423671, + 20.9246724 + ], + [ + 105.5431169, + 20.9246211 + ], + [ + 105.546135, + 20.9231166 + ], + [ + 105.5517111, + 20.927035 + ], + [ + 105.5524102, + 20.927184 + ], + [ + 105.5537452, + 20.9269068 + ], + [ + 105.5557474, + 20.9271459 + ], + [ + 105.5567105, + 20.9268481 + ], + [ + 105.5578882, + 20.9262397 + ], + [ + 105.5605319, + 20.9243895 + ], + [ + 105.5608743, + 20.9244767 + ], + [ + 105.5634106, + 20.9266023 + ], + [ + 105.5690868, + 20.9270338 + ], + [ + 105.5710683, + 20.9277823 + ], + [ + 105.5706233, + 20.9289771 + ], + [ + 105.5701499, + 20.9297342 + ], + [ + 105.5707853, + 20.930106 + ], + [ + 105.5713322, + 20.9295583 + ], + [ + 105.572493, + 20.9292011 + ], + [ + 105.5734118, + 20.9284362 + ], + [ + 105.5745134, + 20.9295817 + ], + [ + 105.5755839, + 20.9302005 + ], + [ + 105.5758643, + 20.9296594 + ], + [ + 105.5760588, + 20.9297106 + ], + [ + 105.5758881, + 20.9293482 + ], + [ + 105.5761098, + 20.9292059 + ], + [ + 105.5768847, + 20.9293918 + ], + [ + 105.5775751, + 20.9292981 + ], + [ + 105.5801451, + 20.9282186 + ], + [ + 105.5814769, + 20.9282042 + ], + [ + 105.5814046, + 20.9253851 + ], + [ + 105.5815193, + 20.924165 + ], + [ + 105.5803436, + 20.9225265 + ], + [ + 105.5792083, + 20.922266 + ], + [ + 105.5788698, + 20.9206657 + ], + [ + 105.579071, + 20.9195758 + ], + [ + 105.5794512, + 20.9189965 + ], + [ + 105.5800677, + 20.9193224 + ], + [ + 105.5803469, + 20.9184309 + ], + [ + 105.5809598, + 20.9178194 + ], + [ + 105.5806926, + 20.9175235 + ], + [ + 105.5799432, + 20.9172292 + ], + [ + 105.5800081, + 20.9168228 + ], + [ + 105.5803729, + 20.9165404 + ], + [ + 105.5802893, + 20.9164156 + ], + [ + 105.5792748, + 20.9163566 + ], + [ + 105.5790278, + 20.915995 + ], + [ + 105.5791122, + 20.9157168 + ], + [ + 105.5794635, + 20.9157619 + ], + [ + 105.5795225, + 20.9151856 + ], + [ + 105.5797841, + 20.9145765 + ], + [ + 105.5800348, + 20.914444 + ], + [ + 105.5801421, + 20.9138928 + ], + [ + 105.5815959, + 20.9138377 + ], + [ + 105.5818836, + 20.9124293 + ], + [ + 105.5822576, + 20.912219 + ], + [ + 105.5823479, + 20.9117832 + ], + [ + 105.5822425, + 20.9111506 + ], + [ + 105.581475, + 20.9107289 + ], + [ + 105.5813697, + 20.9104759 + ], + [ + 105.581703, + 20.9097215 + ], + [ + 105.5823711, + 20.9093853 + ], + [ + 105.5825105, + 20.9094655 + ], + [ + 105.5823952, + 20.9098238 + ], + [ + 105.5825266, + 20.9101646 + ], + [ + 105.5830621, + 20.9106532 + ], + [ + 105.5837486, + 20.9105088 + ], + [ + 105.5839907, + 20.9109623 + ], + [ + 105.5850248, + 20.9101417 + ], + [ + 105.5858472, + 20.9111931 + ], + [ + 105.5871186, + 20.9112169 + ], + [ + 105.5878025, + 20.9116629 + ], + [ + 105.5881024, + 20.9122967 + ], + [ + 105.589833, + 20.9124045 + ], + [ + 105.589833, + 20.9125273 + ], + [ + 105.5908712, + 20.9127469 + ], + [ + 105.5923408, + 20.9125799 + ], + [ + 105.5923381, + 20.9123519 + ], + [ + 105.5911057, + 20.9116315 + ], + [ + 105.5912405, + 20.9114825 + ], + [ + 105.5918848, + 20.9115677 + ], + [ + 105.5927836, + 20.9110265 + ], + [ + 105.5929778, + 20.9126548 + ], + [ + 105.5934034, + 20.913192 + ], + [ + 105.5940946, + 20.9136232 + ], + [ + 105.5946293, + 20.91371 + ], + [ + 105.5966353, + 20.9128799 + ], + [ + 105.5974625, + 20.9129618 + ], + [ + 105.597749, + 20.9133589 + ], + [ + 105.5974517, + 20.9176177 + ], + [ + 105.5977772, + 20.9180685 + ], + [ + 105.5986666, + 20.9183388 + ], + [ + 105.6006739, + 20.9183777 + ], + [ + 105.6017324, + 20.9182065 + ], + [ + 105.6023257, + 20.9184353 + ], + [ + 105.6023971, + 20.918827 + ], + [ + 105.6012596, + 20.9203622 + ], + [ + 105.6011512, + 20.921101 + ], + [ + 105.6014515, + 20.9218421 + ], + [ + 105.6021222, + 20.9225091 + ], + [ + 105.6042576, + 20.9225622 + ], + [ + 105.605418, + 20.9238699 + ], + [ + 105.6062187, + 20.9240721 + ], + [ + 105.6083197, + 20.9233277 + ], + [ + 105.609415, + 20.9233652 + ], + [ + 105.6145137, + 20.9256082 + ], + [ + 105.6149974, + 20.92606 + ], + [ + 105.6154218, + 20.9272396 + ], + [ + 105.6154617, + 20.9280976 + ], + [ + 105.6148382, + 20.9291871 + ], + [ + 105.6127364, + 20.9309984 + ], + [ + 105.6126046, + 20.9315526 + ], + [ + 105.6127394, + 20.9320038 + ], + [ + 105.6139969, + 20.9329414 + ], + [ + 105.6148846, + 20.9331437 + ], + [ + 105.6157248, + 20.9327212 + ], + [ + 105.6163632, + 20.9320354 + ], + [ + 105.6167545, + 20.930593 + ], + [ + 105.6171263, + 20.9302367 + ], + [ + 105.617919, + 20.9301179 + ], + [ + 105.6188178, + 20.9304315 + ], + [ + 105.620255, + 20.9324539 + ], + [ + 105.6202269, + 20.9328465 + ], + [ + 105.6199309, + 20.933239 + ], + [ + 105.6187896, + 20.9336903 + ], + [ + 105.6184915, + 20.9340204 + ], + [ + 105.6183878, + 20.9357147 + ], + [ + 105.6182329, + 20.9361215 + ], + [ + 105.620107, + 20.9363754 + ], + [ + 105.62247, + 20.937683 + ], + [ + 105.6236261, + 20.9380689 + ], + [ + 105.6235434, + 20.9386079 + ], + [ + 105.6220942, + 20.9400569 + ], + [ + 105.6242667, + 20.9403827 + ], + [ + 105.6245738, + 20.9408746 + ], + [ + 105.6248738, + 20.9407593 + ], + [ + 105.626024, + 20.9411351 + ], + [ + 105.6258738, + 20.9419618 + ], + [ + 105.6259757, + 20.9427684 + ], + [ + 105.6262439, + 20.9432869 + ], + [ + 105.6267321, + 20.9432819 + ], + [ + 105.6265607, + 20.94392 + ], + [ + 105.6270245, + 20.9447198 + ], + [ + 105.6274429, + 20.9449803 + ], + [ + 105.6274429, + 20.9453936 + ], + [ + 105.6283568, + 20.9462522 + ], + [ + 105.6286984, + 20.9459717 + ], + [ + 105.6292816, + 20.9462579 + ], + [ + 105.6291868, + 20.9466614 + ], + [ + 105.6306331, + 20.9473232 + ], + [ + 105.6299041, + 20.9481538 + ], + [ + 105.6317049, + 20.9493765 + ], + [ + 105.632525, + 20.9498475 + ], + [ + 105.6328046, + 20.9498324 + ], + [ + 105.6334162, + 20.9538953 + ], + [ + 105.6339828, + 20.9557324 + ], + [ + 105.6362766, + 20.9554456 + ], + [ + 105.6362298, + 20.9549222 + ], + [ + 105.6363827, + 20.9545315 + ], + [ + 105.63944, + 20.9550175 + ], + [ + 105.6393786, + 20.9540981 + ], + [ + 105.640111, + 20.9543762 + ], + [ + 105.6416578, + 20.9554093 + ], + [ + 105.6448746, + 20.9521419 + ], + [ + 105.6451722, + 20.9520794 + ], + [ + 105.6456533, + 20.9522663 + ], + [ + 105.6461897, + 20.9511052 + ], + [ + 105.6520146, + 20.9515908 + ], + [ + 105.6629679, + 20.9490384 + ], + [ + 105.6765724, + 20.9515407 + ], + [ + 105.6772462, + 20.9510297 + ], + [ + 105.6784934, + 20.9506139 + ], + [ + 105.6789145, + 20.9510197 + ], + [ + 105.6792471, + 20.9509596 + ], + [ + 105.6792528, + 20.9517227 + ], + [ + 105.6789252, + 20.9525511 + ], + [ + 105.6790996, + 20.9526478 + ], + [ + 105.6789896, + 20.9528257 + ], + [ + 105.6793088, + 20.952966 + ], + [ + 105.6792478, + 20.9530835 + ], + [ + 105.6797057, + 20.9532966 + ], + [ + 105.6794941, + 20.9537736 + ], + [ + 105.6799284, + 20.9540919 + ], + [ + 105.6797111, + 20.9544764 + ], + [ + 105.6833107, + 20.9553459 + ], + [ + 105.6829412, + 20.9579154 + ], + [ + 105.6864539, + 20.9584498 + ], + [ + 105.6857625, + 20.9618187 + ], + [ + 105.6887171, + 20.962232 + ], + [ + 105.6898338, + 20.9620708 + ], + [ + 105.6903058, + 20.9624114 + ], + [ + 105.6924923, + 20.9615606 + ], + [ + 105.6931871, + 20.9621878 + ], + [ + 105.6953819, + 20.9648413 + ], + [ + 105.6955951, + 20.9647909 + ], + [ + 105.6955576, + 20.9646156 + ], + [ + 105.6962086, + 20.9643896 + ], + [ + 105.6958634, + 20.9628422 + ], + [ + 105.6949353, + 20.9602875 + ], + [ + 105.6951874, + 20.9598366 + ], + [ + 105.6935996, + 20.9575022 + ], + [ + 105.6933415, + 20.9567301 + ], + [ + 105.6935774, + 20.9557532 + ], + [ + 105.6945035, + 20.9552504 + ], + [ + 105.696373, + 20.9549022 + ], + [ + 105.6975108, + 20.9568559 + ], + [ + 105.6991759, + 20.9558665 + ], + [ + 105.700097, + 20.9563766 + ], + [ + 105.7007168, + 20.9570765 + ], + [ + 105.70288, + 20.9570814 + ], + [ + 105.7044421, + 20.9568261 + ], + [ + 105.7046554, + 20.9579054 + ], + [ + 105.7061416, + 20.9572467 + ], + [ + 105.7072374, + 20.9562704 + ], + [ + 105.7091553, + 20.9577158 + ], + [ + 105.7107538, + 20.9564332 + ], + [ + 105.7111949, + 20.9561546 + ], + [ + 105.7114765, + 20.9562322 + ], + [ + 105.7116645, + 20.9557694 + ], + [ + 105.7123455, + 20.9559592 + ], + [ + 105.7123241, + 20.9555081 + ], + [ + 105.7142633, + 20.9561947 + ], + [ + 105.7155079, + 20.9559242 + ], + [ + 105.7171977, + 20.9548471 + ], + [ + 105.7179755, + 20.9538752 + ], + [ + 105.7201469, + 20.9538777 + ], + [ + 105.7231951, + 20.9523022 + ], + [ + 105.7251162, + 20.950964 + ], + [ + 105.7256404, + 20.9518988 + ], + [ + 105.7258913, + 20.953227 + ], + [ + 105.7251828, + 20.9554222 + ], + [ + 105.724106, + 20.9565706 + ], + [ + 105.7171874, + 20.9614192 + ], + [ + 105.7152962, + 20.9631485 + ], + [ + 105.7138556, + 20.965589 + ], + [ + 105.7136762, + 20.9677362 + ], + [ + 105.7129951, + 20.968265 + ], + [ + 105.712102, + 20.968489 + ], + [ + 105.710826, + 20.970342 + ], + [ + 105.708344, + 20.972364 + ], + [ + 105.705468, + 20.973254 + ], + [ + 105.703875, + 20.97401 + ], + [ + 105.70151, + 20.976105 + ], + [ + 105.698656, + 20.977708 + ], + [ + 105.696653, + 20.978045 + ], + [ + 105.6936493, + 20.9775314 + ], + [ + 105.6915745, + 20.9760585 + ], + [ + 105.6900269, + 20.9747333 + ], + [ + 105.6893041, + 20.9744639 + ], + [ + 105.6887474, + 20.9728753 + ], + [ + 105.6891693, + 20.972666 + ], + [ + 105.6885547, + 20.9721343 + ], + [ + 105.6875769, + 20.9705307 + ], + [ + 105.68708, + 20.9699495 + ], + [ + 105.6861523, + 20.9701183 + ], + [ + 105.686151, + 20.969642 + ], + [ + 105.6852319, + 20.9692101 + ], + [ + 105.685034, + 20.9696415 + ], + [ + 105.6849121, + 20.9695237 + ], + [ + 105.6839398, + 20.970281 + ], + [ + 105.6862465, + 20.9726347 + ], + [ + 105.6874366, + 20.9747981 + ], + [ + 105.6860555, + 20.9751586 + ], + [ + 105.6836676, + 20.9773252 + ], + [ + 105.6825977, + 20.9777852 + ], + [ + 105.681959, + 20.97835 + ], + [ + 105.6815555, + 20.9792617 + ], + [ + 105.6797024, + 20.9816214 + ], + [ + 105.679225, + 20.9826489 + ], + [ + 105.6772876, + 20.9841436 + ], + [ + 105.6766856, + 20.9848458 + ], + [ + 105.6762885, + 20.9858208 + ], + [ + 105.6759747, + 20.986173 + ], + [ + 105.6747049, + 20.9866067 + ], + [ + 105.6743132, + 20.9864694 + ], + [ + 105.6732645, + 20.9846979 + ], + [ + 105.6716949, + 20.9843637 + ], + [ + 105.6707629, + 20.9836768 + ], + [ + 105.6679803, + 20.9821856 + ], + [ + 105.6674539, + 20.982093 + ], + [ + 105.6658076, + 20.9823415 + ], + [ + 105.6652688, + 20.9827665 + ], + [ + 105.6650959, + 20.9830384 + ], + [ + 105.6650702, + 20.9835791 + ], + [ + 105.6656894, + 20.9855564 + ], + [ + 105.6656097, + 20.9859001 + ], + [ + 105.6659968, + 20.9863825 + ], + [ + 105.6670625, + 20.9905668 + ], + [ + 105.6675717, + 20.9936043 + ], + [ + 105.66747, + 20.9962392 + ], + [ + 105.6669896, + 20.9970568 + ], + [ + 105.6671062, + 20.9986229 + ], + [ + 105.6665362, + 20.9988061 + ], + [ + 105.6642988, + 21.0019419 + ], + [ + 105.663996, + 21.0027864 + ], + [ + 105.6633809, + 21.0066383 + ], + [ + 105.6636875, + 21.0073779 + ], + [ + 105.6648282, + 21.0083749 + ], + [ + 105.6664971, + 21.0094811 + ], + [ + 105.667922, + 21.009752 + ], + [ + 105.6694534, + 21.0096411 + ], + [ + 105.6710172, + 21.0093009 + ], + [ + 105.6732959, + 21.0084739 + ], + [ + 105.675073, + 21.00812 + ], + [ + 105.676213, + 21.008538 + ], + [ + 105.676846, + 21.009492 + ], + [ + 105.6766546, + 21.0103316 + ], + [ + 105.6769323, + 21.0115827 + ], + [ + 105.6766017, + 21.0127172 + ], + [ + 105.6768913, + 21.0143149 + ], + [ + 105.6766821, + 21.0148487 + ], + [ + 105.677228, + 21.0191626 + ], + [ + 105.6687226, + 21.0237912 + ], + [ + 105.66929, + 21.0248206 + ], + [ + 105.66906, + 21.0248418 + ], + [ + 105.668915, + 21.0267646 + ], + [ + 105.6680089, + 21.0267209 + ], + [ + 105.667487, + 21.0282956 + ], + [ + 105.6673033, + 21.028253 + ], + [ + 105.6668703, + 21.0289556 + ], + [ + 105.6675828, + 21.0294937 + ], + [ + 105.6670713, + 21.0302076 + ], + [ + 105.6672682, + 21.0305539 + ], + [ + 105.6665843, + 21.0310708 + ], + [ + 105.6644271, + 21.0337274 + ], + [ + 105.6634477, + 21.0336031 + ], + [ + 105.6634994, + 21.0337672 + ], + [ + 105.6630262, + 21.0343972 + ], + [ + 105.6622709, + 21.0346645 + ], + [ + 105.6621845, + 21.034485 + ], + [ + 105.6612937, + 21.0347113 + ], + [ + 105.6613679, + 21.0349645 + ], + [ + 105.654665, + 21.0376245 + ], + [ + 105.6546282, + 21.0387009 + ], + [ + 105.654338, + 21.038877 + ], + [ + 105.6545968, + 21.039539 + ], + [ + 105.6529441, + 21.0403285 + ], + [ + 105.6530479, + 21.0408882 + ], + [ + 105.6526124, + 21.0426333 + ], + [ + 105.6517279, + 21.043116 + ], + [ + 105.6509286, + 21.0440936 + ], + [ + 105.6503866, + 21.0439941 + ], + [ + 105.6497665, + 21.0432264 + ], + [ + 105.6488254, + 21.0415696 + ], + [ + 105.6482845, + 21.0402605 + ], + [ + 105.6473145, + 21.0405408 + ], + [ + 105.6469989, + 21.042642 + ], + [ + 105.6479105, + 21.0429515 + ], + [ + 105.6478973, + 21.043796 + ], + [ + 105.6481585, + 21.0452594 + ], + [ + 105.6479772, + 21.0461552 + ], + [ + 105.647391, + 21.0461363 + ], + [ + 105.6471206, + 21.045363 + ], + [ + 105.6472042, + 21.0443916 + ], + [ + 105.6466777, + 21.0443381 + ], + [ + 105.6469535, + 21.0429062 + ], + [ + 105.6468658, + 21.0423581 + ], + [ + 105.6445457, + 21.0433971 + ], + [ + 105.6432911, + 21.0408669 + ], + [ + 105.6430079, + 21.0439157 + ], + [ + 105.634662, + 21.0443423 + ], + [ + 105.6348051, + 21.0440513 + ], + [ + 105.634466, + 21.0440778 + ], + [ + 105.6355167, + 21.0412098 + ], + [ + 105.6345084, + 21.0411722 + ], + [ + 105.6345865, + 21.0366939 + ], + [ + 105.6323421, + 21.036973 + ], + [ + 105.6321736, + 21.0355448 + ], + [ + 105.6331175, + 21.0354312 + ], + [ + 105.6307312, + 21.0270896 + ], + [ + 105.6341968, + 21.0251036 + ], + [ + 105.6326948, + 21.0224945 + ], + [ + 105.6322159, + 21.0226273 + ], + [ + 105.6279083, + 21.0176869 + ], + [ + 105.6299586, + 21.0159036 + ], + [ + 105.631544, + 21.0139868 + ], + [ + 105.6321265, + 21.0137197 + ], + [ + 105.6347485, + 21.0163224 + ], + [ + 105.6382894, + 21.0131044 + ], + [ + 105.6388773, + 21.0131832 + ], + [ + 105.6398551, + 21.0108473 + ], + [ + 105.6398249, + 21.0096996 + ], + [ + 105.6396986, + 21.0097266 + ], + [ + 105.6395909, + 21.0102056 + ], + [ + 105.631307, + 21.0093934 + ], + [ + 105.6279124, + 21.0068279 + ], + [ + 105.6265235, + 21.0060421 + ], + [ + 105.6266123, + 21.0059297 + ], + [ + 105.6255073, + 21.0050923 + ], + [ + 105.6237181, + 21.0069216 + ], + [ + 105.6171418, + 21.0046135 + ], + [ + 105.614998, + 21.0068224 + ], + [ + 105.6152302, + 21.0070644 + ], + [ + 105.6151423, + 21.0072028 + ], + [ + 105.6137987, + 21.0061068 + ], + [ + 105.61351, + 21.0065195 + ], + [ + 105.6129646, + 21.0062041 + ], + [ + 105.6104077, + 21.0058235 + ], + [ + 105.6109157, + 21.005263 + ], + [ + 105.6082375, + 21.0046981 + ], + [ + 105.607793, + 21.0041276 + ], + [ + 105.6077583, + 21.0033724 + ], + [ + 105.6070225, + 21.0031653 + ], + [ + 105.6067449, + 21.0039265 + ], + [ + 105.6067649, + 21.0044355 + ], + [ + 105.6062574, + 21.0045021 + ], + [ + 105.6056144, + 21.0043457 + ], + [ + 105.6054396, + 21.0045077 + ], + [ + 105.6050836, + 21.004204 + ], + [ + 105.6054866, + 21.0028654 + ], + [ + 105.6012326, + 21.0025515 + ], + [ + 105.5955786, + 21.0088446 + ], + [ + 105.5962389, + 21.0091987 + ], + [ + 105.5961386, + 21.0094363 + ], + [ + 105.5941257, + 21.0116582 + ], + [ + 105.593833, + 21.0115126 + ], + [ + 105.5937499, + 21.0108292 + ], + [ + 105.5933252, + 21.0106217 + ], + [ + 105.5938821, + 21.0095466 + ], + [ + 105.5935291, + 21.0089904 + ], + [ + 105.5932993, + 21.0080049 + ], + [ + 105.5928624, + 21.0075295 + ], + [ + 105.5927127, + 21.0077287 + ], + [ + 105.5923838, + 21.0074375 + ], + [ + 105.5923181, + 21.0070837 + ], + [ + 105.5911528, + 21.0071076 + ], + [ + 105.5906195, + 21.004999 + ], + [ + 105.5908867, + 21.0049297 + ], + [ + 105.5915761, + 21.0052657 + ], + [ + 105.5918884, + 21.0052432 + ], + [ + 105.5926048, + 21.0044835 + ], + [ + 105.5924111, + 21.0039006 + ], + [ + 105.5918049, + 21.00366 + ], + [ + 105.5915641, + 21.0039266 + ], + [ + 105.5911128, + 21.0040225 + ], + [ + 105.5881749, + 21.0043666 + ], + [ + 105.5874691, + 21.0041376 + ], + [ + 105.5872203, + 21.0034067 + ], + [ + 105.585239, + 21.0031226 + ], + [ + 105.5847589, + 21.0033514 + ], + [ + 105.5842449, + 21.0043115 + ], + [ + 105.5835682, + 21.0040966 + ], + [ + 105.5830732, + 21.0035786 + ], + [ + 105.5828669, + 21.0035999 + ], + [ + 105.5823034, + 21.002928 + ], + [ + 105.581728, + 21.0018547 + ], + [ + 105.5813907, + 21.0019053 + ], + [ + 105.5812589, + 21.0012916 + ], + [ + 105.5810928, + 21.0012779 + ], + [ + 105.5812449, + 21.0003182 + ], + [ + 105.5809421, + 20.999483 + ], + [ + 105.5811118, + 20.9994607 + ], + [ + 105.5810783, + 20.9993359 + ], + [ + 105.5807062, + 20.9992153 + ], + [ + 105.5805232, + 20.9989894 + ], + [ + 105.5804901, + 20.9985295 + ], + [ + 105.5802571, + 20.9985681 + ], + [ + 105.5802256, + 20.9983547 + ], + [ + 105.5807924, + 20.9981938 + ], + [ + 105.5808066, + 20.9974509 + ], + [ + 105.5804754, + 20.9974324 + ], + [ + 105.5805358, + 20.9970691 + ], + [ + 105.5803878, + 20.996946 + ], + [ + 105.580598, + 20.9967226 + ], + [ + 105.5804721, + 20.9966019 + ], + [ + 105.5809392, + 20.9964225 + ], + [ + 105.5816041, + 20.9966805 + ], + [ + 105.5819849, + 20.9960947 + ], + [ + 105.5816607, + 20.9957079 + ], + [ + 105.5808796, + 20.9956278 + ], + [ + 105.5807691, + 20.9953818 + ], + [ + 105.5801914, + 20.9950948 + ], + [ + 105.5791401, + 20.991513 + ], + [ + 105.580535, + 20.9899826 + ], + [ + 105.580889, + 20.9893919 + ], + [ + 105.5812051, + 20.98943 + ], + [ + 105.5816487, + 20.99001 + ], + [ + 105.5818336, + 20.9897092 + ], + [ + 105.5828407, + 20.9891754 + ], + [ + 105.5827537, + 20.9888188 + ], + [ + 105.5818592, + 20.9880508 + ], + [ + 105.5817238, + 20.9877205 + ], + [ + 105.5813753, + 20.9875856 + ], + [ + 105.5814728, + 20.9874083 + ], + [ + 105.5812859, + 20.9867605 + ], + [ + 105.5806991, + 20.9865489 + ], + [ + 105.5801164, + 20.9858062 + ], + [ + 105.5807162, + 20.9854936 + ], + [ + 105.5806999, + 20.9852471 + ], + [ + 105.5815562, + 20.9848881 + ], + [ + 105.5815524, + 20.9840928 + ], + [ + 105.5812411, + 20.983806 + ], + [ + 105.5812386, + 20.983603 + ], + [ + 105.5805791, + 20.9834573 + ], + [ + 105.5805396, + 20.9832853 + ], + [ + 105.5803039, + 20.9833051 + ], + [ + 105.5802452, + 20.9829778 + ], + [ + 105.5800039, + 20.9830257 + ], + [ + 105.5794021, + 20.9816971 + ], + [ + 105.5776173, + 20.9818112 + ], + [ + 105.5772126, + 20.9820793 + ], + [ + 105.5770869, + 20.9824203 + ], + [ + 105.5783497, + 20.9848208 + ], + [ + 105.5782417, + 20.9855023 + ], + [ + 105.5780262, + 20.9857883 + ], + [ + 105.5776011, + 20.9859376 + ], + [ + 105.5761189, + 20.9852763 + ], + [ + 105.5759546, + 20.9838333 + ], + [ + 105.5750166, + 20.9828826 + ], + [ + 105.5749405, + 20.9825485 + ], + [ + 105.5760119, + 20.9812647 + ], + [ + 105.5758489, + 20.9796686 + ], + [ + 105.5763323, + 20.9786342 + ], + [ + 105.5764385, + 20.9776138 + ], + [ + 105.5762056, + 20.9773294 + ], + [ + 105.5758331, + 20.9772954 + ], + [ + 105.5745571, + 20.9776435 + ], + [ + 105.5738961, + 20.9773986 + ], + [ + 105.5737245, + 20.9770815 + ], + [ + 105.573798, + 20.9768054 + ], + [ + 105.5748135, + 20.9762983 + ], + [ + 105.5748668, + 20.9757296 + ], + [ + 105.5744795, + 20.9749318 + ], + [ + 105.5738286, + 20.975015 + ], + [ + 105.5731069, + 20.974797 + ], + [ + 105.573104, + 20.974584 + ], + [ + 105.5726293, + 20.9742786 + ], + [ + 105.5724195, + 20.9742775 + ], + [ + 105.5718556, + 20.9747214 + ], + [ + 105.5714916, + 20.9756172 + ], + [ + 105.5708323, + 20.976128 + ], + [ + 105.5700431, + 20.9758104 + ], + [ + 105.5693612, + 20.9758377 + ], + [ + 105.569104, + 20.9754506 + ], + [ + 105.5685948, + 20.9754037 + ], + [ + 105.5687879, + 20.975988 + ], + [ + 105.5691044, + 20.9761159 + ], + [ + 105.5692333, + 20.976668 + ], + [ + 105.568899, + 20.9765517 + ], + [ + 105.5690102, + 20.97722 + ], + [ + 105.5691593, + 20.977331 + ], + [ + 105.5690701, + 20.9774276 + ], + [ + 105.5665312, + 20.9768629 + ], + [ + 105.5656522, + 20.9773243 + ], + [ + 105.5664598, + 20.9781614 + ], + [ + 105.5666554, + 20.9786007 + ], + [ + 105.5651423, + 20.9790214 + ], + [ + 105.5647359, + 20.9799745 + ], + [ + 105.5642402, + 20.9800765 + ], + [ + 105.5645211, + 20.9811596 + ], + [ + 105.5621254, + 20.9815403 + ], + [ + 105.5617494, + 20.9813877 + ], + [ + 105.5616005, + 20.9811232 + ], + [ + 105.5612498, + 20.9816172 + ], + [ + 105.5605504, + 20.9818704 + ], + [ + 105.5601598, + 20.9825072 + ], + [ + 105.5597775, + 20.9825712 + ], + [ + 105.5587755, + 20.9824222 + ], + [ + 105.5583295, + 20.9817398 + ], + [ + 105.5577654, + 20.981457 + ], + [ + 105.5568469, + 20.981698 + ], + [ + 105.5562596, + 20.9822066 + ], + [ + 105.5550169, + 20.9837297 + ], + [ + 105.5550101, + 20.9865853 + ], + [ + 105.5559069, + 20.987626 + ], + [ + 105.5561468, + 20.9886057 + ], + [ + 105.5559169, + 20.9887111 + ], + [ + 105.5563619, + 20.9895362 + ], + [ + 105.5550161, + 20.9896404 + ], + [ + 105.5550073, + 20.9872287 + ], + [ + 105.5494997, + 20.9872057 + ], + [ + 105.5495007, + 20.9869244 + ], + [ + 105.5489307, + 20.986259 + ], + [ + 105.5487583, + 20.9836817 + ], + [ + 105.5480311, + 20.9831914 + ], + [ + 105.5476778, + 20.9826024 + ], + [ + 105.5465614, + 20.9824893 + ], + [ + 105.5465443, + 20.9821359 + ], + [ + 105.5455891, + 20.9813396 + ], + [ + 105.5448412, + 20.9809636 + ], + [ + 105.5429845, + 20.9788383 + ], + [ + 105.5424945, + 20.9791153 + ], + [ + 105.5415311, + 20.9789449 + ], + [ + 105.5404775, + 20.9790372 + ], + [ + 105.5393447, + 20.9794766 + ], + [ + 105.5392356, + 20.9796844 + ], + [ + 105.5380592, + 20.9790113 + ], + [ + 105.5373628, + 20.9793564 + ], + [ + 105.5357746, + 20.9797067 + ], + [ + 105.5354288, + 20.9794129 + ], + [ + 105.5354048, + 20.9791767 + ], + [ + 105.5358132, + 20.9784041 + ], + [ + 105.5356583, + 20.9782711 + ], + [ + 105.5346159, + 20.9782171 + ], + [ + 105.5345039, + 20.9777669 + ], + [ + 105.5339439, + 20.9776606 + ], + [ + 105.5332737, + 20.97856 + ], + [ + 105.5325234, + 20.978711 + ], + [ + 105.5319276, + 20.979372 + ], + [ + 105.5306974, + 20.979793 + ], + [ + 105.5301537, + 20.9794107 + ], + [ + 105.5303554, + 20.9790752 + ], + [ + 105.5290671, + 20.9777356 + ], + [ + 105.5291005, + 20.9766914 + ], + [ + 105.5274121, + 20.9751056 + ], + [ + 105.5274426, + 20.9746072 + ], + [ + 105.5270219, + 20.9743952 + ], + [ + 105.5268534, + 20.9745032 + ], + [ + 105.5261611, + 20.9755378 + ], + [ + 105.5252791, + 20.9740887 + ], + [ + 105.5241971, + 20.9736646 + ], + [ + 105.5236878, + 20.9732912 + ], + [ + 105.523408, + 20.9739752 + ], + [ + 105.522925, + 20.9745833 + ], + [ + 105.5221745, + 20.9751282 + ], + [ + 105.5216157, + 20.9752882 + ], + [ + 105.5212724, + 20.9757738 + ], + [ + 105.5209697, + 20.9756608 + ], + [ + 105.520009, + 20.9764915 + ], + [ + 105.5194483, + 20.9763721 + ], + [ + 105.5186656, + 20.9751831 + ], + [ + 105.5162778, + 20.9729008 + ], + [ + 105.5152195, + 20.9733072 + ], + [ + 105.5147099, + 20.9736815 + ], + [ + 105.5133749, + 20.9755091 + ], + [ + 105.5127709, + 20.9758691 + ], + [ + 105.5111969, + 20.9775949 + ], + [ + 105.5128764, + 20.9807452 + ], + [ + 105.5094816, + 20.9822691 + ], + [ + 105.5076027, + 20.9806505 + ], + [ + 105.5071697, + 20.9811342 + ], + [ + 105.5069378, + 20.9811561 + ], + [ + 105.5044368, + 20.980624 + ], + [ + 105.5034617, + 20.9788306 + ], + [ + 105.5036219, + 20.9781504 + ], + [ + 105.5032407, + 20.9774706 + ], + [ + 105.5031131, + 20.9760197 + ], + [ + 105.5033529, + 20.9747733 + ], + [ + 105.5027202, + 20.9733145 + ], + [ + 105.5026429, + 20.9721536 + ], + [ + 105.5027295, + 20.9711857 + ], + [ + 105.5035314, + 20.9711747 + ], + [ + 105.5039315, + 20.9707254 + ], + [ + 105.5025787, + 20.9697119 + ], + [ + 105.5021379, + 20.9696073 + ], + [ + 105.5010479, + 20.9683727 + ], + [ + 105.5009452, + 20.9679077 + ], + [ + 105.5010732, + 20.9673475 + ], + [ + 105.5006317, + 20.9670887 + ], + [ + 105.5004891, + 20.9672724 + ], + [ + 105.4998821, + 20.9664274 + ], + [ + 105.4988719, + 20.966611 + ], + [ + 105.4983046, + 20.9660584 + ], + [ + 105.4976724, + 20.9659495 + ], + [ + 105.4968881, + 20.9651659 + ], + [ + 105.4968418, + 20.9648666 + ], + [ + 105.4947201, + 20.9653041 + ], + [ + 105.4946224, + 20.9648471 + ], + [ + 105.4938971, + 20.9651315 + ], + [ + 105.4937738, + 20.9650396 + ], + [ + 105.4939671, + 20.9645671 + ], + [ + 105.4938714, + 20.9640162 + ], + [ + 105.4932875, + 20.9640519 + ], + [ + 105.4932186, + 20.9638573 + ], + [ + 105.4929416, + 20.9643332 + ], + [ + 105.4920887, + 20.9645971 + ], + [ + 105.4919211, + 20.9649185 + ], + [ + 105.4909877, + 20.9646354 + ], + [ + 105.4902162, + 20.9652092 + ], + [ + 105.4899014, + 20.9652849 + ], + [ + 105.4897798, + 20.9651503 + ], + [ + 105.4896297, + 20.9646389 + ], + [ + 105.4900818, + 20.9644703 + ], + [ + 105.4902941, + 20.9639776 + ], + [ + 105.4904905, + 20.9639403 + ], + [ + 105.4905103, + 20.9641487 + ], + [ + 105.4909364, + 20.96446 + ], + [ + 105.4914844, + 20.9642342 + ], + [ + 105.4910115, + 20.9637782 + ], + [ + 105.4906403, + 20.9626008 + ], + [ + 105.4909642, + 20.9619478 + ], + [ + 105.4905329, + 20.9598568 + ], + [ + 105.490906, + 20.9578531 + ], + [ + 105.4916237, + 20.9567227 + ], + [ + 105.4895555, + 20.9551531 + ], + [ + 105.4888303, + 20.9541794 + ], + [ + 105.4869486, + 20.9532341 + ], + [ + 105.4859658, + 20.9511575 + ], + [ + 105.4855227, + 20.9496173 + ], + [ + 105.4854248, + 20.9481691 + ], + [ + 105.4855486, + 20.9469051 + ], + [ + 105.484298, + 20.9480289 + ], + [ + 105.4826159, + 20.9483881 + ], + [ + 105.4817921, + 20.9480988 + ], + [ + 105.4799818, + 20.9486995 + ], + [ + 105.4786379, + 20.9488681 + ], + [ + 105.4782027, + 20.9487148 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-socson.json b/src/data/boundaries/hn/hn-socson.json new file mode 100644 index 0000000..dd52eab --- /dev/null +++ b/src/data/boundaries/hn/hn-socson.json @@ -0,0 +1,2814 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-SOCSON", + "name": "Soc Son", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 306.9, + "bbox": [ + 105.72329, + 21.17692, + 105.93902, + 21.38542 + ], + "center": [ + 21.27256, + 105.83045 + ], + "generatedAt": "2026-08-30T07:34:04.713Z", + "osm": "relation/7114806" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.7232872, + 21.2514475 + ], + [ + 105.723483, + 21.2511802 + ], + [ + 105.7254164, + 21.250999 + ], + [ + 105.7263477, + 21.2507154 + ], + [ + 105.728558, + 21.2495992 + ], + [ + 105.7290774, + 21.2490869 + ], + [ + 105.7291845, + 21.2487602 + ], + [ + 105.7290132, + 21.2470987 + ], + [ + 105.7270384, + 21.243436 + ], + [ + 105.7264338, + 21.2430406 + ], + [ + 105.7253288, + 21.2428417 + ], + [ + 105.7251643, + 21.2423537 + ], + [ + 105.7253302, + 21.2420707 + ], + [ + 105.7274124, + 21.24091 + ], + [ + 105.7284279, + 21.2408091 + ], + [ + 105.732261, + 21.2421591 + ], + [ + 105.7331088, + 21.2421554 + ], + [ + 105.7346938, + 21.2417201 + ], + [ + 105.7356571, + 21.24089 + ], + [ + 105.7360026, + 21.2403989 + ], + [ + 105.7364305, + 21.2390101 + ], + [ + 105.7372928, + 21.2375176 + ], + [ + 105.7375498, + 21.2367413 + ], + [ + 105.7374466, + 21.2360087 + ], + [ + 105.7371643, + 21.2357335 + ], + [ + 105.7363801, + 21.2354106 + ], + [ + 105.7343368, + 21.2354807 + ], + [ + 105.7336213, + 21.2358509 + ], + [ + 105.7309158, + 21.2383101 + ], + [ + 105.730482, + 21.238516 + ], + [ + 105.7301554, + 21.2384154 + ], + [ + 105.7300667, + 21.2380487 + ], + [ + 105.7302379, + 21.2375176 + ], + [ + 105.731903, + 21.2356952 + ], + [ + 105.7330239, + 21.2337732 + ], + [ + 105.7380548, + 21.2315164 + ], + [ + 105.7407961, + 21.2316935 + ], + [ + 105.7425472, + 21.2313352 + ], + [ + 105.7436947, + 21.2305627 + ], + [ + 105.7459053, + 21.2295503 + ], + [ + 105.7490656, + 21.22842 + ], + [ + 105.7502752, + 21.2277939 + ], + [ + 105.7513293, + 21.2269444 + ], + [ + 105.7520771, + 21.2260974 + ], + [ + 105.7524908, + 21.225032 + ], + [ + 105.7528687, + 21.2233574 + ], + [ + 105.7533037, + 21.2222827 + ], + [ + 105.7537331, + 21.2218261 + ], + [ + 105.7544591, + 21.221568 + ], + [ + 105.7552108, + 21.2215958 + ], + [ + 105.7559916, + 21.2219078 + ], + [ + 105.7565993, + 21.2226075 + ], + [ + 105.7572368, + 21.2229142 + ], + [ + 105.7580701, + 21.2228099 + ], + [ + 105.7587833, + 21.221364 + ], + [ + 105.7590156, + 21.2198475 + ], + [ + 105.7589573, + 21.2175471 + ], + [ + 105.7590693, + 21.2169831 + ], + [ + 105.7600475, + 21.2151661 + ], + [ + 105.7607761, + 21.2143053 + ], + [ + 105.7618115, + 21.2133873 + ], + [ + 105.7627858, + 21.2130459 + ], + [ + 105.7642824, + 21.2129381 + ], + [ + 105.765319, + 21.2130935 + ], + [ + 105.7682255, + 21.2140742 + ], + [ + 105.7687615, + 21.214062 + ], + [ + 105.7692809, + 21.2136894 + ], + [ + 105.7697013, + 21.2128865 + ], + [ + 105.7698507, + 21.2117907 + ], + [ + 105.7694039, + 21.211223 + ], + [ + 105.769456, + 21.209943 + ], + [ + 105.7702094, + 21.2071096 + ], + [ + 105.7708695, + 21.2058196 + ], + [ + 105.7714642, + 21.2050727 + ], + [ + 105.7751807, + 21.2025104 + ], + [ + 105.7775666, + 21.2003205 + ], + [ + 105.7793201, + 21.1995334 + ], + [ + 105.7841456, + 21.1986102 + ], + [ + 105.7866762, + 21.1976783 + ], + [ + 105.7876767, + 21.1970717 + ], + [ + 105.7887979, + 21.1957193 + ], + [ + 105.7895619, + 21.1928699 + ], + [ + 105.7897403, + 21.1912074 + ], + [ + 105.7899603, + 21.1907501 + ], + [ + 105.7903159, + 21.1905456 + ], + [ + 105.7908515, + 21.1906107 + ], + [ + 105.7924099, + 21.1918477 + ], + [ + 105.7937101, + 21.1923626 + ], + [ + 105.7954036, + 21.1924796 + ], + [ + 105.7967071, + 21.1917971 + ], + [ + 105.7976906, + 21.190985 + ], + [ + 105.7984701, + 21.1899177 + ], + [ + 105.7990856, + 21.1883494 + ], + [ + 105.799889, + 21.1875935 + ], + [ + 105.8012831, + 21.1873377 + ], + [ + 105.8033531, + 21.1879181 + ], + [ + 105.8046342, + 21.1889866 + ], + [ + 105.8082912, + 21.1907839 + ], + [ + 105.8096186, + 21.1910655 + ], + [ + 105.8110884, + 21.1910262 + ], + [ + 105.812146, + 21.1907715 + ], + [ + 105.8130118, + 21.1903354 + ], + [ + 105.8142379, + 21.1892775 + ], + [ + 105.8149656, + 21.1883251 + ], + [ + 105.8152011, + 21.1874983 + ], + [ + 105.8151877, + 21.186781 + ], + [ + 105.8147913, + 21.1864888 + ], + [ + 105.8131057, + 21.1861013 + ], + [ + 105.8126406, + 21.1857327 + ], + [ + 105.8125615, + 21.1851721 + ], + [ + 105.8129918, + 21.1845058 + ], + [ + 105.8136853, + 21.184316 + ], + [ + 105.8158662, + 21.1841087 + ], + [ + 105.8178298, + 21.184236 + ], + [ + 105.8188202, + 21.184562 + ], + [ + 105.821581, + 21.186378 + ], + [ + 105.8228442, + 21.1869175 + ], + [ + 105.8245366, + 21.1873731 + ], + [ + 105.8266071, + 21.1876794 + ], + [ + 105.8284757, + 21.1883683 + ], + [ + 105.8295957, + 21.1883813 + ], + [ + 105.8324684, + 21.1875915 + ], + [ + 105.834378, + 21.1861631 + ], + [ + 105.8347402, + 21.1860633 + ], + [ + 105.8360542, + 21.1866732 + ], + [ + 105.8380624, + 21.1889651 + ], + [ + 105.8391314, + 21.1899159 + ], + [ + 105.8399254, + 21.1902829 + ], + [ + 105.8407464, + 21.1903408 + ], + [ + 105.8418187, + 21.190146 + ], + [ + 105.8439327, + 21.188958 + ], + [ + 105.8447563, + 21.1887592 + ], + [ + 105.846763, + 21.1889342 + ], + [ + 105.8508397, + 21.1906107 + ], + [ + 105.853119, + 21.1920983 + ], + [ + 105.8571512, + 21.1937921 + ], + [ + 105.8591491, + 21.1950304 + ], + [ + 105.8602074, + 21.1958271 + ], + [ + 105.8611866, + 21.1971027 + ], + [ + 105.8623668, + 21.1993484 + ], + [ + 105.8632282, + 21.2000738 + ], + [ + 105.8641663, + 21.200472 + ], + [ + 105.8654478, + 21.2008265 + ], + [ + 105.8665478, + 21.2008655 + ], + [ + 105.8672288, + 21.2006435 + ], + [ + 105.8673904, + 21.2001801 + ], + [ + 105.8665822, + 21.198728 + ], + [ + 105.8666897, + 21.1981056 + ], + [ + 105.8670481, + 21.1977132 + ], + [ + 105.8684189, + 21.1973393 + ], + [ + 105.8701929, + 21.1971908 + ], + [ + 105.8718209, + 21.1978267 + ], + [ + 105.8724885, + 21.1990305 + ], + [ + 105.8728504, + 21.2008324 + ], + [ + 105.8725994, + 21.2016997 + ], + [ + 105.8718118, + 21.202721 + ], + [ + 105.8714306, + 21.2035171 + ], + [ + 105.8712822, + 21.2054999 + ], + [ + 105.8717739, + 21.2062783 + ], + [ + 105.8723929, + 21.2061646 + ], + [ + 105.8741637, + 21.2027023 + ], + [ + 105.8750407, + 21.2018848 + ], + [ + 105.8756198, + 21.2018225 + ], + [ + 105.8772872, + 21.2027135 + ], + [ + 105.8786984, + 21.2030934 + ], + [ + 105.8829045, + 21.2033212 + ], + [ + 105.8840368, + 21.2039257 + ], + [ + 105.8853929, + 21.2052087 + ], + [ + 105.8866201, + 21.2056573 + ], + [ + 105.88746, + 21.2056213 + ], + [ + 105.891367, + 21.2035717 + ], + [ + 105.8918832, + 21.2028945 + ], + [ + 105.8918278, + 21.2023094 + ], + [ + 105.8910053, + 21.2014697 + ], + [ + 105.8896387, + 21.2005303 + ], + [ + 105.8867507, + 21.1993535 + ], + [ + 105.8859432, + 21.198591 + ], + [ + 105.8840487, + 21.1946334 + ], + [ + 105.8831857, + 21.19112 + ], + [ + 105.8820407, + 21.1895605 + ], + [ + 105.8810941, + 21.1888159 + ], + [ + 105.8798773, + 21.1884499 + ], + [ + 105.8788733, + 21.188568 + ], + [ + 105.8775037, + 21.1892285 + ], + [ + 105.8769012, + 21.1892184 + ], + [ + 105.8763368, + 21.1889351 + ], + [ + 105.8760014, + 21.1883095 + ], + [ + 105.8761489, + 21.1873665 + ], + [ + 105.8765775, + 21.1867768 + ], + [ + 105.8772179, + 21.1865643 + ], + [ + 105.8802173, + 21.1870668 + ], + [ + 105.8826842, + 21.1878052 + ], + [ + 105.88518, + 21.1894636 + ], + [ + 105.8869079, + 21.1899039 + ], + [ + 105.8874139, + 21.1895316 + ], + [ + 105.8884958, + 21.1859613 + ], + [ + 105.8894256, + 21.1852298 + ], + [ + 105.8928496, + 21.1845161 + ], + [ + 105.8953492, + 21.1851284 + ], + [ + 105.898117, + 21.1833561 + ], + [ + 105.8986677, + 21.1823675 + ], + [ + 105.8985576, + 21.1813149 + ], + [ + 105.8979709, + 21.1802467 + ], + [ + 105.8960515, + 21.1781355 + ], + [ + 105.8959128, + 21.1772298 + ], + [ + 105.8964182, + 21.1769155 + ], + [ + 105.8982991, + 21.1775766 + ], + [ + 105.9007958, + 21.1777495 + ], + [ + 105.9014102, + 21.1780074 + ], + [ + 105.9016801, + 21.1786882 + ], + [ + 105.90055, + 21.1800661 + ], + [ + 105.900189, + 21.1811667 + ], + [ + 105.900268, + 21.1817437 + ], + [ + 105.9008734, + 21.1821828 + ], + [ + 105.9021748, + 21.1826656 + ], + [ + 105.904362, + 21.1827445 + ], + [ + 105.905162, + 21.182634 + ], + [ + 105.9056149, + 21.1830111 + ], + [ + 105.9057217, + 21.1844525 + ], + [ + 105.9065754, + 21.187298 + ], + [ + 105.9070071, + 21.1908258 + ], + [ + 105.9070068, + 21.1930681 + ], + [ + 105.9066119, + 21.1945402 + ], + [ + 105.9070701, + 21.1967699 + ], + [ + 105.9095131, + 21.2003652 + ], + [ + 105.9101584, + 21.2009213 + ], + [ + 105.9114352, + 21.2013718 + ], + [ + 105.9120505, + 21.2019133 + ], + [ + 105.9131461, + 21.2024547 + ], + [ + 105.9137319, + 21.2030451 + ], + [ + 105.9136201, + 21.2035457 + ], + [ + 105.9118622, + 21.2044798 + ], + [ + 105.9104972, + 21.2055991 + ], + [ + 105.9099729, + 21.2064071 + ], + [ + 105.9098676, + 21.2071615 + ], + [ + 105.9103295, + 21.2076709 + ], + [ + 105.9116811, + 21.2080796 + ], + [ + 105.9150435, + 21.2081271 + ], + [ + 105.9155324, + 21.2084588 + ], + [ + 105.9157057, + 21.2089525 + ], + [ + 105.9155183, + 21.2142377 + ], + [ + 105.9151318, + 21.2170453 + ], + [ + 105.9144129, + 21.2185795 + ], + [ + 105.9119506, + 21.2213089 + ], + [ + 105.9112935, + 21.2232075 + ], + [ + 105.9106304, + 21.2244051 + ], + [ + 105.9100428, + 21.2249216 + ], + [ + 105.909428, + 21.2249977 + ], + [ + 105.9065562, + 21.2228511 + ], + [ + 105.9054912, + 21.222443 + ], + [ + 105.9048948, + 21.222478 + ], + [ + 105.9040885, + 21.2231491 + ], + [ + 105.9039253, + 21.2238576 + ], + [ + 105.9043102, + 21.2274123 + ], + [ + 105.905393, + 21.2273084 + ], + [ + 105.9053464, + 21.227872 + ], + [ + 105.906775, + 21.2292053 + ], + [ + 105.9062924, + 21.2294592 + ], + [ + 105.9054183, + 21.2305675 + ], + [ + 105.905597, + 21.2307745 + ], + [ + 105.9054916, + 21.2311185 + ], + [ + 105.9060984, + 21.2314078 + ], + [ + 105.9062958, + 21.2318241 + ], + [ + 105.9068259, + 21.2322261 + ], + [ + 105.9079197, + 21.231647 + ], + [ + 105.9085767, + 21.2316803 + ], + [ + 105.9092226, + 21.2314612 + ], + [ + 105.9093691, + 21.2320752 + ], + [ + 105.9098136, + 21.23189 + ], + [ + 105.9105894, + 21.2319204 + ], + [ + 105.910648, + 21.2317829 + ], + [ + 105.911491, + 21.2320932 + ], + [ + 105.9114376, + 21.2318946 + ], + [ + 105.9117216, + 21.2316298 + ], + [ + 105.912686, + 21.231083 + ], + [ + 105.9133381, + 21.2322202 + ], + [ + 105.913572, + 21.2323016 + ], + [ + 105.9159124, + 21.2321787 + ], + [ + 105.9176509, + 21.2313571 + ], + [ + 105.9193531, + 21.2311324 + ], + [ + 105.9203851, + 21.2317033 + ], + [ + 105.9207454, + 21.2321314 + ], + [ + 105.9205146, + 21.232714 + ], + [ + 105.9206448, + 21.2341851 + ], + [ + 105.9209438, + 21.2351358 + ], + [ + 105.9214163, + 21.2349268 + ], + [ + 105.9217346, + 21.2349713 + ], + [ + 105.9234351, + 21.2362664 + ], + [ + 105.9270924, + 21.2383839 + ], + [ + 105.9279522, + 21.2393979 + ], + [ + 105.9281027, + 21.2402766 + ], + [ + 105.9291422, + 21.2403098 + ], + [ + 105.9296113, + 21.2414398 + ], + [ + 105.9304768, + 21.2414825 + ], + [ + 105.9304398, + 21.2417714 + ], + [ + 105.9309217, + 21.2420327 + ], + [ + 105.9312618, + 21.2418437 + ], + [ + 105.9317234, + 21.2419127 + ], + [ + 105.9317729, + 21.2416394 + ], + [ + 105.932014, + 21.2414823 + ], + [ + 105.9329153, + 21.2416949 + ], + [ + 105.9330807, + 21.2424156 + ], + [ + 105.9335302, + 21.2424352 + ], + [ + 105.933551, + 21.2425825 + ], + [ + 105.9338573, + 21.24268 + ], + [ + 105.9335057, + 21.2454266 + ], + [ + 105.9348117, + 21.2454917 + ], + [ + 105.9360416, + 21.2452234 + ], + [ + 105.9368131, + 21.2446667 + ], + [ + 105.9378752, + 21.2433987 + ], + [ + 105.9386289, + 21.2445038 + ], + [ + 105.9390176, + 21.2456362 + ], + [ + 105.9388419, + 21.2469041 + ], + [ + 105.9383145, + 21.2478897 + ], + [ + 105.9338022, + 21.2536076 + ], + [ + 105.9308341, + 21.2587414 + ], + [ + 105.9297852, + 21.2612697 + ], + [ + 105.9289222, + 21.2625629 + ], + [ + 105.9246756, + 21.2676491 + ], + [ + 105.9231805, + 21.2700345 + ], + [ + 105.9230108, + 21.2707613 + ], + [ + 105.9225533, + 21.2781314 + ], + [ + 105.9226808, + 21.2830302 + ], + [ + 105.9231326, + 21.2871833 + ], + [ + 105.9234655, + 21.2877803 + ], + [ + 105.9242832, + 21.2885017 + ], + [ + 105.9269863, + 21.290374 + ], + [ + 105.9280147, + 21.2907313 + ], + [ + 105.9302246, + 21.2911365 + ], + [ + 105.931158, + 21.2917665 + ], + [ + 105.931804, + 21.292888 + ], + [ + 105.9318462, + 21.2934503 + ], + [ + 105.931523, + 21.2943776 + ], + [ + 105.9305009, + 21.2950365 + ], + [ + 105.929708, + 21.295186 + ], + [ + 105.9279454, + 21.295105 + ], + [ + 105.9251128, + 21.2942133 + ], + [ + 105.9227683, + 21.2939721 + ], + [ + 105.9197479, + 21.2939887 + ], + [ + 105.9184516, + 21.2941591 + ], + [ + 105.9174658, + 21.2944366 + ], + [ + 105.9168871, + 21.2947846 + ], + [ + 105.9161567, + 21.2956595 + ], + [ + 105.915932, + 21.2968948 + ], + [ + 105.9161337, + 21.2982002 + ], + [ + 105.9179519, + 21.3041242 + ], + [ + 105.9178211, + 21.3048871 + ], + [ + 105.9174563, + 21.3053972 + ], + [ + 105.9169933, + 21.305672 + ], + [ + 105.9160436, + 21.305532 + ], + [ + 105.9153636, + 21.3051727 + ], + [ + 105.9106785, + 21.302204 + ], + [ + 105.9090678, + 21.3016501 + ], + [ + 105.908138, + 21.3015826 + ], + [ + 105.9052748, + 21.3020335 + ], + [ + 105.9027826, + 21.3029723 + ], + [ + 105.9009698, + 21.3041979 + ], + [ + 105.8984846, + 21.3062981 + ], + [ + 105.8975445, + 21.3077367 + ], + [ + 105.8973806, + 21.3094434 + ], + [ + 105.8975418, + 21.3104767 + ], + [ + 105.8992364, + 21.3152585 + ], + [ + 105.8990783, + 21.3211025 + ], + [ + 105.8995541, + 21.3229147 + ], + [ + 105.8996982, + 21.3243293 + ], + [ + 105.8993003, + 21.3252336 + ], + [ + 105.8981323, + 21.3267545 + ], + [ + 105.8964403, + 21.3267856 + ], + [ + 105.8923021, + 21.3261864 + ], + [ + 105.8885759, + 21.3264833 + ], + [ + 105.8843473, + 21.3273734 + ], + [ + 105.8760444, + 21.327771 + ], + [ + 105.8739196, + 21.3284278 + ], + [ + 105.8727475, + 21.3289624 + ], + [ + 105.8721112, + 21.329465 + ], + [ + 105.8711253, + 21.3297968 + ], + [ + 105.8705225, + 21.3293825 + ], + [ + 105.8692523, + 21.3274655 + ], + [ + 105.8683213, + 21.3272526 + ], + [ + 105.8670669, + 21.327985 + ], + [ + 105.8668367, + 21.3283854 + ], + [ + 105.8661685, + 21.3300402 + ], + [ + 105.8659334, + 21.3332819 + ], + [ + 105.8650843, + 21.3344585 + ], + [ + 105.863286, + 21.3361448 + ], + [ + 105.8631444, + 21.3365964 + ], + [ + 105.8631504, + 21.3376333 + ], + [ + 105.8629025, + 21.3380043 + ], + [ + 105.862356, + 21.3382956 + ], + [ + 105.8597755, + 21.3378039 + ], + [ + 105.8589499, + 21.3380695 + ], + [ + 105.8580593, + 21.3387323 + ], + [ + 105.8576027, + 21.3396092 + ], + [ + 105.8571682, + 21.3409821 + ], + [ + 105.8558782, + 21.3424493 + ], + [ + 105.8557726, + 21.3441269 + ], + [ + 105.8558811, + 21.3446043 + ], + [ + 105.8565027, + 21.345647 + ], + [ + 105.8567529, + 21.3456548 + ], + [ + 105.8580659, + 21.3448545 + ], + [ + 105.8590275, + 21.3448045 + ], + [ + 105.8592307, + 21.345002 + ], + [ + 105.8592231, + 21.3453536 + ], + [ + 105.8588509, + 21.3458605 + ], + [ + 105.8581419, + 21.3463419 + ], + [ + 105.8560993, + 21.3473893 + ], + [ + 105.8539474, + 21.34786 + ], + [ + 105.8527969, + 21.3485061 + ], + [ + 105.8524548, + 21.3492472 + ], + [ + 105.852579, + 21.3507524 + ], + [ + 105.8530822, + 21.3512727 + ], + [ + 105.8544329, + 21.3519693 + ], + [ + 105.854715, + 21.3525269 + ], + [ + 105.8544025, + 21.3533849 + ], + [ + 105.8536569, + 21.3541913 + ], + [ + 105.8517492, + 21.35531 + ], + [ + 105.8515872, + 21.3555723 + ], + [ + 105.8515733, + 21.3565011 + ], + [ + 105.8517245, + 21.3576905 + ], + [ + 105.8531169, + 21.3589548 + ], + [ + 105.8531484, + 21.3593875 + ], + [ + 105.8527446, + 21.3611027 + ], + [ + 105.8529462, + 21.3626976 + ], + [ + 105.8546694, + 21.3658063 + ], + [ + 105.8556666, + 21.3665061 + ], + [ + 105.8577598, + 21.3699495 + ], + [ + 105.8575697, + 21.3703562 + ], + [ + 105.8575099, + 21.3716819 + ], + [ + 105.8583826, + 21.3728497 + ], + [ + 105.8587062, + 21.3738849 + ], + [ + 105.8587383, + 21.3744618 + ], + [ + 105.8582908, + 21.3752486 + ], + [ + 105.8564891, + 21.376457 + ], + [ + 105.8555854, + 21.3765517 + ], + [ + 105.8521233, + 21.3751266 + ], + [ + 105.8496372, + 21.3744179 + ], + [ + 105.849185, + 21.3744203 + ], + [ + 105.8485722, + 21.3749283 + ], + [ + 105.8471703, + 21.3774927 + ], + [ + 105.8457116, + 21.3772002 + ], + [ + 105.8451939, + 21.3772804 + ], + [ + 105.8447886, + 21.376866 + ], + [ + 105.8437558, + 21.3772556 + ], + [ + 105.8413231, + 21.3775223 + ], + [ + 105.8405819, + 21.3770451 + ], + [ + 105.8396952, + 21.3771567 + ], + [ + 105.8379567, + 21.3764619 + ], + [ + 105.8371902, + 21.3763153 + ], + [ + 105.8368729, + 21.3751372 + ], + [ + 105.8364787, + 21.3752576 + ], + [ + 105.8361431, + 21.3744125 + ], + [ + 105.8349815, + 21.3734662 + ], + [ + 105.8340085, + 21.373698 + ], + [ + 105.8340238, + 21.3730261 + ], + [ + 105.8335902, + 21.3730099 + ], + [ + 105.8335607, + 21.373192 + ], + [ + 105.8330606, + 21.3734497 + ], + [ + 105.8321346, + 21.3732365 + ], + [ + 105.8317449, + 21.3733165 + ], + [ + 105.8309071, + 21.3745826 + ], + [ + 105.8305279, + 21.3745097 + ], + [ + 105.8303867, + 21.3746334 + ], + [ + 105.8307363, + 21.3751622 + ], + [ + 105.8303723, + 21.3756884 + ], + [ + 105.8301719, + 21.3757006 + ], + [ + 105.8299738, + 21.3752832 + ], + [ + 105.8297662, + 21.3752459 + ], + [ + 105.8294378, + 21.3754154 + ], + [ + 105.8289043, + 21.3760708 + ], + [ + 105.8278162, + 21.3760844 + ], + [ + 105.827136, + 21.3765246 + ], + [ + 105.8253431, + 21.3767702 + ], + [ + 105.8250056, + 21.3770949 + ], + [ + 105.8238462, + 21.3776469 + ], + [ + 105.8235446, + 21.3782005 + ], + [ + 105.8228024, + 21.3783013 + ], + [ + 105.8220962, + 21.3778733 + ], + [ + 105.8213705, + 21.3779653 + ], + [ + 105.8210727, + 21.3793735 + ], + [ + 105.8200572, + 21.3795188 + ], + [ + 105.8197197, + 21.3799763 + ], + [ + 105.8191189, + 21.3800288 + ], + [ + 105.8188507, + 21.3804634 + ], + [ + 105.8184656, + 21.3806986 + ], + [ + 105.8183357, + 21.3811203 + ], + [ + 105.8178432, + 21.3812506 + ], + [ + 105.8174879, + 21.3816978 + ], + [ + 105.8166843, + 21.3818861 + ], + [ + 105.8165145, + 21.3826912 + ], + [ + 105.8160505, + 21.3827787 + ], + [ + 105.8159192, + 21.3830244 + ], + [ + 105.8153017, + 21.3829965 + ], + [ + 105.8148503, + 21.3832554 + ], + [ + 105.8142876, + 21.3829077 + ], + [ + 105.8135879, + 21.3827932 + ], + [ + 105.8132717, + 21.3821218 + ], + [ + 105.8134796, + 21.3813183 + ], + [ + 105.8134145, + 21.3809852 + ], + [ + 105.8127961, + 21.3806119 + ], + [ + 105.8115724, + 21.3818554 + ], + [ + 105.8103025, + 21.3817971 + ], + [ + 105.8091595, + 21.3823904 + ], + [ + 105.8072785, + 21.3829873 + ], + [ + 105.8064696, + 21.3826987 + ], + [ + 105.806036, + 21.3828883 + ], + [ + 105.8055302, + 21.3828232 + ], + [ + 105.8050829, + 21.3823715 + ], + [ + 105.8048276, + 21.3823535 + ], + [ + 105.8043596, + 21.3831615 + ], + [ + 105.8037211, + 21.3837059 + ], + [ + 105.8039072, + 21.3843182 + ], + [ + 105.8038024, + 21.38449 + ], + [ + 105.8031851, + 21.3847648 + ], + [ + 105.8023094, + 21.3845868 + ], + [ + 105.8017102, + 21.3847017 + ], + [ + 105.8015451, + 21.3849116 + ], + [ + 105.8015692, + 21.3852313 + ], + [ + 105.8013183, + 21.3854176 + ], + [ + 105.8007577, + 21.3853263 + ], + [ + 105.8003461, + 21.3849266 + ], + [ + 105.8002246, + 21.3843517 + ], + [ + 105.7993761, + 21.3829216 + ], + [ + 105.7994099, + 21.3822347 + ], + [ + 105.7990853, + 21.3818645 + ], + [ + 105.7990864, + 21.3815856 + ], + [ + 105.7987909, + 21.3815442 + ], + [ + 105.7976688, + 21.3823707 + ], + [ + 105.7974237, + 21.3823176 + ], + [ + 105.7971365, + 21.3825619 + ], + [ + 105.7966912, + 21.382509 + ], + [ + 105.7965632, + 21.3822954 + ], + [ + 105.7969863, + 21.3821981 + ], + [ + 105.7970863, + 21.3819483 + ], + [ + 105.7965472, + 21.3818161 + ], + [ + 105.7967804, + 21.381178 + ], + [ + 105.7952678, + 21.3812599 + ], + [ + 105.7953399, + 21.3807009 + ], + [ + 105.7948186, + 21.3801885 + ], + [ + 105.7947668, + 21.3797184 + ], + [ + 105.7942915, + 21.3797461 + ], + [ + 105.7929607, + 21.3792687 + ], + [ + 105.7928297, + 21.3795153 + ], + [ + 105.7923778, + 21.3795407 + ], + [ + 105.7922668, + 21.3793619 + ], + [ + 105.7923864, + 21.3789757 + ], + [ + 105.7918177, + 21.3785211 + ], + [ + 105.7911794, + 21.378537 + ], + [ + 105.7911167, + 21.3780845 + ], + [ + 105.7902264, + 21.3778978 + ], + [ + 105.7901259, + 21.3771995 + ], + [ + 105.7897715, + 21.3769929 + ], + [ + 105.7897881, + 21.3765895 + ], + [ + 105.7894262, + 21.3761479 + ], + [ + 105.788734, + 21.3758247 + ], + [ + 105.7879359, + 21.3758322 + ], + [ + 105.789727, + 21.3733956 + ], + [ + 105.788791, + 21.3727292 + ], + [ + 105.7880687, + 21.3716898 + ], + [ + 105.787895, + 21.3715992 + ], + [ + 105.7876795, + 21.3718645 + ], + [ + 105.7871223, + 21.3720341 + ], + [ + 105.7869786, + 21.3717254 + ], + [ + 105.7869686, + 21.3707444 + ], + [ + 105.7860195, + 21.3709448 + ], + [ + 105.7858213, + 21.3704009 + ], + [ + 105.7867668, + 21.3678015 + ], + [ + 105.7869505, + 21.3669001 + ], + [ + 105.7867811, + 21.3648682 + ], + [ + 105.7864075, + 21.3628619 + ], + [ + 105.7854741, + 21.3607465 + ], + [ + 105.7846913, + 21.3595622 + ], + [ + 105.7853838, + 21.3589549 + ], + [ + 105.7865654, + 21.3572423 + ], + [ + 105.7864312, + 21.3550763 + ], + [ + 105.7863417, + 21.3546827 + ], + [ + 105.7850495, + 21.3541436 + ], + [ + 105.7838694, + 21.3540137 + ], + [ + 105.7829038, + 21.3535241 + ], + [ + 105.7849923, + 21.3483012 + ], + [ + 105.7850086, + 21.3428252 + ], + [ + 105.7829807, + 21.342816 + ], + [ + 105.7823511, + 21.3417873 + ], + [ + 105.78119, + 21.3407552 + ], + [ + 105.7807656, + 21.3399693 + ], + [ + 105.7796924, + 21.3389894 + ], + [ + 105.7779726, + 21.338226 + ], + [ + 105.7769796, + 21.3374895 + ], + [ + 105.7760495, + 21.3370662 + ], + [ + 105.7758858, + 21.3368138 + ], + [ + 105.7763325, + 21.3358683 + ], + [ + 105.7761736, + 21.3353936 + ], + [ + 105.7740764, + 21.3330919 + ], + [ + 105.7736327, + 21.3323157 + ], + [ + 105.7722696, + 21.3282996 + ], + [ + 105.772265, + 21.32627 + ], + [ + 105.7718613, + 21.3253443 + ], + [ + 105.7706583, + 21.3240602 + ], + [ + 105.7687041, + 21.3197537 + ], + [ + 105.7674674, + 21.3182594 + ], + [ + 105.7662508, + 21.3175376 + ], + [ + 105.7645285, + 21.3159544 + ], + [ + 105.7625269, + 21.3134937 + ], + [ + 105.7612419, + 21.311065 + ], + [ + 105.7603495, + 21.3082937 + ], + [ + 105.7603799, + 21.3076576 + ], + [ + 105.7608074, + 21.3066803 + ], + [ + 105.7585304, + 21.3042424 + ], + [ + 105.7594747, + 21.3033254 + ], + [ + 105.7565377, + 21.3017251 + ], + [ + 105.7571078, + 21.3005803 + ], + [ + 105.7562248, + 21.30001 + ], + [ + 105.7552157, + 21.2998481 + ], + [ + 105.7543806, + 21.2985853 + ], + [ + 105.754123, + 21.2978766 + ], + [ + 105.7527907, + 21.2973599 + ], + [ + 105.7527964, + 21.2970836 + ], + [ + 105.7531779, + 21.2966692 + ], + [ + 105.7534125, + 21.2950733 + ], + [ + 105.7529781, + 21.2950951 + ], + [ + 105.7527518, + 21.295303 + ], + [ + 105.7522867, + 21.2951565 + ], + [ + 105.7514868, + 21.2955611 + ], + [ + 105.7501927, + 21.2956665 + ], + [ + 105.7495042, + 21.2960152 + ], + [ + 105.7491324, + 21.2959428 + ], + [ + 105.7476566, + 21.2943541 + ], + [ + 105.7462388, + 21.2944383 + ], + [ + 105.745514, + 21.2937504 + ], + [ + 105.7453781, + 21.2935218 + ], + [ + 105.7452315, + 21.2918445 + ], + [ + 105.7448386, + 21.2918029 + ], + [ + 105.7436199, + 21.2928698 + ], + [ + 105.7433315, + 21.2929252 + ], + [ + 105.7429492, + 21.2926994 + ], + [ + 105.7423911, + 21.2919437 + ], + [ + 105.7429395, + 21.2907499 + ], + [ + 105.7427873, + 21.2903282 + ], + [ + 105.7423944, + 21.2902866 + ], + [ + 105.7415666, + 21.291005 + ], + [ + 105.7410583, + 21.290964 + ], + [ + 105.7407796, + 21.2906621 + ], + [ + 105.7407304, + 21.2900557 + ], + [ + 105.7415836, + 21.289792 + ], + [ + 105.7423881, + 21.2890303 + ], + [ + 105.7425002, + 21.2884674 + ], + [ + 105.7424048, + 21.2880009 + ], + [ + 105.7419555, + 21.2873031 + ], + [ + 105.74102, + 21.2872257 + ], + [ + 105.7397604, + 21.2876188 + ], + [ + 105.7396514, + 21.287558 + ], + [ + 105.7397341, + 21.286701 + ], + [ + 105.7393635, + 21.2865191 + ], + [ + 105.738929, + 21.2866026 + ], + [ + 105.7387785, + 21.28695 + ], + [ + 105.7388041, + 21.2877249 + ], + [ + 105.7384354, + 21.2879305 + ], + [ + 105.7381308, + 21.2879114 + ], + [ + 105.7363428, + 21.2869607 + ], + [ + 105.7362759, + 21.2866142 + ], + [ + 105.7367711, + 21.2856331 + ], + [ + 105.7357657, + 21.2846177 + ], + [ + 105.7352641, + 21.2843344 + ], + [ + 105.7349996, + 21.2836216 + ], + [ + 105.7359733, + 21.2804255 + ], + [ + 105.7358597, + 21.2794674 + ], + [ + 105.7350539, + 21.2792465 + ], + [ + 105.7335758, + 21.2793754 + ], + [ + 105.7333715, + 21.2776426 + ], + [ + 105.7326093, + 21.2752291 + ], + [ + 105.7322602, + 21.2749858 + ], + [ + 105.7315647, + 21.2750705 + ], + [ + 105.7307404, + 21.275482 + ], + [ + 105.7292415, + 21.2757944 + ], + [ + 105.7290454, + 21.2757136 + ], + [ + 105.728891, + 21.2752656 + ], + [ + 105.7289963, + 21.2745717 + ], + [ + 105.7288416, + 21.2740829 + ], + [ + 105.7285347, + 21.2735744 + ], + [ + 105.7278578, + 21.2730062 + ], + [ + 105.7275203, + 21.2729159 + ], + [ + 105.7262178, + 21.2733905 + ], + [ + 105.7258047, + 21.2733923 + ], + [ + 105.7252801, + 21.2728439 + ], + [ + 105.7254281, + 21.2719867 + ], + [ + 105.7257958, + 21.2715773 + ], + [ + 105.7290934, + 21.2700129 + ], + [ + 105.7293956, + 21.2695629 + ], + [ + 105.7289777, + 21.2685857 + ], + [ + 105.7273771, + 21.2681133 + ], + [ + 105.7260228, + 21.2668954 + ], + [ + 105.7250851, + 21.2663283 + ], + [ + 105.7244755, + 21.2661678 + ], + [ + 105.723771, + 21.2627122 + ], + [ + 105.7246835, + 21.2575906 + ], + [ + 105.7240192, + 21.2529125 + ], + [ + 105.7232872, + 21.2514475 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-sontay.json b/src/data/boundaries/hn/hn-sontay.json new file mode 100644 index 0000000..0de2419 --- /dev/null +++ b/src/data/boundaries/hn/hn-sontay.json @@ -0,0 +1,3254 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-SONTAY", + "name": "Son Tay", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 117.6, + "bbox": [ + 105.41344, + 21.02175, + 105.53798, + 21.17188 + ], + "center": [ + 21.09694, + 105.47954 + ], + "generatedAt": "2026-08-30T07:33:23.202Z", + "osm": "relation/7114847" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.4134442, + 21.1368115 + ], + [ + 105.4141235, + 21.1362132 + ], + [ + 105.4140041, + 21.1359602 + ], + [ + 105.4141686, + 21.135642 + ], + [ + 105.4146453, + 21.1351876 + ], + [ + 105.4152332, + 21.1350038 + ], + [ + 105.4180878, + 21.1351866 + ], + [ + 105.4190449, + 21.1349197 + ], + [ + 105.4196904, + 21.1351373 + ], + [ + 105.4197755, + 21.1342169 + ], + [ + 105.4201944, + 21.1337337 + ], + [ + 105.4198019, + 21.1331186 + ], + [ + 105.4198516, + 21.1327895 + ], + [ + 105.4201536, + 21.1322775 + ], + [ + 105.4207839, + 21.1323094 + ], + [ + 105.4209565, + 21.132045 + ], + [ + 105.4208951, + 21.1317732 + ], + [ + 105.422389, + 21.1303765 + ], + [ + 105.4242579, + 21.1310922 + ], + [ + 105.424988, + 21.1285522 + ], + [ + 105.4252564, + 21.1283934 + ], + [ + 105.4250366, + 21.1278262 + ], + [ + 105.4251641, + 21.1278008 + ], + [ + 105.4245715, + 21.1266907 + ], + [ + 105.4245795, + 21.1259813 + ], + [ + 105.4253121, + 21.1263894 + ], + [ + 105.4269498, + 21.1262488 + ], + [ + 105.4273169, + 21.1260289 + ], + [ + 105.4277515, + 21.1254001 + ], + [ + 105.4282966, + 21.1253205 + ], + [ + 105.4284466, + 21.1251255 + ], + [ + 105.4279076, + 21.1247162 + ], + [ + 105.4281143, + 21.1241036 + ], + [ + 105.4284351, + 21.1239267 + ], + [ + 105.4283712, + 21.1235697 + ], + [ + 105.4275995, + 21.1230874 + ], + [ + 105.4269915, + 21.1224731 + ], + [ + 105.4255435, + 21.1223943 + ], + [ + 105.4254139, + 21.1222875 + ], + [ + 105.4254617, + 21.121981 + ], + [ + 105.4269897, + 21.1216088 + ], + [ + 105.4284443, + 21.1206302 + ], + [ + 105.4312486, + 21.120147 + ], + [ + 105.4309307, + 21.1191269 + ], + [ + 105.4305356, + 21.1185608 + ], + [ + 105.4298435, + 21.1178165 + ], + [ + 105.4293152, + 21.1175945 + ], + [ + 105.42957, + 21.1169673 + ], + [ + 105.4295524, + 21.1164273 + ], + [ + 105.4300763, + 21.1158887 + ], + [ + 105.4299417, + 21.1153425 + ], + [ + 105.4301055, + 21.1147982 + ], + [ + 105.429833, + 21.1144825 + ], + [ + 105.4298539, + 21.1139028 + ], + [ + 105.429648, + 21.1136883 + ], + [ + 105.4298703, + 21.1105203 + ], + [ + 105.4303489, + 21.1098249 + ], + [ + 105.431379, + 21.1096445 + ], + [ + 105.4314904, + 21.1094301 + ], + [ + 105.4306915, + 21.1092065 + ], + [ + 105.4309762, + 21.1083633 + ], + [ + 105.4310402, + 21.106752 + ], + [ + 105.4240634, + 21.1054586 + ], + [ + 105.4238467, + 21.104599 + ], + [ + 105.4269207, + 21.1052972 + ], + [ + 105.4265756, + 21.1045341 + ], + [ + 105.4255769, + 21.1044144 + ], + [ + 105.4256759, + 21.1040576 + ], + [ + 105.4260632, + 21.1040465 + ], + [ + 105.4265415, + 21.1036364 + ], + [ + 105.4272074, + 21.1036277 + ], + [ + 105.4279558, + 21.1040927 + ], + [ + 105.4287916, + 21.1039884 + ], + [ + 105.4292611, + 21.1037471 + ], + [ + 105.4295361, + 21.1039434 + ], + [ + 105.430312, + 21.1038981 + ], + [ + 105.4310389, + 21.1034136 + ], + [ + 105.4312771, + 21.1028577 + ], + [ + 105.4314833, + 21.1030611 + ], + [ + 105.4326665, + 21.1021041 + ], + [ + 105.433705, + 21.1016236 + ], + [ + 105.4342066, + 21.1010368 + ], + [ + 105.4359172, + 21.1014698 + ], + [ + 105.4364544, + 21.1019377 + ], + [ + 105.4368729, + 21.101899 + ], + [ + 105.4407845, + 21.1045102 + ], + [ + 105.4419153, + 21.1049424 + ], + [ + 105.4420532, + 21.1047795 + ], + [ + 105.4411173, + 21.103945 + ], + [ + 105.4417412, + 21.1035419 + ], + [ + 105.4412816, + 21.1033287 + ], + [ + 105.4407307, + 21.1027455 + ], + [ + 105.4400227, + 21.1024452 + ], + [ + 105.4402462, + 21.1021477 + ], + [ + 105.4413007, + 21.1019185 + ], + [ + 105.4415103, + 21.1016939 + ], + [ + 105.4420957, + 21.0996611 + ], + [ + 105.442252, + 21.0996514 + ], + [ + 105.4427417, + 21.0989286 + ], + [ + 105.4416171, + 21.0981958 + ], + [ + 105.4412304, + 21.0977008 + ], + [ + 105.4428342, + 21.096557 + ], + [ + 105.4446034, + 21.0957875 + ], + [ + 105.4453592, + 21.0949082 + ], + [ + 105.4433419, + 21.092969 + ], + [ + 105.4422619, + 21.092599 + ], + [ + 105.441601, + 21.0921695 + ], + [ + 105.4407221, + 21.0906356 + ], + [ + 105.4406565, + 21.0894399 + ], + [ + 105.4397861, + 21.0882055 + ], + [ + 105.441029, + 21.087626 + ], + [ + 105.4403042, + 21.0862424 + ], + [ + 105.4406925, + 21.0856553 + ], + [ + 105.4405386, + 21.0854986 + ], + [ + 105.4406021, + 21.0840103 + ], + [ + 105.4396636, + 21.083971 + ], + [ + 105.4396403, + 21.0831639 + ], + [ + 105.4387753, + 21.0831251 + ], + [ + 105.4386864, + 21.0823142 + ], + [ + 105.4391606, + 21.0822555 + ], + [ + 105.4391555, + 21.0819249 + ], + [ + 105.4396334, + 21.0819365 + ], + [ + 105.4396238, + 21.0817949 + ], + [ + 105.4402166, + 21.0818736 + ], + [ + 105.4402567, + 21.081715 + ], + [ + 105.4406953, + 21.0817992 + ], + [ + 105.4410847, + 21.0800489 + ], + [ + 105.4389475, + 21.0797138 + ], + [ + 105.4393035, + 21.0779599 + ], + [ + 105.4398081, + 21.077306 + ], + [ + 105.4405811, + 21.077002 + ], + [ + 105.4406518, + 21.0755665 + ], + [ + 105.440957, + 21.0756511 + ], + [ + 105.4415402, + 21.07452 + ], + [ + 105.4413675, + 21.0733183 + ], + [ + 105.4404041, + 21.0724973 + ], + [ + 105.4408122, + 21.0715107 + ], + [ + 105.4401025, + 21.0710509 + ], + [ + 105.4391928, + 21.0700056 + ], + [ + 105.4390861, + 21.0696966 + ], + [ + 105.4396951, + 21.0683608 + ], + [ + 105.4400454, + 21.0681466 + ], + [ + 105.4400136, + 21.067811 + ], + [ + 105.4397698, + 21.0676224 + ], + [ + 105.4404203, + 21.0672668 + ], + [ + 105.4409505, + 21.0665193 + ], + [ + 105.4398083, + 21.0662891 + ], + [ + 105.4400462, + 21.0659896 + ], + [ + 105.440369, + 21.0656637 + ], + [ + 105.4423229, + 21.0651091 + ], + [ + 105.4438645, + 21.0639196 + ], + [ + 105.445257, + 21.0621441 + ], + [ + 105.4454301, + 21.0625653 + ], + [ + 105.4460609, + 21.0631636 + ], + [ + 105.446793, + 21.0634521 + ], + [ + 105.4473009, + 21.0633372 + ], + [ + 105.4479431, + 21.0628763 + ], + [ + 105.448609, + 21.0632217 + ], + [ + 105.4494744, + 21.0625699 + ], + [ + 105.4501819, + 21.0631309 + ], + [ + 105.4503665, + 21.0637476 + ], + [ + 105.4500666, + 21.0640862 + ], + [ + 105.4513952, + 21.0648981 + ], + [ + 105.4518215, + 21.0655388 + ], + [ + 105.4524068, + 21.0655325 + ], + [ + 105.4529052, + 21.0659489 + ], + [ + 105.4537565, + 21.0663095 + ], + [ + 105.4539176, + 21.0671299 + ], + [ + 105.4543543, + 21.0672841 + ], + [ + 105.4545049, + 21.06722 + ], + [ + 105.4541691, + 21.0653654 + ], + [ + 105.4542838, + 21.0645688 + ], + [ + 105.4544743, + 21.0644904 + ], + [ + 105.4544917, + 21.0651343 + ], + [ + 105.4549297, + 21.0657889 + ], + [ + 105.4552182, + 21.0655737 + ], + [ + 105.4558354, + 21.0669227 + ], + [ + 105.4562976, + 21.0667469 + ], + [ + 105.4564896, + 21.0672365 + ], + [ + 105.4568925, + 21.0671797 + ], + [ + 105.4568221, + 21.0676932 + ], + [ + 105.4570745, + 21.0685689 + ], + [ + 105.4584781, + 21.0695616 + ], + [ + 105.4593407, + 21.0707038 + ], + [ + 105.4599955, + 21.0702805 + ], + [ + 105.4592066, + 21.0693081 + ], + [ + 105.4592156, + 21.0680268 + ], + [ + 105.4597373, + 21.0666899 + ], + [ + 105.4591797, + 21.0652787 + ], + [ + 105.4587953, + 21.0634489 + ], + [ + 105.4584028, + 21.0631086 + ], + [ + 105.4581762, + 21.0631722 + ], + [ + 105.4574441, + 21.0627771 + ], + [ + 105.4572131, + 21.0625094 + ], + [ + 105.4571913, + 21.0621583 + ], + [ + 105.4575122, + 21.0619802 + ], + [ + 105.4580103, + 21.0619748 + ], + [ + 105.4580502, + 21.0616916 + ], + [ + 105.4574912, + 21.0610577 + ], + [ + 105.4571799, + 21.060274 + ], + [ + 105.4570145, + 21.0603334 + ], + [ + 105.4568131, + 21.060127 + ], + [ + 105.4564804, + 21.0602762 + ], + [ + 105.4563064, + 21.0600603 + ], + [ + 105.4561055, + 21.060172 + ], + [ + 105.4555753, + 21.0598697 + ], + [ + 105.4556489, + 21.0596871 + ], + [ + 105.4560262, + 21.059717 + ], + [ + 105.4561631, + 21.0594203 + ], + [ + 105.4569252, + 21.0593154 + ], + [ + 105.4576996, + 21.0585196 + ], + [ + 105.4575164, + 21.058001 + ], + [ + 105.4587201, + 21.0579329 + ], + [ + 105.4590179, + 21.0580161 + ], + [ + 105.4589289, + 21.0582611 + ], + [ + 105.4594065, + 21.0587167 + ], + [ + 105.4590382, + 21.0589133 + ], + [ + 105.459288, + 21.0596319 + ], + [ + 105.4594812, + 21.060845 + ], + [ + 105.459317, + 21.0609026 + ], + [ + 105.4596365, + 21.0629089 + ], + [ + 105.4598671, + 21.063012 + ], + [ + 105.4598913, + 21.0637935 + ], + [ + 105.4604545, + 21.0646932 + ], + [ + 105.4608735, + 21.0645929 + ], + [ + 105.4609635, + 21.0647415 + ], + [ + 105.460532, + 21.0649787 + ], + [ + 105.4603709, + 21.065294 + ], + [ + 105.4604178, + 21.0656052 + ], + [ + 105.4605252, + 21.065861 + ], + [ + 105.4612407, + 21.0662285 + ], + [ + 105.460557, + 21.0677751 + ], + [ + 105.4605712, + 21.0682198 + ], + [ + 105.4614549, + 21.069168 + ], + [ + 105.4613518, + 21.0693234 + ], + [ + 105.461573, + 21.0696873 + ], + [ + 105.4620715, + 21.0698921 + ], + [ + 105.4630593, + 21.0710597 + ], + [ + 105.4644589, + 21.071272 + ], + [ + 105.4649574, + 21.0711099 + ], + [ + 105.4650902, + 21.0712702 + ], + [ + 105.4647355, + 21.072177 + ], + [ + 105.4652541, + 21.0726444 + ], + [ + 105.4658496, + 21.0721444 + ], + [ + 105.4657235, + 21.0714875 + ], + [ + 105.4652584, + 21.070731 + ], + [ + 105.4645105, + 21.0705437 + ], + [ + 105.4643158, + 21.0702241 + ], + [ + 105.4645919, + 21.0687966 + ], + [ + 105.4643624, + 21.0679232 + ], + [ + 105.4646995, + 21.0674856 + ], + [ + 105.4646112, + 21.0671357 + ], + [ + 105.4640194, + 21.0667658 + ], + [ + 105.4629598, + 21.0667505 + ], + [ + 105.4629101, + 21.0672221 + ], + [ + 105.4632136, + 21.0681248 + ], + [ + 105.4627856, + 21.0683212 + ], + [ + 105.4623188, + 21.0668449 + ], + [ + 105.4624624, + 21.0665036 + ], + [ + 105.4623593, + 21.0662204 + ], + [ + 105.4622096, + 21.066007 + ], + [ + 105.4615036, + 21.0658706 + ], + [ + 105.4612124, + 21.0648658 + ], + [ + 105.4608769, + 21.0644429 + ], + [ + 105.4613037, + 21.0632304 + ], + [ + 105.4612565, + 21.0627332 + ], + [ + 105.4618184, + 21.062444 + ], + [ + 105.4615197, + 21.061558 + ], + [ + 105.4611666, + 21.0614629 + ], + [ + 105.4610023, + 21.0611508 + ], + [ + 105.4611578, + 21.0606676 + ], + [ + 105.4609945, + 21.0603034 + ], + [ + 105.4612858, + 21.0598247 + ], + [ + 105.4610783, + 21.0590286 + ], + [ + 105.461105, + 21.0586236 + ], + [ + 105.4613638, + 21.0583096 + ], + [ + 105.4612817, + 21.0577835 + ], + [ + 105.4610721, + 21.0577043 + ], + [ + 105.4603814, + 21.0564825 + ], + [ + 105.4595933, + 21.0566026 + ], + [ + 105.4583953, + 21.0551915 + ], + [ + 105.4582402, + 21.0401279 + ], + [ + 105.456519, + 21.0360367 + ], + [ + 105.4564371, + 21.0353395 + ], + [ + 105.4568777, + 21.0328498 + ], + [ + 105.4602434, + 21.0300997 + ], + [ + 105.4607974, + 21.0285822 + ], + [ + 105.4611999, + 21.0279264 + ], + [ + 105.4619244, + 21.0271403 + ], + [ + 105.4634037, + 21.0260749 + ], + [ + 105.4632767, + 21.0259027 + ], + [ + 105.4642495, + 21.0252126 + ], + [ + 105.4652438, + 21.0241621 + ], + [ + 105.4689376, + 21.0219031 + ], + [ + 105.4701032, + 21.0217468 + ], + [ + 105.4717575, + 21.0219669 + ], + [ + 105.4721696, + 21.021766 + ], + [ + 105.4894558, + 21.0397196 + ], + [ + 105.5061799, + 21.026164 + ], + [ + 105.5098845, + 21.0259359 + ], + [ + 105.5096952, + 21.0268631 + ], + [ + 105.5092009, + 21.0277729 + ], + [ + 105.5095098, + 21.0279174 + ], + [ + 105.5099813, + 21.0277203 + ], + [ + 105.5104882, + 21.0278558 + ], + [ + 105.5109219, + 21.02724 + ], + [ + 105.5109878, + 21.0268548 + ], + [ + 105.5115855, + 21.0264685 + ], + [ + 105.5113614, + 21.0270622 + ], + [ + 105.5118586, + 21.0280551 + ], + [ + 105.5119316, + 21.0286793 + ], + [ + 105.5131907, + 21.028899 + ], + [ + 105.5125127, + 21.0300294 + ], + [ + 105.5124233, + 21.0307391 + ], + [ + 105.5127811, + 21.0307716 + ], + [ + 105.5129861, + 21.0309752 + ], + [ + 105.5136377, + 21.0310029 + ], + [ + 105.5138505, + 21.0316756 + ], + [ + 105.5140578, + 21.0318167 + ], + [ + 105.5146293, + 21.0317989 + ], + [ + 105.514887, + 21.0319885 + ], + [ + 105.5147974, + 21.0325032 + ], + [ + 105.5150708, + 21.0328388 + ], + [ + 105.5160357, + 21.0330258 + ], + [ + 105.5168872, + 21.0328634 + ], + [ + 105.5172238, + 21.0330581 + ], + [ + 105.5173558, + 21.0348189 + ], + [ + 105.5171415, + 21.0357486 + ], + [ + 105.5190882, + 21.0359247 + ], + [ + 105.5202372, + 21.0357043 + ], + [ + 105.5208282, + 21.0366319 + ], + [ + 105.5215161, + 21.0373211 + ], + [ + 105.5230395, + 21.0383756 + ], + [ + 105.5234512, + 21.0394042 + ], + [ + 105.5252735, + 21.0402316 + ], + [ + 105.5256598, + 21.0406833 + ], + [ + 105.5259515, + 21.0411192 + ], + [ + 105.5260314, + 21.0420767 + ], + [ + 105.5265715, + 21.0432227 + ], + [ + 105.5267831, + 21.0434175 + ], + [ + 105.5276728, + 21.0435194 + ], + [ + 105.5281347, + 21.0430998 + ], + [ + 105.5283521, + 21.0431327 + ], + [ + 105.529534, + 21.0445391 + ], + [ + 105.5289487, + 21.0453413 + ], + [ + 105.5284251, + 21.0453064 + ], + [ + 105.5282244, + 21.0455776 + ], + [ + 105.5282121, + 21.04617 + ], + [ + 105.5284431, + 21.04662 + ], + [ + 105.5293344, + 21.0467731 + ], + [ + 105.5291016, + 21.0472873 + ], + [ + 105.5290971, + 21.0481344 + ], + [ + 105.5298391, + 21.0480245 + ], + [ + 105.5308187, + 21.048472 + ], + [ + 105.5308782, + 21.0486077 + ], + [ + 105.5305997, + 21.0489013 + ], + [ + 105.5301116, + 21.0489723 + ], + [ + 105.5299895, + 21.049164 + ], + [ + 105.5317138, + 21.0499717 + ], + [ + 105.5320306, + 21.049817 + ], + [ + 105.5320065, + 21.0518411 + ], + [ + 105.5316347, + 21.0518507 + ], + [ + 105.5314934, + 21.0520068 + ], + [ + 105.5315984, + 21.0521646 + ], + [ + 105.5337414, + 21.0532408 + ], + [ + 105.5342042, + 21.053826 + ], + [ + 105.5350509, + 21.0538038 + ], + [ + 105.535041, + 21.0541796 + ], + [ + 105.5342854, + 21.0545595 + ], + [ + 105.5343467, + 21.0548475 + ], + [ + 105.5348527, + 21.0551686 + ], + [ + 105.5358309, + 21.0552016 + ], + [ + 105.5357794, + 21.0553948 + ], + [ + 105.5351071, + 21.0557416 + ], + [ + 105.5346574, + 21.0557357 + ], + [ + 105.5341261, + 21.0553958 + ], + [ + 105.533869, + 21.055447 + ], + [ + 105.5344625, + 21.0572686 + ], + [ + 105.5341725, + 21.0580456 + ], + [ + 105.5336459, + 21.058627 + ], + [ + 105.5335928, + 21.0589529 + ], + [ + 105.5340123, + 21.0597892 + ], + [ + 105.5339719, + 21.0602593 + ], + [ + 105.5344085, + 21.0604957 + ], + [ + 105.5344096, + 21.0609033 + ], + [ + 105.5341275, + 21.0610139 + ], + [ + 105.5337811, + 21.060621 + ], + [ + 105.5332037, + 21.0611255 + ], + [ + 105.5327162, + 21.061078 + ], + [ + 105.5316568, + 21.0613131 + ], + [ + 105.5306988, + 21.0621526 + ], + [ + 105.5308602, + 21.062491 + ], + [ + 105.5305823, + 21.062553 + ], + [ + 105.5306211, + 21.0627863 + ], + [ + 105.5310026, + 21.0630833 + ], + [ + 105.5308984, + 21.0633446 + ], + [ + 105.530266, + 21.0631877 + ], + [ + 105.5301062, + 21.0636559 + ], + [ + 105.5292472, + 21.0640304 + ], + [ + 105.5303664, + 21.0651168 + ], + [ + 105.5299519, + 21.0656152 + ], + [ + 105.5298054, + 21.0662503 + ], + [ + 105.5302115, + 21.0666154 + ], + [ + 105.530197, + 21.0669006 + ], + [ + 105.5311359, + 21.0688387 + ], + [ + 105.5313031, + 21.0694987 + ], + [ + 105.5318366, + 21.0699635 + ], + [ + 105.532837, + 21.0702047 + ], + [ + 105.5336634, + 21.0706501 + ], + [ + 105.5344682, + 21.0706662 + ], + [ + 105.5344534, + 21.0705211 + ], + [ + 105.5350214, + 21.0701314 + ], + [ + 105.5362226, + 21.0707844 + ], + [ + 105.5357985, + 21.0709757 + ], + [ + 105.535278, + 21.0715825 + ], + [ + 105.5351704, + 21.0719875 + ], + [ + 105.5353197, + 21.0725326 + ], + [ + 105.5359232, + 21.0727244 + ], + [ + 105.5371957, + 21.0724868 + ], + [ + 105.5379761, + 21.0726628 + ], + [ + 105.5379246, + 21.0729478 + ], + [ + 105.5376272, + 21.0733362 + ], + [ + 105.5367426, + 21.0733106 + ], + [ + 105.5365787, + 21.0733733 + ], + [ + 105.5364828, + 21.0737095 + ], + [ + 105.5354594, + 21.0738929 + ], + [ + 105.5352635, + 21.0740477 + ], + [ + 105.535347, + 21.0743012 + ], + [ + 105.5350814, + 21.0748457 + ], + [ + 105.5324669, + 21.0740979 + ], + [ + 105.531876, + 21.0750482 + ], + [ + 105.5330015, + 21.0750372 + ], + [ + 105.5330192, + 21.0759791 + ], + [ + 105.5327045, + 21.0760208 + ], + [ + 105.5324235, + 21.076324 + ], + [ + 105.5319094, + 21.0782803 + ], + [ + 105.5319297, + 21.0795558 + ], + [ + 105.5322512, + 21.0805939 + ], + [ + 105.5307541, + 21.0805944 + ], + [ + 105.5301529, + 21.0816488 + ], + [ + 105.5294798, + 21.0821495 + ], + [ + 105.5264308, + 21.0832256 + ], + [ + 105.5245666, + 21.083361 + ], + [ + 105.5237709, + 21.0839946 + ], + [ + 105.5235431, + 21.0843184 + ], + [ + 105.523516, + 21.0848961 + ], + [ + 105.5239246, + 21.0865185 + ], + [ + 105.5233762, + 21.0874837 + ], + [ + 105.5232654, + 21.0879986 + ], + [ + 105.5236974, + 21.0883181 + ], + [ + 105.5249213, + 21.0883626 + ], + [ + 105.5251426, + 21.0887825 + ], + [ + 105.52495, + 21.0892782 + ], + [ + 105.5241823, + 21.0889879 + ], + [ + 105.5235665, + 21.0893576 + ], + [ + 105.5234841, + 21.0890077 + ], + [ + 105.5233035, + 21.0889417 + ], + [ + 105.523209, + 21.0891496 + ], + [ + 105.5229466, + 21.0890456 + ], + [ + 105.5227889, + 21.0891649 + ], + [ + 105.5225443, + 21.0895348 + ], + [ + 105.5220064, + 21.0896281 + ], + [ + 105.5217181, + 21.090196 + ], + [ + 105.5207585, + 21.0899111 + ], + [ + 105.5206899, + 21.0900867 + ], + [ + 105.520054, + 21.090032 + ], + [ + 105.5195146, + 21.0905046 + ], + [ + 105.5181826, + 21.0902136 + ], + [ + 105.5172761, + 21.0903873 + ], + [ + 105.517322, + 21.0918407 + ], + [ + 105.5168437, + 21.0922345 + ], + [ + 105.516848, + 21.0919003 + ], + [ + 105.5165014, + 21.091852 + ], + [ + 105.516032, + 21.0920283 + ], + [ + 105.5154051, + 21.0914388 + ], + [ + 105.5155832, + 21.0909363 + ], + [ + 105.5155512, + 21.0907567 + ], + [ + 105.5153141, + 21.0906972 + ], + [ + 105.5154022, + 21.0905421 + ], + [ + 105.514774, + 21.0901663 + ], + [ + 105.5143987, + 21.0902142 + ], + [ + 105.512093, + 21.0918368 + ], + [ + 105.5114823, + 21.0935449 + ], + [ + 105.5111198, + 21.0936706 + ], + [ + 105.5107408, + 21.0935877 + ], + [ + 105.510332, + 21.0939423 + ], + [ + 105.510263, + 21.0941503 + ], + [ + 105.5104479, + 21.0945718 + ], + [ + 105.5110591, + 21.0942887 + ], + [ + 105.511414, + 21.0944404 + ], + [ + 105.5113024, + 21.0946611 + ], + [ + 105.5116838, + 21.094805 + ], + [ + 105.511498, + 21.0951407 + ], + [ + 105.5104061, + 21.0953961 + ], + [ + 105.5082038, + 21.0976608 + ], + [ + 105.5075409, + 21.0978026 + ], + [ + 105.5073294, + 21.0975865 + ], + [ + 105.5075329, + 21.0966142 + ], + [ + 105.5074062, + 21.0964688 + ], + [ + 105.5065188, + 21.0962322 + ], + [ + 105.5055139, + 21.0955442 + ], + [ + 105.5040807, + 21.0953127 + ], + [ + 105.5037135, + 21.0951125 + ], + [ + 105.5025887, + 21.0955211 + ], + [ + 105.5019709, + 21.0952221 + ], + [ + 105.5017856, + 21.095696 + ], + [ + 105.5013195, + 21.0957723 + ], + [ + 105.501183, + 21.0962703 + ], + [ + 105.5019675, + 21.0966244 + ], + [ + 105.5018933, + 21.0974511 + ], + [ + 105.5012443, + 21.0980171 + ], + [ + 105.5007357, + 21.0978749 + ], + [ + 105.5005377, + 21.0981156 + ], + [ + 105.5005289, + 21.0983369 + ], + [ + 105.5017131, + 21.0990376 + ], + [ + 105.5020671, + 21.0991308 + ], + [ + 105.5028614, + 21.099008 + ], + [ + 105.503228, + 21.0999069 + ], + [ + 105.50366, + 21.0999991 + ], + [ + 105.5055968, + 21.1018973 + ], + [ + 105.5056809, + 21.1026623 + ], + [ + 105.5063553, + 21.1038375 + ], + [ + 105.5055337, + 21.1049153 + ], + [ + 105.505881, + 21.1066046 + ], + [ + 105.5060824, + 21.1069561 + ], + [ + 105.505782, + 21.1070838 + ], + [ + 105.5047149, + 21.1069471 + ], + [ + 105.5041219, + 21.107088 + ], + [ + 105.5038551, + 21.1069549 + ], + [ + 105.5037025, + 21.1071284 + ], + [ + 105.5032973, + 21.1071411 + ], + [ + 105.5032813, + 21.1073819 + ], + [ + 105.502335, + 21.1084055 + ], + [ + 105.5027376, + 21.1085991 + ], + [ + 105.5024985, + 21.1090584 + ], + [ + 105.5026359, + 21.1091024 + ], + [ + 105.502631, + 21.1093471 + ], + [ + 105.5023535, + 21.1099606 + ], + [ + 105.5018341, + 21.1099379 + ], + [ + 105.5015599, + 21.1102697 + ], + [ + 105.5016683, + 21.1107753 + ], + [ + 105.501455, + 21.1113007 + ], + [ + 105.5018257, + 21.1113997 + ], + [ + 105.5015774, + 21.1120369 + ], + [ + 105.5012253, + 21.1121964 + ], + [ + 105.500749, + 21.1130939 + ], + [ + 105.5012269, + 21.1139173 + ], + [ + 105.5019593, + 21.1137846 + ], + [ + 105.5018898, + 21.1145115 + ], + [ + 105.5024974, + 21.1144112 + ], + [ + 105.5028582, + 21.1151042 + ], + [ + 105.5024633, + 21.1155401 + ], + [ + 105.5020852, + 21.1153636 + ], + [ + 105.5018539, + 21.1156275 + ], + [ + 105.5024201, + 21.1162409 + ], + [ + 105.5018144, + 21.1168358 + ], + [ + 105.5019982, + 21.1170169 + ], + [ + 105.5023341, + 21.1170084 + ], + [ + 105.5024469, + 21.1172163 + ], + [ + 105.503107, + 21.1171661 + ], + [ + 105.503187, + 21.1175828 + ], + [ + 105.5035172, + 21.1180248 + ], + [ + 105.5052797, + 21.1199639 + ], + [ + 105.5054332, + 21.1208889 + ], + [ + 105.505073, + 21.1225645 + ], + [ + 105.5047505, + 21.1230907 + ], + [ + 105.5056519, + 21.1236428 + ], + [ + 105.5060575, + 21.1240877 + ], + [ + 105.5067636, + 21.1236532 + ], + [ + 105.507531, + 21.1235104 + ], + [ + 105.5077549, + 21.1243044 + ], + [ + 105.5087317, + 21.1248816 + ], + [ + 105.5093815, + 21.1249659 + ], + [ + 105.509651, + 21.1245265 + ], + [ + 105.5097662, + 21.1248577 + ], + [ + 105.5099308, + 21.1248061 + ], + [ + 105.509881, + 21.1245471 + ], + [ + 105.5104647, + 21.1244232 + ], + [ + 105.5110596, + 21.1246392 + ], + [ + 105.5111393, + 21.1247968 + ], + [ + 105.5108543, + 21.1249198 + ], + [ + 105.5111342, + 21.1251839 + ], + [ + 105.5113684, + 21.1252155 + ], + [ + 105.5116715, + 21.125005 + ], + [ + 105.5120269, + 21.1251455 + ], + [ + 105.5126879, + 21.125928 + ], + [ + 105.5129177, + 21.1276446 + ], + [ + 105.5132893, + 21.1283461 + ], + [ + 105.5135427, + 21.1285048 + ], + [ + 105.513478, + 21.1293483 + ], + [ + 105.513938, + 21.1299153 + ], + [ + 105.5158574, + 21.1279896 + ], + [ + 105.51621, + 21.1282728 + ], + [ + 105.516088, + 21.1284465 + ], + [ + 105.516293, + 21.1285853 + ], + [ + 105.5160911, + 21.1288672 + ], + [ + 105.5162705, + 21.1291447 + ], + [ + 105.5171591, + 21.1295391 + ], + [ + 105.5172883, + 21.1291414 + ], + [ + 105.5178917, + 21.1296705 + ], + [ + 105.5186856, + 21.1288247 + ], + [ + 105.5184242, + 21.1286336 + ], + [ + 105.5186578, + 21.128403 + ], + [ + 105.5189258, + 21.1284052 + ], + [ + 105.5191928, + 21.1286437 + ], + [ + 105.5187705, + 21.1289596 + ], + [ + 105.518765, + 21.1292086 + ], + [ + 105.5199449, + 21.1298142 + ], + [ + 105.5198787, + 21.1308872 + ], + [ + 105.5203366, + 21.1317935 + ], + [ + 105.5210416, + 21.1325969 + ], + [ + 105.5225124, + 21.1334908 + ], + [ + 105.5237682, + 21.1336696 + ], + [ + 105.5237765, + 21.1338804 + ], + [ + 105.5246351, + 21.1338785 + ], + [ + 105.5242506, + 21.1352308 + ], + [ + 105.5234799, + 21.1351994 + ], + [ + 105.5222217, + 21.135593 + ], + [ + 105.5213471, + 21.137548 + ], + [ + 105.5210271, + 21.1392252 + ], + [ + 105.5194462, + 21.1393002 + ], + [ + 105.5182589, + 21.139647 + ], + [ + 105.5169356, + 21.1395918 + ], + [ + 105.5168845, + 21.1398486 + ], + [ + 105.5166824, + 21.1398255 + ], + [ + 105.5166292, + 21.1401751 + ], + [ + 105.5161905, + 21.1401299 + ], + [ + 105.5155368, + 21.1448823 + ], + [ + 105.5165037, + 21.1478645 + ], + [ + 105.5161016, + 21.1479795 + ], + [ + 105.5170085, + 21.151204 + ], + [ + 105.516846, + 21.1512181 + ], + [ + 105.5168984, + 21.1518219 + ], + [ + 105.515843, + 21.1520023 + ], + [ + 105.5155663, + 21.1564173 + ], + [ + 105.4984913, + 21.1589081 + ], + [ + 105.4943997, + 21.1600933 + ], + [ + 105.492218, + 21.1609418 + ], + [ + 105.4836739, + 21.1655141 + ], + [ + 105.4821369, + 21.1665155 + ], + [ + 105.4752382, + 21.1718775 + ], + [ + 105.4700759, + 21.1691355 + ], + [ + 105.4692384, + 21.1678801 + ], + [ + 105.4688444, + 21.1680141 + ], + [ + 105.4689, + 21.1683026 + ], + [ + 105.4678505, + 21.1688382 + ], + [ + 105.4671008, + 21.1682619 + ], + [ + 105.467054, + 21.1680772 + ], + [ + 105.4673704, + 21.1676661 + ], + [ + 105.4673486, + 21.1673698 + ], + [ + 105.467126, + 21.1666904 + ], + [ + 105.4669121, + 21.1664995 + ], + [ + 105.4670777, + 21.1664025 + ], + [ + 105.4668745, + 21.1660521 + ], + [ + 105.4673686, + 21.1657532 + ], + [ + 105.4672325, + 21.1653481 + ], + [ + 105.4669684, + 21.1654175 + ], + [ + 105.4672666, + 21.1650289 + ], + [ + 105.4671238, + 21.1647433 + ], + [ + 105.4673007, + 21.1641309 + ], + [ + 105.4671046, + 21.1640666 + ], + [ + 105.4673088, + 21.1634546 + ], + [ + 105.4666716, + 21.1632412 + ], + [ + 105.4663221, + 21.162913 + ], + [ + 105.466359, + 21.1622375 + ], + [ + 105.4658193, + 21.162033 + ], + [ + 105.4655421, + 21.1625562 + ], + [ + 105.4650616, + 21.1623288 + ], + [ + 105.4657043, + 21.1612092 + ], + [ + 105.4662755, + 21.1609219 + ], + [ + 105.4647069, + 21.1601374 + ], + [ + 105.4646085, + 21.1597838 + ], + [ + 105.464146, + 21.1600876 + ], + [ + 105.4631628, + 21.1592272 + ], + [ + 105.4630468, + 21.1588214 + ], + [ + 105.4635739, + 21.1584888 + ], + [ + 105.4640346, + 21.1570228 + ], + [ + 105.4643507, + 21.1568873 + ], + [ + 105.4637013, + 21.1557877 + ], + [ + 105.4623794, + 21.1563798 + ], + [ + 105.4619912, + 21.1563696 + ], + [ + 105.4619627, + 21.1558354 + ], + [ + 105.4621606, + 21.155298 + ], + [ + 105.4617265, + 21.1543458 + ], + [ + 105.4614824, + 21.1542284 + ], + [ + 105.4614069, + 21.1536128 + ], + [ + 105.4606571, + 21.1535618 + ], + [ + 105.4605285, + 21.1533298 + ], + [ + 105.4614525, + 21.152239 + ], + [ + 105.4611546, + 21.1513618 + ], + [ + 105.4611479, + 21.1500643 + ], + [ + 105.4607055, + 21.1499159 + ], + [ + 105.4594865, + 21.1500192 + ], + [ + 105.4591575, + 21.1493369 + ], + [ + 105.4587418, + 21.1491776 + ], + [ + 105.4586356, + 21.1488729 + ], + [ + 105.458198, + 21.149024 + ], + [ + 105.457456, + 21.147926 + ], + [ + 105.4578942, + 21.1475941 + ], + [ + 105.4575099, + 21.1466417 + ], + [ + 105.4569556, + 21.14607 + ], + [ + 105.4561331, + 21.1458755 + ], + [ + 105.4561829, + 21.1453068 + ], + [ + 105.4559886, + 21.1451135 + ], + [ + 105.4547005, + 21.1457824 + ], + [ + 105.4541361, + 21.1462735 + ], + [ + 105.4532385, + 21.1465335 + ], + [ + 105.4527939, + 21.1464899 + ], + [ + 105.4523011, + 21.1468251 + ], + [ + 105.4514166, + 21.1478888 + ], + [ + 105.4506311, + 21.1474719 + ], + [ + 105.4509865, + 21.1467781 + ], + [ + 105.4514456, + 21.1463922 + ], + [ + 105.4530554, + 21.1458098 + ], + [ + 105.4535597, + 21.145466 + ], + [ + 105.4534177, + 21.1452065 + ], + [ + 105.4530846, + 21.145314 + ], + [ + 105.4522517, + 21.1449338 + ], + [ + 105.4521328, + 21.144536 + ], + [ + 105.4528123, + 21.1436141 + ], + [ + 105.4526684, + 21.1435197 + ], + [ + 105.452305, + 21.1440307 + ], + [ + 105.4520731, + 21.1440791 + ], + [ + 105.4512778, + 21.1434813 + ], + [ + 105.4509965, + 21.1436352 + ], + [ + 105.45086, + 21.1435239 + ], + [ + 105.4507802, + 21.1433713 + ], + [ + 105.4510078, + 21.1430481 + ], + [ + 105.4508646, + 21.1427738 + ], + [ + 105.4507344, + 21.1428068 + ], + [ + 105.4501951, + 21.143393 + ], + [ + 105.4486568, + 21.1439913 + ], + [ + 105.4491741, + 21.1448635 + ], + [ + 105.4496155, + 21.1452483 + ], + [ + 105.4496166, + 21.1454412 + ], + [ + 105.4500255, + 21.1456197 + ], + [ + 105.4496478, + 21.1461971 + ], + [ + 105.4497287, + 21.1465489 + ], + [ + 105.449617, + 21.1465451 + ], + [ + 105.4495503, + 21.14691 + ], + [ + 105.446108, + 21.146381 + ], + [ + 105.4458189, + 21.1478231 + ], + [ + 105.4458987, + 21.1484435 + ], + [ + 105.4438271, + 21.1478222 + ], + [ + 105.4427559, + 21.1484264 + ], + [ + 105.4422646, + 21.1480921 + ], + [ + 105.440439, + 21.1478649 + ], + [ + 105.4402301, + 21.1492644 + ], + [ + 105.4390995, + 21.1490588 + ], + [ + 105.4385249, + 21.1500799 + ], + [ + 105.438522, + 21.1505468 + ], + [ + 105.4381552, + 21.1508959 + ], + [ + 105.4375848, + 21.1510692 + ], + [ + 105.4369234, + 21.1509318 + ], + [ + 105.4368786, + 21.151603 + ], + [ + 105.4365271, + 21.1514321 + ], + [ + 105.4343052, + 21.1533579 + ], + [ + 105.4338456, + 21.1534669 + ], + [ + 105.4309836, + 21.1520078 + ], + [ + 105.4312017, + 21.151521 + ], + [ + 105.4307504, + 21.1513707 + ], + [ + 105.4305902, + 21.1517602 + ], + [ + 105.4302508, + 21.1514181 + ], + [ + 105.4301617, + 21.1515845 + ], + [ + 105.4299174, + 21.1512427 + ], + [ + 105.429955, + 21.1510488 + ], + [ + 105.4297677, + 21.1509574 + ], + [ + 105.4297179, + 21.150576 + ], + [ + 105.4293811, + 21.1506757 + ], + [ + 105.4292865, + 21.1501406 + ], + [ + 105.4294102, + 21.1500589 + ], + [ + 105.4287424, + 21.149642 + ], + [ + 105.4279415, + 21.1495962 + ], + [ + 105.4277192, + 21.1489207 + ], + [ + 105.427017, + 21.1484724 + ], + [ + 105.4268238, + 21.1484661 + ], + [ + 105.4266954, + 21.1486556 + ], + [ + 105.426413, + 21.1484542 + ], + [ + 105.4265044, + 21.1482928 + ], + [ + 105.4263215, + 21.1480906 + ], + [ + 105.4255166, + 21.1474948 + ], + [ + 105.4247264, + 21.1473729 + ], + [ + 105.4245332, + 21.1477433 + ], + [ + 105.4243222, + 21.1476024 + ], + [ + 105.4244069, + 21.1471799 + ], + [ + 105.4237965, + 21.1468707 + ], + [ + 105.4236144, + 21.146371 + ], + [ + 105.4227006, + 21.145715 + ], + [ + 105.4225021, + 21.1449487 + ], + [ + 105.4218093, + 21.1441044 + ], + [ + 105.4216184, + 21.1444278 + ], + [ + 105.4213543, + 21.144386 + ], + [ + 105.4211121, + 21.1439882 + ], + [ + 105.4205295, + 21.1436131 + ], + [ + 105.4211164, + 21.1428006 + ], + [ + 105.4210256, + 21.142614 + ], + [ + 105.4212688, + 21.1425488 + ], + [ + 105.420977, + 21.1414419 + ], + [ + 105.4208073, + 21.1412926 + ], + [ + 105.4201107, + 21.141841 + ], + [ + 105.4198856, + 21.1415804 + ], + [ + 105.4196605, + 21.1416772 + ], + [ + 105.4188463, + 21.1402005 + ], + [ + 105.4188164, + 21.1391414 + ], + [ + 105.4172783, + 21.1390925 + ], + [ + 105.4134442, + 21.1368115 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-tayho.json b/src/data/boundaries/hn/hn-tayho.json new file mode 100644 index 0000000..36b70ae --- /dev/null +++ b/src/data/boundaries/hn/hn-tayho.json @@ -0,0 +1,422 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-TAYHO", + "name": "Tay Ho", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 24.6, + "bbox": [ + 105.79178, + 21.03951, + 105.84828, + 21.09737 + ], + "center": [ + 21.06931, + 105.81988 + ], + "generatedAt": "2026-08-30T07:33:03.809Z", + "osm": "relation/9421139" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.7917802, + 21.0901655 + ], + [ + 105.7931286, + 21.0901194 + ], + [ + 105.7932273, + 21.0869727 + ], + [ + 105.792696, + 21.0854118 + ], + [ + 105.7927984, + 21.0842162 + ], + [ + 105.7918724, + 21.0833089 + ], + [ + 105.7944054, + 21.0811956 + ], + [ + 105.7966414, + 21.0798818 + ], + [ + 105.7986633, + 21.0797393 + ], + [ + 105.7994434, + 21.0798267 + ], + [ + 105.7993462, + 21.0787609 + ], + [ + 105.801256, + 21.0784971 + ], + [ + 105.8011754, + 21.0766859 + ], + [ + 105.7999578, + 21.0738816 + ], + [ + 105.8037447, + 21.0723715 + ], + [ + 105.8033512, + 21.0714843 + ], + [ + 105.80403, + 21.0711055 + ], + [ + 105.8032616, + 21.0699916 + ], + [ + 105.804408, + 21.0693096 + ], + [ + 105.8041905, + 21.0690542 + ], + [ + 105.8047729, + 21.068625 + ], + [ + 105.8037064, + 21.0674998 + ], + [ + 105.8049927, + 21.0658798 + ], + [ + 105.7984755, + 21.0597574 + ], + [ + 105.7976596, + 21.0597544 + ], + [ + 105.7976453, + 21.0568003 + ], + [ + 105.8007018, + 21.0567735 + ], + [ + 105.8007069, + 21.0518971 + ], + [ + 105.7948851, + 21.0518683 + ], + [ + 105.7948877, + 21.050306 + ], + [ + 105.7963479, + 21.0502891 + ], + [ + 105.7963237, + 21.0490036 + ], + [ + 105.7970526, + 21.0489978 + ], + [ + 105.7970657, + 21.0484688 + ], + [ + 105.7976126, + 21.047933 + ], + [ + 105.7983277, + 21.0477188 + ], + [ + 105.8000849, + 21.0495234 + ], + [ + 105.8017784, + 21.0495312 + ], + [ + 105.8032079, + 21.0514579 + ], + [ + 105.8044655, + 21.052119 + ], + [ + 105.8044541, + 21.052675 + ], + [ + 105.8048501, + 21.0523938 + ], + [ + 105.806194, + 21.0542752 + ], + [ + 105.8056078, + 21.0546947 + ], + [ + 105.8062956, + 21.0558457 + ], + [ + 105.8066696, + 21.0561522 + ], + [ + 105.8072297, + 21.0555079 + ], + [ + 105.8078521, + 21.0558373 + ], + [ + 105.8081608, + 21.0556049 + ], + [ + 105.8081818, + 21.0587044 + ], + [ + 105.8088495, + 21.0587904 + ], + [ + 105.8088619, + 21.0543138 + ], + [ + 105.8091278, + 21.0524025 + ], + [ + 105.8073546, + 21.0501456 + ], + [ + 105.8064319, + 21.0485954 + ], + [ + 105.806034, + 21.0475871 + ], + [ + 105.8080451, + 21.0473732 + ], + [ + 105.8105391, + 21.046368 + ], + [ + 105.811321, + 21.0459144 + ], + [ + 105.813445, + 21.0438392 + ], + [ + 105.8150272, + 21.0427711 + ], + [ + 105.8170597, + 21.0422873 + ], + [ + 105.8201032, + 21.0420842 + ], + [ + 105.8220831, + 21.0417144 + ], + [ + 105.8270974, + 21.0398022 + ], + [ + 105.8284972, + 21.0395116 + ], + [ + 105.828857, + 21.0396975 + ], + [ + 105.8305126, + 21.041389 + ], + [ + 105.8310824, + 21.041664 + ], + [ + 105.8334509, + 21.041894 + ], + [ + 105.8362002, + 21.0416431 + ], + [ + 105.8362631, + 21.0423036 + ], + [ + 105.8358479, + 21.0427603 + ], + [ + 105.835859, + 21.0429612 + ], + [ + 105.8363678, + 21.0444067 + ], + [ + 105.8365711, + 21.0443813 + ], + [ + 105.8368352, + 21.0466532 + ], + [ + 105.8385809, + 21.0488143 + ], + [ + 105.8392367, + 21.050005 + ], + [ + 105.840108, + 21.0506702 + ], + [ + 105.8408247, + 21.0501274 + ], + [ + 105.8422694, + 21.0486018 + ], + [ + 105.8431374, + 21.0492496 + ], + [ + 105.8432213, + 21.049163 + ], + [ + 105.8440237, + 21.049552 + ], + [ + 105.8442258, + 21.049303 + ], + [ + 105.8482762, + 21.0533744 + ], + [ + 105.8451151, + 21.0583303 + ], + [ + 105.8425051, + 21.0741428 + ], + [ + 105.8410552, + 21.0808132 + ], + [ + 105.834592, + 21.0865736 + ], + [ + 105.8271842, + 21.0913874 + ], + [ + 105.8181654, + 21.0949711 + ], + [ + 105.8115686, + 21.0964006 + ], + [ + 105.8093796, + 21.0966938 + ], + [ + 105.7942616, + 21.0973691 + ], + [ + 105.7917862, + 21.0911942 + ], + [ + 105.7917802, + 21.0901655 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-thachthat.json b/src/data/boundaries/hn/hn-thachthat.json new file mode 100644 index 0000000..76fd6d4 --- /dev/null +++ b/src/data/boundaries/hn/hn-thachthat.json @@ -0,0 +1,3222 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-THACHTHAT", + "name": "Thach That", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 188, + "bbox": [ + 105.39192, + 20.94573, + 105.63988, + 21.10199 + ], + "center": [ + 21.01894, + 105.53016 + ], + "generatedAt": "2026-08-30T07:34:08.230Z", + "osm": "relation/7115008" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.3919157, + 21.0072738 + ], + [ + 105.3919436, + 21.0066055 + ], + [ + 105.3935078, + 21.0038454 + ], + [ + 105.393449, + 21.0028749 + ], + [ + 105.3944, + 21.002635 + ], + [ + 105.3963175, + 21.0013708 + ], + [ + 105.3997391, + 20.9998971 + ], + [ + 105.4007863, + 20.999736 + ], + [ + 105.4017159, + 20.999967 + ], + [ + 105.4027951, + 20.9982465 + ], + [ + 105.4033341, + 20.9980722 + ], + [ + 105.4075133, + 20.9987282 + ], + [ + 105.4080551, + 20.9990179 + ], + [ + 105.4085402, + 20.9995321 + ], + [ + 105.4095135, + 20.999738 + ], + [ + 105.4123935, + 20.9986116 + ], + [ + 105.4126347, + 20.9984221 + ], + [ + 105.4133429, + 20.9971119 + ], + [ + 105.4136212, + 20.9969357 + ], + [ + 105.4140985, + 20.997777 + ], + [ + 105.4144142, + 20.9978561 + ], + [ + 105.414519, + 20.9973526 + ], + [ + 105.4153415, + 20.9973442 + ], + [ + 105.4159656, + 20.9982635 + ], + [ + 105.4166061, + 20.9981914 + ], + [ + 105.4170581, + 20.9975429 + ], + [ + 105.4175406, + 20.9978313 + ], + [ + 105.4177495, + 20.9976327 + ], + [ + 105.4184209, + 20.997657 + ], + [ + 105.4189766, + 20.9969971 + ], + [ + 105.4190886, + 20.9965029 + ], + [ + 105.4189535, + 20.9962108 + ], + [ + 105.4186482, + 20.9960776 + ], + [ + 105.4186278, + 20.9956912 + ], + [ + 105.4183614, + 20.9956986 + ], + [ + 105.4185872, + 20.9952444 + ], + [ + 105.4185456, + 20.9949651 + ], + [ + 105.4181267, + 20.9949324 + ], + [ + 105.4185425, + 20.9946474 + ], + [ + 105.41866, + 20.9943113 + ], + [ + 105.4184128, + 20.9942894 + ], + [ + 105.4182838, + 20.99407 + ], + [ + 105.4183569, + 20.9934893 + ], + [ + 105.4179886, + 20.9930907 + ], + [ + 105.4179337, + 20.992606 + ], + [ + 105.4182575, + 20.9921868 + ], + [ + 105.4191798, + 20.9916771 + ], + [ + 105.4195977, + 20.9906656 + ], + [ + 105.419865, + 20.9906839 + ], + [ + 105.4200225, + 20.9904699 + ], + [ + 105.4199466, + 20.9901775 + ], + [ + 105.4201758, + 20.9899241 + ], + [ + 105.4203486, + 20.9890258 + ], + [ + 105.421019, + 20.9878228 + ], + [ + 105.4212932, + 20.9876973 + ], + [ + 105.4211551, + 20.9870552 + ], + [ + 105.4213402, + 20.9866313 + ], + [ + 105.4210539, + 20.9861766 + ], + [ + 105.4209843, + 20.9855005 + ], + [ + 105.4213331, + 20.9854424 + ], + [ + 105.4213919, + 20.9850858 + ], + [ + 105.421646, + 20.9848635 + ], + [ + 105.4215172, + 20.9838762 + ], + [ + 105.4216089, + 20.9834448 + ], + [ + 105.4228364, + 20.9826779 + ], + [ + 105.4260691, + 20.9821396 + ], + [ + 105.4285661, + 20.9813598 + ], + [ + 105.4284999, + 20.9805343 + ], + [ + 105.428685, + 20.9798709 + ], + [ + 105.4297849, + 20.9784937 + ], + [ + 105.4301352, + 20.9778261 + ], + [ + 105.4307919, + 20.9746925 + ], + [ + 105.4305172, + 20.9734203 + ], + [ + 105.433896, + 20.9706341 + ], + [ + 105.434802, + 20.9692853 + ], + [ + 105.4368478, + 20.9677287 + ], + [ + 105.4380985, + 20.9673208 + ], + [ + 105.4395021, + 20.9675725 + ], + [ + 105.4422415, + 20.9642096 + ], + [ + 105.442725, + 20.9630315 + ], + [ + 105.442719, + 20.9610046 + ], + [ + 105.4440319, + 20.9579935 + ], + [ + 105.4442091, + 20.9564159 + ], + [ + 105.4510266, + 20.9543021 + ], + [ + 105.4532952, + 20.9533159 + ], + [ + 105.455358, + 20.9516595 + ], + [ + 105.4556416, + 20.9511225 + ], + [ + 105.4579206, + 20.9500776 + ], + [ + 105.4596272, + 20.9477074 + ], + [ + 105.4616485, + 20.9467179 + ], + [ + 105.466012, + 20.9457338 + ], + [ + 105.4670644, + 20.946095 + ], + [ + 105.4685914, + 20.9477294 + ], + [ + 105.4705587, + 20.9486082 + ], + [ + 105.4712785, + 20.9487363 + ], + [ + 105.4765624, + 20.9483835 + ], + [ + 105.4786379, + 20.9488681 + ], + [ + 105.4799818, + 20.9486995 + ], + [ + 105.4817921, + 20.9480988 + ], + [ + 105.4826159, + 20.9483881 + ], + [ + 105.484298, + 20.9480289 + ], + [ + 105.4855486, + 20.9469051 + ], + [ + 105.4854248, + 20.9481691 + ], + [ + 105.4855227, + 20.9496173 + ], + [ + 105.4859658, + 20.9511575 + ], + [ + 105.4869486, + 20.9532341 + ], + [ + 105.4888303, + 20.9541794 + ], + [ + 105.4895555, + 20.9551531 + ], + [ + 105.4916237, + 20.9567227 + ], + [ + 105.490906, + 20.9578531 + ], + [ + 105.4905329, + 20.9598568 + ], + [ + 105.4909642, + 20.9619478 + ], + [ + 105.4906403, + 20.9626008 + ], + [ + 105.4910115, + 20.9637782 + ], + [ + 105.4914844, + 20.9642342 + ], + [ + 105.4909364, + 20.96446 + ], + [ + 105.4905103, + 20.9641487 + ], + [ + 105.4904905, + 20.9639403 + ], + [ + 105.4902941, + 20.9639776 + ], + [ + 105.4900818, + 20.9644703 + ], + [ + 105.4896297, + 20.9646389 + ], + [ + 105.4897798, + 20.9651503 + ], + [ + 105.4899014, + 20.9652849 + ], + [ + 105.4902162, + 20.9652092 + ], + [ + 105.4909877, + 20.9646354 + ], + [ + 105.4919211, + 20.9649185 + ], + [ + 105.4920887, + 20.9645971 + ], + [ + 105.4929416, + 20.9643332 + ], + [ + 105.4932186, + 20.9638573 + ], + [ + 105.4932875, + 20.9640519 + ], + [ + 105.4938714, + 20.9640162 + ], + [ + 105.4939671, + 20.9645671 + ], + [ + 105.4937738, + 20.9650396 + ], + [ + 105.4938971, + 20.9651315 + ], + [ + 105.4946224, + 20.9648471 + ], + [ + 105.4947201, + 20.9653041 + ], + [ + 105.4968418, + 20.9648666 + ], + [ + 105.4968881, + 20.9651659 + ], + [ + 105.4976724, + 20.9659495 + ], + [ + 105.4983046, + 20.9660584 + ], + [ + 105.4988719, + 20.966611 + ], + [ + 105.4998821, + 20.9664274 + ], + [ + 105.5004891, + 20.9672724 + ], + [ + 105.5006317, + 20.9670887 + ], + [ + 105.5010732, + 20.9673475 + ], + [ + 105.5009452, + 20.9679077 + ], + [ + 105.5010479, + 20.9683727 + ], + [ + 105.5021379, + 20.9696073 + ], + [ + 105.5025787, + 20.9697119 + ], + [ + 105.5039315, + 20.9707254 + ], + [ + 105.5035314, + 20.9711747 + ], + [ + 105.5027295, + 20.9711857 + ], + [ + 105.5026429, + 20.9721536 + ], + [ + 105.5027202, + 20.9733145 + ], + [ + 105.5033529, + 20.9747733 + ], + [ + 105.5031131, + 20.9760197 + ], + [ + 105.5032407, + 20.9774706 + ], + [ + 105.5036219, + 20.9781504 + ], + [ + 105.5034617, + 20.9788306 + ], + [ + 105.5044368, + 20.980624 + ], + [ + 105.5069378, + 20.9811561 + ], + [ + 105.5071697, + 20.9811342 + ], + [ + 105.5076027, + 20.9806505 + ], + [ + 105.5094816, + 20.9822691 + ], + [ + 105.5128764, + 20.9807452 + ], + [ + 105.5111969, + 20.9775949 + ], + [ + 105.5127709, + 20.9758691 + ], + [ + 105.5133749, + 20.9755091 + ], + [ + 105.5147099, + 20.9736815 + ], + [ + 105.5152195, + 20.9733072 + ], + [ + 105.5162778, + 20.9729008 + ], + [ + 105.5186656, + 20.9751831 + ], + [ + 105.5194483, + 20.9763721 + ], + [ + 105.520009, + 20.9764915 + ], + [ + 105.5209697, + 20.9756608 + ], + [ + 105.5212724, + 20.9757738 + ], + [ + 105.5216157, + 20.9752882 + ], + [ + 105.5221745, + 20.9751282 + ], + [ + 105.522925, + 20.9745833 + ], + [ + 105.523408, + 20.9739752 + ], + [ + 105.5236878, + 20.9732912 + ], + [ + 105.5241971, + 20.9736646 + ], + [ + 105.5252791, + 20.9740887 + ], + [ + 105.5261611, + 20.9755378 + ], + [ + 105.5268534, + 20.9745032 + ], + [ + 105.5270219, + 20.9743952 + ], + [ + 105.5274426, + 20.9746072 + ], + [ + 105.5274121, + 20.9751056 + ], + [ + 105.5291005, + 20.9766914 + ], + [ + 105.5290671, + 20.9777356 + ], + [ + 105.5303554, + 20.9790752 + ], + [ + 105.5301537, + 20.9794107 + ], + [ + 105.5306974, + 20.979793 + ], + [ + 105.5319276, + 20.979372 + ], + [ + 105.5325234, + 20.978711 + ], + [ + 105.5332737, + 20.97856 + ], + [ + 105.5339439, + 20.9776606 + ], + [ + 105.5345039, + 20.9777669 + ], + [ + 105.5346159, + 20.9782171 + ], + [ + 105.5356583, + 20.9782711 + ], + [ + 105.5358132, + 20.9784041 + ], + [ + 105.5354048, + 20.9791767 + ], + [ + 105.5354288, + 20.9794129 + ], + [ + 105.5357746, + 20.9797067 + ], + [ + 105.5373628, + 20.9793564 + ], + [ + 105.5380592, + 20.9790113 + ], + [ + 105.5392356, + 20.9796844 + ], + [ + 105.5393447, + 20.9794766 + ], + [ + 105.5404775, + 20.9790372 + ], + [ + 105.5415311, + 20.9789449 + ], + [ + 105.5424945, + 20.9791153 + ], + [ + 105.5429845, + 20.9788383 + ], + [ + 105.5448412, + 20.9809636 + ], + [ + 105.5455891, + 20.9813396 + ], + [ + 105.5465443, + 20.9821359 + ], + [ + 105.5465614, + 20.9824893 + ], + [ + 105.5476778, + 20.9826024 + ], + [ + 105.5480311, + 20.9831914 + ], + [ + 105.5487583, + 20.9836817 + ], + [ + 105.5489307, + 20.986259 + ], + [ + 105.5495007, + 20.9869244 + ], + [ + 105.5494997, + 20.9872057 + ], + [ + 105.5550073, + 20.9872287 + ], + [ + 105.5550161, + 20.9896404 + ], + [ + 105.5563619, + 20.9895362 + ], + [ + 105.5559169, + 20.9887111 + ], + [ + 105.5561468, + 20.9886057 + ], + [ + 105.5559069, + 20.987626 + ], + [ + 105.5550101, + 20.9865853 + ], + [ + 105.5550169, + 20.9837297 + ], + [ + 105.5562596, + 20.9822066 + ], + [ + 105.5568469, + 20.981698 + ], + [ + 105.5577654, + 20.981457 + ], + [ + 105.5583295, + 20.9817398 + ], + [ + 105.5587755, + 20.9824222 + ], + [ + 105.5597775, + 20.9825712 + ], + [ + 105.5601598, + 20.9825072 + ], + [ + 105.5605504, + 20.9818704 + ], + [ + 105.5612498, + 20.9816172 + ], + [ + 105.5616005, + 20.9811232 + ], + [ + 105.5617494, + 20.9813877 + ], + [ + 105.5621254, + 20.9815403 + ], + [ + 105.5645211, + 20.9811596 + ], + [ + 105.5642402, + 20.9800765 + ], + [ + 105.5647359, + 20.9799745 + ], + [ + 105.5651423, + 20.9790214 + ], + [ + 105.5666554, + 20.9786007 + ], + [ + 105.5664598, + 20.9781614 + ], + [ + 105.5656522, + 20.9773243 + ], + [ + 105.5665312, + 20.9768629 + ], + [ + 105.5690701, + 20.9774276 + ], + [ + 105.5691593, + 20.977331 + ], + [ + 105.5690102, + 20.97722 + ], + [ + 105.568899, + 20.9765517 + ], + [ + 105.5692333, + 20.976668 + ], + [ + 105.5691044, + 20.9761159 + ], + [ + 105.5687879, + 20.975988 + ], + [ + 105.5685948, + 20.9754037 + ], + [ + 105.569104, + 20.9754506 + ], + [ + 105.5693612, + 20.9758377 + ], + [ + 105.5700431, + 20.9758104 + ], + [ + 105.5708323, + 20.976128 + ], + [ + 105.5714916, + 20.9756172 + ], + [ + 105.5718556, + 20.9747214 + ], + [ + 105.5724195, + 20.9742775 + ], + [ + 105.5726293, + 20.9742786 + ], + [ + 105.573104, + 20.974584 + ], + [ + 105.5731069, + 20.974797 + ], + [ + 105.5738286, + 20.975015 + ], + [ + 105.5744795, + 20.9749318 + ], + [ + 105.5748668, + 20.9757296 + ], + [ + 105.5748135, + 20.9762983 + ], + [ + 105.573798, + 20.9768054 + ], + [ + 105.5737245, + 20.9770815 + ], + [ + 105.5738961, + 20.9773986 + ], + [ + 105.5745571, + 20.9776435 + ], + [ + 105.5758331, + 20.9772954 + ], + [ + 105.5762056, + 20.9773294 + ], + [ + 105.5764385, + 20.9776138 + ], + [ + 105.5763323, + 20.9786342 + ], + [ + 105.5758489, + 20.9796686 + ], + [ + 105.5760119, + 20.9812647 + ], + [ + 105.5749405, + 20.9825485 + ], + [ + 105.5750166, + 20.9828826 + ], + [ + 105.5759546, + 20.9838333 + ], + [ + 105.5761189, + 20.9852763 + ], + [ + 105.5776011, + 20.9859376 + ], + [ + 105.5780262, + 20.9857883 + ], + [ + 105.5782417, + 20.9855023 + ], + [ + 105.5783497, + 20.9848208 + ], + [ + 105.5770869, + 20.9824203 + ], + [ + 105.5772126, + 20.9820793 + ], + [ + 105.5776173, + 20.9818112 + ], + [ + 105.5794021, + 20.9816971 + ], + [ + 105.5800039, + 20.9830257 + ], + [ + 105.5802452, + 20.9829778 + ], + [ + 105.5803039, + 20.9833051 + ], + [ + 105.5805396, + 20.9832853 + ], + [ + 105.5805791, + 20.9834573 + ], + [ + 105.5812386, + 20.983603 + ], + [ + 105.5812411, + 20.983806 + ], + [ + 105.5815524, + 20.9840928 + ], + [ + 105.5815562, + 20.9848881 + ], + [ + 105.5806999, + 20.9852471 + ], + [ + 105.5807162, + 20.9854936 + ], + [ + 105.5801164, + 20.9858062 + ], + [ + 105.5806991, + 20.9865489 + ], + [ + 105.5812859, + 20.9867605 + ], + [ + 105.5814728, + 20.9874083 + ], + [ + 105.5813753, + 20.9875856 + ], + [ + 105.5817238, + 20.9877205 + ], + [ + 105.5818592, + 20.9880508 + ], + [ + 105.5827537, + 20.9888188 + ], + [ + 105.5828407, + 20.9891754 + ], + [ + 105.5818336, + 20.9897092 + ], + [ + 105.5816487, + 20.99001 + ], + [ + 105.5812051, + 20.98943 + ], + [ + 105.580889, + 20.9893919 + ], + [ + 105.580535, + 20.9899826 + ], + [ + 105.5791401, + 20.991513 + ], + [ + 105.5801914, + 20.9950948 + ], + [ + 105.5807691, + 20.9953818 + ], + [ + 105.5808796, + 20.9956278 + ], + [ + 105.5816607, + 20.9957079 + ], + [ + 105.5819849, + 20.9960947 + ], + [ + 105.5816041, + 20.9966805 + ], + [ + 105.5809392, + 20.9964225 + ], + [ + 105.5804721, + 20.9966019 + ], + [ + 105.580598, + 20.9967226 + ], + [ + 105.5803878, + 20.996946 + ], + [ + 105.5805358, + 20.9970691 + ], + [ + 105.5804754, + 20.9974324 + ], + [ + 105.5808066, + 20.9974509 + ], + [ + 105.5807924, + 20.9981938 + ], + [ + 105.5802256, + 20.9983547 + ], + [ + 105.5802571, + 20.9985681 + ], + [ + 105.5804901, + 20.9985295 + ], + [ + 105.5805232, + 20.9989894 + ], + [ + 105.5807062, + 20.9992153 + ], + [ + 105.5810783, + 20.9993359 + ], + [ + 105.5811118, + 20.9994607 + ], + [ + 105.5809421, + 20.999483 + ], + [ + 105.5812449, + 21.0003182 + ], + [ + 105.5810928, + 21.0012779 + ], + [ + 105.5812589, + 21.0012916 + ], + [ + 105.5813907, + 21.0019053 + ], + [ + 105.581728, + 21.0018547 + ], + [ + 105.5823034, + 21.002928 + ], + [ + 105.5828669, + 21.0035999 + ], + [ + 105.5830732, + 21.0035786 + ], + [ + 105.5835682, + 21.0040966 + ], + [ + 105.5842449, + 21.0043115 + ], + [ + 105.5847589, + 21.0033514 + ], + [ + 105.585239, + 21.0031226 + ], + [ + 105.5872203, + 21.0034067 + ], + [ + 105.5874691, + 21.0041376 + ], + [ + 105.5881749, + 21.0043666 + ], + [ + 105.5911128, + 21.0040225 + ], + [ + 105.5915641, + 21.0039266 + ], + [ + 105.5918049, + 21.00366 + ], + [ + 105.5924111, + 21.0039006 + ], + [ + 105.5926048, + 21.0044835 + ], + [ + 105.5918884, + 21.0052432 + ], + [ + 105.5915761, + 21.0052657 + ], + [ + 105.5908867, + 21.0049297 + ], + [ + 105.5906195, + 21.004999 + ], + [ + 105.5911528, + 21.0071076 + ], + [ + 105.5923181, + 21.0070837 + ], + [ + 105.5923838, + 21.0074375 + ], + [ + 105.5927127, + 21.0077287 + ], + [ + 105.5928624, + 21.0075295 + ], + [ + 105.5932993, + 21.0080049 + ], + [ + 105.5935291, + 21.0089904 + ], + [ + 105.5938821, + 21.0095466 + ], + [ + 105.5933252, + 21.0106217 + ], + [ + 105.5937499, + 21.0108292 + ], + [ + 105.593833, + 21.0115126 + ], + [ + 105.5941257, + 21.0116582 + ], + [ + 105.5961386, + 21.0094363 + ], + [ + 105.5962389, + 21.0091987 + ], + [ + 105.5955786, + 21.0088446 + ], + [ + 105.6012326, + 21.0025515 + ], + [ + 105.6054866, + 21.0028654 + ], + [ + 105.6050836, + 21.004204 + ], + [ + 105.6054396, + 21.0045077 + ], + [ + 105.6056144, + 21.0043457 + ], + [ + 105.6062574, + 21.0045021 + ], + [ + 105.6067649, + 21.0044355 + ], + [ + 105.6067449, + 21.0039265 + ], + [ + 105.6070225, + 21.0031653 + ], + [ + 105.6077583, + 21.0033724 + ], + [ + 105.607793, + 21.0041276 + ], + [ + 105.6082375, + 21.0046981 + ], + [ + 105.6109157, + 21.005263 + ], + [ + 105.6104077, + 21.0058235 + ], + [ + 105.6129646, + 21.0062041 + ], + [ + 105.61351, + 21.0065195 + ], + [ + 105.6137987, + 21.0061068 + ], + [ + 105.6151423, + 21.0072028 + ], + [ + 105.6152302, + 21.0070644 + ], + [ + 105.614998, + 21.0068224 + ], + [ + 105.6171418, + 21.0046135 + ], + [ + 105.6237181, + 21.0069216 + ], + [ + 105.6255073, + 21.0050923 + ], + [ + 105.6266123, + 21.0059297 + ], + [ + 105.6265235, + 21.0060421 + ], + [ + 105.6279124, + 21.0068279 + ], + [ + 105.631307, + 21.0093934 + ], + [ + 105.6395909, + 21.0102056 + ], + [ + 105.6396986, + 21.0097266 + ], + [ + 105.6398249, + 21.0096996 + ], + [ + 105.6398757, + 21.0103021 + ], + [ + 105.6398551, + 21.0108473 + ], + [ + 105.6388773, + 21.0131832 + ], + [ + 105.6382894, + 21.0131044 + ], + [ + 105.6347485, + 21.0163224 + ], + [ + 105.6321265, + 21.0137197 + ], + [ + 105.631544, + 21.0139868 + ], + [ + 105.6299586, + 21.0159036 + ], + [ + 105.6279083, + 21.0176869 + ], + [ + 105.6322159, + 21.0226273 + ], + [ + 105.6326948, + 21.0224945 + ], + [ + 105.6341968, + 21.0251036 + ], + [ + 105.6307312, + 21.0270896 + ], + [ + 105.6331175, + 21.0354312 + ], + [ + 105.6321736, + 21.0355448 + ], + [ + 105.6323421, + 21.036973 + ], + [ + 105.6345865, + 21.0366939 + ], + [ + 105.6345084, + 21.0411722 + ], + [ + 105.6355167, + 21.0412098 + ], + [ + 105.634466, + 21.0440778 + ], + [ + 105.6348051, + 21.0440513 + ], + [ + 105.6321143, + 21.0484621 + ], + [ + 105.6307027, + 21.0512006 + ], + [ + 105.6321553, + 21.0523716 + ], + [ + 105.6288373, + 21.059457 + ], + [ + 105.6287727, + 21.0596617 + ], + [ + 105.6291799, + 21.059822 + ], + [ + 105.6290454, + 21.0601741 + ], + [ + 105.6269924, + 21.0627173 + ], + [ + 105.6240053, + 21.0650653 + ], + [ + 105.6193546, + 21.067496 + ], + [ + 105.6181582, + 21.0677338 + ], + [ + 105.6169062, + 21.0698113 + ], + [ + 105.6151337, + 21.0685891 + ], + [ + 105.6160766, + 21.0678733 + ], + [ + 105.615684, + 21.0674423 + ], + [ + 105.6093188, + 21.0725377 + ], + [ + 105.6083657, + 21.0712986 + ], + [ + 105.6081894, + 21.0714087 + ], + [ + 105.607761, + 21.0709578 + ], + [ + 105.6078262, + 21.0707771 + ], + [ + 105.6075056, + 21.0705026 + ], + [ + 105.607236, + 21.0704827 + ], + [ + 105.603476, + 21.0719697 + ], + [ + 105.6011355, + 21.0732954 + ], + [ + 105.5998117, + 21.0735317 + ], + [ + 105.598773, + 21.0735341 + ], + [ + 105.5948941, + 21.0746846 + ], + [ + 105.5946633, + 21.0752837 + ], + [ + 105.5949148, + 21.075348 + ], + [ + 105.5946133, + 21.076689 + ], + [ + 105.5942499, + 21.0772958 + ], + [ + 105.5939625, + 21.0772332 + ], + [ + 105.5937381, + 21.0775357 + ], + [ + 105.5922026, + 21.0771403 + ], + [ + 105.5922423, + 21.0769155 + ], + [ + 105.5916595, + 21.0767796 + ], + [ + 105.5915996, + 21.0769138 + ], + [ + 105.5833283, + 21.0752152 + ], + [ + 105.5834135, + 21.075635 + ], + [ + 105.5823356, + 21.0766442 + ], + [ + 105.581435, + 21.0780396 + ], + [ + 105.5809106, + 21.0778859 + ], + [ + 105.5772466, + 21.0800283 + ], + [ + 105.5749305, + 21.0821411 + ], + [ + 105.5751206, + 21.0829487 + ], + [ + 105.575349, + 21.0830916 + ], + [ + 105.5753689, + 21.0834436 + ], + [ + 105.5768206, + 21.0862948 + ], + [ + 105.5760305, + 21.0868322 + ], + [ + 105.5762884, + 21.0879494 + ], + [ + 105.5754367, + 21.0884101 + ], + [ + 105.5757998, + 21.0901743 + ], + [ + 105.5766912, + 21.0928459 + ], + [ + 105.5767264, + 21.0934596 + ], + [ + 105.576632, + 21.0937279 + ], + [ + 105.5760946, + 21.0940304 + ], + [ + 105.5762686, + 21.0944467 + ], + [ + 105.5755799, + 21.094677 + ], + [ + 105.5759032, + 21.0964027 + ], + [ + 105.5754993, + 21.0977175 + ], + [ + 105.575469, + 21.0981683 + ], + [ + 105.5756673, + 21.0987827 + ], + [ + 105.5753058, + 21.0991364 + ], + [ + 105.5754864, + 21.0996463 + ], + [ + 105.573737, + 21.1001963 + ], + [ + 105.5711814, + 21.1004688 + ], + [ + 105.5634917, + 21.1000654 + ], + [ + 105.5574518, + 21.1019853 + ], + [ + 105.5548285, + 21.096391 + ], + [ + 105.5540754, + 21.0973451 + ], + [ + 105.5527907, + 21.0968891 + ], + [ + 105.5526688, + 21.0969753 + ], + [ + 105.5524761, + 21.0964711 + ], + [ + 105.5522921, + 21.0967438 + ], + [ + 105.5517884, + 21.096994 + ], + [ + 105.5512265, + 21.0967297 + ], + [ + 105.5510726, + 21.0972074 + ], + [ + 105.5506178, + 21.0968893 + ], + [ + 105.5498825, + 21.0970525 + ], + [ + 105.549307, + 21.0957614 + ], + [ + 105.5494211, + 21.0940103 + ], + [ + 105.5492469, + 21.0941534 + ], + [ + 105.5487183, + 21.094143 + ], + [ + 105.5485186, + 21.093952 + ], + [ + 105.5484319, + 21.0941829 + ], + [ + 105.5479191, + 21.0941291 + ], + [ + 105.5477608, + 21.0938281 + ], + [ + 105.5476707, + 21.0940208 + ], + [ + 105.5472053, + 21.0942053 + ], + [ + 105.5470819, + 21.0947328 + ], + [ + 105.5466945, + 21.0949976 + ], + [ + 105.5456476, + 21.0944592 + ], + [ + 105.5437789, + 21.0950079 + ], + [ + 105.5436861, + 21.0951423 + ], + [ + 105.5440151, + 21.0954095 + ], + [ + 105.5436364, + 21.0962659 + ], + [ + 105.5429556, + 21.0958582 + ], + [ + 105.5430425, + 21.0955722 + ], + [ + 105.542887, + 21.0953035 + ], + [ + 105.5425317, + 21.0952671 + ], + [ + 105.5423212, + 21.0943722 + ], + [ + 105.5420196, + 21.0941035 + ], + [ + 105.5411537, + 21.09383 + ], + [ + 105.5406898, + 21.093414 + ], + [ + 105.5407361, + 21.0932607 + ], + [ + 105.5404259, + 21.0932025 + ], + [ + 105.5403353, + 21.0928406 + ], + [ + 105.5397179, + 21.0926132 + ], + [ + 105.5394706, + 21.092206 + ], + [ + 105.5395753, + 21.0914275 + ], + [ + 105.5393535, + 21.0910741 + ], + [ + 105.5389283, + 21.0913413 + ], + [ + 105.5375567, + 21.0910626 + ], + [ + 105.5374982, + 21.0911802 + ], + [ + 105.5367317, + 21.0911625 + ], + [ + 105.5302951, + 21.0908868 + ], + [ + 105.5302089, + 21.0904842 + ], + [ + 105.5300224, + 21.0905815 + ], + [ + 105.5300321, + 21.0908782 + ], + [ + 105.5297602, + 21.0911491 + ], + [ + 105.529396, + 21.0913339 + ], + [ + 105.5286398, + 21.0913391 + ], + [ + 105.5277475, + 21.0902774 + ], + [ + 105.5277278, + 21.0899062 + ], + [ + 105.5273728, + 21.0892264 + ], + [ + 105.5269788, + 21.0895841 + ], + [ + 105.526609, + 21.0896546 + ], + [ + 105.5259788, + 21.0893927 + ], + [ + 105.5252402, + 21.0894007 + ], + [ + 105.52495, + 21.0892782 + ], + [ + 105.5251426, + 21.0887825 + ], + [ + 105.5249213, + 21.0883626 + ], + [ + 105.5236974, + 21.0883181 + ], + [ + 105.5232654, + 21.0879986 + ], + [ + 105.5233762, + 21.0874837 + ], + [ + 105.5239246, + 21.0865185 + ], + [ + 105.523516, + 21.0848961 + ], + [ + 105.5235431, + 21.0843184 + ], + [ + 105.524179, + 21.0835693 + ], + [ + 105.5245666, + 21.083361 + ], + [ + 105.5264308, + 21.0832256 + ], + [ + 105.5294798, + 21.0821495 + ], + [ + 105.5301529, + 21.0816488 + ], + [ + 105.5307541, + 21.0805944 + ], + [ + 105.5322512, + 21.0805939 + ], + [ + 105.5319297, + 21.0795558 + ], + [ + 105.5319094, + 21.0782803 + ], + [ + 105.5324235, + 21.076324 + ], + [ + 105.5327045, + 21.0760208 + ], + [ + 105.5330192, + 21.0759791 + ], + [ + 105.5330015, + 21.0750372 + ], + [ + 105.531876, + 21.0750482 + ], + [ + 105.5324669, + 21.0740979 + ], + [ + 105.5350814, + 21.0748457 + ], + [ + 105.535347, + 21.0743012 + ], + [ + 105.5352635, + 21.0740477 + ], + [ + 105.5354594, + 21.0738929 + ], + [ + 105.5364828, + 21.0737095 + ], + [ + 105.5365787, + 21.0733733 + ], + [ + 105.5367426, + 21.0733106 + ], + [ + 105.5376272, + 21.0733362 + ], + [ + 105.5379246, + 21.0729478 + ], + [ + 105.5379761, + 21.0726628 + ], + [ + 105.5371957, + 21.0724868 + ], + [ + 105.5359232, + 21.0727244 + ], + [ + 105.5353197, + 21.0725326 + ], + [ + 105.5351704, + 21.0719875 + ], + [ + 105.535278, + 21.0715825 + ], + [ + 105.5357985, + 21.0709757 + ], + [ + 105.5362226, + 21.0707844 + ], + [ + 105.5350214, + 21.0701314 + ], + [ + 105.5344534, + 21.0705211 + ], + [ + 105.5344682, + 21.0706662 + ], + [ + 105.5336634, + 21.0706501 + ], + [ + 105.532837, + 21.0702047 + ], + [ + 105.5318366, + 21.0699635 + ], + [ + 105.5313031, + 21.0694987 + ], + [ + 105.5311359, + 21.0688387 + ], + [ + 105.530197, + 21.0669006 + ], + [ + 105.5302115, + 21.0666154 + ], + [ + 105.5298054, + 21.0662503 + ], + [ + 105.5299519, + 21.0656152 + ], + [ + 105.5303664, + 21.0651168 + ], + [ + 105.5292472, + 21.0640304 + ], + [ + 105.5301062, + 21.0636559 + ], + [ + 105.530266, + 21.0631877 + ], + [ + 105.5308984, + 21.0633446 + ], + [ + 105.5310026, + 21.0630833 + ], + [ + 105.5306211, + 21.0627863 + ], + [ + 105.5305823, + 21.062553 + ], + [ + 105.5308602, + 21.062491 + ], + [ + 105.5306988, + 21.0621526 + ], + [ + 105.5316568, + 21.0613131 + ], + [ + 105.5327162, + 21.061078 + ], + [ + 105.5332037, + 21.0611255 + ], + [ + 105.5337811, + 21.060621 + ], + [ + 105.5341275, + 21.0610139 + ], + [ + 105.5344096, + 21.0609033 + ], + [ + 105.5344085, + 21.0604957 + ], + [ + 105.5339719, + 21.0602593 + ], + [ + 105.5340123, + 21.0597892 + ], + [ + 105.5335928, + 21.0589529 + ], + [ + 105.5336459, + 21.058627 + ], + [ + 105.5341725, + 21.0580456 + ], + [ + 105.5344625, + 21.0572686 + ], + [ + 105.533869, + 21.055447 + ], + [ + 105.5341261, + 21.0553958 + ], + [ + 105.5346574, + 21.0557357 + ], + [ + 105.5351071, + 21.0557416 + ], + [ + 105.5357794, + 21.0553948 + ], + [ + 105.5358309, + 21.0552016 + ], + [ + 105.5348527, + 21.0551686 + ], + [ + 105.5343467, + 21.0548475 + ], + [ + 105.5342854, + 21.0545595 + ], + [ + 105.535041, + 21.0541796 + ], + [ + 105.5350509, + 21.0538038 + ], + [ + 105.5342042, + 21.053826 + ], + [ + 105.5337414, + 21.0532408 + ], + [ + 105.5319806, + 21.0523884 + ], + [ + 105.5314934, + 21.0520068 + ], + [ + 105.5316347, + 21.0518507 + ], + [ + 105.5320065, + 21.0518411 + ], + [ + 105.5320306, + 21.049817 + ], + [ + 105.5317138, + 21.0499717 + ], + [ + 105.5299895, + 21.049164 + ], + [ + 105.5301116, + 21.0489723 + ], + [ + 105.5305997, + 21.0489013 + ], + [ + 105.5308782, + 21.0486077 + ], + [ + 105.5308187, + 21.048472 + ], + [ + 105.5298391, + 21.0480245 + ], + [ + 105.5290971, + 21.0481344 + ], + [ + 105.5291016, + 21.0472873 + ], + [ + 105.5293344, + 21.0467731 + ], + [ + 105.5284431, + 21.04662 + ], + [ + 105.5282121, + 21.04617 + ], + [ + 105.5282244, + 21.0455776 + ], + [ + 105.5284251, + 21.0453064 + ], + [ + 105.5289487, + 21.0453413 + ], + [ + 105.5291164, + 21.044976 + ], + [ + 105.5295526, + 21.0446402 + ], + [ + 105.5283521, + 21.0431327 + ], + [ + 105.5281347, + 21.0430998 + ], + [ + 105.5276728, + 21.0435194 + ], + [ + 105.5267831, + 21.0434175 + ], + [ + 105.5260314, + 21.0420767 + ], + [ + 105.5259515, + 21.0411192 + ], + [ + 105.5256598, + 21.0406833 + ], + [ + 105.5252735, + 21.0402316 + ], + [ + 105.5234512, + 21.0394042 + ], + [ + 105.5230395, + 21.0383756 + ], + [ + 105.5215161, + 21.0373211 + ], + [ + 105.5208282, + 21.0366319 + ], + [ + 105.5202372, + 21.0357043 + ], + [ + 105.5190882, + 21.0359247 + ], + [ + 105.5171415, + 21.0357486 + ], + [ + 105.5173558, + 21.0348189 + ], + [ + 105.5172796, + 21.0332781 + ], + [ + 105.5170858, + 21.0329203 + ], + [ + 105.5160357, + 21.0330258 + ], + [ + 105.5150708, + 21.0328388 + ], + [ + 105.5147974, + 21.0325032 + ], + [ + 105.514887, + 21.0319885 + ], + [ + 105.5146293, + 21.0317989 + ], + [ + 105.5140578, + 21.0318167 + ], + [ + 105.5138505, + 21.0316756 + ], + [ + 105.5136377, + 21.0310029 + ], + [ + 105.5129861, + 21.0309752 + ], + [ + 105.5127811, + 21.0307716 + ], + [ + 105.5124233, + 21.0307391 + ], + [ + 105.5125127, + 21.0300294 + ], + [ + 105.5131907, + 21.028899 + ], + [ + 105.5119316, + 21.0286793 + ], + [ + 105.5118586, + 21.0280551 + ], + [ + 105.5113614, + 21.0270622 + ], + [ + 105.5115855, + 21.0264685 + ], + [ + 105.5109878, + 21.0268548 + ], + [ + 105.5109219, + 21.02724 + ], + [ + 105.5104882, + 21.0278558 + ], + [ + 105.5099813, + 21.0277203 + ], + [ + 105.5095098, + 21.0279174 + ], + [ + 105.5092009, + 21.0277729 + ], + [ + 105.5096952, + 21.0268631 + ], + [ + 105.5098845, + 21.0259359 + ], + [ + 105.5061799, + 21.026164 + ], + [ + 105.4894558, + 21.0397196 + ], + [ + 105.4721696, + 21.021766 + ], + [ + 105.4717575, + 21.0219669 + ], + [ + 105.4701032, + 21.0217468 + ], + [ + 105.4689376, + 21.0219031 + ], + [ + 105.4665718, + 21.0205242 + ], + [ + 105.4662566, + 21.0206632 + ], + [ + 105.4657625, + 21.0204682 + ], + [ + 105.4652621, + 21.020731 + ], + [ + 105.4648632, + 21.0197235 + ], + [ + 105.464797, + 21.0187862 + ], + [ + 105.4645872, + 21.0186681 + ], + [ + 105.4639267, + 21.0186953 + ], + [ + 105.4628387, + 21.0192552 + ], + [ + 105.4623013, + 21.0193434 + ], + [ + 105.4620238, + 21.0192501 + ], + [ + 105.4616871, + 21.018545 + ], + [ + 105.4613987, + 21.0183464 + ], + [ + 105.4604699, + 21.0178286 + ], + [ + 105.4597283, + 21.0176837 + ], + [ + 105.4596532, + 21.0173805 + ], + [ + 105.4600063, + 21.0163162 + ], + [ + 105.460486, + 21.0158264 + ], + [ + 105.4608226, + 21.0157452 + ], + [ + 105.4608727, + 21.0154244 + ], + [ + 105.4596559, + 21.0149612 + ], + [ + 105.4593454, + 21.0143625 + ], + [ + 105.4593256, + 21.0131944 + ], + [ + 105.4590422, + 21.0127096 + ], + [ + 105.4586008, + 21.0126621 + ], + [ + 105.4568454, + 21.011743 + ], + [ + 105.4557581, + 21.0119171 + ], + [ + 105.4548367, + 21.011637 + ], + [ + 105.4542728, + 21.012003 + ], + [ + 105.4526381, + 21.0123349 + ], + [ + 105.45101, + 21.013775 + ], + [ + 105.4503859, + 21.0145808 + ], + [ + 105.4500024, + 21.0143165 + ], + [ + 105.4495009, + 21.0142625 + ], + [ + 105.4479839, + 21.015047 + ], + [ + 105.4471627, + 21.0149797 + ], + [ + 105.4464761, + 21.0145733 + ], + [ + 105.4457859, + 21.0149279 + ], + [ + 105.4453075, + 21.0148299 + ], + [ + 105.4436489, + 21.0139294 + ], + [ + 105.4424703, + 21.0145182 + ], + [ + 105.441296, + 21.014876 + ], + [ + 105.440125, + 21.015933 + ], + [ + 105.437266, + 21.016331 + ], + [ + 105.435858, + 21.016702 + ], + [ + 105.434425, + 21.017318 + ], + [ + 105.433956, + 21.017319 + ], + [ + 105.432894, + 21.017059 + ], + [ + 105.432502, + 21.01679 + ], + [ + 105.430645, + 21.015006 + ], + [ + 105.42968, + 21.015107 + ], + [ + 105.426261, + 21.014258 + ], + [ + 105.424239, + 21.013969 + ], + [ + 105.422359, + 21.01341 + ], + [ + 105.41928, + 21.013001 + ], + [ + 105.416825, + 21.01161 + ], + [ + 105.416433, + 21.011611 + ], + [ + 105.414089, + 21.012867 + ], + [ + 105.412925, + 21.013697 + ], + [ + 105.410742, + 21.01657 + ], + [ + 105.409989, + 21.017895 + ], + [ + 105.409701, + 21.018092 + ], + [ + 105.409206, + 21.018068 + ], + [ + 105.408449, + 21.017923 + ], + [ + 105.406099, + 21.016973 + ], + [ + 105.402874, + 21.014727 + ], + [ + 105.400837, + 21.013776 + ], + [ + 105.400498, + 21.013777 + ], + [ + 105.397867, + 21.014984 + ], + [ + 105.397085, + 21.015084 + ], + [ + 105.395283, + 21.014378 + ], + [ + 105.393694, + 21.0141685 + ], + [ + 105.3925528, + 21.0127854 + ], + [ + 105.3923436, + 21.0121733 + ], + [ + 105.3922221, + 21.0110599 + ], + [ + 105.3923657, + 21.0092775 + ], + [ + 105.3919157, + 21.0072738 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-thanhoai.json b/src/data/boundaries/hn/hn-thanhoai.json new file mode 100644 index 0000000..cb2f9a2 --- /dev/null +++ b/src/data/boundaries/hn/hn-thanhoai.json @@ -0,0 +1,1350 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-THANHOAI", + "name": "Thanh Oai", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 125.1, + "bbox": [ + 105.72512, + 20.78033, + 105.84123, + 20.93973 + ], + "center": [ + 20.85577, + 105.78086 + ], + "generatedAt": "2026-08-30T07:34:11.571Z", + "osm": "relation/7115593" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.7251205, + 20.8983059 + ], + [ + 105.7267685, + 20.8970737 + ], + [ + 105.72686, + 20.8932571 + ], + [ + 105.7300742, + 20.89399 + ], + [ + 105.7322726, + 20.894148 + ], + [ + 105.7356615, + 20.8925651 + ], + [ + 105.7387284, + 20.8877896 + ], + [ + 105.7390695, + 20.8838049 + ], + [ + 105.7388985, + 20.8810868 + ], + [ + 105.738385, + 20.8774089 + ], + [ + 105.7373889, + 20.8751708 + ], + [ + 105.7364383, + 20.8742037 + ], + [ + 105.7350064, + 20.8732853 + ], + [ + 105.7344464, + 20.8731628 + ], + [ + 105.733196, + 20.8736088 + ], + [ + 105.7301938, + 20.8759214 + ], + [ + 105.7289447, + 20.876008 + ], + [ + 105.728529, + 20.8755103 + ], + [ + 105.7280826, + 20.872738 + ], + [ + 105.7284316, + 20.8706181 + ], + [ + 105.730848, + 20.8680377 + ], + [ + 105.7334303, + 20.8644988 + ], + [ + 105.7370439, + 20.8624084 + ], + [ + 105.7419735, + 20.8586309 + ], + [ + 105.7497607, + 20.8561443 + ], + [ + 105.753518, + 20.8539099 + ], + [ + 105.7552133, + 20.8520088 + ], + [ + 105.7557172, + 20.8501255 + ], + [ + 105.7548835, + 20.8479442 + ], + [ + 105.7520145, + 20.8473133 + ], + [ + 105.7463578, + 20.8465124 + ], + [ + 105.74224, + 20.8463519 + ], + [ + 105.7388815, + 20.84603 + ], + [ + 105.7372722, + 20.8455627 + ], + [ + 105.736238, + 20.8450815 + ], + [ + 105.7342277, + 20.8432658 + ], + [ + 105.7335702, + 20.8401524 + ], + [ + 105.737243, + 20.8374274 + ], + [ + 105.7406959, + 20.8364041 + ], + [ + 105.7439658, + 20.8364041 + ], + [ + 105.748944, + 20.836725 + ], + [ + 105.756153, + 20.836725 + ], + [ + 105.7595103, + 20.8368818 + ], + [ + 105.7598398, + 20.8348803 + ], + [ + 105.7596733, + 20.8337909 + ], + [ + 105.7553651, + 20.8288205 + ], + [ + 105.7541844, + 20.8257705 + ], + [ + 105.7530142, + 20.8236517 + ], + [ + 105.7526956, + 20.8198291 + ], + [ + 105.7531993, + 20.8178134 + ], + [ + 105.7551699, + 20.8143423 + ], + [ + 105.7550212, + 20.8136101 + ], + [ + 105.7500029, + 20.8107972 + ], + [ + 105.7483619, + 20.8092632 + ], + [ + 105.7451551, + 20.8058196 + ], + [ + 105.7439365, + 20.8052403 + ], + [ + 105.7429806, + 20.8051528 + ], + [ + 105.7418424, + 20.8054188 + ], + [ + 105.7358415, + 20.808908 + ], + [ + 105.7358175, + 20.8069576 + ], + [ + 105.7360948, + 20.8063202 + ], + [ + 105.7360375, + 20.8056864 + ], + [ + 105.7381868, + 20.8007163 + ], + [ + 105.738371, + 20.7978985 + ], + [ + 105.7391817, + 20.7969715 + ], + [ + 105.7383288, + 20.7932914 + ], + [ + 105.7414867, + 20.7920172 + ], + [ + 105.7413539, + 20.7913757 + ], + [ + 105.7453424, + 20.7889165 + ], + [ + 105.7464337, + 20.7904512 + ], + [ + 105.7484132, + 20.7919257 + ], + [ + 105.7488492, + 20.7914053 + ], + [ + 105.7513155, + 20.792677 + ], + [ + 105.7530045, + 20.790353 + ], + [ + 105.7544572, + 20.7914584 + ], + [ + 105.7572897, + 20.7873248 + ], + [ + 105.7594664, + 20.7901749 + ], + [ + 105.7636017, + 20.7879772 + ], + [ + 105.7632537, + 20.787293 + ], + [ + 105.7644652, + 20.7866702 + ], + [ + 105.7636374, + 20.7854667 + ], + [ + 105.7649584, + 20.7843246 + ], + [ + 105.7644723, + 20.7836405 + ], + [ + 105.7659452, + 20.7824774 + ], + [ + 105.766547, + 20.7831302 + ], + [ + 105.7667825, + 20.7829583 + ], + [ + 105.7685329, + 20.7881257 + ], + [ + 105.7761757, + 20.7879792 + ], + [ + 105.7768437, + 20.7905413 + ], + [ + 105.7784861, + 20.7902506 + ], + [ + 105.7801709, + 20.788728 + ], + [ + 105.7807614, + 20.78936 + ], + [ + 105.7814497, + 20.7894597 + ], + [ + 105.7823743, + 20.7913398 + ], + [ + 105.7845399, + 20.7917301 + ], + [ + 105.7846552, + 20.7911458 + ], + [ + 105.7852238, + 20.7903434 + ], + [ + 105.7857253, + 20.7890306 + ], + [ + 105.7871148, + 20.7894357 + ], + [ + 105.7880926, + 20.7892166 + ], + [ + 105.7883513, + 20.7893253 + ], + [ + 105.7889072, + 20.7881122 + ], + [ + 105.7908801, + 20.7862511 + ], + [ + 105.7959196, + 20.7832546 + ], + [ + 105.8066395, + 20.7803322 + ], + [ + 105.8075986, + 20.7813756 + ], + [ + 105.8087732, + 20.7845135 + ], + [ + 105.8098757, + 20.7857541 + ], + [ + 105.810621, + 20.7869597 + ], + [ + 105.8100248, + 20.7874026 + ], + [ + 105.8098619, + 20.7871459 + ], + [ + 105.8097023, + 20.7872529 + ], + [ + 105.8100909, + 20.7877148 + ], + [ + 105.81031, + 20.7886374 + ], + [ + 105.8100005, + 20.7889432 + ], + [ + 105.8102651, + 20.7890645 + ], + [ + 105.8083247, + 20.7922702 + ], + [ + 105.8097871, + 20.7947669 + ], + [ + 105.8086451, + 20.7968245 + ], + [ + 105.8095433, + 20.7979646 + ], + [ + 105.809807, + 20.79868 + ], + [ + 105.8138532, + 20.8020056 + ], + [ + 105.8184515, + 20.7941254 + ], + [ + 105.8208572, + 20.7951485 + ], + [ + 105.8198926, + 20.7970394 + ], + [ + 105.8169087, + 20.8044978 + ], + [ + 105.824453, + 20.8068411 + ], + [ + 105.8246672, + 20.8063287 + ], + [ + 105.8257732, + 20.8066234 + ], + [ + 105.8266296, + 20.8057458 + ], + [ + 105.8316228, + 20.8062585 + ], + [ + 105.8326112, + 20.8006144 + ], + [ + 105.836745, + 20.8003638 + ], + [ + 105.836719, + 20.8051067 + ], + [ + 105.8385938, + 20.8050842 + ], + [ + 105.8395636, + 20.8099065 + ], + [ + 105.8390522, + 20.8099338 + ], + [ + 105.8391171, + 20.8115339 + ], + [ + 105.8383832, + 20.8115332 + ], + [ + 105.8389287, + 20.8141909 + ], + [ + 105.8410599, + 20.8139559 + ], + [ + 105.8412344, + 20.8147071 + ], + [ + 105.8388167, + 20.8156518 + ], + [ + 105.8387003, + 20.8158358 + ], + [ + 105.83844, + 20.8157509 + ], + [ + 105.8372437, + 20.8170863 + ], + [ + 105.8366841, + 20.8170671 + ], + [ + 105.8363898, + 20.8214811 + ], + [ + 105.8367135, + 20.8230188 + ], + [ + 105.8373139, + 20.8238359 + ], + [ + 105.8313818, + 20.8253254 + ], + [ + 105.8302251, + 20.82531 + ], + [ + 105.8273047, + 20.8275787 + ], + [ + 105.8274968, + 20.8278791 + ], + [ + 105.8289938, + 20.8273852 + ], + [ + 105.829077, + 20.8276371 + ], + [ + 105.8276343, + 20.8303183 + ], + [ + 105.8279735, + 20.8317812 + ], + [ + 105.8272628, + 20.8336224 + ], + [ + 105.8271688, + 20.8344488 + ], + [ + 105.8263504, + 20.8356749 + ], + [ + 105.8251089, + 20.8367289 + ], + [ + 105.8240866, + 20.8372444 + ], + [ + 105.8218357, + 20.8411519 + ], + [ + 105.8236214, + 20.8415095 + ], + [ + 105.8214455, + 20.8538888 + ], + [ + 105.8222261, + 20.8563898 + ], + [ + 105.8206083, + 20.8566038 + ], + [ + 105.819653, + 20.8571178 + ], + [ + 105.8194205, + 20.8574408 + ], + [ + 105.81945, + 20.85857 + ], + [ + 105.8207432, + 20.859312 + ], + [ + 105.820589, + 20.8604184 + ], + [ + 105.8244695, + 20.861487 + ], + [ + 105.8242789, + 20.8623313 + ], + [ + 105.8224921, + 20.8661245 + ], + [ + 105.82426, + 20.8698452 + ], + [ + 105.8234081, + 20.8697288 + ], + [ + 105.8221685, + 20.8698525 + ], + [ + 105.8194897, + 20.8705521 + ], + [ + 105.8177496, + 20.870591 + ], + [ + 105.8153637, + 20.8703164 + ], + [ + 105.8152625, + 20.8706828 + ], + [ + 105.8157209, + 20.8714046 + ], + [ + 105.8153484, + 20.8717409 + ], + [ + 105.8167759, + 20.8740865 + ], + [ + 105.8154516, + 20.8780858 + ], + [ + 105.8166438, + 20.8807004 + ], + [ + 105.8145056, + 20.8811148 + ], + [ + 105.8146315, + 20.8827523 + ], + [ + 105.8156497, + 20.8859688 + ], + [ + 105.8145933, + 20.886506 + ], + [ + 105.8142009, + 20.8868864 + ], + [ + 105.8134514, + 20.8907397 + ], + [ + 105.8129335, + 20.8921472 + ], + [ + 105.8127543, + 20.8936846 + ], + [ + 105.812933, + 20.8946938 + ], + [ + 105.8128461, + 20.8952841 + ], + [ + 105.8150027, + 20.8954559 + ], + [ + 105.8127469, + 20.8967974 + ], + [ + 105.8126726, + 20.898138 + ], + [ + 105.8162264, + 20.8995012 + ], + [ + 105.8159674, + 20.9002457 + ], + [ + 105.816212, + 20.9018007 + ], + [ + 105.8160628, + 20.9023 + ], + [ + 105.815652, + 20.9027631 + ], + [ + 105.8068511, + 20.9097657 + ], + [ + 105.8063436, + 20.9098622 + ], + [ + 105.8054853, + 20.9092765 + ], + [ + 105.8049891, + 20.9092765 + ], + [ + 105.8046122, + 20.9094877 + ], + [ + 105.8037878, + 20.9102097 + ], + [ + 105.80326, + 20.9109444 + ], + [ + 105.8030894, + 20.9114127 + ], + [ + 105.8032704, + 20.9121923 + ], + [ + 105.8031579, + 20.9124186 + ], + [ + 105.7994689, + 20.9125367 + ], + [ + 105.7983537, + 20.913005 + ], + [ + 105.797944, + 20.9130305 + ], + [ + 105.7976312, + 20.9122029 + ], + [ + 105.7972422, + 20.9119018 + ], + [ + 105.7968878, + 20.9118911 + ], + [ + 105.7953434, + 20.9126563 + ], + [ + 105.7948798, + 20.9133059 + ], + [ + 105.7948243, + 20.9143579 + ], + [ + 105.7944366, + 20.9150554 + ], + [ + 105.7930186, + 20.9154472 + ], + [ + 105.7917521, + 20.9151529 + ], + [ + 105.7910821, + 20.9153124 + ], + [ + 105.7901919, + 20.9172916 + ], + [ + 105.789864, + 20.9176553 + ], + [ + 105.7893488, + 20.9191856 + ], + [ + 105.7893275, + 20.9196155 + ], + [ + 105.7895053, + 20.9199999 + ], + [ + 105.7911893, + 20.9207995 + ], + [ + 105.7916546, + 20.9215662 + ], + [ + 105.7907218, + 20.9242913 + ], + [ + 105.7912567, + 20.9256678 + ], + [ + 105.7913144, + 20.9267732 + ], + [ + 105.7917738, + 20.927493 + ], + [ + 105.7925374, + 20.9281101 + ], + [ + 105.7949673, + 20.9290035 + ], + [ + 105.795595, + 20.9299173 + ], + [ + 105.7962598, + 20.9304057 + ], + [ + 105.7976934, + 20.9308917 + ], + [ + 105.7980836, + 20.9315061 + ], + [ + 105.7990359, + 20.9341669 + ], + [ + 105.7995817, + 20.9343554 + ], + [ + 105.8011401, + 20.9342694 + ], + [ + 105.8012075, + 20.9349432 + ], + [ + 105.8015913, + 20.9356749 + ], + [ + 105.7995255, + 20.9364607 + ], + [ + 105.7992147, + 20.9368016 + ], + [ + 105.7992726, + 20.9372202 + ], + [ + 105.7990279, + 20.9378161 + ], + [ + 105.7983658, + 20.9385498 + ], + [ + 105.799039, + 20.9391278 + ], + [ + 105.7975985, + 20.9396015 + ], + [ + 105.7974131, + 20.938936 + ], + [ + 105.796407, + 20.9393574 + ], + [ + 105.7927467, + 20.9385412 + ], + [ + 105.7897834, + 20.9396512 + ], + [ + 105.7892379, + 20.9395027 + ], + [ + 105.7884802, + 20.939733 + ], + [ + 105.7879831, + 20.9383639 + ], + [ + 105.786322, + 20.9389221 + ], + [ + 105.785567, + 20.936885 + ], + [ + 105.7856354, + 20.9358147 + ], + [ + 105.7835311, + 20.9357415 + ], + [ + 105.7837308, + 20.9285088 + ], + [ + 105.7811577, + 20.9284055 + ], + [ + 105.7811408, + 20.9290365 + ], + [ + 105.7789707, + 20.9289748 + ], + [ + 105.7784045, + 20.9296124 + ], + [ + 105.7778889, + 20.9292198 + ], + [ + 105.7769078, + 20.9303501 + ], + [ + 105.7723781, + 20.9268156 + ], + [ + 105.7739873, + 20.9248486 + ], + [ + 105.7726703, + 20.9238923 + ], + [ + 105.7728698, + 20.9235108 + ], + [ + 105.7705375, + 20.9226289 + ], + [ + 105.7678464, + 20.9255272 + ], + [ + 105.7664545, + 20.9240373 + ], + [ + 105.7645473, + 20.9248261 + ], + [ + 105.7647782, + 20.925362 + ], + [ + 105.7601776, + 20.9284042 + ], + [ + 105.7621434, + 20.9298993 + ], + [ + 105.7595027, + 20.9316798 + ], + [ + 105.757984, + 20.9306096 + ], + [ + 105.7578973, + 20.9321349 + ], + [ + 105.7567082, + 20.9321444 + ], + [ + 105.7566928, + 20.9318298 + ], + [ + 105.757193, + 20.9304666 + ], + [ + 105.7551975, + 20.9298707 + ], + [ + 105.7545749, + 20.930867 + ], + [ + 105.7539532, + 20.9297905 + ], + [ + 105.752094, + 20.9307155 + ], + [ + 105.7517183, + 20.9297661 + ], + [ + 105.750283, + 20.9302995 + ], + [ + 105.7498775, + 20.9290789 + ], + [ + 105.7499461, + 20.9285979 + ], + [ + 105.749132, + 20.926273 + ], + [ + 105.7508375, + 20.926195 + ], + [ + 105.7514579, + 20.9233237 + ], + [ + 105.7504492, + 20.9231715 + ], + [ + 105.7507684, + 20.9208514 + ], + [ + 105.7500498, + 20.920753 + ], + [ + 105.7501009, + 20.9201953 + ], + [ + 105.7495293, + 20.920119 + ], + [ + 105.7492231, + 20.9201428 + ], + [ + 105.7487433, + 20.9205814 + ], + [ + 105.7496384, + 20.9166544 + ], + [ + 105.7420345, + 20.9153793 + ], + [ + 105.7421264, + 20.9136884 + ], + [ + 105.7417005, + 20.9134411 + ], + [ + 105.7411483, + 20.9126776 + ], + [ + 105.7407441, + 20.912531 + ], + [ + 105.7392499, + 20.913441 + ], + [ + 105.7392864, + 20.9137554 + ], + [ + 105.7369144, + 20.9139622 + ], + [ + 105.7364295, + 20.9130754 + ], + [ + 105.7364945, + 20.9121322 + ], + [ + 105.736173, + 20.911696 + ], + [ + 105.735119, + 20.9109113 + ], + [ + 105.733971, + 20.910342 + ], + [ + 105.7332692, + 20.9101781 + ], + [ + 105.7294651, + 20.9054936 + ], + [ + 105.7280904, + 20.9013199 + ], + [ + 105.7270727, + 20.8997354 + ], + [ + 105.7251205, + 20.8983059 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-thanhtri.json b/src/data/boundaries/hn/hn-thanhtri.json new file mode 100644 index 0000000..7b33d71 --- /dev/null +++ b/src/data/boundaries/hn/hn-thanhtri.json @@ -0,0 +1,1342 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-THANHTRI", + "name": "Thanh Tri", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 63.1, + "bbox": [ + 105.78821, + 20.89699, + 105.91311, + 20.98653 + ], + "center": [ + 20.93266, + 105.84089 + ], + "generatedAt": "2026-08-30T07:34:13.362Z", + "osm": "relation/7115709" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.7882132, + 20.9409868 + ], + [ + 105.7897311, + 20.9410536 + ], + [ + 105.7897834, + 20.9396512 + ], + [ + 105.7927467, + 20.9385412 + ], + [ + 105.796407, + 20.9393574 + ], + [ + 105.7974131, + 20.938936 + ], + [ + 105.7975985, + 20.9396015 + ], + [ + 105.799039, + 20.9391278 + ], + [ + 105.7983658, + 20.9385498 + ], + [ + 105.7990279, + 20.9378161 + ], + [ + 105.7992726, + 20.9372202 + ], + [ + 105.7992147, + 20.9368016 + ], + [ + 105.7995255, + 20.9364607 + ], + [ + 105.8015913, + 20.9356749 + ], + [ + 105.8012075, + 20.9349432 + ], + [ + 105.8011401, + 20.9342694 + ], + [ + 105.7995817, + 20.9343554 + ], + [ + 105.7990359, + 20.9341669 + ], + [ + 105.7980836, + 20.9315061 + ], + [ + 105.7976934, + 20.9308917 + ], + [ + 105.795905, + 20.9301903 + ], + [ + 105.7949673, + 20.9290035 + ], + [ + 105.7925374, + 20.9281101 + ], + [ + 105.7917738, + 20.927493 + ], + [ + 105.7913144, + 20.9267732 + ], + [ + 105.7912567, + 20.9256678 + ], + [ + 105.7907218, + 20.9242913 + ], + [ + 105.7916546, + 20.9215662 + ], + [ + 105.7911893, + 20.9207995 + ], + [ + 105.7895053, + 20.9199999 + ], + [ + 105.7893275, + 20.9196155 + ], + [ + 105.789864, + 20.9176553 + ], + [ + 105.7901919, + 20.9172916 + ], + [ + 105.7910821, + 20.9153124 + ], + [ + 105.7917521, + 20.9151529 + ], + [ + 105.7930186, + 20.9154472 + ], + [ + 105.7944366, + 20.9150554 + ], + [ + 105.7948243, + 20.9143579 + ], + [ + 105.7948798, + 20.9133059 + ], + [ + 105.7953434, + 20.9126563 + ], + [ + 105.7968878, + 20.9118911 + ], + [ + 105.7972422, + 20.9119018 + ], + [ + 105.7976312, + 20.9122029 + ], + [ + 105.797944, + 20.9130305 + ], + [ + 105.7983537, + 20.913005 + ], + [ + 105.7994689, + 20.9125367 + ], + [ + 105.8031579, + 20.9124186 + ], + [ + 105.8032704, + 20.9121923 + ], + [ + 105.8030894, + 20.9114127 + ], + [ + 105.80326, + 20.9109444 + ], + [ + 105.8037878, + 20.9102097 + ], + [ + 105.8046122, + 20.9094877 + ], + [ + 105.8049891, + 20.9092765 + ], + [ + 105.8054853, + 20.9092765 + ], + [ + 105.8063436, + 20.9098622 + ], + [ + 105.8068511, + 20.9097657 + ], + [ + 105.815652, + 20.9027631 + ], + [ + 105.8223519, + 20.9034738 + ], + [ + 105.8235854, + 20.9032398 + ], + [ + 105.823765, + 20.9030398 + ], + [ + 105.8249814, + 20.9030104 + ], + [ + 105.8251352, + 20.901942 + ], + [ + 105.8255492, + 20.90066 + ], + [ + 105.826189, + 20.9006521 + ], + [ + 105.8262416, + 20.8999954 + ], + [ + 105.8280081, + 20.8989936 + ], + [ + 105.8272395, + 20.8977295 + ], + [ + 105.8287091, + 20.8969881 + ], + [ + 105.8291588, + 20.8976189 + ], + [ + 105.8303416, + 20.8982673 + ], + [ + 105.8293599, + 20.8992787 + ], + [ + 105.828676, + 20.8997172 + ], + [ + 105.8293441, + 20.9008224 + ], + [ + 105.8305972, + 20.9004041 + ], + [ + 105.8310248, + 20.9010723 + ], + [ + 105.8328938, + 20.9015828 + ], + [ + 105.8326502, + 20.903037 + ], + [ + 105.8327262, + 20.903445 + ], + [ + 105.8337577, + 20.9043031 + ], + [ + 105.833979, + 20.9048115 + ], + [ + 105.8338127, + 20.9049485 + ], + [ + 105.8335897, + 20.9048077 + ], + [ + 105.8334627, + 20.9049045 + ], + [ + 105.8333008, + 20.9055029 + ], + [ + 105.8335703, + 20.905579 + ], + [ + 105.8332703, + 20.9061014 + ], + [ + 105.8331164, + 20.9072924 + ], + [ + 105.8334818, + 20.9083502 + ], + [ + 105.8334608, + 20.9092583 + ], + [ + 105.8345958, + 20.9095323 + ], + [ + 105.8347098, + 20.9093122 + ], + [ + 105.8372325, + 20.9091295 + ], + [ + 105.8384796, + 20.9096711 + ], + [ + 105.8394603, + 20.9095451 + ], + [ + 105.8410557, + 20.9085412 + ], + [ + 105.8400072, + 20.9035853 + ], + [ + 105.8397065, + 20.9028501 + ], + [ + 105.8411065, + 20.9020607 + ], + [ + 105.8439311, + 20.90139 + ], + [ + 105.8512687, + 20.899146 + ], + [ + 105.85296, + 20.8979457 + ], + [ + 105.8539503, + 20.8970205 + ], + [ + 105.8542413, + 20.8979691 + ], + [ + 105.8538366, + 20.8994164 + ], + [ + 105.8542821, + 20.8995128 + ], + [ + 105.8536689, + 20.901597 + ], + [ + 105.8550396, + 20.9016854 + ], + [ + 105.8595228, + 20.9070225 + ], + [ + 105.8643123, + 20.9054652 + ], + [ + 105.8649514, + 20.9050176 + ], + [ + 105.8667312, + 20.907223 + ], + [ + 105.86809, + 20.9096927 + ], + [ + 105.8698706, + 20.9086856 + ], + [ + 105.8696884, + 20.9082293 + ], + [ + 105.8699706, + 20.9080674 + ], + [ + 105.8698782, + 20.9075969 + ], + [ + 105.8737162, + 20.9061876 + ], + [ + 105.8737927, + 20.9065885 + ], + [ + 105.8752399, + 20.9063128 + ], + [ + 105.8764264, + 20.9102519 + ], + [ + 105.8774549, + 20.9103595 + ], + [ + 105.8784389, + 20.911597 + ], + [ + 105.882002, + 20.9119371 + ], + [ + 105.8825751, + 20.9122134 + ], + [ + 105.8839793, + 20.9122313 + ], + [ + 105.8845146, + 20.9120694 + ], + [ + 105.8842351, + 20.9116122 + ], + [ + 105.8839025, + 20.9114118 + ], + [ + 105.8841492, + 20.9111211 + ], + [ + 105.8840098, + 20.9108656 + ], + [ + 105.8836289, + 20.9111161 + ], + [ + 105.8834465, + 20.9108405 + ], + [ + 105.8828564, + 20.910615 + ], + [ + 105.8827599, + 20.9104346 + ], + [ + 105.8813329, + 20.9106639 + ], + [ + 105.8811055, + 20.9096439 + ], + [ + 105.8826244, + 20.9092728 + ], + [ + 105.8833096, + 20.9105513 + ], + [ + 105.8835371, + 20.9103973 + ], + [ + 105.8836833, + 20.9105019 + ], + [ + 105.8843685, + 20.9100674 + ], + [ + 105.8840288, + 20.9096843 + ], + [ + 105.8838479, + 20.9098052 + ], + [ + 105.8832888, + 20.9091583 + ], + [ + 105.8864666, + 20.9084762 + ], + [ + 105.8877903, + 20.9083928 + ], + [ + 105.888291, + 20.9080731 + ], + [ + 105.8881638, + 20.9078361 + ], + [ + 105.8885392, + 20.9075366 + ], + [ + 105.8883848, + 20.9073992 + ], + [ + 105.8886398, + 20.9071045 + ], + [ + 105.8880324, + 20.9062253 + ], + [ + 105.8893247, + 20.9059724 + ], + [ + 105.8896915, + 20.9069993 + ], + [ + 105.8902268, + 20.9070343 + ], + [ + 105.890637, + 20.9079698 + ], + [ + 105.8918515, + 20.9078609 + ], + [ + 105.8919613, + 20.9085009 + ], + [ + 105.892394, + 20.9093933 + ], + [ + 105.8931104, + 20.9092695 + ], + [ + 105.8943483, + 20.9087212 + ], + [ + 105.8963432, + 20.9074619 + ], + [ + 105.899158, + 20.9051853 + ], + [ + 105.9028145, + 20.9078048 + ], + [ + 105.9043782, + 20.9085936 + ], + [ + 105.9079628, + 20.9114968 + ], + [ + 105.9118518, + 20.9157613 + ], + [ + 105.9126904, + 20.9171944 + ], + [ + 105.912995, + 20.9181616 + ], + [ + 105.9131084, + 20.9200242 + ], + [ + 105.9126875, + 20.9221014 + ], + [ + 105.911351, + 20.9239991 + ], + [ + 105.9099384, + 20.9252878 + ], + [ + 105.9084591, + 20.9263283 + ], + [ + 105.9037101, + 20.9279501 + ], + [ + 105.9002531, + 20.9286871 + ], + [ + 105.8955991, + 20.9292713 + ], + [ + 105.8920425, + 20.929332 + ], + [ + 105.8870391, + 20.928837 + ], + [ + 105.8839721, + 20.9294276 + ], + [ + 105.8818509, + 20.9308146 + ], + [ + 105.8814665, + 20.9331361 + ], + [ + 105.8820244, + 20.9388416 + ], + [ + 105.8860035, + 20.9454443 + ], + [ + 105.8792114, + 20.951191 + ], + [ + 105.872107, + 20.9559281 + ], + [ + 105.8687627, + 20.950853 + ], + [ + 105.8668097, + 20.9516407 + ], + [ + 105.866502, + 20.950883 + ], + [ + 105.8637161, + 20.9513283 + ], + [ + 105.8600388, + 20.9536839 + ], + [ + 105.8584958, + 20.9573193 + ], + [ + 105.8537395, + 20.9550156 + ], + [ + 105.852479, + 20.9541788 + ], + [ + 105.8499454, + 20.9529268 + ], + [ + 105.8464429, + 20.9517253 + ], + [ + 105.8441773, + 20.9511261 + ], + [ + 105.8426819, + 20.9581852 + ], + [ + 105.8390306, + 20.9574783 + ], + [ + 105.8386025, + 20.9570166 + ], + [ + 105.8381068, + 20.9581249 + ], + [ + 105.8363521, + 20.9579625 + ], + [ + 105.8362429, + 20.9589126 + ], + [ + 105.8359567, + 20.9588966 + ], + [ + 105.8358761, + 20.9583165 + ], + [ + 105.8351364, + 20.9583798 + ], + [ + 105.8347473, + 20.9567337 + ], + [ + 105.833992, + 20.9566307 + ], + [ + 105.8337708, + 20.955162 + ], + [ + 105.8314232, + 20.9554382 + ], + [ + 105.8310231, + 20.9543572 + ], + [ + 105.8318021, + 20.9540825 + ], + [ + 105.8314843, + 20.9534231 + ], + [ + 105.8311049, + 20.9535796 + ], + [ + 105.8307969, + 20.9530369 + ], + [ + 105.8289386, + 20.954084 + ], + [ + 105.8271392, + 20.9555681 + ], + [ + 105.8256989, + 20.956419 + ], + [ + 105.8203648, + 20.9573014 + ], + [ + 105.8195475, + 20.9579177 + ], + [ + 105.8182167, + 20.959376 + ], + [ + 105.817469, + 20.9597115 + ], + [ + 105.8163757, + 20.9599285 + ], + [ + 105.8165312, + 20.9607474 + ], + [ + 105.8171484, + 20.9610648 + ], + [ + 105.8185567, + 20.9611756 + ], + [ + 105.8185481, + 20.9624377 + ], + [ + 105.8182594, + 20.9623872 + ], + [ + 105.8180924, + 20.963129 + ], + [ + 105.8192678, + 20.9642224 + ], + [ + 105.8219327, + 20.966127 + ], + [ + 105.8237194, + 20.967736 + ], + [ + 105.8249893, + 20.9707413 + ], + [ + 105.8196487, + 20.9723682 + ], + [ + 105.8183579, + 20.9717445 + ], + [ + 105.8180039, + 20.9711294 + ], + [ + 105.8166237, + 20.971319 + ], + [ + 105.8157566, + 20.9700722 + ], + [ + 105.8152349, + 20.9705667 + ], + [ + 105.8140956, + 20.9710772 + ], + [ + 105.8131645, + 20.9696438 + ], + [ + 105.8082688, + 20.9724803 + ], + [ + 105.8087599, + 20.973206 + ], + [ + 105.8073883, + 20.9739057 + ], + [ + 105.8097509, + 20.9792912 + ], + [ + 105.8081011, + 20.9810101 + ], + [ + 105.8092191, + 20.9817649 + ], + [ + 105.8096224, + 20.9828803 + ], + [ + 105.8085415, + 20.9843294 + ], + [ + 105.8080981, + 20.9840396 + ], + [ + 105.8074035, + 20.9849114 + ], + [ + 105.8074937, + 20.9851444 + ], + [ + 105.805136, + 20.9857563 + ], + [ + 105.8049948, + 20.9856688 + ], + [ + 105.8048369, + 20.9858746 + ], + [ + 105.8043126, + 20.9859939 + ], + [ + 105.8039447, + 20.9857809 + ], + [ + 105.8033007, + 20.9865156 + ], + [ + 105.8030888, + 20.9865328 + ], + [ + 105.8018128, + 20.9856294 + ], + [ + 105.8011118, + 20.9864966 + ], + [ + 105.8003989, + 20.9859725 + ], + [ + 105.8014912, + 20.9846976 + ], + [ + 105.801182, + 20.984282 + ], + [ + 105.8016484, + 20.9840717 + ], + [ + 105.8010852, + 20.9832965 + ], + [ + 105.8007427, + 20.9834923 + ], + [ + 105.8006303, + 20.9833566 + ], + [ + 105.7999996, + 20.9840066 + ], + [ + 105.7998257, + 20.9838713 + ], + [ + 105.7996975, + 20.984021 + ], + [ + 105.7992386, + 20.9836897 + ], + [ + 105.7987951, + 20.984228 + ], + [ + 105.797853, + 20.9835807 + ], + [ + 105.7977493, + 20.9837244 + ], + [ + 105.7978722, + 20.9838082 + ], + [ + 105.7971245, + 20.9846793 + ], + [ + 105.7966246, + 20.9843894 + ], + [ + 105.7969411, + 20.9839901 + ], + [ + 105.7965398, + 20.9837136 + ], + [ + 105.7968003, + 20.9833435 + ], + [ + 105.795291, + 20.982213 + ], + [ + 105.7956622, + 20.9817121 + ], + [ + 105.7953377, + 20.9813821 + ], + [ + 105.7955052, + 20.9811626 + ], + [ + 105.7949476, + 20.9806884 + ], + [ + 105.7971903, + 20.9780898 + ], + [ + 105.798668, + 20.9783551 + ], + [ + 105.7988574, + 20.9770987 + ], + [ + 105.7999935, + 20.974973 + ], + [ + 105.7960684, + 20.9737665 + ], + [ + 105.7948739, + 20.973615 + ], + [ + 105.7948616, + 20.974012 + ], + [ + 105.793659, + 20.973713 + ], + [ + 105.7940402, + 20.9729903 + ], + [ + 105.7939063, + 20.9719034 + ], + [ + 105.7933777, + 20.9707436 + ], + [ + 105.7921193, + 20.9697222 + ], + [ + 105.791228, + 20.9691818 + ], + [ + 105.7904617, + 20.9689632 + ], + [ + 105.7913086, + 20.9684973 + ], + [ + 105.7915826, + 20.9689167 + ], + [ + 105.7923835, + 20.9684345 + ], + [ + 105.7921931, + 20.9680411 + ], + [ + 105.7929789, + 20.9675788 + ], + [ + 105.7932562, + 20.9678197 + ], + [ + 105.7938162, + 20.9670775 + ], + [ + 105.7927223, + 20.9652844 + ], + [ + 105.8042984, + 20.9589977 + ], + [ + 105.8029928, + 20.9582897 + ], + [ + 105.8021675, + 20.9570053 + ], + [ + 105.8009378, + 20.9582824 + ], + [ + 105.8003666, + 20.9583935 + ], + [ + 105.7989471, + 20.9574181 + ], + [ + 105.7984431, + 20.9573641 + ], + [ + 105.7983118, + 20.9560107 + ], + [ + 105.7978908, + 20.9559558 + ], + [ + 105.7978648, + 20.9556936 + ], + [ + 105.7966804, + 20.9554939 + ], + [ + 105.7960321, + 20.9551691 + ], + [ + 105.7959077, + 20.9553066 + ], + [ + 105.7947532, + 20.9549966 + ], + [ + 105.7944152, + 20.9538756 + ], + [ + 105.7942111, + 20.9519721 + ], + [ + 105.7947778, + 20.9505875 + ], + [ + 105.7917659, + 20.9422477 + ], + [ + 105.7885041, + 20.9420581 + ], + [ + 105.7882132, + 20.9409868 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-thanhxuan.json b/src/data/boundaries/hn/hn-thanhxuan.json new file mode 100644 index 0000000..b859f6f --- /dev/null +++ b/src/data/boundaries/hn/hn-thanhxuan.json @@ -0,0 +1,538 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-THANHXUAN", + "name": "Thanh Xuan", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 9.4, + "bbox": [ + 105.79218, + 20.98056, + 105.84287, + 21.00885 + ], + "center": [ + 20.99482, + 105.81531 + ], + "generatedAt": "2026-08-30T07:33:14.827Z", + "osm": "relation/9421130" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.7921847, + 20.9994064 + ], + [ + 105.7925225, + 20.9990195 + ], + [ + 105.7954202, + 20.9985766 + ], + [ + 105.7959189, + 20.9987431 + ], + [ + 105.7953683, + 20.9955984 + ], + [ + 105.7967488, + 20.9952297 + ], + [ + 105.7955672, + 20.9916585 + ], + [ + 105.7985698, + 20.988713 + ], + [ + 105.7988803, + 20.9889204 + ], + [ + 105.7992035, + 20.9886543 + ], + [ + 105.7941755, + 20.9850986 + ], + [ + 105.7944442, + 20.984765 + ], + [ + 105.7948593, + 20.9850655 + ], + [ + 105.7949499, + 20.9849325 + ], + [ + 105.7959401, + 20.9853732 + ], + [ + 105.7964739, + 20.9847567 + ], + [ + 105.7965189, + 20.9843631 + ], + [ + 105.7971245, + 20.9846793 + ], + [ + 105.7978722, + 20.9838082 + ], + [ + 105.7977493, + 20.9837244 + ], + [ + 105.797853, + 20.9835807 + ], + [ + 105.7987951, + 20.984228 + ], + [ + 105.7992386, + 20.9836897 + ], + [ + 105.7996975, + 20.984021 + ], + [ + 105.7998257, + 20.9838713 + ], + [ + 105.7999996, + 20.9840066 + ], + [ + 105.8006303, + 20.9833566 + ], + [ + 105.8007427, + 20.9834923 + ], + [ + 105.8010852, + 20.9832965 + ], + [ + 105.8016484, + 20.9840717 + ], + [ + 105.801182, + 20.984282 + ], + [ + 105.8014912, + 20.9846976 + ], + [ + 105.8003989, + 20.9859725 + ], + [ + 105.8011118, + 20.9864966 + ], + [ + 105.8018128, + 20.9856294 + ], + [ + 105.8030888, + 20.9865328 + ], + [ + 105.8033007, + 20.9865156 + ], + [ + 105.8039447, + 20.9857809 + ], + [ + 105.8043126, + 20.9859939 + ], + [ + 105.8048369, + 20.9858746 + ], + [ + 105.8049948, + 20.9856688 + ], + [ + 105.805136, + 20.9857563 + ], + [ + 105.8074937, + 20.9851444 + ], + [ + 105.8074035, + 20.9849114 + ], + [ + 105.8080981, + 20.9840396 + ], + [ + 105.8085415, + 20.9843294 + ], + [ + 105.8108342, + 20.9812607 + ], + [ + 105.8112612, + 20.9815285 + ], + [ + 105.8134186, + 20.9805625 + ], + [ + 105.8145841, + 20.9823579 + ], + [ + 105.8156492, + 20.9832811 + ], + [ + 105.8166696, + 20.9820833 + ], + [ + 105.8183402, + 20.9807013 + ], + [ + 105.8187176, + 20.9813471 + ], + [ + 105.8189662, + 20.9824693 + ], + [ + 105.8189901, + 20.9828929 + ], + [ + 105.8187154, + 20.9830612 + ], + [ + 105.8188331, + 20.9839253 + ], + [ + 105.8186721, + 20.9843114 + ], + [ + 105.819547, + 20.9846233 + ], + [ + 105.8194547, + 20.9848938 + ], + [ + 105.8204299, + 20.9852386 + ], + [ + 105.820343, + 20.9854372 + ], + [ + 105.8229859, + 20.9868674 + ], + [ + 105.8249429, + 20.988673 + ], + [ + 105.8244454, + 20.9892345 + ], + [ + 105.8263722, + 20.991313 + ], + [ + 105.8267682, + 20.9915716 + ], + [ + 105.8270288, + 20.9914228 + ], + [ + 105.8272994, + 20.9916723 + ], + [ + 105.8275234, + 20.9926901 + ], + [ + 105.827863, + 20.993133 + ], + [ + 105.8281027, + 20.9930484 + ], + [ + 105.8284586, + 20.993581 + ], + [ + 105.8293818, + 20.9930265 + ], + [ + 105.8302384, + 20.993544 + ], + [ + 105.8305148, + 20.9932046 + ], + [ + 105.8309168, + 20.9919633 + ], + [ + 105.8319262, + 20.990325 + ], + [ + 105.8324136, + 20.9903439 + ], + [ + 105.832593, + 20.9898237 + ], + [ + 105.8331242, + 20.9892538 + ], + [ + 105.8332758, + 20.9891907 + ], + [ + 105.8335481, + 20.9893916 + ], + [ + 105.8337948, + 20.9886077 + ], + [ + 105.8335351, + 20.9884566 + ], + [ + 105.8338235, + 20.9880845 + ], + [ + 105.8339923, + 20.9882282 + ], + [ + 105.8349722, + 20.9867733 + ], + [ + 105.835289, + 20.9865866 + ], + [ + 105.8356537, + 20.9855105 + ], + [ + 105.8365391, + 20.9857867 + ], + [ + 105.8375177, + 20.9838812 + ], + [ + 105.8410587, + 20.9854146 + ], + [ + 105.8411886, + 20.9929628 + ], + [ + 105.8414087, + 20.9929659 + ], + [ + 105.8427682, + 20.9952614 + ], + [ + 105.8428695, + 20.9957401 + ], + [ + 105.8426251, + 20.997416 + ], + [ + 105.8369412, + 20.9988668 + ], + [ + 105.8329565, + 20.9996053 + ], + [ + 105.8267548, + 21.0014485 + ], + [ + 105.8202057, + 21.003109 + ], + [ + 105.8181305, + 21.001585 + ], + [ + 105.8166057, + 21.0051511 + ], + [ + 105.8158997, + 21.0063725 + ], + [ + 105.8149192, + 21.007683 + ], + [ + 105.8135162, + 21.0088516 + ], + [ + 105.812051, + 21.0071526 + ], + [ + 105.8106943, + 21.0069677 + ], + [ + 105.8101905, + 21.0070798 + ], + [ + 105.8086536, + 21.0080805 + ], + [ + 105.807369, + 21.0072094 + ], + [ + 105.8054112, + 21.00838 + ], + [ + 105.804979, + 21.0080815 + ], + [ + 105.8046619, + 21.0085679 + ], + [ + 105.8029771, + 21.007087 + ], + [ + 105.7987992, + 21.0040802 + ], + [ + 105.7976586, + 21.0054696 + ], + [ + 105.7941053, + 21.0030027 + ], + [ + 105.7946544, + 21.0022956 + ], + [ + 105.7929681, + 21.0011358 + ], + [ + 105.7932928, + 21.0006987 + ], + [ + 105.7931229, + 20.9999287 + ], + [ + 105.7926058, + 21.0000689 + ], + [ + 105.7924921, + 20.9996747 + ], + [ + 105.7921847, + 20.9994064 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-thuongtin.json b/src/data/boundaries/hn/hn-thuongtin.json new file mode 100644 index 0000000..b40dbb2 --- /dev/null +++ b/src/data/boundaries/hn/hn-thuongtin.json @@ -0,0 +1,1358 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-THUONGTIN", + "name": "Thuong Tin", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 130.8, + "bbox": [ + 105.81267, + 20.75192, + 105.93617, + 20.91223 + ], + "center": [ + 20.84497, + 105.87482 + ], + "generatedAt": "2026-08-30T07:34:17.166Z", + "osm": "relation/7115632" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.8126726, + 20.898138 + ], + [ + 105.8127469, + 20.8967974 + ], + [ + 105.8150027, + 20.8954559 + ], + [ + 105.8128461, + 20.8952841 + ], + [ + 105.812933, + 20.8946938 + ], + [ + 105.8127543, + 20.8936846 + ], + [ + 105.8129335, + 20.8921472 + ], + [ + 105.8134514, + 20.8907397 + ], + [ + 105.8142009, + 20.8868864 + ], + [ + 105.8145933, + 20.886506 + ], + [ + 105.8156497, + 20.8859688 + ], + [ + 105.8146315, + 20.8827523 + ], + [ + 105.8145056, + 20.8811148 + ], + [ + 105.8166438, + 20.8807004 + ], + [ + 105.8154516, + 20.8780858 + ], + [ + 105.8167759, + 20.8740865 + ], + [ + 105.8153484, + 20.8717409 + ], + [ + 105.8157209, + 20.8714046 + ], + [ + 105.8152625, + 20.8706828 + ], + [ + 105.8153637, + 20.8703164 + ], + [ + 105.8177496, + 20.870591 + ], + [ + 105.8194897, + 20.8705521 + ], + [ + 105.8221685, + 20.8698525 + ], + [ + 105.8234081, + 20.8697288 + ], + [ + 105.82426, + 20.8698452 + ], + [ + 105.8224921, + 20.8661245 + ], + [ + 105.8242789, + 20.8623313 + ], + [ + 105.8244695, + 20.861487 + ], + [ + 105.820589, + 20.8604184 + ], + [ + 105.8207432, + 20.859312 + ], + [ + 105.81945, + 20.85857 + ], + [ + 105.8194205, + 20.8574408 + ], + [ + 105.819653, + 20.8571178 + ], + [ + 105.8206083, + 20.8566038 + ], + [ + 105.8222261, + 20.8563898 + ], + [ + 105.8214455, + 20.8538888 + ], + [ + 105.8236214, + 20.8415095 + ], + [ + 105.8218357, + 20.8411519 + ], + [ + 105.8240866, + 20.8372444 + ], + [ + 105.8251089, + 20.8367289 + ], + [ + 105.8263504, + 20.8356749 + ], + [ + 105.8271688, + 20.8344488 + ], + [ + 105.8272628, + 20.8336224 + ], + [ + 105.8279735, + 20.8317812 + ], + [ + 105.8276343, + 20.8303183 + ], + [ + 105.829077, + 20.8276371 + ], + [ + 105.8289938, + 20.8273852 + ], + [ + 105.8274968, + 20.8278791 + ], + [ + 105.8273047, + 20.8275787 + ], + [ + 105.8302251, + 20.82531 + ], + [ + 105.8313818, + 20.8253254 + ], + [ + 105.8373139, + 20.8238359 + ], + [ + 105.8367135, + 20.8230188 + ], + [ + 105.8363898, + 20.8214811 + ], + [ + 105.8366841, + 20.8170671 + ], + [ + 105.8372437, + 20.8170863 + ], + [ + 105.83844, + 20.8157509 + ], + [ + 105.8387003, + 20.8158358 + ], + [ + 105.8388167, + 20.8156518 + ], + [ + 105.8412344, + 20.8147071 + ], + [ + 105.8410599, + 20.8139559 + ], + [ + 105.8389287, + 20.8141909 + ], + [ + 105.8383832, + 20.8115332 + ], + [ + 105.8391171, + 20.8115339 + ], + [ + 105.8390522, + 20.8099338 + ], + [ + 105.8395636, + 20.8099065 + ], + [ + 105.8385938, + 20.8050842 + ], + [ + 105.836719, + 20.8051067 + ], + [ + 105.836745, + 20.8003638 + ], + [ + 105.8331448, + 20.8005794 + ], + [ + 105.833125, + 20.7989546 + ], + [ + 105.833284, + 20.7984851 + ], + [ + 105.8337913, + 20.7984828 + ], + [ + 105.8340155, + 20.7982558 + ], + [ + 105.8339501, + 20.7975046 + ], + [ + 105.8341801, + 20.7950485 + ], + [ + 105.8360318, + 20.7950256 + ], + [ + 105.8384139, + 20.7952958 + ], + [ + 105.8417641, + 20.795911 + ], + [ + 105.8440341, + 20.7967717 + ], + [ + 105.845809, + 20.7976654 + ], + [ + 105.8491054, + 20.7996263 + ], + [ + 105.8518723, + 20.801679 + ], + [ + 105.8529454, + 20.8018787 + ], + [ + 105.8541781, + 20.801537 + ], + [ + 105.8576882, + 20.7996405 + ], + [ + 105.8584805, + 20.799534 + ], + [ + 105.8592855, + 20.7997895 + ], + [ + 105.8595519, + 20.8000703 + ], + [ + 105.8698143, + 20.7968309 + ], + [ + 105.8693137, + 20.7958536 + ], + [ + 105.8716816, + 20.7944584 + ], + [ + 105.8708771, + 20.7928734 + ], + [ + 105.8707379, + 20.7929494 + ], + [ + 105.8683471, + 20.7897415 + ], + [ + 105.8765071, + 20.7851415 + ], + [ + 105.8771612, + 20.7855856 + ], + [ + 105.8775106, + 20.7856262 + ], + [ + 105.8778239, + 20.7860074 + ], + [ + 105.8804351, + 20.7843016 + ], + [ + 105.8789663, + 20.7835461 + ], + [ + 105.8818496, + 20.7817476 + ], + [ + 105.8842296, + 20.7826577 + ], + [ + 105.884801, + 20.7806407 + ], + [ + 105.8869055, + 20.7813539 + ], + [ + 105.8897245, + 20.7724372 + ], + [ + 105.8917147, + 20.7731255 + ], + [ + 105.8923861, + 20.7735843 + ], + [ + 105.8930042, + 20.7723492 + ], + [ + 105.8957408, + 20.7736879 + ], + [ + 105.896157, + 20.7730967 + ], + [ + 105.8956439, + 20.7723109 + ], + [ + 105.8962059, + 20.7718604 + ], + [ + 105.8947381, + 20.7687882 + ], + [ + 105.8954536, + 20.7673201 + ], + [ + 105.8925595, + 20.7654397 + ], + [ + 105.8909496, + 20.7636314 + ], + [ + 105.8867572, + 20.756067 + ], + [ + 105.8866721, + 20.7549225 + ], + [ + 105.8868825, + 20.7543312 + ], + [ + 105.8873638, + 20.7537747 + ], + [ + 105.8899378, + 20.751918 + ], + [ + 105.8914652, + 20.7534312 + ], + [ + 105.8933187, + 20.7545038 + ], + [ + 105.8940929, + 20.7553034 + ], + [ + 105.8952109, + 20.754497 + ], + [ + 105.8963012, + 20.7550637 + ], + [ + 105.897948, + 20.7538814 + ], + [ + 105.8989676, + 20.7547804 + ], + [ + 105.9012415, + 20.7536155 + ], + [ + 105.9013307, + 20.7529266 + ], + [ + 105.9028842, + 20.7521891 + ], + [ + 105.9035416, + 20.7535778 + ], + [ + 105.9048691, + 20.7528961 + ], + [ + 105.9057195, + 20.7555865 + ], + [ + 105.9062959, + 20.7556922 + ], + [ + 105.9060596, + 20.7564826 + ], + [ + 105.9081787, + 20.757046 + ], + [ + 105.9086094, + 20.7576913 + ], + [ + 105.9090742, + 20.7575055 + ], + [ + 105.9092463, + 20.7577856 + ], + [ + 105.9099916, + 20.7574345 + ], + [ + 105.9102252, + 20.7578303 + ], + [ + 105.9104813, + 20.7576774 + ], + [ + 105.9105703, + 20.757818 + ], + [ + 105.9107439, + 20.7577669 + ], + [ + 105.9114069, + 20.7590141 + ], + [ + 105.9118699, + 20.7589788 + ], + [ + 105.9116628, + 20.7593972 + ], + [ + 105.9120516, + 20.7595937 + ], + [ + 105.9116728, + 20.7600404 + ], + [ + 105.9122968, + 20.7606981 + ], + [ + 105.9146969, + 20.7619232 + ], + [ + 105.9156633, + 20.7621468 + ], + [ + 105.9171027, + 20.7629454 + ], + [ + 105.9192926, + 20.7638287 + ], + [ + 105.9158793, + 20.7671082 + ], + [ + 105.9127839, + 20.7716382 + ], + [ + 105.9135316, + 20.772282 + ], + [ + 105.9117621, + 20.7744506 + ], + [ + 105.912046, + 20.7746045 + ], + [ + 105.9117274, + 20.77638 + ], + [ + 105.9123336, + 20.7766761 + ], + [ + 105.9132428, + 20.7805715 + ], + [ + 105.912609, + 20.7822693 + ], + [ + 105.9129921, + 20.7824866 + ], + [ + 105.9125764, + 20.7836528 + ], + [ + 105.9136004, + 20.7839753 + ], + [ + 105.913903, + 20.7830197 + ], + [ + 105.9143837, + 20.7831591 + ], + [ + 105.9142536, + 20.7842211 + ], + [ + 105.913614, + 20.7840998 + ], + [ + 105.9132175, + 20.7855008 + ], + [ + 105.9134023, + 20.7855974 + ], + [ + 105.9132292, + 20.7867381 + ], + [ + 105.9163035, + 20.7885829 + ], + [ + 105.9170772, + 20.7875732 + ], + [ + 105.9173029, + 20.7876903 + ], + [ + 105.9174843, + 20.7874275 + ], + [ + 105.9235666, + 20.7912904 + ], + [ + 105.9217904, + 20.7935532 + ], + [ + 105.918955, + 20.7980636 + ], + [ + 105.9173327, + 20.8016898 + ], + [ + 105.9151487, + 20.8073126 + ], + [ + 105.9126376, + 20.8145544 + ], + [ + 105.9109611, + 20.820299 + ], + [ + 105.9107142, + 20.8249639 + ], + [ + 105.910867, + 20.8290415 + ], + [ + 105.9110864, + 20.8300843 + ], + [ + 105.9127678, + 20.8351027 + ], + [ + 105.9144457, + 20.8387514 + ], + [ + 105.9159814, + 20.8412263 + ], + [ + 105.9168525, + 20.8421182 + ], + [ + 105.9229096, + 20.8460201 + ], + [ + 105.9316077, + 20.84985 + ], + [ + 105.9322345, + 20.8503053 + ], + [ + 105.9332806, + 20.851543 + ], + [ + 105.9340836, + 20.8528793 + ], + [ + 105.9350626, + 20.8549658 + ], + [ + 105.9356239, + 20.8567922 + ], + [ + 105.9361054, + 20.8608634 + ], + [ + 105.9361711, + 20.8636127 + ], + [ + 105.9359849, + 20.8650343 + ], + [ + 105.9355079, + 20.8667326 + ], + [ + 105.9323752, + 20.8726158 + ], + [ + 105.9313097, + 20.8737673 + ], + [ + 105.9303876, + 20.8744598 + ], + [ + 105.9284923, + 20.8754785 + ], + [ + 105.9250846, + 20.8763221 + ], + [ + 105.9243552, + 20.876647 + ], + [ + 105.9204284, + 20.8803346 + ], + [ + 105.915051, + 20.8838571 + ], + [ + 105.9096428, + 20.8867171 + ], + [ + 105.8985559, + 20.8917717 + ], + [ + 105.8971964, + 20.8927413 + ], + [ + 105.8962284, + 20.8939379 + ], + [ + 105.8956999, + 20.8952697 + ], + [ + 105.8953656, + 20.8964629 + ], + [ + 105.8954291, + 20.8989371 + ], + [ + 105.8966667, + 20.9020466 + ], + [ + 105.899158, + 20.9051853 + ], + [ + 105.8963432, + 20.9074619 + ], + [ + 105.8943483, + 20.9087212 + ], + [ + 105.8931104, + 20.9092695 + ], + [ + 105.892394, + 20.9093933 + ], + [ + 105.8919613, + 20.9085009 + ], + [ + 105.8918515, + 20.9078609 + ], + [ + 105.890637, + 20.9079698 + ], + [ + 105.8902268, + 20.9070343 + ], + [ + 105.8896915, + 20.9069993 + ], + [ + 105.8893247, + 20.9059724 + ], + [ + 105.8880324, + 20.9062253 + ], + [ + 105.8886398, + 20.9071045 + ], + [ + 105.8883848, + 20.9073992 + ], + [ + 105.8885392, + 20.9075366 + ], + [ + 105.8881638, + 20.9078361 + ], + [ + 105.888291, + 20.9080731 + ], + [ + 105.8877903, + 20.9083928 + ], + [ + 105.8864666, + 20.9084762 + ], + [ + 105.8832888, + 20.9091583 + ], + [ + 105.8838479, + 20.9098052 + ], + [ + 105.8840288, + 20.9096843 + ], + [ + 105.8843685, + 20.9100674 + ], + [ + 105.8836833, + 20.9105019 + ], + [ + 105.8835371, + 20.9103973 + ], + [ + 105.8833096, + 20.9105513 + ], + [ + 105.8826244, + 20.9092728 + ], + [ + 105.8811055, + 20.9096439 + ], + [ + 105.8813329, + 20.9106639 + ], + [ + 105.8827599, + 20.9104346 + ], + [ + 105.8828564, + 20.910615 + ], + [ + 105.8834465, + 20.9108405 + ], + [ + 105.8836289, + 20.9111161 + ], + [ + 105.8840098, + 20.9108656 + ], + [ + 105.8841492, + 20.9111211 + ], + [ + 105.8839025, + 20.9114118 + ], + [ + 105.8842351, + 20.9116122 + ], + [ + 105.8845146, + 20.9120694 + ], + [ + 105.8839793, + 20.9122313 + ], + [ + 105.8825751, + 20.9122134 + ], + [ + 105.882002, + 20.9119371 + ], + [ + 105.8784389, + 20.911597 + ], + [ + 105.8774549, + 20.9103595 + ], + [ + 105.8764264, + 20.9102519 + ], + [ + 105.8752399, + 20.9063128 + ], + [ + 105.8737927, + 20.9065885 + ], + [ + 105.8737162, + 20.9061876 + ], + [ + 105.8698782, + 20.9075969 + ], + [ + 105.8699706, + 20.9080674 + ], + [ + 105.8696884, + 20.9082293 + ], + [ + 105.8698706, + 20.9086856 + ], + [ + 105.86809, + 20.9096927 + ], + [ + 105.8667312, + 20.907223 + ], + [ + 105.8649514, + 20.9050176 + ], + [ + 105.8643123, + 20.9054652 + ], + [ + 105.8595228, + 20.9070225 + ], + [ + 105.8550396, + 20.9016854 + ], + [ + 105.8536689, + 20.901597 + ], + [ + 105.8542821, + 20.8995128 + ], + [ + 105.8538366, + 20.8994164 + ], + [ + 105.8542413, + 20.8979691 + ], + [ + 105.8539503, + 20.8970205 + ], + [ + 105.85296, + 20.8979457 + ], + [ + 105.8512687, + 20.899146 + ], + [ + 105.8439311, + 20.90139 + ], + [ + 105.8411065, + 20.9020607 + ], + [ + 105.8397065, + 20.9028501 + ], + [ + 105.8400072, + 20.9035853 + ], + [ + 105.8410557, + 20.9085412 + ], + [ + 105.8394603, + 20.9095451 + ], + [ + 105.8384796, + 20.9096711 + ], + [ + 105.8372325, + 20.9091295 + ], + [ + 105.8347098, + 20.9093122 + ], + [ + 105.8345958, + 20.9095323 + ], + [ + 105.8334608, + 20.9092583 + ], + [ + 105.8334818, + 20.9083502 + ], + [ + 105.8331164, + 20.9072924 + ], + [ + 105.8332703, + 20.9061014 + ], + [ + 105.8335703, + 20.905579 + ], + [ + 105.8333008, + 20.9055029 + ], + [ + 105.8334627, + 20.9049045 + ], + [ + 105.8335897, + 20.9048077 + ], + [ + 105.8338127, + 20.9049485 + ], + [ + 105.833979, + 20.9048115 + ], + [ + 105.8337577, + 20.9043031 + ], + [ + 105.8327262, + 20.903445 + ], + [ + 105.8326502, + 20.903037 + ], + [ + 105.8328938, + 20.9015828 + ], + [ + 105.8310248, + 20.9010723 + ], + [ + 105.8305972, + 20.9004041 + ], + [ + 105.8293441, + 20.9008224 + ], + [ + 105.828676, + 20.8997172 + ], + [ + 105.8293599, + 20.8992787 + ], + [ + 105.8303416, + 20.8982673 + ], + [ + 105.8291588, + 20.8976189 + ], + [ + 105.8287091, + 20.8969881 + ], + [ + 105.8272395, + 20.8977295 + ], + [ + 105.8280081, + 20.8989936 + ], + [ + 105.8262416, + 20.8999954 + ], + [ + 105.826189, + 20.9006521 + ], + [ + 105.8255492, + 20.90066 + ], + [ + 105.8251352, + 20.901942 + ], + [ + 105.8249814, + 20.9030104 + ], + [ + 105.823765, + 20.9030398 + ], + [ + 105.8235854, + 20.9032398 + ], + [ + 105.8223519, + 20.9034738 + ], + [ + 105.815652, + 20.9027631 + ], + [ + 105.8160628, + 20.9023 + ], + [ + 105.816212, + 20.9018007 + ], + [ + 105.8159674, + 20.9002457 + ], + [ + 105.8162264, + 20.8995012 + ], + [ + 105.8126726, + 20.898138 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn/hn-unghoa.json b/src/data/boundaries/hn/hn-unghoa.json new file mode 100644 index 0000000..671c033 --- /dev/null +++ b/src/data/boundaries/hn/hn-unghoa.json @@ -0,0 +1,1638 @@ +{ + "type": "Feature", + "properties": { + "code": "HN-UNGHOA", + "name": "Ung Hoa", + "level": "district", + "parent": "HN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 188.8, + "bbox": [ + 105.69662, + 20.61188, + 105.90562, + 20.80969 + ], + "center": [ + 20.7119, + 105.79932 + ], + "generatedAt": "2026-08-30T07:34:20.691Z", + "osm": "relation/7115580" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 105.6966204, + 20.7452732 + ], + [ + 105.6971028, + 20.7424379 + ], + [ + 105.6981628, + 20.7417588 + ], + [ + 105.7014128, + 20.7431495 + ], + [ + 105.7056722, + 20.7429893 + ], + [ + 105.7107616, + 20.742267 + ], + [ + 105.722534, + 20.7394514 + ], + [ + 105.7268839, + 20.7385844 + ], + [ + 105.7296632, + 20.7375571 + ], + [ + 105.7318554, + 20.7357781 + ], + [ + 105.7333824, + 20.7295548 + ], + [ + 105.7327974, + 20.726475 + ], + [ + 105.731129, + 20.7248193 + ], + [ + 105.7305665, + 20.7240097 + ], + [ + 105.730378, + 20.7232739 + ], + [ + 105.7306945, + 20.7224711 + ], + [ + 105.7319567, + 20.7218741 + ], + [ + 105.733592, + 20.7217255 + ], + [ + 105.735369, + 20.7219709 + ], + [ + 105.7405838, + 20.7263056 + ], + [ + 105.743474, + 20.7274187 + ], + [ + 105.749492, + 20.7281488 + ], + [ + 105.7539677, + 20.7283943 + ], + [ + 105.7564517, + 20.7291784 + ], + [ + 105.7598064, + 20.7312788 + ], + [ + 105.7613808, + 20.7312574 + ], + [ + 105.7683594, + 20.7272222 + ], + [ + 105.7705961, + 20.7250695 + ], + [ + 105.7710671, + 20.7238059 + ], + [ + 105.7710308, + 20.7232767 + ], + [ + 105.7707446, + 20.7228274 + ], + [ + 105.7699454, + 20.7224878 + ], + [ + 105.766984, + 20.7219966 + ], + [ + 105.7654346, + 20.7214063 + ], + [ + 105.7636489, + 20.7200323 + ], + [ + 105.7624716, + 20.7183049 + ], + [ + 105.7621203, + 20.7171311 + ], + [ + 105.762073, + 20.7161072 + ], + [ + 105.7629848, + 20.7109848 + ], + [ + 105.7631369, + 20.7075901 + ], + [ + 105.7624411, + 20.70509 + ], + [ + 105.7604782, + 20.701453 + ], + [ + 105.7582052, + 20.6993249 + ], + [ + 105.7560342, + 20.6981742 + ], + [ + 105.7538368, + 20.6976489 + ], + [ + 105.7474672, + 20.6970303 + ], + [ + 105.746037, + 20.6966485 + ], + [ + 105.7450134, + 20.6961878 + ], + [ + 105.7436273, + 20.6952416 + ], + [ + 105.7428376, + 20.694209 + ], + [ + 105.7425576, + 20.6928203 + ], + [ + 105.7426777, + 20.6914915 + ], + [ + 105.7429509, + 20.6906123 + ], + [ + 105.7435852, + 20.6894432 + ], + [ + 105.7455856, + 20.6873655 + ], + [ + 105.7576454, + 20.6784022 + ], + [ + 105.7603598, + 20.6765854 + ], + [ + 105.7686536, + 20.6716188 + ], + [ + 105.7730383, + 20.6681529 + ], + [ + 105.7743072, + 20.6668484 + ], + [ + 105.7765017, + 20.6639304 + ], + [ + 105.7799673, + 20.6614943 + ], + [ + 105.783523, + 20.6582289 + ], + [ + 105.7845533, + 20.6569301 + ], + [ + 105.7868253, + 20.6533626 + ], + [ + 105.7894942, + 20.6495676 + ], + [ + 105.7907443, + 20.6481091 + ], + [ + 105.7921225, + 20.6468184 + ], + [ + 105.7934993, + 20.6458239 + ], + [ + 105.7950476, + 20.6449813 + ], + [ + 105.8007458, + 20.6428959 + ], + [ + 105.8015648, + 20.6423107 + ], + [ + 105.8022813, + 20.641485 + ], + [ + 105.8031008, + 20.6398872 + ], + [ + 105.8035678, + 20.6381973 + ], + [ + 105.8036501, + 20.636226 + ], + [ + 105.8032953, + 20.6348083 + ], + [ + 105.8026841, + 20.6336981 + ], + [ + 105.8018925, + 20.6327943 + ], + [ + 105.7979001, + 20.629589 + ], + [ + 105.7954769, + 20.6281866 + ], + [ + 105.7932598, + 20.627597 + ], + [ + 105.7911086, + 20.6274351 + ], + [ + 105.7837005, + 20.6274148 + ], + [ + 105.7808249, + 20.6270254 + ], + [ + 105.7792597, + 20.6265616 + ], + [ + 105.7782309, + 20.6260442 + ], + [ + 105.777437, + 20.6253776 + ], + [ + 105.7769962, + 20.6246323 + ], + [ + 105.7770109, + 20.624149 + ], + [ + 105.7773334, + 20.6236122 + ], + [ + 105.7779378, + 20.623257 + ], + [ + 105.7794652, + 20.6228114 + ], + [ + 105.7805365, + 20.6221269 + ], + [ + 105.781781, + 20.6209657 + ], + [ + 105.783191, + 20.6192376 + ], + [ + 105.7840276, + 20.618566 + ], + [ + 105.7858522, + 20.6176721 + ], + [ + 105.7889843, + 20.6167521 + ], + [ + 105.7916177, + 20.6157021 + ], + [ + 105.7930529, + 20.6148778 + ], + [ + 105.795443, + 20.6128321 + ], + [ + 105.7964755, + 20.612238 + ], + [ + 105.7987368, + 20.6118782 + ], + [ + 105.8007213, + 20.6119879 + ], + [ + 105.8020572, + 20.6122693 + ], + [ + 105.8037444, + 20.6131626 + ], + [ + 105.8042709, + 20.6148731 + ], + [ + 105.8050561, + 20.6159753 + ], + [ + 105.8063107, + 20.6169974 + ], + [ + 105.8078598, + 20.6178984 + ], + [ + 105.8109677, + 20.6189271 + ], + [ + 105.8118711, + 20.6189169 + ], + [ + 105.8126518, + 20.6185362 + ], + [ + 105.8140046, + 20.618935 + ], + [ + 105.814814, + 20.618556 + ], + [ + 105.8149511, + 20.6190269 + ], + [ + 105.8148532, + 20.6195401 + ], + [ + 105.8145355, + 20.6201301 + ], + [ + 105.8136569, + 20.6210565 + ], + [ + 105.8136873, + 20.6216406 + ], + [ + 105.8132745, + 20.6223777 + ], + [ + 105.8133798, + 20.6238637 + ], + [ + 105.8144814, + 20.6243699 + ], + [ + 105.8147711, + 20.624872 + ], + [ + 105.8131276, + 20.6252096 + ], + [ + 105.8131761, + 20.6259356 + ], + [ + 105.8120827, + 20.6257988 + ], + [ + 105.8117613, + 20.6281946 + ], + [ + 105.8110696, + 20.6281153 + ], + [ + 105.8113413, + 20.629447 + ], + [ + 105.8129525, + 20.632473 + ], + [ + 105.8132851, + 20.6334118 + ], + [ + 105.8136568, + 20.6333655 + ], + [ + 105.8182312, + 20.636958 + ], + [ + 105.8194783, + 20.6378149 + ], + [ + 105.8206701, + 20.6383643 + ], + [ + 105.8207094, + 20.6385701 + ], + [ + 105.8265352, + 20.6414491 + ], + [ + 105.8307451, + 20.6438871 + ], + [ + 105.8326449, + 20.6454293 + ], + [ + 105.8336052, + 20.6469761 + ], + [ + 105.8340482, + 20.6481319 + ], + [ + 105.8338791, + 20.6488786 + ], + [ + 105.8333355, + 20.6496535 + ], + [ + 105.8309612, + 20.6507567 + ], + [ + 105.8281483, + 20.6517789 + ], + [ + 105.8264923, + 20.652784 + ], + [ + 105.8252799, + 20.6538682 + ], + [ + 105.822554, + 20.65762 + ], + [ + 105.819506, + 20.66082 + ], + [ + 105.8199021, + 20.6610511 + ], + [ + 105.819827, + 20.6611641 + ], + [ + 105.8218899, + 20.6621541 + ], + [ + 105.8230116, + 20.6620581 + ], + [ + 105.8230624, + 20.6644749 + ], + [ + 105.8261543, + 20.6638319 + ], + [ + 105.8262046, + 20.6642056 + ], + [ + 105.8288535, + 20.663399 + ], + [ + 105.8287185, + 20.6628832 + ], + [ + 105.8312882, + 20.6622096 + ], + [ + 105.8311111, + 20.661533 + ], + [ + 105.8333266, + 20.6605743 + ], + [ + 105.8337925, + 20.6616656 + ], + [ + 105.8395332, + 20.6595704 + ], + [ + 105.8394688, + 20.6593596 + ], + [ + 105.840491, + 20.6590594 + ], + [ + 105.8403593, + 20.6585514 + ], + [ + 105.8406115, + 20.658446 + ], + [ + 105.8402306, + 20.6571661 + ], + [ + 105.8429772, + 20.6559815 + ], + [ + 105.8430684, + 20.6561822 + ], + [ + 105.8450854, + 20.6547316 + ], + [ + 105.8459866, + 20.6542597 + ], + [ + 105.8483577, + 20.6524727 + ], + [ + 105.8491983, + 20.6532324 + ], + [ + 105.8506634, + 20.6508221 + ], + [ + 105.852147, + 20.6488712 + ], + [ + 105.8548767, + 20.6461796 + ], + [ + 105.8556349, + 20.645736 + ], + [ + 105.8579283, + 20.6449094 + ], + [ + 105.8608144, + 20.6446232 + ], + [ + 105.8620064, + 20.6446316 + ], + [ + 105.8649581, + 20.6453223 + ], + [ + 105.8664201, + 20.64534 + ], + [ + 105.8689895, + 20.6448108 + ], + [ + 105.8715687, + 20.6438075 + ], + [ + 105.8733918, + 20.6433399 + ], + [ + 105.877024, + 20.6430066 + ], + [ + 105.8799261, + 20.6432292 + ], + [ + 105.8856456, + 20.6452149 + ], + [ + 105.8894815, + 20.6471158 + ], + [ + 105.8925506, + 20.6488988 + ], + [ + 105.8960653, + 20.6518419 + ], + [ + 105.8960416, + 20.6617849 + ], + [ + 105.8957503, + 20.6638298 + ], + [ + 105.8957057, + 20.6656884 + ], + [ + 105.8961211, + 20.668914 + ], + [ + 105.8978535, + 20.6686765 + ], + [ + 105.8987897, + 20.6681498 + ], + [ + 105.8997735, + 20.6675094 + ], + [ + 105.9034045, + 20.6645441 + ], + [ + 105.9056175, + 20.6646676 + ], + [ + 105.9054072, + 20.6684059 + ], + [ + 105.9045153, + 20.6703911 + ], + [ + 105.9013077, + 20.6724103 + ], + [ + 105.8971711, + 20.6743688 + ], + [ + 105.8967311, + 20.6744048 + ], + [ + 105.8947326, + 20.6756145 + ], + [ + 105.8939495, + 20.6799087 + ], + [ + 105.8934437, + 20.6791825 + ], + [ + 105.8885545, + 20.6764019 + ], + [ + 105.8861825, + 20.675683 + ], + [ + 105.8855863, + 20.6792025 + ], + [ + 105.8833796, + 20.6779436 + ], + [ + 105.882401, + 20.6853927 + ], + [ + 105.8841956, + 20.6856735 + ], + [ + 105.8842997, + 20.6880856 + ], + [ + 105.885399, + 20.6904319 + ], + [ + 105.88615, + 20.6914857 + ], + [ + 105.886842, + 20.6907831 + ], + [ + 105.8874659, + 20.6906306 + ], + [ + 105.8891961, + 20.6910639 + ], + [ + 105.8921893, + 20.6921339 + ], + [ + 105.8914484, + 20.6934633 + ], + [ + 105.8905392, + 20.6930509 + ], + [ + 105.889237, + 20.6921227 + ], + [ + 105.8890731, + 20.6931711 + ], + [ + 105.8884299, + 20.69332 + ], + [ + 105.8877253, + 20.6957013 + ], + [ + 105.8871745, + 20.6958948 + ], + [ + 105.887447, + 20.6964248 + ], + [ + 105.876972, + 20.7024524 + ], + [ + 105.8774332, + 20.7032012 + ], + [ + 105.8753098, + 20.7042777 + ], + [ + 105.8755076, + 20.7047468 + ], + [ + 105.8748072, + 20.7049763 + ], + [ + 105.8746072, + 20.7049656 + ], + [ + 105.8744609, + 20.7046939 + ], + [ + 105.8720895, + 20.7059038 + ], + [ + 105.8726661, + 20.7068757 + ], + [ + 105.8722268, + 20.7070596 + ], + [ + 105.8735301, + 20.709978 + ], + [ + 105.8723835, + 20.709603 + ], + [ + 105.8703663, + 20.7092269 + ], + [ + 105.868755, + 20.7093487 + ], + [ + 105.8675393, + 20.7098687 + ], + [ + 105.8637173, + 20.7141422 + ], + [ + 105.8600781, + 20.7149635 + ], + [ + 105.8601862, + 20.7185074 + ], + [ + 105.8588819, + 20.7164878 + ], + [ + 105.8586339, + 20.7164327 + ], + [ + 105.8580244, + 20.7171526 + ], + [ + 105.8591808, + 20.7191346 + ], + [ + 105.8554403, + 20.7210048 + ], + [ + 105.8548528, + 20.7217655 + ], + [ + 105.8573672, + 20.7250519 + ], + [ + 105.8543984, + 20.7315829 + ], + [ + 105.852838, + 20.7316095 + ], + [ + 105.8529752, + 20.7323432 + ], + [ + 105.849606, + 20.7328341 + ], + [ + 105.8505427, + 20.7376966 + ], + [ + 105.848248, + 20.7376676 + ], + [ + 105.8459651, + 20.7370401 + ], + [ + 105.8456044, + 20.7411541 + ], + [ + 105.8448846, + 20.7410944 + ], + [ + 105.8440076, + 20.7417816 + ], + [ + 105.8427569, + 20.7411728 + ], + [ + 105.8428334, + 20.7407474 + ], + [ + 105.8367981, + 20.7398846 + ], + [ + 105.8367446, + 20.7406306 + ], + [ + 105.8341409, + 20.7401762 + ], + [ + 105.83186, + 20.7394999 + ], + [ + 105.831931, + 20.7391558 + ], + [ + 105.8303101, + 20.7389239 + ], + [ + 105.8302169, + 20.7387699 + ], + [ + 105.8263076, + 20.7371107 + ], + [ + 105.8248136, + 20.7378335 + ], + [ + 105.8252551, + 20.7381556 + ], + [ + 105.8255172, + 20.7389261 + ], + [ + 105.8220012, + 20.7416705 + ], + [ + 105.8204767, + 20.7391756 + ], + [ + 105.8152832, + 20.7417477 + ], + [ + 105.8154686, + 20.7420779 + ], + [ + 105.8137099, + 20.743293 + ], + [ + 105.8136893, + 20.7438592 + ], + [ + 105.8138588, + 20.7441558 + ], + [ + 105.8131604, + 20.7445883 + ], + [ + 105.8132535, + 20.7447533 + ], + [ + 105.8111787, + 20.746021 + ], + [ + 105.8099654, + 20.7444595 + ], + [ + 105.8082744, + 20.7452963 + ], + [ + 105.8069131, + 20.7463162 + ], + [ + 105.8033271, + 20.75066 + ], + [ + 105.798498, + 20.7493263 + ], + [ + 105.7947068, + 20.7494707 + ], + [ + 105.794692, + 20.7506804 + ], + [ + 105.7939748, + 20.7505532 + ], + [ + 105.7939766, + 20.7494906 + ], + [ + 105.7937805, + 20.7494462 + ], + [ + 105.793574, + 20.7504236 + ], + [ + 105.7939511, + 20.7576339 + ], + [ + 105.7937726, + 20.7589327 + ], + [ + 105.7923109, + 20.7586372 + ], + [ + 105.7920742, + 20.7599143 + ], + [ + 105.7922134, + 20.7599646 + ], + [ + 105.7921087, + 20.7615278 + ], + [ + 105.7918016, + 20.7614232 + ], + [ + 105.7921036, + 20.7625957 + ], + [ + 105.7960936, + 20.7616554 + ], + [ + 105.7972138, + 20.765753 + ], + [ + 105.7980581, + 20.7658985 + ], + [ + 105.7996298, + 20.7714926 + ], + [ + 105.8002862, + 20.7711412 + ], + [ + 105.8003695, + 20.7707208 + ], + [ + 105.8035886, + 20.7713625 + ], + [ + 105.8034213, + 20.7752983 + ], + [ + 105.8054094, + 20.7757131 + ], + [ + 105.8045476, + 20.7787753 + ], + [ + 105.802789, + 20.7784894 + ], + [ + 105.8026106, + 20.7796047 + ], + [ + 105.8049443, + 20.7796027 + ], + [ + 105.805991, + 20.7799355 + ], + [ + 105.8066395, + 20.7803322 + ], + [ + 105.7959196, + 20.7832546 + ], + [ + 105.7908801, + 20.7862511 + ], + [ + 105.7889072, + 20.7881122 + ], + [ + 105.7883513, + 20.7893253 + ], + [ + 105.7880926, + 20.7892166 + ], + [ + 105.7871148, + 20.7894357 + ], + [ + 105.7857253, + 20.7890306 + ], + [ + 105.7852238, + 20.7903434 + ], + [ + 105.7846552, + 20.7911458 + ], + [ + 105.7845399, + 20.7917301 + ], + [ + 105.7823743, + 20.7913398 + ], + [ + 105.7814497, + 20.7894597 + ], + [ + 105.7807614, + 20.78936 + ], + [ + 105.7801709, + 20.788728 + ], + [ + 105.7784861, + 20.7902506 + ], + [ + 105.7768437, + 20.7905413 + ], + [ + 105.7761757, + 20.7879792 + ], + [ + 105.7685329, + 20.7881257 + ], + [ + 105.7667825, + 20.7829583 + ], + [ + 105.766547, + 20.7831302 + ], + [ + 105.7659452, + 20.7824774 + ], + [ + 105.7644723, + 20.7836405 + ], + [ + 105.7649584, + 20.7843246 + ], + [ + 105.7636374, + 20.7854667 + ], + [ + 105.7644652, + 20.7866702 + ], + [ + 105.7632537, + 20.787293 + ], + [ + 105.7636017, + 20.7879772 + ], + [ + 105.7594664, + 20.7901749 + ], + [ + 105.7572897, + 20.7873248 + ], + [ + 105.7544572, + 20.7914584 + ], + [ + 105.7530045, + 20.790353 + ], + [ + 105.7513155, + 20.792677 + ], + [ + 105.7488492, + 20.7914053 + ], + [ + 105.7484132, + 20.7919257 + ], + [ + 105.7464337, + 20.7904512 + ], + [ + 105.7453424, + 20.7889165 + ], + [ + 105.7413539, + 20.7913757 + ], + [ + 105.7414867, + 20.7920172 + ], + [ + 105.7383288, + 20.7932914 + ], + [ + 105.7391817, + 20.7969715 + ], + [ + 105.738371, + 20.7978985 + ], + [ + 105.7381868, + 20.8007163 + ], + [ + 105.7360375, + 20.8056864 + ], + [ + 105.7360948, + 20.8063202 + ], + [ + 105.7358175, + 20.8069576 + ], + [ + 105.7358415, + 20.808908 + ], + [ + 105.7331069, + 20.8093808 + ], + [ + 105.7305631, + 20.8084878 + ], + [ + 105.7272462, + 20.8076149 + ], + [ + 105.724333, + 20.8076248 + ], + [ + 105.7161223, + 20.8083061 + ], + [ + 105.7090912, + 20.8096948 + ], + [ + 105.7081585, + 20.8077649 + ], + [ + 105.7064229, + 20.8030417 + ], + [ + 105.7052345, + 20.7992566 + ], + [ + 105.7053647, + 20.7985356 + ], + [ + 105.7056779, + 20.7979212 + ], + [ + 105.7095521, + 20.7927105 + ], + [ + 105.7140794, + 20.788058 + ], + [ + 105.7155102, + 20.7850073 + ], + [ + 105.716942, + 20.7831432 + ], + [ + 105.7190103, + 20.7815318 + ], + [ + 105.7236786, + 20.7789716 + ], + [ + 105.7254135, + 20.7775238 + ], + [ + 105.7263068, + 20.7752 + ], + [ + 105.7263333, + 20.7728948 + ], + [ + 105.7252066, + 20.7698414 + ], + [ + 105.7237915, + 20.7676918 + ], + [ + 105.7154294, + 20.7580263 + ], + [ + 105.7143652, + 20.7568463 + ], + [ + 105.7131261, + 20.7558129 + ], + [ + 105.7098323, + 20.7534904 + ], + [ + 105.7069715, + 20.7521399 + ], + [ + 105.7053155, + 20.7515791 + ], + [ + 105.6984557, + 20.7515632 + ], + [ + 105.6974887, + 20.7510372 + ], + [ + 105.6967668, + 20.7490981 + ], + [ + 105.6966204, + 20.7452732 + ] + ] + ] + } +} diff --git a/src/data/boundaries/hn.json b/src/data/boundaries/hn/hn.json similarity index 66% rename from src/data/boundaries/hn.json rename to src/data/boundaries/hn/hn.json index 1665331..ead27cd 100644 --- a/src/data/boundaries/hn.json +++ b/src/data/boundaries/hn/hn.json @@ -3,10 +3,10 @@ "properties": { "code": "HN", "name": "Ha Noi", - "basis": "pre-2025-merger extent, unioned from OSM boundary/historic relations", - "parts": 1, - "missingParts": 0, - "areaKm2": 3363.1, + "level": "province", + "parent": "VN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 3363, "bbox": [ 105.28896, 20.56452, @@ -14,10 +14,12 @@ 21.38542 ], "center": [ - 20.99862, - 105.70059 + 21.0285, + 105.8542 ], - "generatedAt": "2026-08-30T04:02:10.736Z" + "generatedAt": "2026-08-30T07:36:51.605Z", + "parts": 30, + "missingParts": 0 }, "geometry": { "type": "Polygon", @@ -344,8 +346,12 @@ 20.9533159 ], [ - 105.461064, - 20.9469793 + 105.4579206, + 20.9500776 + ], + [ + 105.4596272, + 20.9477074 ], [ 105.466012, @@ -356,20 +362,8 @@ 20.9486082 ], [ - 105.4782027, - 20.9487148 - ], - [ - 105.4806345, - 20.9469949 - ], - [ - 105.4808336, - 20.9459506 - ], - [ - 105.4840001, - 20.9433346 + 105.4786379, + 20.9488681 ], [ 105.487851, @@ -516,32 +510,32 @@ 20.9093269 ], [ - 105.5599121, - 20.9097901 + 105.5601647, + 20.9098813 ], [ 105.5579179, 20.9081797 ], [ - 105.560289, - 20.905846 + 105.5600032, + 20.9055552 ], [ 105.5575742, 20.9070302 ], [ - 105.5558198, - 20.905326 + 105.5564558, + 20.9063205 ], [ - 105.5561847, - 20.9040305 + 105.5554955, + 20.9047452 ], [ - 105.5596043, - 20.9019367 + 105.5592037, + 20.9023109 ], [ 105.5593013, @@ -588,8 +582,8 @@ 20.879681 ], [ - 105.5564755, - 20.8795511 + 105.5563885, + 20.8795334 ], [ 105.5592755, @@ -700,36 +694,36 @@ 20.8442807 ], [ - 105.5879505, - 20.8457633 + 105.5874738, + 20.8456217 ], [ - 105.5881377, - 20.8448847 + 105.5881574, + 20.8450639 ], [ 105.587107, 20.8443506 ], [ - 105.5872927, - 20.8431316 + 105.5874073, + 20.8432209 ], [ 105.5852803, 20.842784 ], [ - 105.5852026, - 20.8419219 + 105.5861833, + 20.8406644 ], [ - 105.5863464, - 20.8410187 + 105.5835997, + 20.8387954 ], [ - 105.585295, - 20.8396637 + 105.5834556, + 20.8377915 ], [ 105.580354, @@ -992,8 +986,8 @@ 20.8140193 ], [ - 105.6322802, - 20.8139163 + 105.632337, + 20.8137432 ], [ 105.6319444, @@ -1016,8 +1010,12 @@ 20.803021 ], [ - 105.6346882, - 20.8020195 + 105.6346236, + 20.8022996 + ], + [ + 105.634845, + 20.8006969 ], [ 105.6331594, @@ -1040,8 +1038,12 @@ 20.7936242 ], [ - 105.6416845, - 20.7919084 + 105.6408212, + 20.7927326 + ], + [ + 105.6414916, + 20.791901 ], [ 105.6420866, @@ -1460,8 +1462,8 @@ 20.5984527 ], [ - 105.7419886, - 20.599462 + 105.7416502, + 20.5995783 ], [ 105.7443228, @@ -1508,8 +1510,8 @@ 20.5665559 ], [ - 105.7946422, - 20.567375 + 105.7949155, + 20.567482 ], [ 105.7963131, @@ -1552,28 +1554,32 @@ 20.6044403 ], [ - 105.8073399, - 20.6065107 + 105.8080912, + 20.6058644 ], [ 105.8055992, 20.6099323 ], [ - 105.8064706, - 20.611782 + 105.8076394, + 20.6128185 ], [ - 105.8122273, - 20.6160695 + 105.8119324, + 20.6157362 + ], + [ + 105.8128563, + 20.6170778 ], [ 105.8126518, 20.6185362 ], [ - 105.8149123, - 20.6187826 + 105.814814, + 20.618556 ], [ 105.8132745, @@ -1608,24 +1614,24 @@ 20.6385701 ], [ - 105.831553, - 20.6444278 + 105.8307451, + 20.6438871 ], [ - 105.8338921, - 20.647597 + 105.8336052, + 20.6469761 + ], + [ + 105.8340482, + 20.6481319 ], [ 105.8333355, 20.6496535 ], [ - 105.8281483, - 20.6517789 - ], - [ - 105.8252799, - 20.6538682 + 105.8264923, + 20.652784 ], [ 105.819506, @@ -1684,12 +1690,12 @@ 20.6532324 ], [ - 105.8528832, - 20.648064 + 105.852147, + 20.6488712 ], [ - 105.8567633, - 20.6452963 + 105.8556349, + 20.645736 ], [ 105.8608144, @@ -1704,8 +1710,8 @@ 20.6433399 ], [ - 105.8784859, - 20.6430242 + 105.8799261, + 20.6432292 ], [ 105.8894815, @@ -1932,8 +1938,8 @@ 20.7732365 ], [ - 105.9640389, - 20.776736 + 105.9632078, + 20.7774562 ], [ 105.960296, @@ -2004,20 +2010,20 @@ 20.8567922 ], [ - 105.936212, - 20.8623293 + 105.9361711, + 20.8636127 ], [ 105.9355079, 20.8667326 ], [ - 105.9313097, - 20.8737673 + 105.9323752, + 20.8726158 ], [ - 105.9284923, - 20.8754785 + 105.9303876, + 20.8744598 ], [ 105.9243552, @@ -2028,20 +2034,20 @@ 20.8803346 ], [ - 105.9147193, - 20.8840407 + 105.915051, + 20.8838571 ], [ - 105.8985559, - 20.8917717 + 105.8971964, + 20.8927413 ], [ - 105.8962284, - 20.8939379 + 105.8956999, + 20.8952697 ], [ - 105.8953248, - 20.8977921 + 105.8954291, + 20.8989371 ], [ 105.8966667, @@ -2823,6 +2829,10 @@ 105.9070493, 21.1924157 ], + [ + 105.9070071, + 21.1908258 + ], [ 105.9070701, 21.1967699 @@ -2836,48 +2846,36 @@ 21.2030451 ], [ - 105.909839, - 21.2069687 + 105.9104972, + 21.2055991 ], [ - 105.9116811, - 21.2080796 + 105.9098676, + 21.2071615 ], [ 105.9155324, 21.2084588 ], [ - 105.9154601, - 21.2150521 + 105.9155183, + 21.2142377 ], [ - 105.9146272, - 21.2182806 + 105.9144129, + 21.2185795 ], [ - 105.9119506, - 21.2213089 + 105.9100428, + 21.2249216 ], [ - 105.9104665, - 21.224588 + 105.9054912, + 21.222443 ], [ - 105.909428, - 21.2249977 - ], - [ - 105.9048948, - 21.222478 - ], - [ - 105.9039883, - 21.2234308 - ], - [ - 105.9040647, - 21.2257253 + 105.9039253, + 21.2238576 ], [ 105.9043102, @@ -2896,8 +2894,8 @@ 21.2305675 ], [ - 105.9067771, - 21.2322042 + 105.9068259, + 21.2322261 ], [ 105.9092226, @@ -2968,8 +2966,8 @@ 21.2433987 ], [ - 105.9389124, - 21.2451239 + 105.9386289, + 21.2445038 ], [ 105.9383145, @@ -3000,12 +2998,16 @@ 21.290374 ], [ - 105.9306713, - 21.2913517 + 105.931158, + 21.2917665 ], [ - 105.9317335, - 21.2939953 + 105.9318462, + 21.2934503 + ], + [ + 105.931523, + 21.2943776 ], [ 105.929708, @@ -3076,8 +3078,8 @@ 21.3297968 ], [ - 105.8689221, - 21.3273039 + 105.8692523, + 21.3274655 ], [ 105.8670669, @@ -3096,28 +3098,28 @@ 21.3380043 ], [ - 105.8584802, - 21.3383335 + 105.8589499, + 21.3380695 ], [ 105.8558782, 21.3424493 ], [ - 105.8563967, - 21.3455935 + 105.8565027, + 21.345647 ], [ - 105.8590275, - 21.3448045 + 105.8580659, + 21.3448545 ], [ - 105.8590995, - 21.3455977 + 105.8592231, + 21.3453536 ], [ - 105.8524829, - 21.3491028 + 105.8524548, + 21.3492472 ], [ 105.852579, @@ -3132,8 +3134,8 @@ 21.3555723 ], [ - 105.8516559, - 21.3574835 + 105.8517245, + 21.3576905 ], [ 105.8531169, @@ -3152,20 +3154,20 @@ 21.3716819 ], [ - 105.8587383, - 21.3744618 + 105.8587062, + 21.3738849 ], [ - 105.8571313, - 21.3760479 + 105.8582908, + 21.3752486 ], [ 105.8555854, 21.3765517 ], [ - 105.8493484, - 21.3744014 + 105.849185, + 21.3744203 ], [ 105.8471703, @@ -3368,16 +3370,16 @@ 21.3353936 ], [ - 105.7732488, - 21.3313923 + 105.7736327, + 21.3323157 ], [ 105.7718613, 21.3253443 ], [ - 105.7679551, - 21.3187571 + 105.7687041, + 21.3197537 ], [ 105.7625269, @@ -3452,12 +3454,8 @@ 21.2903282 ], [ - 105.7413126, - 21.2910279 - ], - [ - 105.7406629, - 21.2904243 + 105.7407796, + 21.2906621 ], [ 105.7423881, @@ -3544,8 +3542,8 @@ 21.2575906 ], [ - 105.7233396, - 21.2512807 + 105.7232872, + 21.2514475 ], [ 105.7263477, @@ -3576,8 +3574,8 @@ 21.2417201 ], [ - 105.7362608, - 21.2398676 + 105.7360026, + 21.2403989 ], [ 105.7374466, @@ -3588,16 +3586,16 @@ 21.2354807 ], [ - 105.7302211, - 21.238517 + 105.7301554, + 21.2384154 ], [ - 105.7328076, - 21.2339985 + 105.7330239, + 21.2337732 ], [ - 105.7346389, - 21.2331355 + 105.73458247436857, + 21.233074042665333 ], [ 105.7296205, @@ -3836,36 +3834,56 @@ 21.2154431 ], [ - 105.6382461, - 21.2178007 - ], - [ - 105.6359567, - 21.2174108 + 105.6365466, + 21.2177765 ], [ 105.6355607, 21.2164607 ], - [ - 105.6363331, - 21.2149716 - ], [ 105.6392765, 21.2119543 ], [ - 105.6395798, - 21.207931 + 105.639501, + 21.2076368 ], [ - 105.6389676, - 21.2072723 + 105.6385136, + 21.2072098 ], [ - 105.6310455, - 21.2089363 + 105.6358035, + 21.2080132 + ], + [ + 105.6353973, + 21.2067356 + ], + [ + 105.6326539, + 21.2051941 + ], + [ + 105.632295, + 21.2056009 + ], + [ + 105.633795, + 21.2073417 + ], + [ + 105.6316962, + 21.2069958 + ], + [ + 105.6326492, + 21.2085876 + ], + [ + 105.630627, + 21.2091205 ], [ 105.6288701, @@ -4104,8 +4122,8 @@ 21.2741139 ], [ - 105.4261718, - 21.2791347 + 105.4270895, + 21.2782561 ], [ 105.4116546, @@ -4215,6 +4233,1716 @@ 105.2889615, 21.1570007 ] + ], + [ + [ + 105.9045153, + 20.6703911 + ], + [ + 105.9013077, + 20.6724103 + ], + [ + 105.9037136, + 20.6710106 + ], + [ + 105.9045153, + 20.6703911 + ] + ], + [ + [ + 105.9054072, + 20.6684059 + ], + [ + 105.9045153, + 20.6703911 + ], + [ + 105.9048443, + 20.6698957 + ], + [ + 105.9054072, + 20.6684059 + ] + ], + [ + [ + 105.5005289, + 21.0983369 + ], + [ + 105.5007357, + 21.0978749 + ], + [ + 105.5005377, + 21.0981156 + ], + [ + 105.5005289, + 21.0983369 + ] + ], + [ + [ + 105.501183, + 21.0962703 + ], + [ + 105.50191932138556, + 21.096602653604364 + ], + [ + 105.5019212, + 21.0965414 + ], + [ + 105.501183, + 21.0962703 + ] + ], + [ + [ + 105.50130508338711, + 21.09582489687341 + ], + [ + 105.5017856, + 21.095696 + ], + [ + 105.5013195, + 21.0957723 + ], + [ + 105.50130508338711, + 21.09582489687341 + ] + ], + [ + [ + 105.50503941026327, + 21.095467557260637 + ], + [ + 105.505634846454, + 21.095627005413824 + ], + [ + 105.5055139, + 21.0955442 + ], + [ + 105.50503941026327, + 21.095467557260637 + ] + ], + [ + [ + 105.5072805, + 21.0974539 + ], + [ + 105.50734037245871, + 21.09753407483239 + ], + [ + 105.50743856750776, + 21.09706490998628 + ], + [ + 105.5072805, + 21.0974539 + ] + ], + [ + [ + 105.5074062, + 21.0964688 + ], + [ + 105.50749322802682, + 21.096803748204056 + ], + [ + 105.5075329, + 21.0966142 + ], + [ + 105.5074062, + 21.0964688 + ] + ], + [ + [ + 105.5075409, + 21.0978026 + ], + [ + 105.507892, + 21.0978109 + ], + [ + 105.5082038, + 21.0976608 + ], + [ + 105.5075409, + 21.0978026 + ] + ], + [ + [ + 105.51700040208893, + 21.03292887963967 + ], + [ + 105.51713152991454, + 21.033004728087818 + ], + [ + 105.5170858, + 21.0329203 + ], + [ + 105.51700040208893, + 21.03292887963967 + ] + ], + [ + [ + 105.51723397824328, + 21.033193871596726 + ], + [ + 105.5173558, + 21.0348189 + ], + [ + 105.5172796, + 21.0332781 + ], + [ + 105.51723397824328, + 21.033193871596726 + ] + ], + [ + [ + 105.5235431, + 21.0843184 + ], + [ + 105.52391615267612, + 21.083878938198325 + ], + [ + 105.5237709, + 21.0839946 + ], + [ + 105.5235431, + 21.0843184 + ] + ], + [ + [ + 105.5241823, + 21.0889879 + ], + [ + 105.5252402, + 21.0894007 + ], + [ + 105.52495, + 21.0892782 + ], + [ + 105.5241823, + 21.0889879 + ] + ], + [ + [ + 105.5260314, + 21.0420767 + ], + [ + 105.5265715, + 21.0432227 + ], + [ + 105.5267831, + 21.0434175 + ], + [ + 105.5260314, + 21.0420767 + ] + ], + [ + [ + 105.52934187504289, + 21.04480242246813 + ], + [ + 105.5295526, + 21.0446402 + ], + [ + 105.52950439816276, + 21.04457967166211 + ], + [ + 105.52934187504289, + 21.04480242246813 + ] + ], + [ + [ + 105.5314934, + 21.0520068 + ], + [ + 105.5315984, + 21.0521646 + ], + [ + 105.53186723635673, + 21.052299607786804 + ], + [ + 105.5314934, + 21.0520068 + ] + ], + [ + [ + 105.6232142, + 21.1351267 + ], + [ + 105.6234883, + 21.1341216 + ], + [ + 105.6232383, + 21.1346898 + ], + [ + 105.6232142, + 21.1351267 + ] + ], + [ + [ + 105.62422069898406, + 21.064895986346425 + ], + [ + 105.6246968, + 21.0646416 + ], + [ + 105.62688132678873, + 21.062804608727546 + ], + [ + 105.62422069898406, + 21.064895986346425 + ] + ], + [ + [ + 105.6321143, + 21.0484621 + ], + [ + 105.634662, + 21.0443423 + ], + [ + 105.6348051, + 21.0440513 + ], + [ + 105.6321143, + 21.0484621 + ] + ], + [ + [ + 105.644736, + 21.0853553 + ], + [ + 105.64480307660054, + 21.08563486188613 + ], + [ + 105.644816, + 21.0846963 + ], + [ + 105.644736, + 21.0853553 + ] + ], + [ + [ + 105.645676, + 21.0833093 + ], + [ + 105.645715, + 21.0828633 + ], + [ + 105.64568492352066, + 21.082606126571513 + ], + [ + 105.645676, + 21.0833093 + ] + ], + [ + [ + 105.646148, + 21.0630063 + ], + [ + 105.6462651, + 21.0633146 + ], + [ + 105.64616697418327, + 21.062793394878625 + ], + [ + 105.646148, + 21.0630063 + ] + ], + [ + [ + 105.64618845902777, + 21.062552318181915 + ], + [ + 105.647054, + 21.0597343 + ], + [ + 105.646225, + 21.0621423 + ], + [ + 105.64618845902777, + 21.062552318181915 + ] + ], + [ + [ + 105.646589, + 21.0700493 + ], + [ + 105.64789409581594, + 21.069085524252152 + ], + [ + 105.647143, + 21.0695243 + ], + [ + 105.646589, + 21.0700493 + ] + ], + [ + [ + 105.65037823320674, + 21.068239056842074 + ], + [ + 105.651964, + 21.0681883 + ], + [ + 105.650995, + 21.0681333 + ], + [ + 105.65037823320674, + 21.068239056842074 + ] + ], + [ + [ + 105.66354993171838, + 21.066276810895886 + ], + [ + 105.6636599, + 21.0661423 + ], + [ + 105.6645363, + 21.0645686 + ], + [ + 105.66354993171838, + 21.066276810895886 + ] + ], + [ + [ + 105.6649137, + 21.0622934 + ], + [ + 105.66491462256498, + 21.0628279199575 + ], + [ + 105.6649564, + 21.0626357 + ], + [ + 105.6649137, + 21.0622934 + ] + ], + [ + [ + 105.69372, + 20.8125906 + ], + [ + 105.6949085, + 20.814231 + ], + [ + 105.6941043, + 20.8129769 + ], + [ + 105.69372, + 20.8125906 + ] + ], + [ + [ + 105.7052345, + 20.7992566 + ], + [ + 105.7053404124402, + 20.798670095626907 + ], + [ + 105.7052565, + 20.7988563 + ], + [ + 105.7052345, + 20.7992566 + ] + ], + [ + [ + 105.705286, + 20.9323083 + ], + [ + 105.705286, + 20.932450568977675 + ], + [ + 105.7053362, + 20.9321102 + ], + [ + 105.705286, + 20.9323083 + ] + ], + [ + [ + 105.7076963, + 20.8174956 + ], + [ + 105.7092662, + 20.815247 + ], + [ + 105.70937201769318, + 20.814955486666232 + ], + [ + 105.7076963, + 20.8174956 + ] + ], + [ + [ + 105.708344, + 20.972364 + ], + [ + 105.710031, + 20.97104 + ], + [ + 105.710826, + 20.970342 + ], + [ + 105.708344, + 20.972364 + ] + ], + [ + [ + 105.7225675, + 20.9369273 + ], + [ + 105.72276314346244, + 20.938597066521872 + ], + [ + 105.7227487, + 20.9379561 + ], + [ + 105.7225675, + 20.9369273 + ] + ], + [ + [ + 105.7265554, + 21.0527566 + ], + [ + 105.729435272334, + 21.056532498796827 + ], + [ + 105.729435272334, + 21.056532498796823 + ], + [ + 105.7265554, + 21.0527566 + ] + ], + [ + [ + 105.72773978832659, + 21.081503761148028 + ], + [ + 105.72775850679986, + 21.081564429567003 + ], + [ + 105.7277621, + 21.081501 + ], + [ + 105.72773978832659, + 21.081503761148028 + ] + ], + [ + [ + 105.7279064, + 21.0844887 + ], + [ + 105.728035, + 21.0836758 + ], + [ + 105.7279997, + 21.083015 + ], + [ + 105.7279064, + 21.0844887 + ] + ], + [ + [ + 105.7425815, + 20.6932258 + ], + [ + 105.7428376, + 20.694209 + ], + [ + 105.74258990603028, + 20.692980526372317 + ], + [ + 105.7425815, + 20.6932258 + ] + ], + [ + [ + 105.74261848385778, + 20.692146674103018 + ], + [ + 105.74266803809752, + 20.691598400383118 + ], + [ + 105.7426331, + 20.6917202 + ], + [ + 105.74261848385778, + 20.692146674103018 + ] + ], + [ + [ + 105.7671552, + 21.037974 + ], + [ + 105.7677076, + 21.0395819 + ], + [ + 105.7687531, + 21.0424519 + ], + [ + 105.7671552, + 21.037974 + ] + ], + [ + [ + 105.7672094367004, + 20.7220339926208 + ], + [ + 105.7674416, + 20.7221161 + ], + [ + 105.7699454, + 20.7224878 + ], + [ + 105.7672094367004, + 20.7220339926208 + ] + ], + [ + [ + 105.7683594, + 20.7272222 + ], + [ + 105.7705961, + 20.7250695 + ], + [ + 105.77064889944315, + 20.72492784951939 + ], + [ + 105.7683594, + 20.7272222 + ] + ], + [ + [ + 105.7706937193829, + 20.7228057795576 + ], + [ + 105.77104399576264, + 20.723469074589122 + ], + [ + 105.7710308, + 20.7232767 + ], + [ + 105.7706937193829, + 20.7228057795576 + ] + ], + [ + [ + 105.77088638637774, + 20.724290718966206 + ], + [ + 105.7710671, + 20.7238059 + ], + [ + 105.77105136893479, + 20.723576564470914 + ], + [ + 105.77088638637774, + 20.724290718966206 + ] + ], + [ + [ + 105.7769738, + 20.6244387 + ], + [ + 105.7770004457377, + 20.624492710542157 + ], + [ + 105.7770042147342, + 20.62436879516736 + ], + [ + 105.7769738, + 20.6244387 + ] + ], + [ + [ + 105.77849883863362, + 20.62617895063087 + ], + [ + 105.7786277, + 20.6262762 + ], + [ + 105.77888712051818, + 20.626374223810362 + ], + [ + 105.77849883863362, + 20.62617895063087 + ] + ], + [ + [ + 105.77983115316884, + 20.626730932979626 + ], + [ + 105.780146, + 20.6268499 + ], + [ + 105.78033284584625, + 20.626879594533282 + ], + [ + 105.77983115316884, + 20.626730932979626 + ] + ], + [ + [ + 105.7840789, + 20.9865921 + ], + [ + 105.78670156306944, + 20.98560895633235 + ], + [ + 105.7864091, + 20.9856433 + ], + [ + 105.7840789, + 20.9865921 + ] + ], + [ + [ + 105.7841596945051, + 20.618501284841543 + ], + [ + 105.7858522, + 20.6176721 + ], + [ + 105.784274, + 20.6184144 + ], + [ + 105.7841596945051, + 20.618501284841543 + ] + ], + [ + [ + 105.78655218980421, + 20.986038779865474 + ], + [ + 105.78731, + 20.9859762 + ], + [ + 105.7867901, + 20.9859547 + ], + [ + 105.78655218980421, + 20.986038779865474 + ] + ], + [ + [ + 105.7879352, + 20.9862953 + ], + [ + 105.7882976, + 20.9868821 + ], + [ + 105.7881639, + 20.9864807 + ], + [ + 105.7879352, + 20.9862953 + ] + ], + [ + [ + 105.7893275, + 20.9196155 + ], + [ + 105.789864, + 20.9176553 + ], + [ + 105.7893488, + 20.9191856 + ], + [ + 105.7893275, + 20.9196155 + ] + ], + [ + [ + 105.7916177, + 20.6157021 + ], + [ + 105.7930529, + 20.6148778 + ], + [ + 105.79322632940672, + 20.61472936079773 + ], + [ + 105.7916177, + 20.6157021 + ] + ], + [ + [ + 105.79169034559844, + 20.64722311752002 + ], + [ + 105.79198192209736, + 20.646950052807234 + ], + [ + 105.7918645, + 20.6470372 + ], + [ + 105.79169034559844, + 20.64722311752002 + ] + ], + [ + [ + 105.7949673, + 20.9290035 + ], + [ + 105.795595, + 20.9299173 + ], + [ + 105.79581977039899, + 20.930082429155938 + ], + [ + 105.7949673, + 20.9290035 + ] + ], + [ + [ + 105.7950476, + 20.6449813 + ], + [ + 105.8007458, + 20.6428959 + ], + [ + 105.80085153341817, + 20.642820350309755 + ], + [ + 105.7950476, + 20.6449813 + ] + ], + [ + [ + 105.79560504478525, + 20.61273885950904 + ], + [ + 105.79624536682574, + 20.612370418517024 + ], + [ + 105.7957648, + 20.6126013 + ], + [ + 105.79560504478525, + 20.61273885950904 + ] + ], + [ + [ + 105.79603714954884, + 20.93024212827866 + ], + [ + 105.7962598, + 20.9304057 + ], + [ + 105.7976934, + 20.9308917 + ], + [ + 105.79603714954884, + 20.93024212827866 + ] + ], + [ + [ + 105.7964294, + 20.9844567 + ], + [ + 105.7964739, + 20.9847567 + ], + [ + 105.79651736986433, + 20.984376483586683 + ], + [ + 105.7964294, + 20.9844567 + ] + ], + [ + [ + 105.79652726011399, + 20.9843674650397 + ], + [ + 105.7971245, + 20.9846793 + ], + [ + 105.7969411, + 20.9839901 + ], + [ + 105.79652726011399, + 20.9843674650397 + ] + ], + [ + [ + 105.79654351337939, + 20.612227178254145 + ], + [ + 105.7987368, + 20.6118782 + ], + [ + 105.7975285, + 20.6119704 + ], + [ + 105.79654351337939, + 20.612227178254145 + ] + ], + [ + [ + 105.7976474, + 21.0244273 + ], + [ + 105.79765919817802, + 21.024588380348558 + ], + [ + 105.7980183, + 21.0237715 + ], + [ + 105.7976474, + 21.0244273 + ] + ], + [ + [ + 105.79767396570283, + 21.024790001144286 + ], + [ + 105.797701, + 21.0251591 + ], + [ + 105.7983286, + 21.0268031 + ], + [ + 105.79767396570283, + 21.024790001144286 + ] + ], + [ + [ + 105.799889, + 21.1875935 + ], + [ + 105.8012831, + 21.1873377 + ], + [ + 105.8006452, + 21.1873654 + ], + [ + 105.799889, + 21.1875935 + ] + ], + [ + [ + 105.80093735536283, + 20.61203341087589 + ], + [ + 105.80139415895903, + 20.612129634045264 + ], + [ + 105.8011683, + 20.6120497 + ], + [ + 105.80093735536283, + 20.61203341087589 + ] + ], + [ + [ + 105.80106688163731, + 20.642666477565136 + ], + [ + 105.8015648, + 20.6423107 + ], + [ + 105.80186496805744, + 20.64196478406834 + ], + [ + 105.80106688163731, + 20.642666477565136 + ] + ], + [ + [ + 105.80211434057179, + 20.641677405303387 + ], + [ + 105.8022813, + 20.641485 + ], + [ + 105.80242665556828, + 20.64120159655034 + ], + [ + 105.80211434057179, + 20.641677405303387 + ] + ], + [ + [ + 105.80259832264683, + 20.612555801221205 + ], + [ + 105.80353018604502, + 20.613049182903044 + ], + [ + 105.803151, + 20.6127514 + ], + [ + 105.80259832264683, + 20.612555801221205 + ] + ], + [ + [ + 105.80292876258466, + 20.640222625725723 + ], + [ + 105.8031008, + 20.6398872 + ], + [ + 105.80322502776053, + 20.639437665754787 + ], + [ + 105.80292876258466, + 20.640222625725723 + ] + ], + [ + [ + 105.80324015133469, + 20.634708126491784 + ], + [ + 105.80345002540243, + 20.635426547471855 + ], + [ + 105.8032953, + 20.6348083 + ], + [ + 105.80324015133469, + 20.634708126491784 + ] + ], + [ + [ + 105.80345276765854, + 20.638613559430038 + ], + [ + 105.8035678, + 20.6381973 + ], + [ + 105.80358142949322, + 20.637870838031677 + ], + [ + 105.80345276765854, + 20.638613559430038 + ] + ], + [ + [ + 105.80358960943649, + 21.03277667598229 + ], + [ + 105.8062751, + 21.0368524 + ], + [ + 105.8036452, + 21.0328399 + ], + [ + 105.80358960943649, + 21.03277667598229 + ] + ], + [ + [ + 105.80362649995912, + 20.63613169961118 + ], + [ + 105.80363805133453, + 20.63651459701388 + ], + [ + 105.8036501, + 20.636226 + ], + [ + 105.80362649995912, + 20.63613169961118 + ] + ], + [ + [ + 105.80376664878706, + 20.61323488214676 + ], + [ + 105.8042709, + 20.6148731 + ], + [ + 105.8038418, + 20.6132939 + ], + [ + 105.80376664878706, + 20.61323488214676 + ] + ], + [ + [ + 105.8050561, + 20.6159753 + ], + [ + 105.8063107, + 20.6169974 + ], + [ + 105.80645778693703, + 20.617082949887198 + ], + [ + 105.8050561, + 20.6159753 + ] + ], + [ + [ + 105.80534435979628, + 21.05308574164797 + ], + [ + 105.806194, + 21.0542752 + ], + [ + 105.8054074, + 21.0530567 + ], + [ + 105.80534435979628, + 21.05308574164797 + ] + ], + [ + [ + 105.80673497890913, + 20.780436071018446 + ], + [ + 105.8075986, + 20.7813756 + ], + [ + 105.8069862, + 20.7806051 + ], + [ + 105.80673497890913, + 20.780436071018446 + ] + ], + [ + [ + 105.80704178985165, + 20.61742262235901 + ], + [ + 105.8078598, + 20.6178984 + ], + [ + 105.80809272317379, + 20.617975496453834 + ], + [ + 105.80704178985165, + 20.61742262235901 + ] + ], + [ + [ + 105.8085415, + 20.9843294 + ], + [ + 105.8108342, + 20.9812607 + ], + [ + 105.8096224, + 20.9828803 + ], + [ + 105.8085415, + 20.9843294 + ] + ], + [ + [ + 105.80953969762787, + 20.618454438061 + ], + [ + 105.8109677, + 20.6189271 + ], + [ + 105.81117921457334, + 20.61892471185671 + ], + [ + 105.80953969762787, + 20.618454438061 + ] + ], + [ + [ + 105.8114907833674, + 20.618921194033266 + ], + [ + 105.8118711, + 20.6189169 + ], + [ + 105.81205889622214, + 20.618825323182055 + ], + [ + 105.8114907833674, + 20.618921194033266 + ] + ], + [ + [ + 105.812051, + 21.0071526 + ], + [ + 105.81351292606004, + 21.008847803641835 + ], + [ + 105.81351292606004, + 21.00884780364183 + ], + [ + 105.812051, + 21.0071526 + ] + ], + [ + [ + 105.81354906193093, + 21.008824228330372 + ], + [ + 105.8138247, + 21.0086444 + ], + [ + 105.8149192, + 21.007683 + ], + [ + 105.81354906193093, + 21.008824228330372 + ] + ], + [ + [ + 105.8163757, + 20.9599285 + ], + [ + 105.8165312, + 20.9607474 + ], + [ + 105.81662673662997, + 20.960796530470436 + ], + [ + 105.8163757, + 20.9599285 + ] + ], + [ + [ + 105.81689318323367, + 20.96093355275173 + ], + [ + 105.8171484, + 20.9610648 + ], + [ + 105.8185567, + 20.9611756 + ], + [ + 105.81689318323367, + 20.96093355275173 + ] + ], + [ + [ + 105.8326112, + 20.8006144 + ], + [ + 105.836745, + 20.8003638 + ], + [ + 105.8331448, + 20.8005794 + ], + [ + 105.8326112, + 20.8006144 + ] + ], + [ + [ + 105.8410587, + 20.9854146 + ], + [ + 105.8411886, + 20.9929628 + ], + [ + 105.8411756, + 20.9919248 + ], + [ + 105.8410587, + 20.9854146 + ] + ], + [ + [ + 105.8413071, + 21.0004611 + ], + [ + 105.8426824, + 20.997311 + ], + [ + 105.8428695, + 20.9957401 + ], + [ + 105.8413071, + 21.0004611 + ] + ], + [ + [ + 105.8414087, + 20.9929659 + ], + [ + 105.84265459775406, + 20.99506958392384 + ], + [ + 105.8425839, + 20.994849 + ], + [ + 105.8414087, + 20.9929659 + ] + ], + [ + [ + 105.8415518, + 21.0276316 + ], + [ + 105.8415672, + 21.0287502 + ], + [ + 105.841569, + 21.0288646 + ], + [ + 105.8415518, + 21.0276316 + ] + ], + [ + [ + 105.8440158, + 21.1698663 + ], + [ + 105.8444102, + 21.1700986 + ], + [ + 105.8444083, + 21.1698543 + ], + [ + 105.8440158, + 21.1698663 + ] + ], + [ + [ + 105.8476581, + 21.0190908 + ], + [ + 105.8497252, + 21.0186569 + ], + [ + 105.8488176, + 21.0188274 + ], + [ + 105.8476581, + 21.0190908 + ] + ], + [ + [ + 105.8511635, + 21.0404082 + ], + [ + 105.8559747, + 21.0422867 + ], + [ + 105.8583502, + 21.04321 + ], + [ + 105.8511635, + 21.0404082 + ] + ], + [ + [ + 105.8794424, + 21.000662 + ], + [ + 105.8817704, + 21.0012523 + ], + [ + 105.8797133, + 21.0006589 + ], + [ + 105.8794424, + 21.000662 + ] + ], + [ + [ + 105.88519204150047, + 20.689990176423695 + ], + [ + 105.885399, + 20.6904319 + ], + [ + 105.88615, + 20.6914857 + ], + [ + 105.88519204150047, + 20.689990176423695 + ] + ], + [ + [ + 105.8955991, + 20.9292713 + ], + [ + 105.8977891, + 20.9290071 + ], + [ + 105.9002531, + 20.9286871 + ], + [ + 105.8955991, + 20.9292713 + ] ] ] } diff --git a/src/data/boundaries/index.js b/src/data/boundaries/index.js index 214075f..c69414d 100644 --- a/src/data/boundaries/index.js +++ b/src/data/boundaries/index.js @@ -1,18 +1,138 @@ -// Generated by scripts/build-city-boundaries.mjs. Do not edit by hand. +// Generated by scripts/build-region-boundaries.mjs. Do not edit by hand. // // Lists only the boundaries that have actually been built, so a partial // build still compiles. -import dh from './dh.json'; -import dl from './dl.json'; -import dn from './dn.json'; -import hn from './hn.json'; -import tphcm from './tphcm.json'; +import dn_camle from './dn/dn-camle.json'; +import dn_haichau from './dn/dn-haichau.json'; +import dn_hoavang from './dn/dn-hoavang.json'; +import dn_lienchieu from './dn/dn-lienchieu.json'; +import dn_nguhanhson from './dn/dn-nguhanhson.json'; +import dn_sontra from './dn/dn-sontra.json'; +import dn_thanhkhe from './dn/dn-thanhkhe.json'; +import dn from './dn/dn.json'; +import hn_bactuliem from './hn/hn-bactuliem.json'; +import hn_badinh from './hn/hn-badinh.json'; +import hn_bavi from './hn/hn-bavi.json'; +import hn_caugiay from './hn/hn-caugiay.json'; +import hn_chuongmy from './hn/hn-chuongmy.json'; +import hn_danphuong from './hn/hn-danphuong.json'; +import hn_donganh from './hn/hn-donganh.json'; +import hn_dongda from './hn/hn-dongda.json'; +import hn_gialam from './hn/hn-gialam.json'; +import hn_hadong from './hn/hn-hadong.json'; +import hn_haibatrung from './hn/hn-haibatrung.json'; +import hn_hoaiduc from './hn/hn-hoaiduc.json'; +import hn_hoangmai from './hn/hn-hoangmai.json'; +import hn_hoankiem from './hn/hn-hoankiem.json'; +import hn_longbien from './hn/hn-longbien.json'; +import hn_melinh from './hn/hn-melinh.json'; +import hn_myduc from './hn/hn-myduc.json'; +import hn_namtuliem from './hn/hn-namtuliem.json'; +import hn_phuctho from './hn/hn-phuctho.json'; +import hn_phuxuyen from './hn/hn-phuxuyen.json'; +import hn_quocoai from './hn/hn-quocoai.json'; +import hn_socson from './hn/hn-socson.json'; +import hn_sontay from './hn/hn-sontay.json'; +import hn_tayho from './hn/hn-tayho.json'; +import hn_thachthat from './hn/hn-thachthat.json'; +import hn_thanhoai from './hn/hn-thanhoai.json'; +import hn_thanhtri from './hn/hn-thanhtri.json'; +import hn_thanhxuan from './hn/hn-thanhxuan.json'; +import hn_thuongtin from './hn/hn-thuongtin.json'; +import hn_unghoa from './hn/hn-unghoa.json'; +import hn from './hn/hn.json'; +import dh from './la/dh.json'; +import la from './la/la.json'; +import dl from './ld/dl.json'; +import ld from './ld/ld.json'; +import tphcm_binhchanh from './tphcm/tphcm-binhchanh.json'; +import tphcm_binhtan from './tphcm/tphcm-binhtan.json'; +import tphcm_binhthanh from './tphcm/tphcm-binhthanh.json'; +import tphcm_cangio from './tphcm/tphcm-cangio.json'; +import tphcm_govap from './tphcm/tphcm-govap.json'; +import tphcm_hocmon from './tphcm/tphcm-hocmon.json'; +import tphcm_nhabe from './tphcm/tphcm-nhabe.json'; +import tphcm_phunhuan from './tphcm/tphcm-phunhuan.json'; +import tphcm_q1 from './tphcm/tphcm-q1.json'; +import tphcm_q10 from './tphcm/tphcm-q10.json'; +import tphcm_q11 from './tphcm/tphcm-q11.json'; +import tphcm_q12 from './tphcm/tphcm-q12.json'; +import tphcm_q3 from './tphcm/tphcm-q3.json'; +import tphcm_q4 from './tphcm/tphcm-q4.json'; +import tphcm_q5 from './tphcm/tphcm-q5.json'; +import tphcm_q6 from './tphcm/tphcm-q6.json'; +import tphcm_q7 from './tphcm/tphcm-q7.json'; +import tphcm_q8 from './tphcm/tphcm-q8.json'; +import tphcm_tanbinh from './tphcm/tphcm-tanbinh.json'; +import tphcm_tanphu from './tphcm/tphcm-tanphu.json'; +import tphcm_thuduc from './tphcm/tphcm-thuduc.json'; +import tphcm from './tphcm/tphcm.json'; -export const CITY_BOUNDARIES = { - DH: dh, - DL: dl, - DN: dn, - HN: hn, - TPHCM: tphcm, +export const REGION_BOUNDARIES = { + "DN-CAMLE": dn_camle, + "DN-HAICHAU": dn_haichau, + "DN-HOAVANG": dn_hoavang, + "DN-LIENCHIEU": dn_lienchieu, + "DN-NGUHANHSON": dn_nguhanhson, + "DN-SONTRA": dn_sontra, + "DN-THANHKHE": dn_thanhkhe, + "DN": dn, + "HN-BACTULIEM": hn_bactuliem, + "HN-BADINH": hn_badinh, + "HN-BAVI": hn_bavi, + "HN-CAUGIAY": hn_caugiay, + "HN-CHUONGMY": hn_chuongmy, + "HN-DANPHUONG": hn_danphuong, + "HN-DONGANH": hn_donganh, + "HN-DONGDA": hn_dongda, + "HN-GIALAM": hn_gialam, + "HN-HADONG": hn_hadong, + "HN-HAIBATRUNG": hn_haibatrung, + "HN-HOAIDUC": hn_hoaiduc, + "HN-HOANGMAI": hn_hoangmai, + "HN-HOANKIEM": hn_hoankiem, + "HN-LONGBIEN": hn_longbien, + "HN-MELINH": hn_melinh, + "HN-MYDUC": hn_myduc, + "HN-NAMTULIEM": hn_namtuliem, + "HN-PHUCTHO": hn_phuctho, + "HN-PHUXUYEN": hn_phuxuyen, + "HN-QUOCOAI": hn_quocoai, + "HN-SOCSON": hn_socson, + "HN-SONTAY": hn_sontay, + "HN-TAYHO": hn_tayho, + "HN-THACHTHAT": hn_thachthat, + "HN-THANHOAI": hn_thanhoai, + "HN-THANHTRI": hn_thanhtri, + "HN-THANHXUAN": hn_thanhxuan, + "HN-THUONGTIN": hn_thuongtin, + "HN-UNGHOA": hn_unghoa, + "HN": hn, + "DH": dh, + "LA": la, + "DL": dl, + "LD": ld, + "TPHCM-BINHCHANH": tphcm_binhchanh, + "TPHCM-BINHTAN": tphcm_binhtan, + "TPHCM-BINHTHANH": tphcm_binhthanh, + "TPHCM-CANGIO": tphcm_cangio, + "TPHCM-GOVAP": tphcm_govap, + "TPHCM-HOCMON": tphcm_hocmon, + "TPHCM-NHABE": tphcm_nhabe, + "TPHCM-PHUNHUAN": tphcm_phunhuan, + "TPHCM-Q1": tphcm_q1, + "TPHCM-Q10": tphcm_q10, + "TPHCM-Q11": tphcm_q11, + "TPHCM-Q12": tphcm_q12, + "TPHCM-Q3": tphcm_q3, + "TPHCM-Q4": tphcm_q4, + "TPHCM-Q5": tphcm_q5, + "TPHCM-Q6": tphcm_q6, + "TPHCM-Q7": tphcm_q7, + "TPHCM-Q8": tphcm_q8, + "TPHCM-TANBINH": tphcm_tanbinh, + "TPHCM-TANPHU": tphcm_tanphu, + "TPHCM-THUDUC": tphcm_thuduc, + "TPHCM": tphcm, }; diff --git a/src/data/boundaries/la/dh.json b/src/data/boundaries/la/dh.json new file mode 100644 index 0000000..470659c --- /dev/null +++ b/src/data/boundaries/la/dh.json @@ -0,0 +1,1022 @@ +{ + "type": "Feature", + "properties": { + "code": "DH", + "name": "Duc Hoa", + "level": "district", + "parent": "LA", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 427.5, + "bbox": [ + 106.27082, + 10.7409, + 106.53287, + 11.02578 + ], + "center": [ + 10.8888, + 106.3825 + ], + "generatedAt": "2026-08-30T07:35:24.081Z", + "osm": "relation/19392506" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.2708229, + 11.0143718 + ], + [ + 106.2708951, + 11.0136209 + ], + [ + 106.2711694, + 11.0129124 + ], + [ + 106.2716241, + 11.0123102 + ], + [ + 106.277076, + 11.0085395 + ], + [ + 106.2812592, + 11.0061488 + ], + [ + 106.2828627, + 11.00478 + ], + [ + 106.2836334, + 11.0033681 + ], + [ + 106.2846711, + 10.9996173 + ], + [ + 106.2867316, + 10.9943205 + ], + [ + 106.2868812, + 10.9935494 + ], + [ + 106.2868805, + 10.9927783 + ], + [ + 106.2863675, + 10.9908216 + ], + [ + 106.2851329, + 10.9886284 + ], + [ + 106.2831164, + 10.9860504 + ], + [ + 106.281883, + 10.9850137 + ], + [ + 106.2805298, + 10.9845108 + ], + [ + 106.2779742, + 10.9840684 + ], + [ + 106.274877, + 10.9828257 + ], + [ + 106.2737989, + 10.9818653 + ], + [ + 106.2731311, + 10.9809543 + ], + [ + 106.2723237, + 10.9789268 + ], + [ + 106.2721457, + 10.9779595 + ], + [ + 106.272364, + 10.9766213 + ], + [ + 106.2727927, + 10.9760952 + ], + [ + 106.2736271, + 10.9756205 + ], + [ + 106.277373, + 10.97434 + ], + [ + 106.281592, + 10.973938 + ], + [ + 106.283865, + 10.973175 + ], + [ + 106.287791, + 10.97328 + ], + [ + 106.288671, + 10.973062 + ], + [ + 106.289184, + 10.972627 + ], + [ + 106.28977, + 10.971577 + ], + [ + 106.289861, + 10.97084 + ], + [ + 106.289493, + 10.969899 + ], + [ + 106.28692, + 10.963926 + ], + [ + 106.284733, + 10.959745 + ], + [ + 106.283979, + 10.957844 + ], + [ + 106.283757, + 10.955816 + ], + [ + 106.284233, + 10.954584 + ], + [ + 106.285993, + 10.952844 + ], + [ + 106.289732, + 10.949581 + ], + [ + 106.296165, + 10.944885 + ], + [ + 106.298913, + 10.942492 + ], + [ + 106.299939, + 10.940861 + ], + [ + 106.300318, + 10.935157 + ], + [ + 106.301615, + 10.928691 + ], + [ + 106.303055, + 10.919617 + ], + [ + 106.302771, + 10.911197 + ], + [ + 106.3031476, + 10.9097174 + ], + [ + 106.3035921, + 10.9087361 + ], + [ + 106.3044392, + 10.9073823 + ], + [ + 106.3053432, + 10.9064512 + ], + [ + 106.3103245, + 10.9044218 + ], + [ + 106.3166567, + 10.9020556 + ], + [ + 106.322787, + 10.900529 + ], + [ + 106.328342, + 10.898802 + ], + [ + 106.330138, + 10.897786 + ], + [ + 106.3355797, + 10.893552 + ], + [ + 106.337247, + 10.891875 + ], + [ + 106.339096, + 10.889392 + ], + [ + 106.340046, + 10.886711 + ], + [ + 106.340044, + 10.884828 + ], + [ + 106.339786, + 10.883923 + ], + [ + 106.338665, + 10.881261 + ], + [ + 106.335837, + 10.877317 + ], + [ + 106.334642, + 10.874693 + ], + [ + 106.334568, + 10.87386 + ], + [ + 106.334749, + 10.871397 + ], + [ + 106.335297, + 10.869332 + ], + [ + 106.335809, + 10.868353 + ], + [ + 106.337769, + 10.866088 + ], + [ + 106.339564, + 10.864601 + ], + [ + 106.341652, + 10.86257 + ], + [ + 106.342127, + 10.861411 + ], + [ + 106.34229, + 10.859147 + ], + [ + 106.342105, + 10.857952 + ], + [ + 106.341553, + 10.856251 + ], + [ + 106.339423, + 10.852994 + ], + [ + 106.338006, + 10.849102 + ], + [ + 106.337931, + 10.8474 + ], + [ + 106.33848, + 10.845878 + ], + [ + 106.34055, + 10.843975 + ], + [ + 106.34176, + 10.843466 + ], + [ + 106.346416, + 10.842592 + ], + [ + 106.349129, + 10.842371 + ], + [ + 106.351842, + 10.842223 + ], + [ + 106.357104, + 10.842308 + ], + [ + 106.358204, + 10.842017 + ], + [ + 106.358607, + 10.841727 + ], + [ + 106.358936, + 10.841183 + ], + [ + 106.358972, + 10.840278 + ], + [ + 106.358825, + 10.839626 + ], + [ + 106.357924, + 10.838015 + ], + [ + 106.356896, + 10.836604 + ], + [ + 106.356196, + 10.833671 + ], + [ + 106.356285, + 10.831227 + ], + [ + 106.356687, + 10.829524 + ], + [ + 106.357893, + 10.82648 + ], + [ + 106.358735, + 10.824813 + ], + [ + 106.360126, + 10.822964 + ], + [ + 106.361884, + 10.821405 + ], + [ + 106.364083, + 10.820279 + ], + [ + 106.365842, + 10.819734 + ], + [ + 106.367052, + 10.819551 + ], + [ + 106.369582, + 10.819911 + ], + [ + 106.371178, + 10.820615 + ], + [ + 106.372573, + 10.821808 + ], + [ + 106.37562, + 10.825028 + ], + [ + 106.377418, + 10.826402 + ], + [ + 106.378262, + 10.826691 + ], + [ + 106.379546, + 10.826798 + ], + [ + 106.381489, + 10.826687 + ], + [ + 106.382717, + 10.826341 + ], + [ + 106.384477, + 10.82547 + ], + [ + 106.386601, + 10.823693 + ], + [ + 106.388944, + 10.820973 + ], + [ + 106.390408, + 10.818871 + ], + [ + 106.391377, + 10.817041 + ], + [ + 106.391742, + 10.815266 + ], + [ + 106.391739, + 10.813527 + ], + [ + 106.3905734, + 10.8059736 + ], + [ + 106.3904002, + 10.8038032 + ], + [ + 106.3905348, + 10.8015912 + ], + [ + 106.3908291, + 10.8006586 + ], + [ + 106.394357, + 10.795162 + ], + [ + 106.395913, + 10.793838 + ], + [ + 106.398697, + 10.79206 + ], + [ + 106.400676, + 10.791115 + ], + [ + 106.40654, + 10.789804 + ], + [ + 106.410003, + 10.787934 + ], + [ + 106.411835, + 10.787207 + ], + [ + 106.413741, + 10.787096 + ], + [ + 106.414768, + 10.787457 + ], + [ + 106.415613, + 10.788397 + ], + [ + 106.416312, + 10.790244 + ], + [ + 106.416571, + 10.792126 + ], + [ + 106.417142, + 10.793882 + ], + [ + 106.417803, + 10.794859 + ], + [ + 106.418757, + 10.795691 + ], + [ + 106.420518, + 10.796413 + ], + [ + 106.421691, + 10.796411 + ], + [ + 106.422974, + 10.796156 + ], + [ + 106.425283, + 10.795356 + ], + [ + 106.426675, + 10.794485 + ], + [ + 106.4279897, + 10.7933872 + ], + [ + 106.4284105, + 10.7928232 + ], + [ + 106.4287958, + 10.7917536 + ], + [ + 106.4289896, + 10.7905525 + ], + [ + 106.4288278, + 10.7880422 + ], + [ + 106.4280942, + 10.7857854 + ], + [ + 106.4272052, + 10.7844262 + ], + [ + 106.4261085, + 10.7834344 + ], + [ + 106.4247153, + 10.7827379 + ], + [ + 106.4225716, + 10.7820609 + ], + [ + 106.4230049, + 10.7807239 + ], + [ + 106.423037, + 10.7795224 + ], + [ + 106.4233589, + 10.7781153 + ], + [ + 106.4245686, + 10.7770535 + ], + [ + 106.4242601, + 10.7763091 + ], + [ + 106.4242682, + 10.7753909 + ], + [ + 106.4275002, + 10.7755911 + ], + [ + 106.4274707, + 10.7753619 + ], + [ + 106.4298767, + 10.7752538 + ], + [ + 106.4295173, + 10.7739733 + ], + [ + 106.4290237, + 10.7732197 + ], + [ + 106.4313573, + 10.7720498 + ], + [ + 106.4314485, + 10.7726874 + ], + [ + 106.4340824, + 10.7708482 + ], + [ + 106.4386349, + 10.7640713 + ], + [ + 106.4385885, + 10.7629011 + ], + [ + 106.4395589, + 10.7627403 + ], + [ + 106.4426401, + 10.7581245 + ], + [ + 106.4488692, + 10.7629376 + ], + [ + 106.4661748, + 10.740899 + ], + [ + 106.4722331, + 10.7455255 + ], + [ + 106.4635618, + 10.7565046 + ], + [ + 106.4885044, + 10.7754906 + ], + [ + 106.5045619, + 10.7889222 + ], + [ + 106.5054989, + 10.793118 + ], + [ + 106.5062932, + 10.795111 + ], + [ + 106.5080494, + 10.8033606 + ], + [ + 106.5094941, + 10.808948 + ], + [ + 106.5113115, + 10.8176259 + ], + [ + 106.5158115, + 10.8348671 + ], + [ + 106.5200679, + 10.8522195 + ], + [ + 106.5258696, + 10.8734622 + ], + [ + 106.5265122, + 10.8769134 + ], + [ + 106.5274982, + 10.8800642 + ], + [ + 106.5328728, + 10.8999003 + ], + [ + 106.5328708, + 10.900726 + ], + [ + 106.5325466, + 10.9014489 + ], + [ + 106.5315364, + 10.9026658 + ], + [ + 106.5036803, + 10.9168867 + ], + [ + 106.4535377, + 10.9419195 + ], + [ + 106.4222714, + 10.9658091 + ], + [ + 106.4118982, + 10.973542 + ], + [ + 106.4109339, + 10.9736832 + ], + [ + 106.3976003, + 10.9720919 + ], + [ + 106.3731933, + 10.9696228 + ], + [ + 106.3511251, + 10.9988937 + ], + [ + 106.3455329, + 10.9947858 + ], + [ + 106.3430053, + 11.0012811 + ], + [ + 106.3378339, + 11.0052375 + ], + [ + 106.3361965, + 11.0061138 + ], + [ + 106.327824, + 11.0098801 + ], + [ + 106.3233125, + 11.0125234 + ], + [ + 106.3120618, + 11.0199771 + ], + [ + 106.3074986, + 11.0211992 + ], + [ + 106.3037829, + 11.0218849 + ], + [ + 106.300806, + 11.0226745 + ], + [ + 106.2976075, + 11.0240541 + ], + [ + 106.2974101, + 11.0243279 + ], + [ + 106.2970763, + 11.0256694 + ], + [ + 106.296914, + 11.0257756 + ], + [ + 106.2961886, + 11.0257367 + ], + [ + 106.294792, + 11.0253577 + ], + [ + 106.2943806, + 11.0250353 + ], + [ + 106.2934207, + 11.0255348 + ], + [ + 106.2924536, + 11.0255702 + ], + [ + 106.2914359, + 11.0253081 + ], + [ + 106.2913385, + 11.023785 + ], + [ + 106.2910353, + 11.0234166 + ], + [ + 106.2898444, + 11.0235405 + ], + [ + 106.2873844, + 11.0245535 + ], + [ + 106.2873543, + 11.0242565 + ], + [ + 106.2880583, + 11.0226692 + ], + [ + 106.2880078, + 11.0219182 + ], + [ + 106.2877191, + 11.0217907 + ], + [ + 106.2868711, + 11.021943 + ], + [ + 106.2857206, + 11.0215679 + ], + [ + 106.2847131, + 11.0221607 + ], + [ + 106.2841263, + 11.0220866 + ], + [ + 106.2839516, + 11.0213932 + ], + [ + 106.2830711, + 11.0201534 + ], + [ + 106.2820354, + 11.0195619 + ], + [ + 106.2819668, + 11.0189456 + ], + [ + 106.2808734, + 11.0185453 + ], + [ + 106.2796825, + 11.0173161 + ], + [ + 106.2790618, + 11.0158957 + ], + [ + 106.2772286, + 11.0188499 + ], + [ + 106.2764274, + 11.0198205 + ], + [ + 106.2753917, + 11.0205077 + ], + [ + 106.2748252, + 11.0212444 + ], + [ + 106.2738652, + 11.0216199 + ], + [ + 106.271689, + 11.0174182 + ], + [ + 106.2711694, + 11.01615 + ], + [ + 106.2708229, + 11.0143718 + ] + ] + ] + } +} diff --git a/src/data/boundaries/la/la.json b/src/data/boundaries/la/la.json new file mode 100644 index 0000000..dc8a941 --- /dev/null +++ b/src/data/boundaries/la/la.json @@ -0,0 +1,1023 @@ +{ + "type": "Feature", + "properties": { + "code": "LA", + "name": "Long An", + "level": "province", + "parent": "VN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 427.5, + "bbox": [ + 106.27082, + 10.7409, + 106.53287, + 11.02578 + ], + "center": [ + 10.88908, + 106.40895 + ], + "generatedAt": "2026-08-30T07:36:51.993Z", + "parts": 1, + "missingParts": 0 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.2708229, + 11.0143718 + ], + [ + 106.2708951, + 11.0136209 + ], + [ + 106.2711694, + 11.0129124 + ], + [ + 106.2716241, + 11.0123102 + ], + [ + 106.277076, + 11.0085395 + ], + [ + 106.2812592, + 11.0061488 + ], + [ + 106.2828627, + 11.00478 + ], + [ + 106.2836334, + 11.0033681 + ], + [ + 106.2846711, + 10.9996173 + ], + [ + 106.2867316, + 10.9943205 + ], + [ + 106.2868812, + 10.9935494 + ], + [ + 106.2868805, + 10.9927783 + ], + [ + 106.2863675, + 10.9908216 + ], + [ + 106.2851329, + 10.9886284 + ], + [ + 106.2831164, + 10.9860504 + ], + [ + 106.281883, + 10.9850137 + ], + [ + 106.2805298, + 10.9845108 + ], + [ + 106.2779742, + 10.9840684 + ], + [ + 106.274877, + 10.9828257 + ], + [ + 106.2737989, + 10.9818653 + ], + [ + 106.2731311, + 10.9809543 + ], + [ + 106.2723237, + 10.9789268 + ], + [ + 106.2721457, + 10.9779595 + ], + [ + 106.272364, + 10.9766213 + ], + [ + 106.2727927, + 10.9760952 + ], + [ + 106.2736271, + 10.9756205 + ], + [ + 106.277373, + 10.97434 + ], + [ + 106.281592, + 10.973938 + ], + [ + 106.283865, + 10.973175 + ], + [ + 106.287791, + 10.97328 + ], + [ + 106.288671, + 10.973062 + ], + [ + 106.289184, + 10.972627 + ], + [ + 106.28977, + 10.971577 + ], + [ + 106.289861, + 10.97084 + ], + [ + 106.289493, + 10.969899 + ], + [ + 106.28692, + 10.963926 + ], + [ + 106.284733, + 10.959745 + ], + [ + 106.283979, + 10.957844 + ], + [ + 106.283757, + 10.955816 + ], + [ + 106.284233, + 10.954584 + ], + [ + 106.285993, + 10.952844 + ], + [ + 106.289732, + 10.949581 + ], + [ + 106.296165, + 10.944885 + ], + [ + 106.298913, + 10.942492 + ], + [ + 106.299939, + 10.940861 + ], + [ + 106.300318, + 10.935157 + ], + [ + 106.301615, + 10.928691 + ], + [ + 106.303055, + 10.919617 + ], + [ + 106.302771, + 10.911197 + ], + [ + 106.3031476, + 10.9097174 + ], + [ + 106.3035921, + 10.9087361 + ], + [ + 106.3044392, + 10.9073823 + ], + [ + 106.3053432, + 10.9064512 + ], + [ + 106.3103245, + 10.9044218 + ], + [ + 106.3166567, + 10.9020556 + ], + [ + 106.322787, + 10.900529 + ], + [ + 106.328342, + 10.898802 + ], + [ + 106.330138, + 10.897786 + ], + [ + 106.3355797, + 10.893552 + ], + [ + 106.337247, + 10.891875 + ], + [ + 106.339096, + 10.889392 + ], + [ + 106.340046, + 10.886711 + ], + [ + 106.340044, + 10.884828 + ], + [ + 106.339786, + 10.883923 + ], + [ + 106.338665, + 10.881261 + ], + [ + 106.335837, + 10.877317 + ], + [ + 106.334642, + 10.874693 + ], + [ + 106.334568, + 10.87386 + ], + [ + 106.334749, + 10.871397 + ], + [ + 106.335297, + 10.869332 + ], + [ + 106.335809, + 10.868353 + ], + [ + 106.337769, + 10.866088 + ], + [ + 106.339564, + 10.864601 + ], + [ + 106.341652, + 10.86257 + ], + [ + 106.342127, + 10.861411 + ], + [ + 106.34229, + 10.859147 + ], + [ + 106.342105, + 10.857952 + ], + [ + 106.341553, + 10.856251 + ], + [ + 106.339423, + 10.852994 + ], + [ + 106.338006, + 10.849102 + ], + [ + 106.337931, + 10.8474 + ], + [ + 106.33848, + 10.845878 + ], + [ + 106.34055, + 10.843975 + ], + [ + 106.34176, + 10.843466 + ], + [ + 106.346416, + 10.842592 + ], + [ + 106.349129, + 10.842371 + ], + [ + 106.351842, + 10.842223 + ], + [ + 106.357104, + 10.842308 + ], + [ + 106.358204, + 10.842017 + ], + [ + 106.358607, + 10.841727 + ], + [ + 106.358936, + 10.841183 + ], + [ + 106.358972, + 10.840278 + ], + [ + 106.358825, + 10.839626 + ], + [ + 106.357924, + 10.838015 + ], + [ + 106.356896, + 10.836604 + ], + [ + 106.356196, + 10.833671 + ], + [ + 106.356285, + 10.831227 + ], + [ + 106.356687, + 10.829524 + ], + [ + 106.357893, + 10.82648 + ], + [ + 106.358735, + 10.824813 + ], + [ + 106.360126, + 10.822964 + ], + [ + 106.361884, + 10.821405 + ], + [ + 106.364083, + 10.820279 + ], + [ + 106.365842, + 10.819734 + ], + [ + 106.367052, + 10.819551 + ], + [ + 106.369582, + 10.819911 + ], + [ + 106.371178, + 10.820615 + ], + [ + 106.372573, + 10.821808 + ], + [ + 106.37562, + 10.825028 + ], + [ + 106.377418, + 10.826402 + ], + [ + 106.378262, + 10.826691 + ], + [ + 106.379546, + 10.826798 + ], + [ + 106.381489, + 10.826687 + ], + [ + 106.382717, + 10.826341 + ], + [ + 106.384477, + 10.82547 + ], + [ + 106.386601, + 10.823693 + ], + [ + 106.388944, + 10.820973 + ], + [ + 106.390408, + 10.818871 + ], + [ + 106.391377, + 10.817041 + ], + [ + 106.391742, + 10.815266 + ], + [ + 106.391739, + 10.813527 + ], + [ + 106.3905734, + 10.8059736 + ], + [ + 106.3904002, + 10.8038032 + ], + [ + 106.3905348, + 10.8015912 + ], + [ + 106.3908291, + 10.8006586 + ], + [ + 106.394357, + 10.795162 + ], + [ + 106.395913, + 10.793838 + ], + [ + 106.398697, + 10.79206 + ], + [ + 106.400676, + 10.791115 + ], + [ + 106.40654, + 10.789804 + ], + [ + 106.410003, + 10.787934 + ], + [ + 106.411835, + 10.787207 + ], + [ + 106.413741, + 10.787096 + ], + [ + 106.414768, + 10.787457 + ], + [ + 106.415613, + 10.788397 + ], + [ + 106.416312, + 10.790244 + ], + [ + 106.416571, + 10.792126 + ], + [ + 106.417142, + 10.793882 + ], + [ + 106.417803, + 10.794859 + ], + [ + 106.418757, + 10.795691 + ], + [ + 106.420518, + 10.796413 + ], + [ + 106.421691, + 10.796411 + ], + [ + 106.422974, + 10.796156 + ], + [ + 106.425283, + 10.795356 + ], + [ + 106.426675, + 10.794485 + ], + [ + 106.4279897, + 10.7933872 + ], + [ + 106.4284105, + 10.7928232 + ], + [ + 106.4287958, + 10.7917536 + ], + [ + 106.4289896, + 10.7905525 + ], + [ + 106.4288278, + 10.7880422 + ], + [ + 106.4280942, + 10.7857854 + ], + [ + 106.4272052, + 10.7844262 + ], + [ + 106.4261085, + 10.7834344 + ], + [ + 106.4247153, + 10.7827379 + ], + [ + 106.4225716, + 10.7820609 + ], + [ + 106.4230049, + 10.7807239 + ], + [ + 106.423037, + 10.7795224 + ], + [ + 106.4233589, + 10.7781153 + ], + [ + 106.4245686, + 10.7770535 + ], + [ + 106.4242601, + 10.7763091 + ], + [ + 106.4242682, + 10.7753909 + ], + [ + 106.4275002, + 10.7755911 + ], + [ + 106.4274707, + 10.7753619 + ], + [ + 106.4298767, + 10.7752538 + ], + [ + 106.4295173, + 10.7739733 + ], + [ + 106.4290237, + 10.7732197 + ], + [ + 106.4313573, + 10.7720498 + ], + [ + 106.4314485, + 10.7726874 + ], + [ + 106.4340824, + 10.7708482 + ], + [ + 106.4386349, + 10.7640713 + ], + [ + 106.4385885, + 10.7629011 + ], + [ + 106.4395589, + 10.7627403 + ], + [ + 106.4426401, + 10.7581245 + ], + [ + 106.4488692, + 10.7629376 + ], + [ + 106.4661748, + 10.740899 + ], + [ + 106.4722331, + 10.7455255 + ], + [ + 106.4635618, + 10.7565046 + ], + [ + 106.4885044, + 10.7754906 + ], + [ + 106.5045619, + 10.7889222 + ], + [ + 106.5054989, + 10.793118 + ], + [ + 106.5062932, + 10.795111 + ], + [ + 106.5080494, + 10.8033606 + ], + [ + 106.5094941, + 10.808948 + ], + [ + 106.5113115, + 10.8176259 + ], + [ + 106.5158115, + 10.8348671 + ], + [ + 106.5200679, + 10.8522195 + ], + [ + 106.5258696, + 10.8734622 + ], + [ + 106.5265122, + 10.8769134 + ], + [ + 106.5274982, + 10.8800642 + ], + [ + 106.5328728, + 10.8999003 + ], + [ + 106.5328708, + 10.900726 + ], + [ + 106.5325466, + 10.9014489 + ], + [ + 106.5315364, + 10.9026658 + ], + [ + 106.5036803, + 10.9168867 + ], + [ + 106.4535377, + 10.9419195 + ], + [ + 106.4222714, + 10.9658091 + ], + [ + 106.4118982, + 10.973542 + ], + [ + 106.4109339, + 10.9736832 + ], + [ + 106.3976003, + 10.9720919 + ], + [ + 106.3731933, + 10.9696228 + ], + [ + 106.3511251, + 10.9988937 + ], + [ + 106.3455329, + 10.9947858 + ], + [ + 106.3430053, + 11.0012811 + ], + [ + 106.3378339, + 11.0052375 + ], + [ + 106.3361965, + 11.0061138 + ], + [ + 106.327824, + 11.0098801 + ], + [ + 106.3233125, + 11.0125234 + ], + [ + 106.3120618, + 11.0199771 + ], + [ + 106.3074986, + 11.0211992 + ], + [ + 106.3037829, + 11.0218849 + ], + [ + 106.300806, + 11.0226745 + ], + [ + 106.2976075, + 11.0240541 + ], + [ + 106.2974101, + 11.0243279 + ], + [ + 106.2970763, + 11.0256694 + ], + [ + 106.296914, + 11.0257756 + ], + [ + 106.2961886, + 11.0257367 + ], + [ + 106.294792, + 11.0253577 + ], + [ + 106.2943806, + 11.0250353 + ], + [ + 106.2934207, + 11.0255348 + ], + [ + 106.2924536, + 11.0255702 + ], + [ + 106.2914359, + 11.0253081 + ], + [ + 106.2913385, + 11.023785 + ], + [ + 106.2910353, + 11.0234166 + ], + [ + 106.2898444, + 11.0235405 + ], + [ + 106.2873844, + 11.0245535 + ], + [ + 106.2873543, + 11.0242565 + ], + [ + 106.2880583, + 11.0226692 + ], + [ + 106.2880078, + 11.0219182 + ], + [ + 106.2877191, + 11.0217907 + ], + [ + 106.2868711, + 11.021943 + ], + [ + 106.2857206, + 11.0215679 + ], + [ + 106.2847131, + 11.0221607 + ], + [ + 106.2841263, + 11.0220866 + ], + [ + 106.2839516, + 11.0213932 + ], + [ + 106.2830711, + 11.0201534 + ], + [ + 106.2820354, + 11.0195619 + ], + [ + 106.2819668, + 11.0189456 + ], + [ + 106.2808734, + 11.0185453 + ], + [ + 106.2796825, + 11.0173161 + ], + [ + 106.2790618, + 11.0158957 + ], + [ + 106.2772286, + 11.0188499 + ], + [ + 106.2764274, + 11.0198205 + ], + [ + 106.2753917, + 11.0205077 + ], + [ + 106.2748252, + 11.0212444 + ], + [ + 106.2738652, + 11.0216199 + ], + [ + 106.271689, + 11.0174182 + ], + [ + 106.2711694, + 11.01615 + ], + [ + 106.2708229, + 11.0143718 + ] + ] + ] + } +} diff --git a/src/data/boundaries/ld/dl.json b/src/data/boundaries/ld/dl.json new file mode 100644 index 0000000..c52c795 --- /dev/null +++ b/src/data/boundaries/ld/dl.json @@ -0,0 +1,3446 @@ +{ + "type": "Feature", + "properties": { + "code": "DL", + "name": "Da Lat", + "level": "district", + "parent": "LD", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 392.7, + "bbox": [ + 108.31521, + 11.80798, + 108.59461, + 12.00855 + ], + "center": [ + 11.9404, + 108.4583 + ], + "generatedAt": "2026-08-30T07:35:22.336Z", + "osm": "relation/19394120" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 108.3152058, + 11.927614 + ], + [ + 108.3154994, + 11.9270304 + ], + [ + 108.316198, + 11.9264101 + ], + [ + 108.31605, + 11.9259395 + ], + [ + 108.3155635, + 11.9255357 + ], + [ + 108.3162924, + 11.9256609 + ], + [ + 108.317123, + 11.9254906 + ], + [ + 108.3176639, + 11.9251262 + ], + [ + 108.3185331, + 11.9249059 + ], + [ + 108.3188175, + 11.9245676 + ], + [ + 108.3187285, + 11.9238272 + ], + [ + 108.3184188, + 11.9232613 + ], + [ + 108.3183108, + 11.9220076 + ], + [ + 108.3184613, + 11.9213967 + ], + [ + 108.3188044, + 11.9208511 + ], + [ + 108.3188277, + 11.9203736 + ], + [ + 108.3186232, + 11.9200062 + ], + [ + 108.3192884, + 11.9194413 + ], + [ + 108.3190703, + 11.9188455 + ], + [ + 108.3193588, + 11.9182373 + ], + [ + 108.3192623, + 11.9172611 + ], + [ + 108.3187795, + 11.9167729 + ], + [ + 108.3192128, + 11.9158555 + ], + [ + 108.3191764, + 11.9151206 + ], + [ + 108.3193803, + 11.9145684 + ], + [ + 108.320244, + 11.9133551 + ], + [ + 108.3206909, + 11.9122436 + ], + [ + 108.3219112, + 11.9116218 + ], + [ + 108.3222168, + 11.9111728 + ], + [ + 108.3228725, + 11.910847 + ], + [ + 108.32315, + 11.909928 + ], + [ + 108.3240044, + 11.9088629 + ], + [ + 108.3249517, + 11.9082506 + ], + [ + 108.3253321, + 11.908233 + ], + [ + 108.325864, + 11.9077509 + ], + [ + 108.325941, + 11.906905 + ], + [ + 108.3261542, + 11.9065639 + ], + [ + 108.3261529, + 11.9058736 + ], + [ + 108.3268383, + 11.9057811 + ], + [ + 108.3277193, + 11.9062121 + ], + [ + 108.3278688, + 11.906638 + ], + [ + 108.3276495, + 11.9068026 + ], + [ + 108.3271903, + 11.9066962 + ], + [ + 108.3271372, + 11.90701 + ], + [ + 108.3272651, + 11.9071182 + ], + [ + 108.3283165, + 11.9070452 + ], + [ + 108.3290268, + 11.907649 + ], + [ + 108.3300973, + 11.9076331 + ], + [ + 108.330575, + 11.9077798 + ], + [ + 108.3309793, + 11.9075196 + ], + [ + 108.331638, + 11.9077475 + ], + [ + 108.3317667, + 11.9074404 + ], + [ + 108.3320138, + 11.907374 + ], + [ + 108.3337408, + 11.9079023 + ], + [ + 108.3338999, + 11.9085219 + ], + [ + 108.3346466, + 11.9084349 + ], + [ + 108.3351445, + 11.9087913 + ], + [ + 108.3355299, + 11.9088104 + ], + [ + 108.3360046, + 11.9081805 + ], + [ + 108.3367922, + 11.9077999 + ], + [ + 108.3377975, + 11.9070159 + ], + [ + 108.3379685, + 11.9058883 + ], + [ + 108.3386064, + 11.905472 + ], + [ + 108.3403578, + 11.9038002 + ], + [ + 108.3407113, + 11.9032 + ], + [ + 108.3404806, + 11.9027906 + ], + [ + 108.3393511, + 11.9026737 + ], + [ + 108.3390175, + 11.9028219 + ], + [ + 108.3383472, + 11.9035796 + ], + [ + 108.337886, + 11.9034778 + ], + [ + 108.3376826, + 11.9016158 + ], + [ + 108.3372665, + 11.9003128 + ], + [ + 108.337702, + 11.899492 + ], + [ + 108.3380216, + 11.8992676 + ], + [ + 108.3390693, + 11.8990254 + ], + [ + 108.3399409, + 11.8982476 + ], + [ + 108.340199, + 11.8982918 + ], + [ + 108.3407548, + 11.8988824 + ], + [ + 108.3412993, + 11.8990104 + ], + [ + 108.3423877, + 11.8989461 + ], + [ + 108.343475, + 11.898535 + ], + [ + 108.3438604, + 11.8980623 + ], + [ + 108.344543, + 11.896413 + ], + [ + 108.3454111, + 11.8954409 + ], + [ + 108.3462077, + 11.8933019 + ], + [ + 108.3468291, + 11.8933013 + ], + [ + 108.347514, + 11.8930105 + ], + [ + 108.3480963, + 11.8931993 + ], + [ + 108.3492971, + 11.8930775 + ], + [ + 108.3494841, + 11.8929187 + ], + [ + 108.3495198, + 11.8920396 + ], + [ + 108.3492127, + 11.8912564 + ], + [ + 108.3495801, + 11.8908846 + ], + [ + 108.3508319, + 11.89021 + ], + [ + 108.3514796, + 11.8912271 + ], + [ + 108.3525807, + 11.8916772 + ], + [ + 108.3548632, + 11.8940893 + ], + [ + 108.3551626, + 11.8942138 + ], + [ + 108.3556223, + 11.8940551 + ], + [ + 108.3560447, + 11.8941627 + ], + [ + 108.3565672, + 11.8939661 + ], + [ + 108.3582562, + 11.8953438 + ], + [ + 108.3589199, + 11.8953132 + ], + [ + 108.3597261, + 11.8958976 + ], + [ + 108.3602759, + 11.8969671 + ], + [ + 108.3614776, + 11.897706 + ], + [ + 108.3619645, + 11.8977479 + ], + [ + 108.3622822, + 11.8980078 + ], + [ + 108.3623439, + 11.8986324 + ], + [ + 108.362765, + 11.898971 + ], + [ + 108.3645648, + 11.8991574 + ], + [ + 108.3651307, + 11.898992 + ], + [ + 108.3659166, + 11.8994933 + ], + [ + 108.3659622, + 11.8990996 + ], + [ + 108.3665818, + 11.8979606 + ], + [ + 108.3669814, + 11.8978739 + ], + [ + 108.3671746, + 11.8980419 + ], + [ + 108.3692157, + 11.895895 + ], + [ + 108.3693713, + 11.8947609 + ], + [ + 108.3707812, + 11.8933002 + ], + [ + 108.3715989, + 11.8911224 + ], + [ + 108.3726503, + 11.8899253 + ], + [ + 108.3732492, + 11.8899884 + ], + [ + 108.3737113, + 11.8902441 + ], + [ + 108.3748394, + 11.8918972 + ], + [ + 108.3759963, + 11.8925906 + ], + [ + 108.3769029, + 11.8918688 + ], + [ + 108.3777694, + 11.8916878 + ], + [ + 108.3788073, + 11.8910053 + ], + [ + 108.37951, + 11.8915412 + ], + [ + 108.3802041, + 11.8917804 + ], + [ + 108.3807438, + 11.8917591 + ], + [ + 108.3816913, + 11.8913163 + ], + [ + 108.3830076, + 11.8914725 + ], + [ + 108.3833616, + 11.8902859 + ], + [ + 108.3844011, + 11.8899162 + ], + [ + 108.3848154, + 11.8895722 + ], + [ + 108.38514, + 11.8877087 + ], + [ + 108.3856793, + 11.8873239 + ], + [ + 108.3858883, + 11.8867743 + ], + [ + 108.3863387, + 11.8862116 + ], + [ + 108.3863831, + 11.8855448 + ], + [ + 108.3855559, + 11.8840712 + ], + [ + 108.3855164, + 11.8836254 + ], + [ + 108.3857726, + 11.883231 + ], + [ + 108.3868228, + 11.8825104 + ], + [ + 108.3880759, + 11.8808294 + ], + [ + 108.3885115, + 11.8797086 + ], + [ + 108.3885813, + 11.878706 + ], + [ + 108.3893967, + 11.8789211 + ], + [ + 108.3899948, + 11.8787663 + ], + [ + 108.3925885, + 11.8787925 + ], + [ + 108.3941871, + 11.8778423 + ], + [ + 108.3959843, + 11.8765834 + ], + [ + 108.3964616, + 11.8756139 + ], + [ + 108.3973387, + 11.8756612 + ], + [ + 108.3978939, + 11.8753777 + ], + [ + 108.3982292, + 11.8748632 + ], + [ + 108.3984463, + 11.8740196 + ], + [ + 108.3989262, + 11.8734725 + ], + [ + 108.4003684, + 11.8727978 + ], + [ + 108.40072, + 11.8721322 + ], + [ + 108.4013027, + 11.8716842 + ], + [ + 108.4020246, + 11.8707021 + ], + [ + 108.4038323, + 11.8698918 + ], + [ + 108.40452, + 11.8689378 + ], + [ + 108.4048117, + 11.8680938 + ], + [ + 108.4056155, + 11.8675688 + ], + [ + 108.4063214, + 11.8674454 + ], + [ + 108.410019, + 11.865684 + ], + [ + 108.4110758, + 11.8656786 + ], + [ + 108.4123216, + 11.866123 + ], + [ + 108.4131681, + 11.8660002 + ], + [ + 108.4137196, + 11.8650863 + ], + [ + 108.4146846, + 11.8641748 + ], + [ + 108.416487, + 11.8631931 + ], + [ + 108.4174177, + 11.8621484 + ], + [ + 108.4175638, + 11.8616546 + ], + [ + 108.4174385, + 11.8600446 + ], + [ + 108.4181947, + 11.8591847 + ], + [ + 108.4187026, + 11.8576544 + ], + [ + 108.4190421, + 11.8571685 + ], + [ + 108.4201938, + 11.8564364 + ], + [ + 108.4243083, + 11.8545674 + ], + [ + 108.4254134, + 11.8536775 + ], + [ + 108.4263972, + 11.853522 + ], + [ + 108.4286737, + 11.8593433 + ], + [ + 108.4285981, + 11.8604584 + ], + [ + 108.4294099, + 11.8618557 + ], + [ + 108.4315717, + 11.8632561 + ], + [ + 108.4324944, + 11.8636393 + ], + [ + 108.433353, + 11.8646207 + ], + [ + 108.4341303, + 11.8648515 + ], + [ + 108.4349057, + 11.8653875 + ], + [ + 108.4354676, + 11.8654846 + ], + [ + 108.4379411, + 11.8681593 + ], + [ + 108.4394727, + 11.8693193 + ], + [ + 108.4402031, + 11.8703905 + ], + [ + 108.4417331, + 11.8711065 + ], + [ + 108.4423926, + 11.8721538 + ], + [ + 108.4433842, + 11.8729051 + ], + [ + 108.4437359, + 11.8740006 + ], + [ + 108.4438562, + 11.8755982 + ], + [ + 108.4441978, + 11.8759138 + ], + [ + 108.4443068, + 11.876362 + ], + [ + 108.445187, + 11.8767293 + ], + [ + 108.4462112, + 11.8767714 + ], + [ + 108.4466913, + 11.8769788 + ], + [ + 108.4474415, + 11.8775035 + ], + [ + 108.4475604, + 11.8783017 + ], + [ + 108.4484726, + 11.8781822 + ], + [ + 108.4499089, + 11.8797293 + ], + [ + 108.4506692, + 11.880267 + ], + [ + 108.4511671, + 11.8799137 + ], + [ + 108.4516427, + 11.8799885 + ], + [ + 108.4523597, + 11.8797159 + ], + [ + 108.4534516, + 11.880048 + ], + [ + 108.453973, + 11.8804607 + ], + [ + 108.4541688, + 11.8811625 + ], + [ + 108.4546307, + 11.8816426 + ], + [ + 108.4552417, + 11.8812987 + ], + [ + 108.4556778, + 11.8813127 + ], + [ + 108.4560515, + 11.8816201 + ], + [ + 108.4563436, + 11.8824206 + ], + [ + 108.4568511, + 11.8825999 + ], + [ + 108.4575712, + 11.8825136 + ], + [ + 108.4588651, + 11.8838604 + ], + [ + 108.4590204, + 11.8842337 + ], + [ + 108.4605405, + 11.8851377 + ], + [ + 108.4613609, + 11.884784 + ], + [ + 108.4613229, + 11.8833076 + ], + [ + 108.461622, + 11.8825325 + ], + [ + 108.4620416, + 11.882037 + ], + [ + 108.4615694, + 11.8809187 + ], + [ + 108.4620805, + 11.880006 + ], + [ + 108.462709, + 11.8794178 + ], + [ + 108.464006, + 11.8795848 + ], + [ + 108.4642771, + 11.8793602 + ], + [ + 108.4647448, + 11.8793421 + ], + [ + 108.4659826, + 11.8788892 + ], + [ + 108.4658793, + 11.8784927 + ], + [ + 108.466252, + 11.8780409 + ], + [ + 108.465923, + 11.8778402 + ], + [ + 108.4659226, + 11.8776922 + ], + [ + 108.466324, + 11.8773669 + ], + [ + 108.4672444, + 11.8770562 + ], + [ + 108.4672718, + 11.8767089 + ], + [ + 108.4676465, + 11.8763099 + ], + [ + 108.4679097, + 11.8756095 + ], + [ + 108.4678604, + 11.875164 + ], + [ + 108.4684883, + 11.8748685 + ], + [ + 108.4686041, + 11.8744041 + ], + [ + 108.4690556, + 11.8738391 + ], + [ + 108.4804818, + 11.8697947 + ], + [ + 108.4867823, + 11.8697448 + ], + [ + 108.4876767, + 11.8687931 + ], + [ + 108.4880399, + 11.8674047 + ], + [ + 108.4889576, + 11.8669992 + ], + [ + 108.4903216, + 11.8653457 + ], + [ + 108.4916854, + 11.8646289 + ], + [ + 108.4918816, + 11.8643179 + ], + [ + 108.4911139, + 11.8639105 + ], + [ + 108.4904597, + 11.8640739 + ], + [ + 108.4884543, + 11.8633051 + ], + [ + 108.4874328, + 11.8617125 + ], + [ + 108.4866844, + 11.8610255 + ], + [ + 108.4861125, + 11.8608273 + ], + [ + 108.485497, + 11.8608471 + ], + [ + 108.484823, + 11.8603217 + ], + [ + 108.4842325, + 11.8593711 + ], + [ + 108.4830734, + 11.8588851 + ], + [ + 108.4814849, + 11.8578854 + ], + [ + 108.4810707, + 11.8578958 + ], + [ + 108.480987, + 11.8574901 + ], + [ + 108.4807295, + 11.8572565 + ], + [ + 108.4805095, + 11.8573305 + ], + [ + 108.4801319, + 11.8581175 + ], + [ + 108.4799488, + 11.8581435 + ], + [ + 108.4796696, + 11.8577052 + ], + [ + 108.4796851, + 11.8570271 + ], + [ + 108.4872463, + 11.8557382 + ], + [ + 108.4892982, + 11.8551423 + ], + [ + 108.4976158, + 11.847997 + ], + [ + 108.4985974, + 11.847682 + ], + [ + 108.4994007, + 11.8469551 + ], + [ + 108.5017642, + 11.8456245 + ], + [ + 108.5023847, + 11.8448154 + ], + [ + 108.5029596, + 11.8443517 + ], + [ + 108.5038107, + 11.8439723 + ], + [ + 108.5047826, + 11.8440695 + ], + [ + 108.5051393, + 11.843936 + ], + [ + 108.5053321, + 11.8432068 + ], + [ + 108.504999, + 11.8424486 + ], + [ + 108.5049744, + 11.8419852 + ], + [ + 108.5056283, + 11.840062 + ], + [ + 108.5056329, + 11.8387067 + ], + [ + 108.5036392, + 11.8368338 + ], + [ + 108.5011506, + 11.8350951 + ], + [ + 108.5000462, + 11.8335194 + ], + [ + 108.4996573, + 11.8337057 + ], + [ + 108.4972541, + 11.8333724 + ], + [ + 108.4973203, + 11.8325318 + ], + [ + 108.4970383, + 11.8320394 + ], + [ + 108.4964912, + 11.8317883 + ], + [ + 108.4950171, + 11.8316817 + ], + [ + 108.4947113, + 11.8314717 + ], + [ + 108.4941392, + 11.8306524 + ], + [ + 108.4937055, + 11.8294923 + ], + [ + 108.4928257, + 11.8288753 + ], + [ + 108.4914326, + 11.8289273 + ], + [ + 108.4904654, + 11.8286758 + ], + [ + 108.4904468, + 11.8279577 + ], + [ + 108.4901838, + 11.827459 + ], + [ + 108.4878986, + 11.8260435 + ], + [ + 108.4874975, + 11.8256747 + ], + [ + 108.4872372, + 11.8251357 + ], + [ + 108.4877987, + 11.8249342 + ], + [ + 108.4895503, + 11.8234804 + ], + [ + 108.490355, + 11.8230498 + ], + [ + 108.490673, + 11.8231702 + ], + [ + 108.4910539, + 11.8230528 + ], + [ + 108.4924323, + 11.8221625 + ], + [ + 108.4932149, + 11.8221863 + ], + [ + 108.4937909, + 11.8228083 + ], + [ + 108.4939304, + 11.8223108 + ], + [ + 108.4952528, + 11.8214957 + ], + [ + 108.4961057, + 11.8203773 + ], + [ + 108.4963421, + 11.819727 + ], + [ + 108.4963541, + 11.8188263 + ], + [ + 108.4975518, + 11.8174608 + ], + [ + 108.4975149, + 11.8165241 + ], + [ + 108.4966341, + 11.8163684 + ], + [ + 108.5020173, + 11.8144019 + ], + [ + 108.5032725, + 11.8135356 + ], + [ + 108.5049665, + 11.812755 + ], + [ + 108.505177, + 11.8122452 + ], + [ + 108.5048336, + 11.8111806 + ], + [ + 108.5195199, + 11.8148003 + ], + [ + 108.5211387, + 11.8144585 + ], + [ + 108.5215775, + 11.8141352 + ], + [ + 108.5220456, + 11.8113815 + ], + [ + 108.5225771, + 11.8107642 + ], + [ + 108.5240789, + 11.8103281 + ], + [ + 108.5257613, + 11.8095039 + ], + [ + 108.5271947, + 11.8099543 + ], + [ + 108.5282128, + 11.809809 + ], + [ + 108.529959, + 11.8101486 + ], + [ + 108.5304701, + 11.8100963 + ], + [ + 108.5325515, + 11.80871 + ], + [ + 108.5345109, + 11.8079789 + ], + [ + 108.535333, + 11.8092876 + ], + [ + 108.5357343, + 11.8111428 + ], + [ + 108.5375297, + 11.812853 + ], + [ + 108.5383907, + 11.8139162 + ], + [ + 108.5388633, + 11.8142179 + ], + [ + 108.5422933, + 11.8154364 + ], + [ + 108.5427796, + 11.8158515 + ], + [ + 108.5429526, + 11.8163016 + ], + [ + 108.5429456, + 11.8170807 + ], + [ + 108.542709, + 11.8176627 + ], + [ + 108.5427212, + 11.8182568 + ], + [ + 108.5422826, + 11.8187706 + ], + [ + 108.5423684, + 11.8203563 + ], + [ + 108.5438242, + 11.8207458 + ], + [ + 108.5442473, + 11.8216743 + ], + [ + 108.544459, + 11.8226695 + ], + [ + 108.5453664, + 11.8234129 + ], + [ + 108.5453027, + 11.8245161 + ], + [ + 108.5454899, + 11.8258613 + ], + [ + 108.5459076, + 11.8260781 + ], + [ + 108.5465869, + 11.8261195 + ], + [ + 108.5476716, + 11.8270199 + ], + [ + 108.5478032, + 11.8278338 + ], + [ + 108.5491165, + 11.8291343 + ], + [ + 108.5495614, + 11.8299113 + ], + [ + 108.5498223, + 11.8310622 + ], + [ + 108.5765965, + 11.8465899 + ], + [ + 108.5769126, + 11.8470598 + ], + [ + 108.5772836, + 11.84713 + ], + [ + 108.5775328, + 11.846951 + ], + [ + 108.577515, + 11.8466558 + ], + [ + 108.577095, + 11.8459599 + ], + [ + 108.5772318, + 11.8457158 + ], + [ + 108.5775602, + 11.8457854 + ], + [ + 108.5778375, + 11.8462148 + ], + [ + 108.5784227, + 11.8465952 + ], + [ + 108.578691, + 11.846635 + ], + [ + 108.5790254, + 11.8463652 + ], + [ + 108.5792868, + 11.8463822 + ], + [ + 108.5798671, + 11.8470658 + ], + [ + 108.5793078, + 11.8477889 + ], + [ + 108.5804021, + 11.8492176 + ], + [ + 108.5815769, + 11.8498949 + ], + [ + 108.5832828, + 11.8496639 + ], + [ + 108.5835054, + 11.8504094 + ], + [ + 108.5831405, + 11.8517497 + ], + [ + 108.5840955, + 11.8527562 + ], + [ + 108.584007, + 11.8533599 + ], + [ + 108.5845944, + 11.8533993 + ], + [ + 108.5854071, + 11.8529189 + ], + [ + 108.5858256, + 11.8524412 + ], + [ + 108.588438, + 11.8511497 + ], + [ + 108.5896611, + 11.850958 + ], + [ + 108.5897623, + 11.851538 + ], + [ + 108.5896401, + 11.8526086 + ], + [ + 108.5899761, + 11.8542387 + ], + [ + 108.5906428, + 11.8550242 + ], + [ + 108.5907394, + 11.8556122 + ], + [ + 108.5914421, + 11.8561214 + ], + [ + 108.5918478, + 11.8568423 + ], + [ + 108.5923353, + 11.8572961 + ], + [ + 108.5926625, + 11.8581952 + ], + [ + 108.5933848, + 11.8586424 + ], + [ + 108.5943979, + 11.8597492 + ], + [ + 108.5946125, + 11.8606731 + ], + [ + 108.5943657, + 11.8617021 + ], + [ + 108.5944033, + 11.8635973 + ], + [ + 108.5941136, + 11.8643375 + ], + [ + 108.5938561, + 11.864432 + ], + [ + 108.5936469, + 11.8652405 + ], + [ + 108.5930666, + 11.8655072 + ], + [ + 108.5906266, + 11.8674623 + ], + [ + 108.5893661, + 11.8676712 + ], + [ + 108.5886289, + 11.8683289 + ], + [ + 108.5877952, + 11.8685355 + ], + [ + 108.5872739, + 11.8688891 + ], + [ + 108.5862064, + 11.8691306 + ], + [ + 108.5858256, + 11.8694246 + ], + [ + 108.5858738, + 11.8697605 + ], + [ + 108.587333, + 11.8707475 + ], + [ + 108.5865819, + 11.8722332 + ], + [ + 108.5865739, + 11.8732332 + ], + [ + 108.5863156, + 11.8739413 + ], + [ + 108.5866631, + 11.8749351 + ], + [ + 108.5863513, + 11.8759026 + ], + [ + 108.5860921, + 11.8788549 + ], + [ + 108.5862839, + 11.8795241 + ], + [ + 108.5861742, + 11.88016 + ], + [ + 108.586759, + 11.880958 + ], + [ + 108.5870594, + 11.8830499 + ], + [ + 108.5868448, + 11.8836903 + ], + [ + 108.5869896, + 11.884147 + ], + [ + 108.585674, + 11.8889108 + ], + [ + 108.5849512, + 11.8890289 + ], + [ + 108.5840312, + 11.8898688 + ], + [ + 108.5834438, + 11.8900499 + ], + [ + 108.583535, + 11.8906641 + ], + [ + 108.584007, + 11.8913544 + ], + [ + 108.5852838, + 11.8919292 + ], + [ + 108.5858148, + 11.893063 + ], + [ + 108.5881215, + 11.8945669 + ], + [ + 108.5881805, + 11.8949081 + ], + [ + 108.589637, + 11.8963727 + ], + [ + 108.5900044, + 11.8973543 + ], + [ + 108.5912678, + 11.8988975 + ], + [ + 108.5915092, + 11.9000523 + ], + [ + 108.5920966, + 11.9013305 + ], + [ + 108.5922897, + 11.9031624 + ], + [ + 108.5924721, + 11.9034354 + ], + [ + 108.5925257, + 11.9048815 + ], + [ + 108.5915816, + 11.904661 + ], + [ + 108.5908362, + 11.9047458 + ], + [ + 108.588702, + 11.9057217 + ], + [ + 108.5861501, + 11.9060704 + ], + [ + 108.584634, + 11.906674 + ], + [ + 108.583149, + 11.906433 + ], + [ + 108.5815372, + 11.9057625 + ], + [ + 108.5808448, + 11.9057455 + ], + [ + 108.5802009, + 11.9059979 + ], + [ + 108.5791542, + 11.9068248 + ], + [ + 108.5779828, + 11.9095295 + ], + [ + 108.5757344, + 11.9123813 + ], + [ + 108.5752201, + 11.9148781 + ], + [ + 108.5743457, + 11.9171718 + ], + [ + 108.5733545, + 11.9190061 + ], + [ + 108.5733412, + 11.9198134 + ], + [ + 108.5741258, + 11.9213551 + ], + [ + 108.5744557, + 11.9234675 + ], + [ + 108.5742842, + 11.9256414 + ], + [ + 108.5736859, + 11.9271391 + ], + [ + 108.5730408, + 11.9279275 + ], + [ + 108.5716742, + 11.9286035 + ], + [ + 108.569703, + 11.9311281 + ], + [ + 108.5692729, + 11.9322145 + ], + [ + 108.5683706, + 11.9335916 + ], + [ + 108.5676248, + 11.9342961 + ], + [ + 108.5669532, + 11.9360207 + ], + [ + 108.5664826, + 11.9365132 + ], + [ + 108.5655695, + 11.9370588 + ], + [ + 108.5644348, + 11.9387051 + ], + [ + 108.5646307, + 11.9398982 + ], + [ + 108.5659935, + 11.9423015 + ], + [ + 108.5660762, + 11.9431397 + ], + [ + 108.5665767, + 11.94357 + ], + [ + 108.5665297, + 11.9446059 + ], + [ + 108.5655943, + 11.9482639 + ], + [ + 108.5655266, + 11.949572 + ], + [ + 108.565791, + 11.9512733 + ], + [ + 108.5675168, + 11.9551442 + ], + [ + 108.5685468, + 11.9568236 + ], + [ + 108.5683161, + 11.957721 + ], + [ + 108.5684985, + 11.9588242 + ], + [ + 108.568857, + 11.9591332 + ], + [ + 108.5699844, + 11.9593741 + ], + [ + 108.5702754, + 11.959779 + ], + [ + 108.570883, + 11.9620375 + ], + [ + 108.5707578, + 11.9632163 + ], + [ + 108.5682445, + 11.9641555 + ], + [ + 108.5663353, + 11.9652343 + ], + [ + 108.5649438, + 11.9664898 + ], + [ + 108.5639119, + 11.9685055 + ], + [ + 108.5626083, + 11.9692192 + ], + [ + 108.5610687, + 11.9703527 + ], + [ + 108.5594621, + 11.9720031 + ], + [ + 108.5585421, + 11.9725646 + ], + [ + 108.557838, + 11.9736758 + ], + [ + 108.5562086, + 11.9750547 + ], + [ + 108.5549292, + 11.9745791 + ], + [ + 108.5530895, + 11.975276 + ], + [ + 108.5523436, + 11.9759366 + ], + [ + 108.5512573, + 11.976217 + ], + [ + 108.550073, + 11.9761737 + ], + [ + 108.5488915, + 11.975443 + ], + [ + 108.5478259, + 11.9756562 + ], + [ + 108.5470931, + 11.9755322 + ], + [ + 108.5466989, + 11.9758167 + ], + [ + 108.5458526, + 11.9760261 + ], + [ + 108.5452813, + 11.9766184 + ], + [ + 108.5437859, + 11.9776458 + ], + [ + 108.5431947, + 11.9777912 + ], + [ + 108.5422383, + 11.9777309 + ], + [ + 108.5416502, + 11.9779647 + ], + [ + 108.5410649, + 11.9784634 + ], + [ + 108.5402871, + 11.9796068 + ], + [ + 108.5398954, + 11.9799349 + ], + [ + 108.5382975, + 11.9802995 + ], + [ + 108.5374627, + 11.9811812 + ], + [ + 108.5366499, + 11.9817244 + ], + [ + 108.5359895, + 11.982974 + ], + [ + 108.5350347, + 11.9839129 + ], + [ + 108.5342869, + 11.9837263 + ], + [ + 108.5336244, + 11.9838385 + ], + [ + 108.5324571, + 11.9837561 + ], + [ + 108.531717, + 11.9844035 + ], + [ + 108.5308805, + 11.9842511 + ], + [ + 108.5298398, + 11.9838024 + ], + [ + 108.5291666, + 11.9845161 + ], + [ + 108.5283505, + 11.9850348 + ], + [ + 108.5280937, + 11.9854081 + ], + [ + 108.5259774, + 11.9845266 + ], + [ + 108.5255712, + 11.9841082 + ], + [ + 108.5251604, + 11.9839431 + ], + [ + 108.5239296, + 11.98391 + ], + [ + 108.5230029, + 11.9845698 + ], + [ + 108.5188674, + 11.9837031 + ], + [ + 108.5178879, + 11.9840057 + ], + [ + 108.5168445, + 11.9838851 + ], + [ + 108.5161504, + 11.9841545 + ], + [ + 108.5155733, + 11.984596 + ], + [ + 108.5151896, + 11.9851182 + ], + [ + 108.5149307, + 11.9859697 + ], + [ + 108.5143581, + 11.9865954 + ], + [ + 108.5126254, + 11.9863724 + ], + [ + 108.5108334, + 11.9857755 + ], + [ + 108.5101014, + 11.9853596 + ], + [ + 108.5094198, + 11.9854659 + ], + [ + 108.5074487, + 11.9862884 + ], + [ + 108.5075507, + 11.9868945 + ], + [ + 108.5074434, + 11.9874323 + ], + [ + 108.5067326, + 11.9870781 + ], + [ + 108.5050079, + 11.9867239 + ], + [ + 108.5043211, + 11.9871905 + ], + [ + 108.5033154, + 11.9873431 + ], + [ + 108.5017544, + 11.9879833 + ], + [ + 108.5004723, + 11.9889279 + ], + [ + 108.4988898, + 11.9889174 + ], + [ + 108.4988844, + 11.9893896 + ], + [ + 108.4983708, + 11.9903 + ], + [ + 108.4965789, + 11.9897065 + ], + [ + 108.4962384, + 11.9897176 + ], + [ + 108.4941007, + 11.991268 + ], + [ + 108.4935017, + 11.99193 + ], + [ + 108.4934143, + 11.9924783 + ], + [ + 108.4922387, + 11.9923899 + ], + [ + 108.4917758, + 11.9929967 + ], + [ + 108.4909545, + 11.9927388 + ], + [ + 108.4895584, + 11.9927663 + ], + [ + 108.4867705, + 11.9921139 + ], + [ + 108.4847356, + 11.9927962 + ], + [ + 108.4841893, + 11.9927834 + ], + [ + 108.4814588, + 11.9918428 + ], + [ + 108.4809256, + 11.9906891 + ], + [ + 108.480915, + 11.9899734 + ], + [ + 108.4798568, + 11.9908182 + ], + [ + 108.4790024, + 11.9910976 + ], + [ + 108.4786435, + 11.9906584 + ], + [ + 108.4779833, + 11.9904299 + ], + [ + 108.4774952, + 11.9895051 + ], + [ + 108.4769894, + 11.989289 + ], + [ + 108.47646, + 11.9887641 + ], + [ + 108.4746406, + 11.9889141 + ], + [ + 108.4738243, + 11.9913206 + ], + [ + 108.4740422, + 11.9926786 + ], + [ + 108.4735549, + 11.9937011 + ], + [ + 108.4723024, + 11.9941575 + ], + [ + 108.4711825, + 11.9937662 + ], + [ + 108.4707642, + 11.9941529 + ], + [ + 108.4702213, + 11.9939968 + ], + [ + 108.4693131, + 11.9942474 + ], + [ + 108.4684176, + 11.9941634 + ], + [ + 108.4681574, + 11.994522 + ], + [ + 108.4679184, + 11.995365 + ], + [ + 108.4661267, + 11.9964565 + ], + [ + 108.4660311, + 11.9973803 + ], + [ + 108.4655568, + 11.9981064 + ], + [ + 108.4646671, + 11.9984918 + ], + [ + 108.4637024, + 11.9985726 + ], + [ + 108.4632665, + 11.9988476 + ], + [ + 108.4632212, + 11.9991769 + ], + [ + 108.4640953, + 12.0011563 + ], + [ + 108.4639676, + 12.0027756 + ], + [ + 108.4640989, + 12.0031624 + ], + [ + 108.4639326, + 12.0040596 + ], + [ + 108.4634445, + 12.0054449 + ], + [ + 108.4630041, + 12.006108 + ], + [ + 108.4612974, + 12.00704 + ], + [ + 108.4606576, + 12.0077037 + ], + [ + 108.459747, + 12.0073181 + ], + [ + 108.4586876, + 12.0071292 + ], + [ + 108.4581015, + 12.0076775 + ], + [ + 108.4563586, + 12.0077439 + ], + [ + 108.4557289, + 12.0085517 + ], + [ + 108.454907, + 12.0084409 + ], + [ + 108.4537131, + 12.0076431 + ], + [ + 108.4531582, + 12.0076486 + ], + [ + 108.4525386, + 12.0074125 + ], + [ + 108.4519175, + 12.0068085 + ], + [ + 108.4514121, + 12.0065651 + ], + [ + 108.4514013, + 12.005597 + ], + [ + 108.4507947, + 12.0048326 + ], + [ + 108.4502574, + 12.0045476 + ], + [ + 108.4496445, + 12.003897 + ], + [ + 108.4494135, + 12.0032089 + ], + [ + 108.4491161, + 12.0028764 + ], + [ + 108.4473941, + 12.0021182 + ], + [ + 108.4463454, + 12.0018768 + ], + [ + 108.4455595, + 12.0018847 + ], + [ + 108.4426868, + 12.0003001 + ], + [ + 108.4416332, + 11.9994554 + ], + [ + 108.4412695, + 11.9986366 + ], + [ + 108.4407975, + 11.998068 + ], + [ + 108.4407419, + 11.9969291 + ], + [ + 108.4405545, + 11.9963489 + ], + [ + 108.4400774, + 11.9954714 + ], + [ + 108.4395621, + 11.9954752 + ], + [ + 108.4394916, + 11.9951168 + ], + [ + 108.4397548, + 11.9947494 + ], + [ + 108.4392751, + 11.9942801 + ], + [ + 108.4387198, + 11.9947537 + ], + [ + 108.4377347, + 11.9950274 + ], + [ + 108.4371668, + 11.9944861 + ], + [ + 108.4357747, + 11.994856 + ], + [ + 108.4350961, + 11.9944835 + ], + [ + 108.4352678, + 11.9939588 + ], + [ + 108.4349459, + 11.9938512 + ], + [ + 108.4346512, + 11.9943271 + ], + [ + 108.4343208, + 11.9944601 + ], + [ + 108.4342056, + 11.9949557 + ], + [ + 108.4340206, + 11.9948298 + ], + [ + 108.4341484, + 11.994502 + ], + [ + 108.4340098, + 11.9942316 + ], + [ + 108.4330496, + 11.9942264 + ], + [ + 108.4323415, + 11.9937882 + ], + [ + 108.4323014, + 11.9940052 + ], + [ + 108.431887, + 11.9942648 + ], + [ + 108.431046, + 11.995428 + ], + [ + 108.43083, + 11.9953519 + ], + [ + 108.4296783, + 11.9972894 + ], + [ + 108.42871, + 11.9980687 + ], + [ + 108.426299, + 11.9988905 + ], + [ + 108.4253851, + 11.999715 + ], + [ + 108.4246811, + 12.0006316 + ], + [ + 108.4226663, + 12.0002121 + ], + [ + 108.4220194, + 12.000256 + ], + [ + 108.421662, + 12.0005947 + ], + [ + 108.4212291, + 12.0007146 + ], + [ + 108.4209049, + 12.0006361 + ], + [ + 108.4206256, + 12.0002686 + ], + [ + 108.4198546, + 12.0001764 + ], + [ + 108.4195299, + 11.9999605 + ], + [ + 108.4192368, + 12.0002016 + ], + [ + 108.4188527, + 12.0000125 + ], + [ + 108.418006, + 11.9999541 + ], + [ + 108.4163664, + 12.0012626 + ], + [ + 108.4162804, + 12.0017526 + ], + [ + 108.4154263, + 12.0025905 + ], + [ + 108.4140979, + 12.0035284 + ], + [ + 108.4133228, + 12.003466 + ], + [ + 108.411913, + 12.0039368 + ], + [ + 108.4111505, + 12.0036325 + ], + [ + 108.4091071, + 12.0042448 + ], + [ + 108.4079537, + 12.0043358 + ], + [ + 108.4073406, + 12.0047523 + ], + [ + 108.4069169, + 12.0043194 + ], + [ + 108.4048314, + 12.0033631 + ], + [ + 108.4050467, + 12.0030227 + ], + [ + 108.4046922, + 12.0026894 + ], + [ + 108.4034398, + 12.002364 + ], + [ + 108.4021675, + 12.001404 + ], + [ + 108.401187, + 12.0009746 + ], + [ + 108.4002368, + 12.0009854 + ], + [ + 108.399238, + 12.000543 + ], + [ + 108.3986785, + 12.0004758 + ], + [ + 108.3982391, + 11.9996931 + ], + [ + 108.3980146, + 11.9988518 + ], + [ + 108.3971944, + 11.9992259 + ], + [ + 108.396414, + 11.9991318 + ], + [ + 108.3949646, + 11.9980347 + ], + [ + 108.3926854, + 11.9980395 + ], + [ + 108.3901299, + 11.9972031 + ], + [ + 108.3893621, + 11.9966959 + ], + [ + 108.3887529, + 11.9954569 + ], + [ + 108.3878185, + 11.9944481 + ], + [ + 108.3851534, + 11.9934314 + ], + [ + 108.3837976, + 11.9920061 + ], + [ + 108.3832651, + 11.9909783 + ], + [ + 108.3824095, + 11.9911487 + ], + [ + 108.38157, + 11.9902909 + ], + [ + 108.3773089, + 11.9889549 + ], + [ + 108.3762807, + 11.9878587 + ], + [ + 108.3736041, + 11.9858629 + ], + [ + 108.3731168, + 11.9858272 + ], + [ + 108.3725718, + 11.9860777 + ], + [ + 108.3719549, + 11.9868978 + ], + [ + 108.3698863, + 11.988777 + ], + [ + 108.368925, + 11.9889806 + ], + [ + 108.3682091, + 11.98936 + ], + [ + 108.3677364, + 11.9893821 + ], + [ + 108.3675136, + 11.9892081 + ], + [ + 108.3675928, + 11.988253 + ], + [ + 108.3674564, + 11.9880852 + ], + [ + 108.3656573, + 11.988777 + ], + [ + 108.3653311, + 11.9889754 + ], + [ + 108.3652766, + 11.9891794 + ], + [ + 108.3650316, + 11.9892036 + ], + [ + 108.3645943, + 11.9891443 + ], + [ + 108.3632321, + 11.9884051 + ], + [ + 108.3630505, + 11.9886917 + ], + [ + 108.3630661, + 11.9890842 + ], + [ + 108.3639261, + 11.9902898 + ], + [ + 108.3639532, + 11.9906897 + ], + [ + 108.363693, + 11.9909302 + ], + [ + 108.3630627, + 11.9910544 + ], + [ + 108.3625746, + 11.9914899 + ], + [ + 108.3615177, + 11.9918917 + ], + [ + 108.361048, + 11.9918653 + ], + [ + 108.3606219, + 11.9911908 + ], + [ + 108.3600694, + 11.9910701 + ], + [ + 108.3593723, + 11.991182 + ], + [ + 108.3586331, + 11.9919213 + ], + [ + 108.357868, + 11.9922044 + ], + [ + 108.3575803, + 11.9924816 + ], + [ + 108.3566689, + 11.9924008 + ], + [ + 108.3555365, + 11.9918874 + ], + [ + 108.3554211, + 11.9917903 + ], + [ + 108.3557364, + 11.9908219 + ], + [ + 108.3554614, + 11.9894172 + ], + [ + 108.3558593, + 11.9883816 + ], + [ + 108.3558823, + 11.9874113 + ], + [ + 108.3564618, + 11.9870978 + ], + [ + 108.35584, + 11.9862672 + ], + [ + 108.3540773, + 11.9850408 + ], + [ + 108.352983, + 11.9840202 + ], + [ + 108.3525713, + 11.9833918 + ], + [ + 108.3508044, + 11.9829622 + ], + [ + 108.3501452, + 11.9830153 + ], + [ + 108.3482194, + 11.98036 + ], + [ + 108.3464947, + 11.9804072 + ], + [ + 108.3459991, + 11.9790249 + ], + [ + 108.3454226, + 11.9783962 + ], + [ + 108.3448171, + 11.9782151 + ], + [ + 108.3435845, + 11.9783502 + ], + [ + 108.3421147, + 11.9763613 + ], + [ + 108.340617, + 11.9759191 + ], + [ + 108.3393177, + 11.9761956 + ], + [ + 108.3388056, + 11.9761253 + ], + [ + 108.3385764, + 11.9752815 + ], + [ + 108.3383367, + 11.9750423 + ], + [ + 108.3380892, + 11.9751393 + ], + [ + 108.3379036, + 11.9744968 + ], + [ + 108.3376419, + 11.9744863 + ], + [ + 108.3376397, + 11.9740888 + ], + [ + 108.3372545, + 11.9733754 + ], + [ + 108.3368844, + 11.9729871 + ], + [ + 108.3363675, + 11.971889 + ], + [ + 108.3351088, + 11.9702215 + ], + [ + 108.3347334, + 11.9693438 + ], + [ + 108.3355609, + 11.9685731 + ], + [ + 108.3369487, + 11.9685947 + ], + [ + 108.33763, + 11.9676553 + ], + [ + 108.3382095, + 11.9661585 + ], + [ + 108.3381264, + 11.9654274 + ], + [ + 108.33829, + 11.964146 + ], + [ + 108.3379027, + 11.9635745 + ], + [ + 108.3374195, + 11.9635219 + ], + [ + 108.3367449, + 11.9638244 + ], + [ + 108.3364552, + 11.9642075 + ], + [ + 108.3332192, + 11.9645989 + ], + [ + 108.3325842, + 11.9654744 + ], + [ + 108.3320466, + 11.9656043 + ], + [ + 108.329386, + 11.9646818 + ], + [ + 108.3288057, + 11.9640731 + ], + [ + 108.328618, + 11.9631171 + ], + [ + 108.3284301, + 11.9628483 + ], + [ + 108.3274645, + 11.962439 + ], + [ + 108.3268475, + 11.9618932 + ], + [ + 108.3252865, + 11.9619142 + ], + [ + 108.324345, + 11.9608593 + ], + [ + 108.3246472, + 11.9606827 + ], + [ + 108.3251094, + 11.9598681 + ], + [ + 108.3257854, + 11.9594739 + ], + [ + 108.3264782, + 11.9593242 + ], + [ + 108.3266504, + 11.9590113 + ], + [ + 108.3262629, + 11.9581908 + ], + [ + 108.3250719, + 11.9574691 + ], + [ + 108.3235162, + 11.9555956 + ], + [ + 108.3226743, + 11.9550158 + ], + [ + 108.3221215, + 11.9540789 + ], + [ + 108.3222041, + 11.9536873 + ], + [ + 108.3229836, + 11.9529806 + ], + [ + 108.3232856, + 11.9522893 + ], + [ + 108.3230807, + 11.9518585 + ], + [ + 108.3233178, + 11.9504524 + ], + [ + 108.3223892, + 11.9494488 + ], + [ + 108.3228403, + 11.9485368 + ], + [ + 108.3229476, + 11.9477864 + ], + [ + 108.3224219, + 11.9462644 + ], + [ + 108.3207804, + 11.9453827 + ], + [ + 108.3205375, + 11.9448313 + ], + [ + 108.3208396, + 11.9442412 + ], + [ + 108.3221923, + 11.9429909 + ], + [ + 108.3222906, + 11.9393128 + ], + [ + 108.3214132, + 11.9383896 + ], + [ + 108.3196356, + 11.9383822 + ], + [ + 108.318673, + 11.9381472 + ], + [ + 108.3172773, + 11.9371097 + ], + [ + 108.3182485, + 11.935906 + ], + [ + 108.3181341, + 11.9346985 + ], + [ + 108.3176942, + 11.9339861 + ], + [ + 108.3176668, + 11.9327071 + ], + [ + 108.3163809, + 11.9305535 + ], + [ + 108.3162559, + 11.9297016 + ], + [ + 108.3156065, + 11.9288066 + ], + [ + 108.3152058, + 11.927614 + ] + ] + ] + } +} diff --git a/src/data/boundaries/ld/ld.json b/src/data/boundaries/ld/ld.json new file mode 100644 index 0000000..143b143 --- /dev/null +++ b/src/data/boundaries/ld/ld.json @@ -0,0 +1,3447 @@ +{ + "type": "Feature", + "properties": { + "code": "LD", + "name": "Lam Dong", + "level": "province", + "parent": "VN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 392.7, + "bbox": [ + 108.31521, + 11.80798, + 108.59461, + 12.00855 + ], + "center": [ + 11.92055, + 108.4644 + ], + "generatedAt": "2026-08-30T07:36:51.992Z", + "parts": 1, + "missingParts": 0 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 108.3152058, + 11.927614 + ], + [ + 108.3154994, + 11.9270304 + ], + [ + 108.316198, + 11.9264101 + ], + [ + 108.31605, + 11.9259395 + ], + [ + 108.3155635, + 11.9255357 + ], + [ + 108.3162924, + 11.9256609 + ], + [ + 108.317123, + 11.9254906 + ], + [ + 108.3176639, + 11.9251262 + ], + [ + 108.3185331, + 11.9249059 + ], + [ + 108.3188175, + 11.9245676 + ], + [ + 108.3187285, + 11.9238272 + ], + [ + 108.3184188, + 11.9232613 + ], + [ + 108.3183108, + 11.9220076 + ], + [ + 108.3184613, + 11.9213967 + ], + [ + 108.3188044, + 11.9208511 + ], + [ + 108.3188277, + 11.9203736 + ], + [ + 108.3186232, + 11.9200062 + ], + [ + 108.3192884, + 11.9194413 + ], + [ + 108.3190703, + 11.9188455 + ], + [ + 108.3193588, + 11.9182373 + ], + [ + 108.3192623, + 11.9172611 + ], + [ + 108.3187795, + 11.9167729 + ], + [ + 108.3192128, + 11.9158555 + ], + [ + 108.3191764, + 11.9151206 + ], + [ + 108.3193803, + 11.9145684 + ], + [ + 108.320244, + 11.9133551 + ], + [ + 108.3206909, + 11.9122436 + ], + [ + 108.3219112, + 11.9116218 + ], + [ + 108.3222168, + 11.9111728 + ], + [ + 108.3228725, + 11.910847 + ], + [ + 108.32315, + 11.909928 + ], + [ + 108.3240044, + 11.9088629 + ], + [ + 108.3249517, + 11.9082506 + ], + [ + 108.3253321, + 11.908233 + ], + [ + 108.325864, + 11.9077509 + ], + [ + 108.325941, + 11.906905 + ], + [ + 108.3261542, + 11.9065639 + ], + [ + 108.3261529, + 11.9058736 + ], + [ + 108.3268383, + 11.9057811 + ], + [ + 108.3277193, + 11.9062121 + ], + [ + 108.3278688, + 11.906638 + ], + [ + 108.3276495, + 11.9068026 + ], + [ + 108.3271903, + 11.9066962 + ], + [ + 108.3271372, + 11.90701 + ], + [ + 108.3272651, + 11.9071182 + ], + [ + 108.3283165, + 11.9070452 + ], + [ + 108.3290268, + 11.907649 + ], + [ + 108.3300973, + 11.9076331 + ], + [ + 108.330575, + 11.9077798 + ], + [ + 108.3309793, + 11.9075196 + ], + [ + 108.331638, + 11.9077475 + ], + [ + 108.3317667, + 11.9074404 + ], + [ + 108.3320138, + 11.907374 + ], + [ + 108.3337408, + 11.9079023 + ], + [ + 108.3338999, + 11.9085219 + ], + [ + 108.3346466, + 11.9084349 + ], + [ + 108.3351445, + 11.9087913 + ], + [ + 108.3355299, + 11.9088104 + ], + [ + 108.3360046, + 11.9081805 + ], + [ + 108.3367922, + 11.9077999 + ], + [ + 108.3377975, + 11.9070159 + ], + [ + 108.3379685, + 11.9058883 + ], + [ + 108.3386064, + 11.905472 + ], + [ + 108.3403578, + 11.9038002 + ], + [ + 108.3407113, + 11.9032 + ], + [ + 108.3404806, + 11.9027906 + ], + [ + 108.3393511, + 11.9026737 + ], + [ + 108.3390175, + 11.9028219 + ], + [ + 108.3383472, + 11.9035796 + ], + [ + 108.337886, + 11.9034778 + ], + [ + 108.3376826, + 11.9016158 + ], + [ + 108.3372665, + 11.9003128 + ], + [ + 108.337702, + 11.899492 + ], + [ + 108.3380216, + 11.8992676 + ], + [ + 108.3390693, + 11.8990254 + ], + [ + 108.3399409, + 11.8982476 + ], + [ + 108.340199, + 11.8982918 + ], + [ + 108.3407548, + 11.8988824 + ], + [ + 108.3412993, + 11.8990104 + ], + [ + 108.3423877, + 11.8989461 + ], + [ + 108.343475, + 11.898535 + ], + [ + 108.3438604, + 11.8980623 + ], + [ + 108.344543, + 11.896413 + ], + [ + 108.3454111, + 11.8954409 + ], + [ + 108.3462077, + 11.8933019 + ], + [ + 108.3468291, + 11.8933013 + ], + [ + 108.347514, + 11.8930105 + ], + [ + 108.3480963, + 11.8931993 + ], + [ + 108.3492971, + 11.8930775 + ], + [ + 108.3494841, + 11.8929187 + ], + [ + 108.3495198, + 11.8920396 + ], + [ + 108.3492127, + 11.8912564 + ], + [ + 108.3495801, + 11.8908846 + ], + [ + 108.3508319, + 11.89021 + ], + [ + 108.3514796, + 11.8912271 + ], + [ + 108.3525807, + 11.8916772 + ], + [ + 108.3548632, + 11.8940893 + ], + [ + 108.3551626, + 11.8942138 + ], + [ + 108.3556223, + 11.8940551 + ], + [ + 108.3560447, + 11.8941627 + ], + [ + 108.3565672, + 11.8939661 + ], + [ + 108.3582562, + 11.8953438 + ], + [ + 108.3589199, + 11.8953132 + ], + [ + 108.3597261, + 11.8958976 + ], + [ + 108.3602759, + 11.8969671 + ], + [ + 108.3614776, + 11.897706 + ], + [ + 108.3619645, + 11.8977479 + ], + [ + 108.3622822, + 11.8980078 + ], + [ + 108.3623439, + 11.8986324 + ], + [ + 108.362765, + 11.898971 + ], + [ + 108.3645648, + 11.8991574 + ], + [ + 108.3651307, + 11.898992 + ], + [ + 108.3659166, + 11.8994933 + ], + [ + 108.3659622, + 11.8990996 + ], + [ + 108.3665818, + 11.8979606 + ], + [ + 108.3669814, + 11.8978739 + ], + [ + 108.3671746, + 11.8980419 + ], + [ + 108.3692157, + 11.895895 + ], + [ + 108.3693713, + 11.8947609 + ], + [ + 108.3707812, + 11.8933002 + ], + [ + 108.3715989, + 11.8911224 + ], + [ + 108.3726503, + 11.8899253 + ], + [ + 108.3732492, + 11.8899884 + ], + [ + 108.3737113, + 11.8902441 + ], + [ + 108.3748394, + 11.8918972 + ], + [ + 108.3759963, + 11.8925906 + ], + [ + 108.3769029, + 11.8918688 + ], + [ + 108.3777694, + 11.8916878 + ], + [ + 108.3788073, + 11.8910053 + ], + [ + 108.37951, + 11.8915412 + ], + [ + 108.3802041, + 11.8917804 + ], + [ + 108.3807438, + 11.8917591 + ], + [ + 108.3816913, + 11.8913163 + ], + [ + 108.3830076, + 11.8914725 + ], + [ + 108.3833616, + 11.8902859 + ], + [ + 108.3844011, + 11.8899162 + ], + [ + 108.3848154, + 11.8895722 + ], + [ + 108.38514, + 11.8877087 + ], + [ + 108.3856793, + 11.8873239 + ], + [ + 108.3858883, + 11.8867743 + ], + [ + 108.3863387, + 11.8862116 + ], + [ + 108.3863831, + 11.8855448 + ], + [ + 108.3855559, + 11.8840712 + ], + [ + 108.3855164, + 11.8836254 + ], + [ + 108.3857726, + 11.883231 + ], + [ + 108.3868228, + 11.8825104 + ], + [ + 108.3880759, + 11.8808294 + ], + [ + 108.3885115, + 11.8797086 + ], + [ + 108.3885813, + 11.878706 + ], + [ + 108.3893967, + 11.8789211 + ], + [ + 108.3899948, + 11.8787663 + ], + [ + 108.3925885, + 11.8787925 + ], + [ + 108.3941871, + 11.8778423 + ], + [ + 108.3959843, + 11.8765834 + ], + [ + 108.3964616, + 11.8756139 + ], + [ + 108.3973387, + 11.8756612 + ], + [ + 108.3978939, + 11.8753777 + ], + [ + 108.3982292, + 11.8748632 + ], + [ + 108.3984463, + 11.8740196 + ], + [ + 108.3989262, + 11.8734725 + ], + [ + 108.4003684, + 11.8727978 + ], + [ + 108.40072, + 11.8721322 + ], + [ + 108.4013027, + 11.8716842 + ], + [ + 108.4020246, + 11.8707021 + ], + [ + 108.4038323, + 11.8698918 + ], + [ + 108.40452, + 11.8689378 + ], + [ + 108.4048117, + 11.8680938 + ], + [ + 108.4056155, + 11.8675688 + ], + [ + 108.4063214, + 11.8674454 + ], + [ + 108.410019, + 11.865684 + ], + [ + 108.4110758, + 11.8656786 + ], + [ + 108.4123216, + 11.866123 + ], + [ + 108.4131681, + 11.8660002 + ], + [ + 108.4137196, + 11.8650863 + ], + [ + 108.4146846, + 11.8641748 + ], + [ + 108.416487, + 11.8631931 + ], + [ + 108.4174177, + 11.8621484 + ], + [ + 108.4175638, + 11.8616546 + ], + [ + 108.4174385, + 11.8600446 + ], + [ + 108.4181947, + 11.8591847 + ], + [ + 108.4187026, + 11.8576544 + ], + [ + 108.4190421, + 11.8571685 + ], + [ + 108.4201938, + 11.8564364 + ], + [ + 108.4243083, + 11.8545674 + ], + [ + 108.4254134, + 11.8536775 + ], + [ + 108.4263972, + 11.853522 + ], + [ + 108.4286737, + 11.8593433 + ], + [ + 108.4285981, + 11.8604584 + ], + [ + 108.4294099, + 11.8618557 + ], + [ + 108.4315717, + 11.8632561 + ], + [ + 108.4324944, + 11.8636393 + ], + [ + 108.433353, + 11.8646207 + ], + [ + 108.4341303, + 11.8648515 + ], + [ + 108.4349057, + 11.8653875 + ], + [ + 108.4354676, + 11.8654846 + ], + [ + 108.4379411, + 11.8681593 + ], + [ + 108.4394727, + 11.8693193 + ], + [ + 108.4402031, + 11.8703905 + ], + [ + 108.4417331, + 11.8711065 + ], + [ + 108.4423926, + 11.8721538 + ], + [ + 108.4433842, + 11.8729051 + ], + [ + 108.4437359, + 11.8740006 + ], + [ + 108.4438562, + 11.8755982 + ], + [ + 108.4441978, + 11.8759138 + ], + [ + 108.4443068, + 11.876362 + ], + [ + 108.445187, + 11.8767293 + ], + [ + 108.4462112, + 11.8767714 + ], + [ + 108.4466913, + 11.8769788 + ], + [ + 108.4474415, + 11.8775035 + ], + [ + 108.4475604, + 11.8783017 + ], + [ + 108.4484726, + 11.8781822 + ], + [ + 108.4499089, + 11.8797293 + ], + [ + 108.4506692, + 11.880267 + ], + [ + 108.4511671, + 11.8799137 + ], + [ + 108.4516427, + 11.8799885 + ], + [ + 108.4523597, + 11.8797159 + ], + [ + 108.4534516, + 11.880048 + ], + [ + 108.453973, + 11.8804607 + ], + [ + 108.4541688, + 11.8811625 + ], + [ + 108.4546307, + 11.8816426 + ], + [ + 108.4552417, + 11.8812987 + ], + [ + 108.4556778, + 11.8813127 + ], + [ + 108.4560515, + 11.8816201 + ], + [ + 108.4563436, + 11.8824206 + ], + [ + 108.4568511, + 11.8825999 + ], + [ + 108.4575712, + 11.8825136 + ], + [ + 108.4588651, + 11.8838604 + ], + [ + 108.4590204, + 11.8842337 + ], + [ + 108.4605405, + 11.8851377 + ], + [ + 108.4613609, + 11.884784 + ], + [ + 108.4613229, + 11.8833076 + ], + [ + 108.461622, + 11.8825325 + ], + [ + 108.4620416, + 11.882037 + ], + [ + 108.4615694, + 11.8809187 + ], + [ + 108.4620805, + 11.880006 + ], + [ + 108.462709, + 11.8794178 + ], + [ + 108.464006, + 11.8795848 + ], + [ + 108.4642771, + 11.8793602 + ], + [ + 108.4647448, + 11.8793421 + ], + [ + 108.4659826, + 11.8788892 + ], + [ + 108.4658793, + 11.8784927 + ], + [ + 108.466252, + 11.8780409 + ], + [ + 108.465923, + 11.8778402 + ], + [ + 108.4659226, + 11.8776922 + ], + [ + 108.466324, + 11.8773669 + ], + [ + 108.4672444, + 11.8770562 + ], + [ + 108.4672718, + 11.8767089 + ], + [ + 108.4676465, + 11.8763099 + ], + [ + 108.4679097, + 11.8756095 + ], + [ + 108.4678604, + 11.875164 + ], + [ + 108.4684883, + 11.8748685 + ], + [ + 108.4686041, + 11.8744041 + ], + [ + 108.4690556, + 11.8738391 + ], + [ + 108.4804818, + 11.8697947 + ], + [ + 108.4867823, + 11.8697448 + ], + [ + 108.4876767, + 11.8687931 + ], + [ + 108.4880399, + 11.8674047 + ], + [ + 108.4889576, + 11.8669992 + ], + [ + 108.4903216, + 11.8653457 + ], + [ + 108.4916854, + 11.8646289 + ], + [ + 108.4918816, + 11.8643179 + ], + [ + 108.4911139, + 11.8639105 + ], + [ + 108.4904597, + 11.8640739 + ], + [ + 108.4884543, + 11.8633051 + ], + [ + 108.4874328, + 11.8617125 + ], + [ + 108.4866844, + 11.8610255 + ], + [ + 108.4861125, + 11.8608273 + ], + [ + 108.485497, + 11.8608471 + ], + [ + 108.484823, + 11.8603217 + ], + [ + 108.4842325, + 11.8593711 + ], + [ + 108.4830734, + 11.8588851 + ], + [ + 108.4814849, + 11.8578854 + ], + [ + 108.4810707, + 11.8578958 + ], + [ + 108.480987, + 11.8574901 + ], + [ + 108.4807295, + 11.8572565 + ], + [ + 108.4805095, + 11.8573305 + ], + [ + 108.4801319, + 11.8581175 + ], + [ + 108.4799488, + 11.8581435 + ], + [ + 108.4796696, + 11.8577052 + ], + [ + 108.4796851, + 11.8570271 + ], + [ + 108.4872463, + 11.8557382 + ], + [ + 108.4892982, + 11.8551423 + ], + [ + 108.4976158, + 11.847997 + ], + [ + 108.4985974, + 11.847682 + ], + [ + 108.4994007, + 11.8469551 + ], + [ + 108.5017642, + 11.8456245 + ], + [ + 108.5023847, + 11.8448154 + ], + [ + 108.5029596, + 11.8443517 + ], + [ + 108.5038107, + 11.8439723 + ], + [ + 108.5047826, + 11.8440695 + ], + [ + 108.5051393, + 11.843936 + ], + [ + 108.5053321, + 11.8432068 + ], + [ + 108.504999, + 11.8424486 + ], + [ + 108.5049744, + 11.8419852 + ], + [ + 108.5056283, + 11.840062 + ], + [ + 108.5056329, + 11.8387067 + ], + [ + 108.5036392, + 11.8368338 + ], + [ + 108.5011506, + 11.8350951 + ], + [ + 108.5000462, + 11.8335194 + ], + [ + 108.4996573, + 11.8337057 + ], + [ + 108.4972541, + 11.8333724 + ], + [ + 108.4973203, + 11.8325318 + ], + [ + 108.4970383, + 11.8320394 + ], + [ + 108.4964912, + 11.8317883 + ], + [ + 108.4950171, + 11.8316817 + ], + [ + 108.4947113, + 11.8314717 + ], + [ + 108.4941392, + 11.8306524 + ], + [ + 108.4937055, + 11.8294923 + ], + [ + 108.4928257, + 11.8288753 + ], + [ + 108.4914326, + 11.8289273 + ], + [ + 108.4904654, + 11.8286758 + ], + [ + 108.4904468, + 11.8279577 + ], + [ + 108.4901838, + 11.827459 + ], + [ + 108.4878986, + 11.8260435 + ], + [ + 108.4874975, + 11.8256747 + ], + [ + 108.4872372, + 11.8251357 + ], + [ + 108.4877987, + 11.8249342 + ], + [ + 108.4895503, + 11.8234804 + ], + [ + 108.490355, + 11.8230498 + ], + [ + 108.490673, + 11.8231702 + ], + [ + 108.4910539, + 11.8230528 + ], + [ + 108.4924323, + 11.8221625 + ], + [ + 108.4932149, + 11.8221863 + ], + [ + 108.4937909, + 11.8228083 + ], + [ + 108.4939304, + 11.8223108 + ], + [ + 108.4952528, + 11.8214957 + ], + [ + 108.4961057, + 11.8203773 + ], + [ + 108.4963421, + 11.819727 + ], + [ + 108.4963541, + 11.8188263 + ], + [ + 108.4975518, + 11.8174608 + ], + [ + 108.4975149, + 11.8165241 + ], + [ + 108.4966341, + 11.8163684 + ], + [ + 108.5020173, + 11.8144019 + ], + [ + 108.5032725, + 11.8135356 + ], + [ + 108.5049665, + 11.812755 + ], + [ + 108.505177, + 11.8122452 + ], + [ + 108.5048336, + 11.8111806 + ], + [ + 108.5195199, + 11.8148003 + ], + [ + 108.5211387, + 11.8144585 + ], + [ + 108.5215775, + 11.8141352 + ], + [ + 108.5220456, + 11.8113815 + ], + [ + 108.5225771, + 11.8107642 + ], + [ + 108.5240789, + 11.8103281 + ], + [ + 108.5257613, + 11.8095039 + ], + [ + 108.5271947, + 11.8099543 + ], + [ + 108.5282128, + 11.809809 + ], + [ + 108.529959, + 11.8101486 + ], + [ + 108.5304701, + 11.8100963 + ], + [ + 108.5325515, + 11.80871 + ], + [ + 108.5345109, + 11.8079789 + ], + [ + 108.535333, + 11.8092876 + ], + [ + 108.5357343, + 11.8111428 + ], + [ + 108.5375297, + 11.812853 + ], + [ + 108.5383907, + 11.8139162 + ], + [ + 108.5388633, + 11.8142179 + ], + [ + 108.5422933, + 11.8154364 + ], + [ + 108.5427796, + 11.8158515 + ], + [ + 108.5429526, + 11.8163016 + ], + [ + 108.5429456, + 11.8170807 + ], + [ + 108.542709, + 11.8176627 + ], + [ + 108.5427212, + 11.8182568 + ], + [ + 108.5422826, + 11.8187706 + ], + [ + 108.5423684, + 11.8203563 + ], + [ + 108.5438242, + 11.8207458 + ], + [ + 108.5442473, + 11.8216743 + ], + [ + 108.544459, + 11.8226695 + ], + [ + 108.5453664, + 11.8234129 + ], + [ + 108.5453027, + 11.8245161 + ], + [ + 108.5454899, + 11.8258613 + ], + [ + 108.5459076, + 11.8260781 + ], + [ + 108.5465869, + 11.8261195 + ], + [ + 108.5476716, + 11.8270199 + ], + [ + 108.5478032, + 11.8278338 + ], + [ + 108.5491165, + 11.8291343 + ], + [ + 108.5495614, + 11.8299113 + ], + [ + 108.5498223, + 11.8310622 + ], + [ + 108.5765965, + 11.8465899 + ], + [ + 108.5769126, + 11.8470598 + ], + [ + 108.5772836, + 11.84713 + ], + [ + 108.5775328, + 11.846951 + ], + [ + 108.577515, + 11.8466558 + ], + [ + 108.577095, + 11.8459599 + ], + [ + 108.5772318, + 11.8457158 + ], + [ + 108.5775602, + 11.8457854 + ], + [ + 108.5778375, + 11.8462148 + ], + [ + 108.5784227, + 11.8465952 + ], + [ + 108.578691, + 11.846635 + ], + [ + 108.5790254, + 11.8463652 + ], + [ + 108.5792868, + 11.8463822 + ], + [ + 108.5798671, + 11.8470658 + ], + [ + 108.5793078, + 11.8477889 + ], + [ + 108.5804021, + 11.8492176 + ], + [ + 108.5815769, + 11.8498949 + ], + [ + 108.5832828, + 11.8496639 + ], + [ + 108.5835054, + 11.8504094 + ], + [ + 108.5831405, + 11.8517497 + ], + [ + 108.5840955, + 11.8527562 + ], + [ + 108.584007, + 11.8533599 + ], + [ + 108.5845944, + 11.8533993 + ], + [ + 108.5854071, + 11.8529189 + ], + [ + 108.5858256, + 11.8524412 + ], + [ + 108.588438, + 11.8511497 + ], + [ + 108.5896611, + 11.850958 + ], + [ + 108.5897623, + 11.851538 + ], + [ + 108.5896401, + 11.8526086 + ], + [ + 108.5899761, + 11.8542387 + ], + [ + 108.5906428, + 11.8550242 + ], + [ + 108.5907394, + 11.8556122 + ], + [ + 108.5914421, + 11.8561214 + ], + [ + 108.5918478, + 11.8568423 + ], + [ + 108.5923353, + 11.8572961 + ], + [ + 108.5926625, + 11.8581952 + ], + [ + 108.5933848, + 11.8586424 + ], + [ + 108.5943979, + 11.8597492 + ], + [ + 108.5946125, + 11.8606731 + ], + [ + 108.5943657, + 11.8617021 + ], + [ + 108.5944033, + 11.8635973 + ], + [ + 108.5941136, + 11.8643375 + ], + [ + 108.5938561, + 11.864432 + ], + [ + 108.5936469, + 11.8652405 + ], + [ + 108.5930666, + 11.8655072 + ], + [ + 108.5906266, + 11.8674623 + ], + [ + 108.5893661, + 11.8676712 + ], + [ + 108.5886289, + 11.8683289 + ], + [ + 108.5877952, + 11.8685355 + ], + [ + 108.5872739, + 11.8688891 + ], + [ + 108.5862064, + 11.8691306 + ], + [ + 108.5858256, + 11.8694246 + ], + [ + 108.5858738, + 11.8697605 + ], + [ + 108.587333, + 11.8707475 + ], + [ + 108.5865819, + 11.8722332 + ], + [ + 108.5865739, + 11.8732332 + ], + [ + 108.5863156, + 11.8739413 + ], + [ + 108.5866631, + 11.8749351 + ], + [ + 108.5863513, + 11.8759026 + ], + [ + 108.5860921, + 11.8788549 + ], + [ + 108.5862839, + 11.8795241 + ], + [ + 108.5861742, + 11.88016 + ], + [ + 108.586759, + 11.880958 + ], + [ + 108.5870594, + 11.8830499 + ], + [ + 108.5868448, + 11.8836903 + ], + [ + 108.5869896, + 11.884147 + ], + [ + 108.585674, + 11.8889108 + ], + [ + 108.5849512, + 11.8890289 + ], + [ + 108.5840312, + 11.8898688 + ], + [ + 108.5834438, + 11.8900499 + ], + [ + 108.583535, + 11.8906641 + ], + [ + 108.584007, + 11.8913544 + ], + [ + 108.5852838, + 11.8919292 + ], + [ + 108.5858148, + 11.893063 + ], + [ + 108.5881215, + 11.8945669 + ], + [ + 108.5881805, + 11.8949081 + ], + [ + 108.589637, + 11.8963727 + ], + [ + 108.5900044, + 11.8973543 + ], + [ + 108.5912678, + 11.8988975 + ], + [ + 108.5915092, + 11.9000523 + ], + [ + 108.5920966, + 11.9013305 + ], + [ + 108.5922897, + 11.9031624 + ], + [ + 108.5924721, + 11.9034354 + ], + [ + 108.5925257, + 11.9048815 + ], + [ + 108.5915816, + 11.904661 + ], + [ + 108.5908362, + 11.9047458 + ], + [ + 108.588702, + 11.9057217 + ], + [ + 108.5861501, + 11.9060704 + ], + [ + 108.584634, + 11.906674 + ], + [ + 108.583149, + 11.906433 + ], + [ + 108.5815372, + 11.9057625 + ], + [ + 108.5808448, + 11.9057455 + ], + [ + 108.5802009, + 11.9059979 + ], + [ + 108.5791542, + 11.9068248 + ], + [ + 108.5779828, + 11.9095295 + ], + [ + 108.5757344, + 11.9123813 + ], + [ + 108.5752201, + 11.9148781 + ], + [ + 108.5743457, + 11.9171718 + ], + [ + 108.5733545, + 11.9190061 + ], + [ + 108.5733412, + 11.9198134 + ], + [ + 108.5741258, + 11.9213551 + ], + [ + 108.5744557, + 11.9234675 + ], + [ + 108.5742842, + 11.9256414 + ], + [ + 108.5736859, + 11.9271391 + ], + [ + 108.5730408, + 11.9279275 + ], + [ + 108.5716742, + 11.9286035 + ], + [ + 108.569703, + 11.9311281 + ], + [ + 108.5692729, + 11.9322145 + ], + [ + 108.5683706, + 11.9335916 + ], + [ + 108.5676248, + 11.9342961 + ], + [ + 108.5669532, + 11.9360207 + ], + [ + 108.5664826, + 11.9365132 + ], + [ + 108.5655695, + 11.9370588 + ], + [ + 108.5644348, + 11.9387051 + ], + [ + 108.5646307, + 11.9398982 + ], + [ + 108.5659935, + 11.9423015 + ], + [ + 108.5660762, + 11.9431397 + ], + [ + 108.5665767, + 11.94357 + ], + [ + 108.5665297, + 11.9446059 + ], + [ + 108.5655943, + 11.9482639 + ], + [ + 108.5655266, + 11.949572 + ], + [ + 108.565791, + 11.9512733 + ], + [ + 108.5675168, + 11.9551442 + ], + [ + 108.5685468, + 11.9568236 + ], + [ + 108.5683161, + 11.957721 + ], + [ + 108.5684985, + 11.9588242 + ], + [ + 108.568857, + 11.9591332 + ], + [ + 108.5699844, + 11.9593741 + ], + [ + 108.5702754, + 11.959779 + ], + [ + 108.570883, + 11.9620375 + ], + [ + 108.5707578, + 11.9632163 + ], + [ + 108.5682445, + 11.9641555 + ], + [ + 108.5663353, + 11.9652343 + ], + [ + 108.5649438, + 11.9664898 + ], + [ + 108.5639119, + 11.9685055 + ], + [ + 108.5626083, + 11.9692192 + ], + [ + 108.5610687, + 11.9703527 + ], + [ + 108.5594621, + 11.9720031 + ], + [ + 108.5585421, + 11.9725646 + ], + [ + 108.557838, + 11.9736758 + ], + [ + 108.5562086, + 11.9750547 + ], + [ + 108.5549292, + 11.9745791 + ], + [ + 108.5530895, + 11.975276 + ], + [ + 108.5523436, + 11.9759366 + ], + [ + 108.5512573, + 11.976217 + ], + [ + 108.550073, + 11.9761737 + ], + [ + 108.5488915, + 11.975443 + ], + [ + 108.5478259, + 11.9756562 + ], + [ + 108.5470931, + 11.9755322 + ], + [ + 108.5466989, + 11.9758167 + ], + [ + 108.5458526, + 11.9760261 + ], + [ + 108.5452813, + 11.9766184 + ], + [ + 108.5437859, + 11.9776458 + ], + [ + 108.5431947, + 11.9777912 + ], + [ + 108.5422383, + 11.9777309 + ], + [ + 108.5416502, + 11.9779647 + ], + [ + 108.5410649, + 11.9784634 + ], + [ + 108.5402871, + 11.9796068 + ], + [ + 108.5398954, + 11.9799349 + ], + [ + 108.5382975, + 11.9802995 + ], + [ + 108.5374627, + 11.9811812 + ], + [ + 108.5366499, + 11.9817244 + ], + [ + 108.5359895, + 11.982974 + ], + [ + 108.5350347, + 11.9839129 + ], + [ + 108.5342869, + 11.9837263 + ], + [ + 108.5336244, + 11.9838385 + ], + [ + 108.5324571, + 11.9837561 + ], + [ + 108.531717, + 11.9844035 + ], + [ + 108.5308805, + 11.9842511 + ], + [ + 108.5298398, + 11.9838024 + ], + [ + 108.5291666, + 11.9845161 + ], + [ + 108.5283505, + 11.9850348 + ], + [ + 108.5280937, + 11.9854081 + ], + [ + 108.5259774, + 11.9845266 + ], + [ + 108.5255712, + 11.9841082 + ], + [ + 108.5251604, + 11.9839431 + ], + [ + 108.5239296, + 11.98391 + ], + [ + 108.5230029, + 11.9845698 + ], + [ + 108.5188674, + 11.9837031 + ], + [ + 108.5178879, + 11.9840057 + ], + [ + 108.5168445, + 11.9838851 + ], + [ + 108.5161504, + 11.9841545 + ], + [ + 108.5155733, + 11.984596 + ], + [ + 108.5151896, + 11.9851182 + ], + [ + 108.5149307, + 11.9859697 + ], + [ + 108.5143581, + 11.9865954 + ], + [ + 108.5126254, + 11.9863724 + ], + [ + 108.5108334, + 11.9857755 + ], + [ + 108.5101014, + 11.9853596 + ], + [ + 108.5094198, + 11.9854659 + ], + [ + 108.5074487, + 11.9862884 + ], + [ + 108.5075507, + 11.9868945 + ], + [ + 108.5074434, + 11.9874323 + ], + [ + 108.5067326, + 11.9870781 + ], + [ + 108.5050079, + 11.9867239 + ], + [ + 108.5043211, + 11.9871905 + ], + [ + 108.5033154, + 11.9873431 + ], + [ + 108.5017544, + 11.9879833 + ], + [ + 108.5004723, + 11.9889279 + ], + [ + 108.4988898, + 11.9889174 + ], + [ + 108.4988844, + 11.9893896 + ], + [ + 108.4983708, + 11.9903 + ], + [ + 108.4965789, + 11.9897065 + ], + [ + 108.4962384, + 11.9897176 + ], + [ + 108.4941007, + 11.991268 + ], + [ + 108.4935017, + 11.99193 + ], + [ + 108.4934143, + 11.9924783 + ], + [ + 108.4922387, + 11.9923899 + ], + [ + 108.4917758, + 11.9929967 + ], + [ + 108.4909545, + 11.9927388 + ], + [ + 108.4895584, + 11.9927663 + ], + [ + 108.4867705, + 11.9921139 + ], + [ + 108.4847356, + 11.9927962 + ], + [ + 108.4841893, + 11.9927834 + ], + [ + 108.4814588, + 11.9918428 + ], + [ + 108.4809256, + 11.9906891 + ], + [ + 108.480915, + 11.9899734 + ], + [ + 108.4798568, + 11.9908182 + ], + [ + 108.4790024, + 11.9910976 + ], + [ + 108.4786435, + 11.9906584 + ], + [ + 108.4779833, + 11.9904299 + ], + [ + 108.4774952, + 11.9895051 + ], + [ + 108.4769894, + 11.989289 + ], + [ + 108.47646, + 11.9887641 + ], + [ + 108.4746406, + 11.9889141 + ], + [ + 108.4738243, + 11.9913206 + ], + [ + 108.4740422, + 11.9926786 + ], + [ + 108.4735549, + 11.9937011 + ], + [ + 108.4723024, + 11.9941575 + ], + [ + 108.4711825, + 11.9937662 + ], + [ + 108.4707642, + 11.9941529 + ], + [ + 108.4702213, + 11.9939968 + ], + [ + 108.4693131, + 11.9942474 + ], + [ + 108.4684176, + 11.9941634 + ], + [ + 108.4681574, + 11.994522 + ], + [ + 108.4679184, + 11.995365 + ], + [ + 108.4661267, + 11.9964565 + ], + [ + 108.4660311, + 11.9973803 + ], + [ + 108.4655568, + 11.9981064 + ], + [ + 108.4646671, + 11.9984918 + ], + [ + 108.4637024, + 11.9985726 + ], + [ + 108.4632665, + 11.9988476 + ], + [ + 108.4632212, + 11.9991769 + ], + [ + 108.4640953, + 12.0011563 + ], + [ + 108.4639676, + 12.0027756 + ], + [ + 108.4640989, + 12.0031624 + ], + [ + 108.4639326, + 12.0040596 + ], + [ + 108.4634445, + 12.0054449 + ], + [ + 108.4630041, + 12.006108 + ], + [ + 108.4612974, + 12.00704 + ], + [ + 108.4606576, + 12.0077037 + ], + [ + 108.459747, + 12.0073181 + ], + [ + 108.4586876, + 12.0071292 + ], + [ + 108.4581015, + 12.0076775 + ], + [ + 108.4563586, + 12.0077439 + ], + [ + 108.4557289, + 12.0085517 + ], + [ + 108.454907, + 12.0084409 + ], + [ + 108.4537131, + 12.0076431 + ], + [ + 108.4531582, + 12.0076486 + ], + [ + 108.4525386, + 12.0074125 + ], + [ + 108.4519175, + 12.0068085 + ], + [ + 108.4514121, + 12.0065651 + ], + [ + 108.4514013, + 12.005597 + ], + [ + 108.4507947, + 12.0048326 + ], + [ + 108.4502574, + 12.0045476 + ], + [ + 108.4496445, + 12.003897 + ], + [ + 108.4494135, + 12.0032089 + ], + [ + 108.4491161, + 12.0028764 + ], + [ + 108.4473941, + 12.0021182 + ], + [ + 108.4463454, + 12.0018768 + ], + [ + 108.4455595, + 12.0018847 + ], + [ + 108.4426868, + 12.0003001 + ], + [ + 108.4416332, + 11.9994554 + ], + [ + 108.4412695, + 11.9986366 + ], + [ + 108.4407975, + 11.998068 + ], + [ + 108.4407419, + 11.9969291 + ], + [ + 108.4405545, + 11.9963489 + ], + [ + 108.4400774, + 11.9954714 + ], + [ + 108.4395621, + 11.9954752 + ], + [ + 108.4394916, + 11.9951168 + ], + [ + 108.4397548, + 11.9947494 + ], + [ + 108.4392751, + 11.9942801 + ], + [ + 108.4387198, + 11.9947537 + ], + [ + 108.4377347, + 11.9950274 + ], + [ + 108.4371668, + 11.9944861 + ], + [ + 108.4357747, + 11.994856 + ], + [ + 108.4350961, + 11.9944835 + ], + [ + 108.4352678, + 11.9939588 + ], + [ + 108.4349459, + 11.9938512 + ], + [ + 108.4346512, + 11.9943271 + ], + [ + 108.4343208, + 11.9944601 + ], + [ + 108.4342056, + 11.9949557 + ], + [ + 108.4340206, + 11.9948298 + ], + [ + 108.4341484, + 11.994502 + ], + [ + 108.4340098, + 11.9942316 + ], + [ + 108.4330496, + 11.9942264 + ], + [ + 108.4323415, + 11.9937882 + ], + [ + 108.4323014, + 11.9940052 + ], + [ + 108.431887, + 11.9942648 + ], + [ + 108.431046, + 11.995428 + ], + [ + 108.43083, + 11.9953519 + ], + [ + 108.4296783, + 11.9972894 + ], + [ + 108.42871, + 11.9980687 + ], + [ + 108.426299, + 11.9988905 + ], + [ + 108.4253851, + 11.999715 + ], + [ + 108.4246811, + 12.0006316 + ], + [ + 108.4226663, + 12.0002121 + ], + [ + 108.4220194, + 12.000256 + ], + [ + 108.421662, + 12.0005947 + ], + [ + 108.4212291, + 12.0007146 + ], + [ + 108.4209049, + 12.0006361 + ], + [ + 108.4206256, + 12.0002686 + ], + [ + 108.4198546, + 12.0001764 + ], + [ + 108.4195299, + 11.9999605 + ], + [ + 108.4192368, + 12.0002016 + ], + [ + 108.4188527, + 12.0000125 + ], + [ + 108.418006, + 11.9999541 + ], + [ + 108.4163664, + 12.0012626 + ], + [ + 108.4162804, + 12.0017526 + ], + [ + 108.4154263, + 12.0025905 + ], + [ + 108.4140979, + 12.0035284 + ], + [ + 108.4133228, + 12.003466 + ], + [ + 108.411913, + 12.0039368 + ], + [ + 108.4111505, + 12.0036325 + ], + [ + 108.4091071, + 12.0042448 + ], + [ + 108.4079537, + 12.0043358 + ], + [ + 108.4073406, + 12.0047523 + ], + [ + 108.4069169, + 12.0043194 + ], + [ + 108.4048314, + 12.0033631 + ], + [ + 108.4050467, + 12.0030227 + ], + [ + 108.4046922, + 12.0026894 + ], + [ + 108.4034398, + 12.002364 + ], + [ + 108.4021675, + 12.001404 + ], + [ + 108.401187, + 12.0009746 + ], + [ + 108.4002368, + 12.0009854 + ], + [ + 108.399238, + 12.000543 + ], + [ + 108.3986785, + 12.0004758 + ], + [ + 108.3982391, + 11.9996931 + ], + [ + 108.3980146, + 11.9988518 + ], + [ + 108.3971944, + 11.9992259 + ], + [ + 108.396414, + 11.9991318 + ], + [ + 108.3949646, + 11.9980347 + ], + [ + 108.3926854, + 11.9980395 + ], + [ + 108.3901299, + 11.9972031 + ], + [ + 108.3893621, + 11.9966959 + ], + [ + 108.3887529, + 11.9954569 + ], + [ + 108.3878185, + 11.9944481 + ], + [ + 108.3851534, + 11.9934314 + ], + [ + 108.3837976, + 11.9920061 + ], + [ + 108.3832651, + 11.9909783 + ], + [ + 108.3824095, + 11.9911487 + ], + [ + 108.38157, + 11.9902909 + ], + [ + 108.3773089, + 11.9889549 + ], + [ + 108.3762807, + 11.9878587 + ], + [ + 108.3736041, + 11.9858629 + ], + [ + 108.3731168, + 11.9858272 + ], + [ + 108.3725718, + 11.9860777 + ], + [ + 108.3719549, + 11.9868978 + ], + [ + 108.3698863, + 11.988777 + ], + [ + 108.368925, + 11.9889806 + ], + [ + 108.3682091, + 11.98936 + ], + [ + 108.3677364, + 11.9893821 + ], + [ + 108.3675136, + 11.9892081 + ], + [ + 108.3675928, + 11.988253 + ], + [ + 108.3674564, + 11.9880852 + ], + [ + 108.3656573, + 11.988777 + ], + [ + 108.3653311, + 11.9889754 + ], + [ + 108.3652766, + 11.9891794 + ], + [ + 108.3650316, + 11.9892036 + ], + [ + 108.3645943, + 11.9891443 + ], + [ + 108.3632321, + 11.9884051 + ], + [ + 108.3630505, + 11.9886917 + ], + [ + 108.3630661, + 11.9890842 + ], + [ + 108.3639261, + 11.9902898 + ], + [ + 108.3639532, + 11.9906897 + ], + [ + 108.363693, + 11.9909302 + ], + [ + 108.3630627, + 11.9910544 + ], + [ + 108.3625746, + 11.9914899 + ], + [ + 108.3615177, + 11.9918917 + ], + [ + 108.361048, + 11.9918653 + ], + [ + 108.3606219, + 11.9911908 + ], + [ + 108.3600694, + 11.9910701 + ], + [ + 108.3593723, + 11.991182 + ], + [ + 108.3586331, + 11.9919213 + ], + [ + 108.357868, + 11.9922044 + ], + [ + 108.3575803, + 11.9924816 + ], + [ + 108.3566689, + 11.9924008 + ], + [ + 108.3555365, + 11.9918874 + ], + [ + 108.3554211, + 11.9917903 + ], + [ + 108.3557364, + 11.9908219 + ], + [ + 108.3554614, + 11.9894172 + ], + [ + 108.3558593, + 11.9883816 + ], + [ + 108.3558823, + 11.9874113 + ], + [ + 108.3564618, + 11.9870978 + ], + [ + 108.35584, + 11.9862672 + ], + [ + 108.3540773, + 11.9850408 + ], + [ + 108.352983, + 11.9840202 + ], + [ + 108.3525713, + 11.9833918 + ], + [ + 108.3508044, + 11.9829622 + ], + [ + 108.3501452, + 11.9830153 + ], + [ + 108.3482194, + 11.98036 + ], + [ + 108.3464947, + 11.9804072 + ], + [ + 108.3459991, + 11.9790249 + ], + [ + 108.3454226, + 11.9783962 + ], + [ + 108.3448171, + 11.9782151 + ], + [ + 108.3435845, + 11.9783502 + ], + [ + 108.3421147, + 11.9763613 + ], + [ + 108.340617, + 11.9759191 + ], + [ + 108.3393177, + 11.9761956 + ], + [ + 108.3388056, + 11.9761253 + ], + [ + 108.3385764, + 11.9752815 + ], + [ + 108.3383367, + 11.9750423 + ], + [ + 108.3380892, + 11.9751393 + ], + [ + 108.3379036, + 11.9744968 + ], + [ + 108.3376419, + 11.9744863 + ], + [ + 108.3376397, + 11.9740888 + ], + [ + 108.3372545, + 11.9733754 + ], + [ + 108.3368844, + 11.9729871 + ], + [ + 108.3363675, + 11.971889 + ], + [ + 108.3351088, + 11.9702215 + ], + [ + 108.3347334, + 11.9693438 + ], + [ + 108.3355609, + 11.9685731 + ], + [ + 108.3369487, + 11.9685947 + ], + [ + 108.33763, + 11.9676553 + ], + [ + 108.3382095, + 11.9661585 + ], + [ + 108.3381264, + 11.9654274 + ], + [ + 108.33829, + 11.964146 + ], + [ + 108.3379027, + 11.9635745 + ], + [ + 108.3374195, + 11.9635219 + ], + [ + 108.3367449, + 11.9638244 + ], + [ + 108.3364552, + 11.9642075 + ], + [ + 108.3332192, + 11.9645989 + ], + [ + 108.3325842, + 11.9654744 + ], + [ + 108.3320466, + 11.9656043 + ], + [ + 108.329386, + 11.9646818 + ], + [ + 108.3288057, + 11.9640731 + ], + [ + 108.328618, + 11.9631171 + ], + [ + 108.3284301, + 11.9628483 + ], + [ + 108.3274645, + 11.962439 + ], + [ + 108.3268475, + 11.9618932 + ], + [ + 108.3252865, + 11.9619142 + ], + [ + 108.324345, + 11.9608593 + ], + [ + 108.3246472, + 11.9606827 + ], + [ + 108.3251094, + 11.9598681 + ], + [ + 108.3257854, + 11.9594739 + ], + [ + 108.3264782, + 11.9593242 + ], + [ + 108.3266504, + 11.9590113 + ], + [ + 108.3262629, + 11.9581908 + ], + [ + 108.3250719, + 11.9574691 + ], + [ + 108.3235162, + 11.9555956 + ], + [ + 108.3226743, + 11.9550158 + ], + [ + 108.3221215, + 11.9540789 + ], + [ + 108.3222041, + 11.9536873 + ], + [ + 108.3229836, + 11.9529806 + ], + [ + 108.3232856, + 11.9522893 + ], + [ + 108.3230807, + 11.9518585 + ], + [ + 108.3233178, + 11.9504524 + ], + [ + 108.3223892, + 11.9494488 + ], + [ + 108.3228403, + 11.9485368 + ], + [ + 108.3229476, + 11.9477864 + ], + [ + 108.3224219, + 11.9462644 + ], + [ + 108.3207804, + 11.9453827 + ], + [ + 108.3205375, + 11.9448313 + ], + [ + 108.3208396, + 11.9442412 + ], + [ + 108.3221923, + 11.9429909 + ], + [ + 108.3222906, + 11.9393128 + ], + [ + 108.3214132, + 11.9383896 + ], + [ + 108.3196356, + 11.9383822 + ], + [ + 108.318673, + 11.9381472 + ], + [ + 108.3172773, + 11.9371097 + ], + [ + 108.3182485, + 11.935906 + ], + [ + 108.3181341, + 11.9346985 + ], + [ + 108.3176942, + 11.9339861 + ], + [ + 108.3176668, + 11.9327071 + ], + [ + 108.3163809, + 11.9305535 + ], + [ + 108.3162559, + 11.9297016 + ], + [ + 108.3156065, + 11.9288066 + ], + [ + 108.3152058, + 11.927614 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm.json b/src/data/boundaries/tphcm.json deleted file mode 100644 index 447b163..0000000 --- a/src/data/boundaries/tphcm.json +++ /dev/null @@ -1,2523 +0,0 @@ -{ - "type": "Feature", - "properties": { - "code": "TPHCM", - "name": "Ho Chi Minh", - "basis": "pre-2025-merger extent, unioned from OSM boundary/historic relations", - "parts": 22, - "missingParts": 1, - "areaKm2": 1629.4, - "bbox": [ - 106.46356, - 10.35828, - 107.02758, - 10.92934 - ], - "center": [ - 10.66748, - 106.76447 - ], - "generatedAt": "2026-08-30T04:02:54.367Z" - }, - "geometry": { - "type": "MultiPolygon", - "coordinates": [ - [ - [ - [ - 106.4635618, - 10.7565046 - ], - [ - 106.4722331, - 10.7455255 - ], - [ - 106.4735079, - 10.7464922 - ], - [ - 106.4871569, - 10.7298149 - ], - [ - 106.4889865, - 10.7312615 - ], - [ - 106.4996255, - 10.7249923 - ], - [ - 106.5016856, - 10.7265365 - ], - [ - 106.5093718, - 10.7170518 - ], - [ - 106.5202276, - 10.7236952 - ], - [ - 106.5302547, - 10.7172794 - ], - [ - 106.5284362, - 10.7149779 - ], - [ - 106.5272397, - 10.7091259 - ], - [ - 106.5338586, - 10.6881685 - ], - [ - 106.535663, - 10.6855532 - ], - [ - 106.5476422, - 10.6871709 - ], - [ - 106.5481494, - 10.6862394 - ], - [ - 106.5504213, - 10.6856057 - ], - [ - 106.5515685, - 10.6794588 - ], - [ - 106.5536211, - 10.675406 - ], - [ - 106.5532335, - 10.6720611 - ], - [ - 106.5520597, - 10.6705916 - ], - [ - 106.5535808, - 10.6685847 - ], - [ - 106.553235, - 10.6656959 - ], - [ - 106.551519, - 10.6641393 - ], - [ - 106.5504895, - 10.6590349 - ], - [ - 106.5492686, - 10.659657 - ], - [ - 106.5489702, - 10.6574327 - ], - [ - 106.5559217, - 10.6569738 - ], - [ - 106.5552058, - 10.652581 - ], - [ - 106.5556683, - 10.6509266 - ], - [ - 106.5572657, - 10.6505125 - ], - [ - 106.5579277, - 10.648603 - ], - [ - 106.55918, - 10.6499646 - ], - [ - 106.5590288, - 10.6518814 - ], - [ - 106.5630729, - 10.6514923 - ], - [ - 106.5631335, - 10.6522051 - ], - [ - 106.5652959, - 10.6523024 - ], - [ - 106.5662728, - 10.6564275 - ], - [ - 106.5685221, - 10.6560476 - ], - [ - 106.5686163, - 10.656583 - ], - [ - 106.5734877, - 10.6541309 - ], - [ - 106.5733555, - 10.6498562 - ], - [ - 106.5751194, - 10.6498703 - ], - [ - 106.5754631, - 10.6491116 - ], - [ - 106.5789715, - 10.6496043 - ], - [ - 106.5795486, - 10.6519005 - ], - [ - 106.5780058, - 10.651892 - ], - [ - 106.5779066, - 10.6532379 - ], - [ - 106.5798284, - 10.6560951 - ], - [ - 106.5831997, - 10.6553672 - ], - [ - 106.5841286, - 10.6536567 - ], - [ - 106.586855, - 10.6532116 - ], - [ - 106.5869821, - 10.6524906 - ], - [ - 106.5905312, - 10.6527818 - ], - [ - 106.591663, - 10.6501114 - ], - [ - 106.5959254, - 10.6503934 - ], - [ - 106.5952297, - 10.6534997 - ], - [ - 106.5996118, - 10.6525942 - ], - [ - 106.6006523, - 10.6506916 - ], - [ - 106.6017542, - 10.6512846 - ], - [ - 106.6053836, - 10.6586959 - ], - [ - 106.6108327, - 10.6568916 - ], - [ - 106.6141904, - 10.6538525 - ], - [ - 106.6156273, - 10.6541118 - ], - [ - 106.6167353, - 10.6533377 - ], - [ - 106.6167909, - 10.6521968 - ], - [ - 106.6177159, - 10.6519567 - ], - [ - 106.6173422, - 10.6501711 - ], - [ - 106.618984, - 10.6496845 - ], - [ - 106.6189639, - 10.6490133 - ], - [ - 106.6245614, - 10.6474547 - ], - [ - 106.6238926, - 10.6460911 - ], - [ - 106.6243293, - 10.6444613 - ], - [ - 106.6217719, - 10.6441002 - ], - [ - 106.6215383, - 10.6432687 - ], - [ - 106.6225062, - 10.6425918 - ], - [ - 106.6212058, - 10.6409296 - ], - [ - 106.6241101, - 10.6394356 - ], - [ - 106.625805, - 10.6397168 - ], - [ - 106.6271793, - 10.6423959 - ], - [ - 106.629483, - 10.64203 - ], - [ - 106.6296754, - 10.6393398 - ], - [ - 106.6305332, - 10.6390601 - ], - [ - 106.6311629, - 10.636743 - ], - [ - 106.6295121, - 10.6363135 - ], - [ - 106.6296305, - 10.6316508 - ], - [ - 106.630766, - 10.6302011 - ], - [ - 106.6295621, - 10.6275909 - ], - [ - 106.6301368, - 10.6264266 - ], - [ - 106.6316328, - 10.628275 - ], - [ - 106.6328824, - 10.6279942 - ], - [ - 106.6349407, - 10.6253147 - ], - [ - 106.6353235, - 10.6261223 - ], - [ - 106.6373021, - 10.6262847 - ], - [ - 106.6388936, - 10.6274694 - ], - [ - 106.6410251, - 10.6266209 - ], - [ - 106.6437827, - 10.6296189 - ], - [ - 106.6461988, - 10.6342395 - ], - [ - 106.6484757, - 10.6327058 - ], - [ - 106.6528386, - 10.6322999 - ], - [ - 106.6534867, - 10.6333058 - ], - [ - 106.6529438, - 10.6378948 - ], - [ - 106.6539451, - 10.6394395 - ], - [ - 106.6565033, - 10.638811 - ], - [ - 106.6562901, - 10.6420446 - ], - [ - 106.6569372, - 10.6433228 - ], - [ - 106.6607203, - 10.6419874 - ], - [ - 106.6601906, - 10.6398143 - ], - [ - 106.6626216, - 10.6392726 - ], - [ - 106.6633378, - 10.6400752 - ], - [ - 106.6649995, - 10.6388865 - ], - [ - 106.6656054, - 10.6396021 - ], - [ - 106.6660405, - 10.6384323 - ], - [ - 106.6666233, - 10.6406516 - ], - [ - 106.6681229, - 10.639284 - ], - [ - 106.6697641, - 10.6393346 - ], - [ - 106.6718103, - 10.6415075 - ], - [ - 106.6734454, - 10.6419688 - ], - [ - 106.6741834, - 10.6442992 - ], - [ - 106.6787428, - 10.6455231 - ], - [ - 106.6847885, - 10.650217 - ], - [ - 106.6860523, - 10.6527741 - ], - [ - 106.6857032, - 10.6566582 - ], - [ - 106.6872126, - 10.6558707 - ], - [ - 106.6912555, - 10.6486175 - ], - [ - 106.6962707, - 10.6498628 - ], - [ - 106.6976775, - 10.6520799 - ], - [ - 106.7009535, - 10.6538464 - ], - [ - 106.7039785, - 10.6528129 - ], - [ - 106.7068657, - 10.6501768 - ], - [ - 106.7117476, - 10.6504673 - ], - [ - 106.7186937, - 10.6457417 - ], - [ - 106.7216401, - 10.6458753 - ], - [ - 106.722928, - 10.6451945 - ], - [ - 106.7237035, - 10.6412777 - ], - [ - 106.7261317, - 10.6379676 - ], - [ - 106.7307295, - 10.6353735 - ], - [ - 106.7332404, - 10.6288844 - ], - [ - 106.7319335, - 10.627753 - ], - [ - 106.729767, - 10.6287315 - ], - [ - 106.7290657, - 10.6282855 - ], - [ - 106.7283726, - 10.6244284 - ], - [ - 106.731399, - 10.6237009 - ], - [ - 106.7317806, - 10.6227848 - ], - [ - 106.7298501, - 10.6202085 - ], - [ - 106.7292082, - 10.6165984 - ], - [ - 106.7278847, - 10.6168472 - ], - [ - 106.7275447, - 10.6161848 - ], - [ - 106.7291316, - 10.6120491 - ], - [ - 106.7316087, - 10.6121361 - ], - [ - 106.7327945, - 10.6099603 - ], - [ - 106.7312547, - 10.6088699 - ], - [ - 106.7283681, - 10.6090137 - ], - [ - 106.7264952, - 10.6113314 - ], - [ - 106.7236747, - 10.6117188 - ], - [ - 106.722, - 10.606911 - ], - [ - 106.7189372, - 10.6059224 - ], - [ - 106.7195144, - 10.6029732 - ], - [ - 106.7218323, - 10.5998061 - ], - [ - 106.7202879, - 10.5963776 - ], - [ - 106.72337, - 10.5934888 - ], - [ - 106.7232422, - 10.5883371 - ], - [ - 106.725134, - 10.5854276 - ], - [ - 106.7270246, - 10.5855519 - ], - [ - 106.7267166, - 10.5840995 - ], - [ - 106.7287025, - 10.5800465 - ], - [ - 106.7327542, - 10.5802693 - ], - [ - 106.734799, - 10.5823035 - ], - [ - 106.7352949, - 10.586141 - ], - [ - 106.736842, - 10.5863966 - ], - [ - 106.7388237, - 10.5851568 - ], - [ - 106.7395014, - 10.5827996 - ], - [ - 106.7386703, - 10.5811803 - ], - [ - 106.7350589, - 10.5787291 - ], - [ - 106.7355638, - 10.5774085 - ], - [ - 106.7367652, - 10.5770841 - ], - [ - 106.7380474, - 10.5784538 - ], - [ - 106.7412316, - 10.5790717 - ], - [ - 106.7456478, - 10.5763631 - ], - [ - 106.7425864, - 10.569343 - ], - [ - 106.7418966, - 10.5639214 - ], - [ - 106.747241, - 10.5280244 - ], - [ - 106.7452324, - 10.4978311 - ], - [ - 106.7536353, - 10.4673029 - ], - [ - 106.7562254, - 10.4609118 - ], - [ - 106.7611567, - 10.4537878 - ], - [ - 106.7714627, - 10.4409249 - ], - [ - 106.7925066, - 10.4184025 - ], - [ - 106.809233, - 10.3882046 - ], - [ - 106.8288959, - 10.3974942 - ], - [ - 106.831778, - 10.3959486 - ], - [ - 106.8371572, - 10.3968462 - ], - [ - 106.8439005, - 10.4014708 - ], - [ - 106.8519124, - 10.404835 - ], - [ - 106.8533409, - 10.4066198 - ], - [ - 106.8530949, - 10.4090148 - ], - [ - 106.854031, - 10.4100459 - ], - [ - 106.8723671, - 10.4099772 - ], - [ - 106.8779408, - 10.3965696 - ], - [ - 106.8795656, - 10.3958833 - ], - [ - 106.8789115, - 10.3940356 - ], - [ - 106.8814892, - 10.3885354 - ], - [ - 106.8799985, - 10.3846169 - ], - [ - 106.8802682, - 10.3826728 - ], - [ - 106.8750705, - 10.3778606 - ], - [ - 106.8796423, - 10.3764744 - ], - [ - 106.8809562, - 10.3767743 - ], - [ - 106.8811176, - 10.3729368 - ], - [ - 106.8870631, - 10.3677108 - ], - [ - 106.8881575, - 10.3678607 - ], - [ - 106.8992805, - 10.3620443 - ], - [ - 106.9070683, - 10.3596447 - ], - [ - 106.9151208, - 10.3583809 - ], - [ - 106.9232719, - 10.358277 - ], - [ - 106.9313526, - 10.3593346 - ], - [ - 106.9370878, - 10.3608216 - ], - [ - 106.9451637, - 10.3643178 - ], - [ - 106.9659443, - 10.375441 - ], - [ - 106.9700313, - 10.3761571 - ], - [ - 106.9778814, - 10.3755513 - ], - [ - 106.9823052, - 10.3736764 - ], - [ - 106.9866335, - 10.3697078 - ], - [ - 106.9878003, - 10.3664546 - ], - [ - 106.9912682, - 10.366565 - ], - [ - 106.9936287, - 10.3640827 - ], - [ - 106.9856036, - 10.3766731 - ], - [ - 106.9840801, - 10.375412 - ], - [ - 106.9795888, - 10.3775062 - ], - [ - 106.9740131, - 10.3787822 - ], - [ - 106.971901, - 10.381086 - ], - [ - 106.971825, - 10.3833168 - ], - [ - 106.9747776, - 10.3907536 - ], - [ - 106.9760871, - 10.3972409 - ], - [ - 106.9759266, - 10.4073485 - ], - [ - 106.975092, - 10.4116107 - ], - [ - 106.9738206, - 10.4120988 - ], - [ - 106.9747022, - 10.4121969 - ], - [ - 106.9740985, - 10.4128126 - ], - [ - 106.9747658, - 10.4145226 - ], - [ - 106.9755128, - 10.4142803 - ], - [ - 106.9747031, - 10.4149626 - ], - [ - 106.9755734, - 10.4159911 - ], - [ - 106.9732077, - 10.4166612 - ], - [ - 106.9734384, - 10.4174513 - ], - [ - 106.9729623, - 10.4170187 - ], - [ - 106.9716065, - 10.4182321 - ], - [ - 106.9718251, - 10.4175792 - ], - [ - 106.9699328, - 10.4180079 - ], - [ - 106.9706181, - 10.4174012 - ], - [ - 106.9698416, - 10.4166216 - ], - [ - 106.9680431, - 10.4173326 - ], - [ - 106.9672639, - 10.4158282 - ], - [ - 106.964991, - 10.4163565 - ], - [ - 106.9608501, - 10.4210455 - ], - [ - 106.9571265, - 10.4216761 - ], - [ - 106.9573244, - 10.4222914 - ], - [ - 106.9534731, - 10.4234115 - ], - [ - 106.9535553, - 10.4244016 - ], - [ - 106.9515609, - 10.4255979 - ], - [ - 106.9477646, - 10.4261662 - ], - [ - 106.947727, - 10.4274368 - ], - [ - 106.9464652, - 10.4279446 - ], - [ - 106.9452258, - 10.4306254 - ], - [ - 106.9437551, - 10.4308934 - ], - [ - 106.9438232, - 10.4326297 - ], - [ - 106.9425677, - 10.4329293 - ], - [ - 106.9412022, - 10.4349948 - ], - [ - 106.9381509, - 10.435943 - ], - [ - 106.931577, - 10.4465474 - ], - [ - 106.9326973, - 10.4499787 - ], - [ - 106.931887, - 10.4523149 - ], - [ - 106.9320684, - 10.4565572 - ], - [ - 106.9345163, - 10.4620507 - ], - [ - 106.9458402, - 10.4722317 - ], - [ - 106.9476288, - 10.4722747 - ], - [ - 106.9491428, - 10.4708928 - ], - [ - 106.9515631, - 10.470943 - ], - [ - 106.9530974, - 10.4689649 - ], - [ - 106.9538129, - 10.4688384 - ], - [ - 106.9541358, - 10.4699127 - ], - [ - 106.9563065, - 10.4696075 - ], - [ - 106.9582111, - 10.4672671 - ], - [ - 106.9600436, - 10.4670656 - ], - [ - 106.9623087, - 10.4648799 - ], - [ - 106.9647303, - 10.4649518 - ], - [ - 106.9663292, - 10.4639828 - ], - [ - 106.9673566, - 10.4715206 - ], - [ - 106.9685941, - 10.4726346 - ], - [ - 106.9691737, - 10.4758334 - ], - [ - 106.9721099, - 10.4810552 - ], - [ - 106.9770282, - 10.4858236 - ], - [ - 106.9767783, - 10.4874018 - ], - [ - 106.9752418, - 10.4884563 - ], - [ - 106.974312, - 10.4986621 - ], - [ - 106.9772574, - 10.505092 - ], - [ - 106.9825889, - 10.5107453 - ], - [ - 106.9915041, - 10.5153215 - ], - [ - 106.9970154, - 10.5149586 - ], - [ - 106.9999347, - 10.5068312 - ], - [ - 107.0058274, - 10.5098492 - ], - [ - 107.0076882, - 10.5114154 - ], - [ - 107.0105551, - 10.5158971 - ], - [ - 107.012328, - 10.5197312 - ], - [ - 107.0126188, - 10.5223388 - ], - [ - 107.026062, - 10.5357877 - ], - [ - 107.0275803, - 10.5394019 - ], - [ - 107.0267082, - 10.5444213 - ], - [ - 107.0254909, - 10.5454215 - ], - [ - 107.0172057, - 10.5476007 - ], - [ - 107.0134265, - 10.5494584 - ], - [ - 107.0122637, - 10.5508338 - ], - [ - 107.0113007, - 10.5546741 - ], - [ - 107.0112462, - 10.5568353 - ], - [ - 107.0132812, - 10.5621581 - ], - [ - 107.0206579, - 10.5719102 - ], - [ - 107.0269081, - 10.5829301 - ], - [ - 107.0268288, - 10.5884412 - ], - [ - 107.0223458, - 10.5959671 - ], - [ - 107.0191458, - 10.6038971 - ], - [ - 107.0140281, - 10.6091322 - ], - [ - 107.0082867, - 10.6130075 - ], - [ - 107.0064605, - 10.6099432 - ], - [ - 107.0022063, - 10.6108245 - ], - [ - 107.0024645, - 10.6087938 - ], - [ - 107.0005059, - 10.6070001 - ], - [ - 106.9981438, - 10.6077893 - ], - [ - 106.9959167, - 10.6054216 - ], - [ - 106.9907667, - 10.6051994 - ], - [ - 106.9901955, - 10.6041376 - ], - [ - 106.9905627, - 10.6005472 - ], - [ - 106.9862101, - 10.5957231 - ], - [ - 106.987199, - 10.587777 - ], - [ - 106.9837328, - 10.5792082 - ], - [ - 106.9796263, - 10.5819196 - ], - [ - 106.9749271, - 10.5823359 - ], - [ - 106.9687519, - 10.5893028 - ], - [ - 106.9636957, - 10.5912158 - ], - [ - 106.9605119, - 10.5935822 - ], - [ - 106.9553752, - 10.5942063 - ], - [ - 106.9466067, - 10.5973811 - ], - [ - 106.9413844, - 10.5967216 - ], - [ - 106.9378418, - 10.5999071 - ], - [ - 106.9352672, - 10.6001579 - ], - [ - 106.928168, - 10.6029951 - ], - [ - 106.9215029, - 10.6097301 - ], - [ - 106.9186148, - 10.6098086 - ], - [ - 106.9143498, - 10.6074468 - ], - [ - 106.9113714, - 10.6081568 - ], - [ - 106.9086321, - 10.6120876 - ], - [ - 106.9040689, - 10.6239935 - ], - [ - 106.8980046, - 10.6295321 - ], - [ - 106.8940187, - 10.6360531 - ], - [ - 106.8857519, - 10.6398031 - ], - [ - 106.8847786, - 10.641631 - ], - [ - 106.8842399, - 10.6459443 - ], - [ - 106.8819583, - 10.647984 - ], - [ - 106.8762938, - 10.6486011 - ], - [ - 106.8727386, - 10.6478356 - ], - [ - 106.8698679, - 10.6432381 - ], - [ - 106.8644423, - 10.6420007 - ], - [ - 106.8620687, - 10.6378256 - ], - [ - 106.8603392, - 10.6367029 - ], - [ - 106.8581226, - 10.6368689 - ], - [ - 106.8525253, - 10.6395013 - ], - [ - 106.8434381, - 10.6384115 - ], - [ - 106.8405928, - 10.6350522 - ], - [ - 106.8379655, - 10.6263197 - ], - [ - 106.8268184, - 10.6280053 - ], - [ - 106.82155, - 10.6312383 - ], - [ - 106.8148234, - 10.6393323 - ], - [ - 106.8127962, - 10.6429403 - ], - [ - 106.8099771, - 10.6529585 - ], - [ - 106.8077563, - 10.65632 - ], - [ - 106.7897686, - 10.6684614 - ], - [ - 106.7766777, - 10.6756785 - ], - [ - 106.7690807, - 10.681307 - ], - [ - 106.7576994, - 10.6929863 - ], - [ - 106.7545393, - 10.6977093 - ], - [ - 106.7524647, - 10.7028793 - ], - [ - 106.7511678, - 10.7103776 - ], - [ - 106.7528834, - 10.7219417 - ], - [ - 106.7686561, - 10.7431427 - ], - [ - 106.7726629, - 10.7466967 - ], - [ - 106.7773151, - 10.7493683 - ], - [ - 106.7968881, - 10.7577716 - ], - [ - 106.8013778, - 10.760408 - ], - [ - 106.8034011, - 10.7631931 - ], - [ - 106.8066849, - 10.7712239 - ], - [ - 106.8128045, - 10.7772928 - ], - [ - 106.8163172, - 10.7797015 - ], - [ - 106.8194156, - 10.7808846 - ], - [ - 106.8217297, - 10.7808709 - ], - [ - 106.8250649, - 10.7778482 - ], - [ - 106.8256022, - 10.7725292 - ], - [ - 106.8230167, - 10.7634726 - ], - [ - 106.8234613, - 10.7607717 - ], - [ - 106.8248281, - 10.7595803 - ], - [ - 106.8289198, - 10.7606319 - ], - [ - 106.8355853, - 10.7691959 - ], - [ - 106.8390248, - 10.771997 - ], - [ - 106.8426174, - 10.7741932 - ], - [ - 106.8465768, - 10.7754044 - ], - [ - 106.8512722, - 10.7751564 - ], - [ - 106.8536416, - 10.7741461 - ], - [ - 106.8609354, - 10.766716 - ], - [ - 106.8652882, - 10.764637 - ], - [ - 106.8694652, - 10.7648269 - ], - [ - 106.8726326, - 10.7669322 - ], - [ - 106.8738005, - 10.7687001 - ], - [ - 106.8741142, - 10.7711991 - ], - [ - 106.8733521, - 10.7736419 - ], - [ - 106.8713587, - 10.7772307 - ], - [ - 106.8649947, - 10.7844494 - ], - [ - 106.8642654, - 10.7884521 - ], - [ - 106.8657355, - 10.7912147 - ], - [ - 106.875679, - 10.7985086 - ], - [ - 106.8786841, - 10.8021248 - ], - [ - 106.8815567, - 10.8065311 - ], - [ - 106.8815533, - 10.8106588 - ], - [ - 106.8781227, - 10.81854 - ], - [ - 106.8569283, - 10.8426284 - ], - [ - 106.8520545, - 10.8515705 - ], - [ - 106.8468153, - 10.8648961 - ], - [ - 106.8513221, - 10.8753108 - ], - [ - 106.845235, - 10.8845157 - ], - [ - 106.8401265, - 10.8988461 - ], - [ - 106.8339199, - 10.8982586 - ], - [ - 106.8298537, - 10.8949756 - ], - [ - 106.8279449, - 10.8942913 - ], - [ - 106.8267285, - 10.8947951 - ], - [ - 106.8250931, - 10.8937553 - ], - [ - 106.8250914, - 10.8928682 - ], - [ - 106.8238948, - 10.8928774 - ], - [ - 106.8241281, - 10.8882349 - ], - [ - 106.8217842, - 10.8858868 - ], - [ - 106.8203743, - 10.8857419 - ], - [ - 106.8204082, - 10.886344 - ], - [ - 106.819402, - 10.8857514 - ], - [ - 106.8191082, - 10.884243 - ], - [ - 106.8174819, - 10.8835977 - ], - [ - 106.8171911, - 10.8810661 - ], - [ - 106.8162917, - 10.881227 - ], - [ - 106.8138254, - 10.8783947 - ], - [ - 106.8130632, - 10.8791098 - ], - [ - 106.8084835, - 10.8729171 - ], - [ - 106.8052969, - 10.8751165 - ], - [ - 106.8043491, - 10.8737027 - ], - [ - 106.8013329, - 10.8736321 - ], - [ - 106.7986664, - 10.8720074 - ], - [ - 106.7978258, - 10.8732082 - ], - [ - 106.795159, - 10.8735589 - ], - [ - 106.7921713, - 10.8725947 - ], - [ - 106.7921659, - 10.8719756 - ], - [ - 106.7889215, - 10.8719524 - ], - [ - 106.7877281, - 10.8672115 - ], - [ - 106.7803318, - 10.8682665 - ], - [ - 106.7821065, - 10.8771956 - ], - [ - 106.7806065, - 10.8811856 - ], - [ - 106.7695436, - 10.8939241 - ], - [ - 106.7684209, - 10.8940402 - ], - [ - 106.7684183, - 10.8922433 - ], - [ - 106.7672646, - 10.8925065 - ], - [ - 106.7676681, - 10.8916337 - ], - [ - 106.7668916, - 10.8915511 - ], - [ - 106.7645467, - 10.8848594 - ], - [ - 106.7605209, - 10.8812602 - ], - [ - 106.7619415, - 10.8787059 - ], - [ - 106.7614269, - 10.8785209 - ], - [ - 106.7618984, - 10.8755415 - ], - [ - 106.7603765, - 10.8723815 - ], - [ - 106.7632849, - 10.8699203 - ], - [ - 106.7630843, - 10.8687709 - ], - [ - 106.7622395, - 10.8672623 - ], - [ - 106.7546015, - 10.8662775 - ], - [ - 106.7517472, - 10.8634587 - ], - [ - 106.7487055, - 10.8656559 - ], - [ - 106.747918, - 10.8692233 - ], - [ - 106.7459858, - 10.8717248 - ], - [ - 106.7470408, - 10.872075 - ], - [ - 106.7464425, - 10.8738789 - ], - [ - 106.751339, - 10.8754629 - ], - [ - 106.7503719, - 10.8772949 - ], - [ - 106.749396, - 10.8767632 - ], - [ - 106.7483768, - 10.8782166 - ], - [ - 106.7471969, - 10.8773867 - ], - [ - 106.744687, - 10.8800774 - ], - [ - 106.7456581, - 10.8807856 - ], - [ - 106.7449812, - 10.8816265 - ], - [ - 106.7432901, - 10.8804375 - ], - [ - 106.7411417, - 10.8814406 - ], - [ - 106.7384029, - 10.8794311 - ], - [ - 106.7366584, - 10.8806 - ], - [ - 106.7360653, - 10.8796048 - ], - [ - 106.7341768, - 10.8805112 - ], - [ - 106.7368171, - 10.8847474 - ], - [ - 106.7314616, - 10.8859131 - ], - [ - 106.7328295, - 10.8907332 - ], - [ - 106.7295653, - 10.8896769 - ], - [ - 106.7286801, - 10.8910624 - ], - [ - 106.727496, - 10.89019 - ], - [ - 106.717641, - 10.8964358 - ], - [ - 106.7131045, - 10.8894264 - ], - [ - 106.7145051, - 10.8881524 - ], - [ - 106.7138627, - 10.8875052 - ], - [ - 106.7144266, - 10.8868687 - ], - [ - 106.7155501, - 10.8877036 - ], - [ - 106.7175863, - 10.8877483 - ], - [ - 106.716614, - 10.8846164 - ], - [ - 106.7178787, - 10.8809826 - ], - [ - 106.7139831, - 10.8793655 - ], - [ - 106.7126469, - 10.8778823 - ], - [ - 106.713841, - 10.8778073 - ], - [ - 106.7140468, - 10.8769959 - ], - [ - 106.7152941, - 10.8774166 - ], - [ - 106.7214372, - 10.8763851 - ], - [ - 106.7236453, - 10.8717823 - ], - [ - 106.7150398, - 10.8726183 - ], - [ - 106.7154729, - 10.8683837 - ], - [ - 106.7131142, - 10.8657067 - ], - [ - 106.7005135, - 10.8680845 - ], - [ - 106.6956213, - 10.8726752 - ], - [ - 106.6897724, - 10.8804197 - ], - [ - 106.6891144, - 10.8849742 - ], - [ - 106.6940188, - 10.8936331 - ], - [ - 106.6943267, - 10.8981028 - ], - [ - 106.692787, - 10.9041992 - ], - [ - 106.6877469, - 10.916195 - ], - [ - 106.684712, - 10.9212072 - ], - [ - 106.6812731, - 10.9233625 - ], - [ - 106.6783804, - 10.9234185 - ], - [ - 106.6682663, - 10.9208418 - ], - [ - 106.6628122, - 10.9226306 - ], - [ - 106.6572929, - 10.9258852 - ], - [ - 106.6557168, - 10.9219588 - ], - [ - 106.653504, - 10.9196179 - ], - [ - 106.6458819, - 10.919811 - ], - [ - 106.6385195, - 10.9161742 - ], - [ - 106.6302376, - 10.9162121 - ], - [ - 106.6220677, - 10.9144584 - ], - [ - 106.6004518, - 10.9177979 - ], - [ - 106.6011921, - 10.9230665 - ], - [ - 106.5814577, - 10.929341 - ], - [ - 106.581576, - 10.9261048 - ], - [ - 106.5825949, - 10.9250367 - ], - [ - 106.5841641, - 10.9196599 - ], - [ - 106.5650412, - 10.9191267 - ], - [ - 106.5613747, - 10.9170763 - ], - [ - 106.5370906, - 10.9159834 - ], - [ - 106.4956203, - 10.9208398 - ], - [ - 106.5315364, - 10.9026658 - ], - [ - 106.5328728, - 10.8999003 - ], - [ - 106.5200679, - 10.8522195 - ], - [ - 106.5045619, - 10.7889222 - ], - [ - 106.4885044, - 10.7754906 - ], - [ - 106.4635618, - 10.7565046 - ] - ] - ], - [ - [ - [ - 106.9637064, - 10.4193628 - ], - [ - 106.9637292, - 10.418873 - ], - [ - 106.9644596, - 10.4187301 - ], - [ - 106.9637064, - 10.4193628 - ] - ] - ], - [ - [ - [ - 106.9698848, - 10.4543892 - ], - [ - 106.9706329, - 10.4539618 - ], - [ - 106.9708354, - 10.454845 - ], - [ - 106.9698848, - 10.4543892 - ] - ] - ], - [ - [ - [ - 106.9717469, - 10.4686544 - ], - [ - 106.9729592, - 10.4669671 - ], - [ - 106.9736133, - 10.4635359 - ], - [ - 106.9731984, - 10.4606217 - ], - [ - 106.9744465, - 10.459317 - ], - [ - 106.9738828, - 10.4599575 - ], - [ - 106.9760421, - 10.4608484 - ], - [ - 106.9767577, - 10.4602633 - ], - [ - 106.976122, - 10.4628537 - ], - [ - 106.9772965, - 10.4639949 - ], - [ - 106.9763285, - 10.4635536 - ], - [ - 106.9758181, - 10.4651565 - ], - [ - 106.9768466, - 10.4656018 - ], - [ - 106.9758012, - 10.4652845 - ], - [ - 106.9753333, - 10.4671924 - ], - [ - 106.9759121, - 10.4687352 - ], - [ - 106.977013, - 10.4684345 - ], - [ - 106.9759758, - 10.4688431 - ], - [ - 106.9776853, - 10.4713561 - ], - [ - 106.9787619, - 10.4709602 - ], - [ - 106.9777466, - 10.4714712 - ], - [ - 106.9778381, - 10.4740853 - ], - [ - 106.9742774, - 10.4706847 - ], - [ - 106.9732111, - 10.4712055 - ], - [ - 106.9717469, - 10.4686544 - ] - ] - ], - [ - [ - [ - 106.9830647, - 10.4957543 - ], - [ - 106.9851702, - 10.4912044 - ], - [ - 106.9852847, - 10.4922625 - ], - [ - 106.9888791, - 10.4955941 - ], - [ - 106.989543, - 10.4973725 - ], - [ - 106.9917649, - 10.4988249 - ], - [ - 106.9908686, - 10.5000191 - ], - [ - 106.9918038, - 10.5001072 - ], - [ - 106.9913082, - 10.50068 - ], - [ - 106.9921814, - 10.5013688 - ], - [ - 106.9899833, - 10.504772 - ], - [ - 106.9877902, - 10.5043472 - ], - [ - 106.9893613, - 10.5036225 - ], - [ - 106.9884441, - 10.5020323 - ], - [ - 106.9873724, - 10.5021005 - ], - [ - 106.9866813, - 10.5034206 - ], - [ - 106.9846301, - 10.4996245 - ], - [ - 106.9852873, - 10.4984083 - ], - [ - 106.9838864, - 10.4984222 - ], - [ - 106.9830647, - 10.4957543 - ] - ] - ], - [ - [ - [ - 106.9831572, - 10.480061 - ], - [ - 106.9874975, - 10.4803508 - ], - [ - 106.9854804, - 10.485568 - ], - [ - 106.9846614, - 10.4849845 - ], - [ - 106.9831572, - 10.480061 - ] - ] - ], - [ - [ - [ - 106.9878347, - 10.5033367 - ], - [ - 106.988644, - 10.502975 - ], - [ - 106.9882473, - 10.5035698 - ], - [ - 106.9878347, - 10.5033367 - ] - ] - ] - ] - } -} diff --git a/src/data/boundaries/tphcm/tphcm-binhchanh.json b/src/data/boundaries/tphcm/tphcm-binhchanh.json new file mode 100644 index 0000000..8d8fda1 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-binhchanh.json @@ -0,0 +1,2290 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-BINHCHANH", + "name": "Binh Chanh", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 253, + "bbox": [ + 106.46356, + 10.62531, + 106.69495, + 10.87364 + ], + "center": [ + 10.73382, + 106.57587 + ], + "generatedAt": "2026-08-30T07:34:55.532Z", + "osm": "relation/7157268" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.4635618, + 10.7565046 + ], + [ + 106.4722331, + 10.7455255 + ], + [ + 106.4735079, + 10.7464922 + ], + [ + 106.482108, + 10.7354428 + ], + [ + 106.4824246, + 10.7356846 + ], + [ + 106.4871569, + 10.7298149 + ], + [ + 106.4889865, + 10.7312615 + ], + [ + 106.4911731, + 10.7297864 + ], + [ + 106.4954245, + 10.7274369 + ], + [ + 106.4958316, + 10.7277183 + ], + [ + 106.4996255, + 10.7249923 + ], + [ + 106.5016856, + 10.7265365 + ], + [ + 106.5093718, + 10.7170518 + ], + [ + 106.5202276, + 10.7236952 + ], + [ + 106.5238332, + 10.7209711 + ], + [ + 106.5302547, + 10.7172794 + ], + [ + 106.5284362, + 10.7149779 + ], + [ + 106.5283971, + 10.7142349 + ], + [ + 106.5272397, + 10.7091259 + ], + [ + 106.5289597, + 10.7023139 + ], + [ + 106.5301128, + 10.6988696 + ], + [ + 106.5321761, + 10.6935308 + ], + [ + 106.5338586, + 10.6881685 + ], + [ + 106.5345895, + 10.6872899 + ], + [ + 106.5350777, + 10.687044 + ], + [ + 106.5356233, + 10.6861173 + ], + [ + 106.535663, + 10.6855532 + ], + [ + 106.5378323, + 10.686124 + ], + [ + 106.5399806, + 10.6860861 + ], + [ + 106.5476422, + 10.6871709 + ], + [ + 106.5477686, + 10.6866895 + ], + [ + 106.5481494, + 10.6862394 + ], + [ + 106.549155, + 10.6864444 + ], + [ + 106.5504213, + 10.6856057 + ], + [ + 106.550979, + 10.6839489 + ], + [ + 106.5510385, + 10.6828893 + ], + [ + 106.5514827, + 10.6824299 + ], + [ + 106.5513432, + 10.6817736 + ], + [ + 106.5515091, + 10.6811154 + ], + [ + 106.5514074, + 10.6805533 + ], + [ + 106.5516173, + 10.6801888 + ], + [ + 106.5515685, + 10.6794588 + ], + [ + 106.5520941, + 10.6781212 + ], + [ + 106.5528713, + 10.6771733 + ], + [ + 106.5529883, + 10.6757507 + ], + [ + 106.5536211, + 10.675406 + ], + [ + 106.5533279, + 10.6745565 + ], + [ + 106.5533751, + 10.6730566 + ], + [ + 106.5532335, + 10.6720611 + ], + [ + 106.5529592, + 10.671626 + ], + [ + 106.5522727, + 10.6712662 + ], + [ + 106.5520597, + 10.6705916 + ], + [ + 106.5528314, + 10.6691163 + ], + [ + 106.5534468, + 10.6688154 + ], + [ + 106.5535808, + 10.6685847 + ], + [ + 106.5533004, + 10.6675446 + ], + [ + 106.553235, + 10.6656959 + ], + [ + 106.5529249, + 10.6653134 + ], + [ + 106.5519948, + 10.664847 + ], + [ + 106.551519, + 10.6641393 + ], + [ + 106.5513735, + 10.6612822 + ], + [ + 106.5509638, + 10.6606142 + ], + [ + 106.5504895, + 10.6590349 + ], + [ + 106.5502685, + 10.6590117 + ], + [ + 106.5492686, + 10.659657 + ], + [ + 106.5490004, + 10.6588219 + ], + [ + 106.5489702, + 10.6574327 + ], + [ + 106.551732, + 10.6573352 + ], + [ + 106.55272, + 10.6574903 + ], + [ + 106.5559217, + 10.6569738 + ], + [ + 106.5560088, + 10.655402 + ], + [ + 106.5555305, + 10.6550981 + ], + [ + 106.5553029, + 10.6546835 + ], + [ + 106.5552058, + 10.652581 + ], + [ + 106.5556683, + 10.6509266 + ], + [ + 106.5563712, + 10.6508857 + ], + [ + 106.5572657, + 10.6505125 + ], + [ + 106.5579277, + 10.648603 + ], + [ + 106.5585265, + 10.648638 + ], + [ + 106.5586492, + 10.6491948 + ], + [ + 106.55918, + 10.6499646 + ], + [ + 106.558777, + 10.6506093 + ], + [ + 106.5590288, + 10.6518814 + ], + [ + 106.559774, + 10.6516331 + ], + [ + 106.5630729, + 10.6514923 + ], + [ + 106.5631335, + 10.6522051 + ], + [ + 106.5644638, + 10.6521552 + ], + [ + 106.5652959, + 10.6523024 + ], + [ + 106.5650451, + 10.6530313 + ], + [ + 106.5658803, + 10.6537659 + ], + [ + 106.5662728, + 10.6564275 + ], + [ + 106.5685221, + 10.6560476 + ], + [ + 106.5686163, + 10.656583 + ], + [ + 106.5698411, + 10.6562645 + ], + [ + 106.5728599, + 10.6543657 + ], + [ + 106.5734877, + 10.6541309 + ], + [ + 106.5730677, + 10.6520628 + ], + [ + 106.5733555, + 10.6498562 + ], + [ + 106.5751194, + 10.6498703 + ], + [ + 106.5754631, + 10.6491116 + ], + [ + 106.5766742, + 10.6493515 + ], + [ + 106.5769639, + 10.648885 + ], + [ + 106.5786197, + 10.6491884 + ], + [ + 106.5786036, + 10.649432 + ], + [ + 106.5789715, + 10.6496043 + ], + [ + 106.5793738, + 10.6503774 + ], + [ + 106.5795486, + 10.6519005 + ], + [ + 106.5780058, + 10.651892 + ], + [ + 106.5780654, + 10.6526492 + ], + [ + 106.5779066, + 10.6532379 + ], + [ + 106.5788075, + 10.6544953 + ], + [ + 106.5793893, + 10.6549274 + ], + [ + 106.5798284, + 10.6560951 + ], + [ + 106.5805785, + 10.6560603 + ], + [ + 106.580701, + 10.6554989 + ], + [ + 106.5831997, + 10.6553672 + ], + [ + 106.5841286, + 10.6536567 + ], + [ + 106.586855, + 10.6532116 + ], + [ + 106.5869821, + 10.6524906 + ], + [ + 106.5905312, + 10.6527818 + ], + [ + 106.5909105, + 10.6510949 + ], + [ + 106.5914942, + 10.6511666 + ], + [ + 106.591663, + 10.6501114 + ], + [ + 106.5927656, + 10.6504001 + ], + [ + 106.5949769, + 10.6506025 + ], + [ + 106.5950103, + 10.6503684 + ], + [ + 106.5959254, + 10.6503934 + ], + [ + 106.5956508, + 10.6510809 + ], + [ + 106.5954791, + 10.652325 + ], + [ + 106.5955505, + 10.6529725 + ], + [ + 106.5952794, + 10.6531131 + ], + [ + 106.5952297, + 10.6534997 + ], + [ + 106.5975102, + 10.6533844 + ], + [ + 106.5974935, + 10.6531399 + ], + [ + 106.5984494, + 10.6528953 + ], + [ + 106.5990925, + 10.6525164 + ], + [ + 106.5996118, + 10.6525942 + ], + [ + 106.599659, + 10.6522581 + ], + [ + 106.600007, + 10.6522379 + ], + [ + 106.6003105, + 10.6520023 + ], + [ + 106.6002953, + 10.6513686 + ], + [ + 106.6006523, + 10.6506916 + ], + [ + 106.6015009, + 10.6510311 + ], + [ + 106.6017542, + 10.6512846 + ], + [ + 106.6019211, + 10.6523284 + ], + [ + 106.6028497, + 10.6534363 + ], + [ + 106.6032408, + 10.6547621 + ], + [ + 106.6039106, + 10.6558818 + ], + [ + 106.6041939, + 10.6570103 + ], + [ + 106.6047259, + 10.6579783 + ], + [ + 106.6053836, + 10.6586959 + ], + [ + 106.6055605, + 10.6585985 + ], + [ + 106.6054934, + 10.6583146 + ], + [ + 106.6057924, + 10.6581396 + ], + [ + 106.6069861, + 10.6580456 + ], + [ + 106.6092494, + 10.6574768 + ], + [ + 106.6105133, + 10.6566013 + ], + [ + 106.6108327, + 10.6568916 + ], + [ + 106.6114274, + 10.6565987 + ], + [ + 106.6115279, + 10.6561105 + ], + [ + 106.6123175, + 10.6558074 + ], + [ + 106.6127072, + 10.6551163 + ], + [ + 106.6133039, + 10.6547373 + ], + [ + 106.613445, + 10.6543595 + ], + [ + 106.6137798, + 10.6545106 + ], + [ + 106.6141904, + 10.6538525 + ], + [ + 106.6145946, + 10.6537296 + ], + [ + 106.6156273, + 10.6541118 + ], + [ + 106.6154639, + 10.6538729 + ], + [ + 106.6155775, + 10.6536691 + ], + [ + 106.6158426, + 10.6537853 + ], + [ + 106.6160647, + 10.6532955 + ], + [ + 106.6163857, + 10.6531765 + ], + [ + 106.6167353, + 10.6533377 + ], + [ + 106.6167909, + 10.6521968 + ], + [ + 106.6172338, + 10.6519251 + ], + [ + 106.6177159, + 10.6519567 + ], + [ + 106.6177575, + 10.6512745 + ], + [ + 106.6172732, + 10.6509276 + ], + [ + 106.6173422, + 10.6501711 + ], + [ + 106.6180154, + 10.6501043 + ], + [ + 106.6180516, + 10.6498385 + ], + [ + 106.618984, + 10.6496845 + ], + [ + 106.6189639, + 10.6490133 + ], + [ + 106.6211348, + 10.6487236 + ], + [ + 106.6223469, + 10.6483823 + ], + [ + 106.6223239, + 10.6481443 + ], + [ + 106.6226675, + 10.6480087 + ], + [ + 106.6240585, + 10.6476632 + ], + [ + 106.6240334, + 10.647406 + ], + [ + 106.6245614, + 10.6474547 + ], + [ + 106.624712, + 10.6470826 + ], + [ + 106.6239614, + 10.6464561 + ], + [ + 106.6238926, + 10.6460911 + ], + [ + 106.6243823, + 10.6453693 + ], + [ + 106.6243293, + 10.6444613 + ], + [ + 106.6234376, + 10.6444323 + ], + [ + 106.6233554, + 10.6440829 + ], + [ + 106.6217719, + 10.6441002 + ], + [ + 106.6215383, + 10.6432687 + ], + [ + 106.6220632, + 10.6431575 + ], + [ + 106.6221253, + 10.6426575 + ], + [ + 106.6225062, + 10.6425918 + ], + [ + 106.6221889, + 10.641505 + ], + [ + 106.6217452, + 10.6415248 + ], + [ + 106.6216929, + 10.6414104 + ], + [ + 106.6213834, + 10.6415169 + ], + [ + 106.6212058, + 10.6409296 + ], + [ + 106.6227943, + 10.6404098 + ], + [ + 106.6241101, + 10.6394356 + ], + [ + 106.6244881, + 10.6398568 + ], + [ + 106.625249, + 10.6396544 + ], + [ + 106.625805, + 10.6397168 + ], + [ + 106.6263003, + 10.640937 + ], + [ + 106.6271793, + 10.6423959 + ], + [ + 106.6281483, + 10.6418075 + ], + [ + 106.6284295, + 10.6419749 + ], + [ + 106.629483, + 10.64203 + ], + [ + 106.6297295, + 10.6411321 + ], + [ + 106.6295293, + 10.6403921 + ], + [ + 106.629897, + 10.6403018 + ], + [ + 106.6296754, + 10.6393398 + ], + [ + 106.6301572, + 10.6393405 + ], + [ + 106.6305332, + 10.6390601 + ], + [ + 106.6303581, + 10.6384944 + ], + [ + 106.6311629, + 10.636743 + ], + [ + 106.6295121, + 10.6363135 + ], + [ + 106.6293401, + 10.6351394 + ], + [ + 106.6297903, + 10.6342603 + ], + [ + 106.6298566, + 10.633242 + ], + [ + 106.6296305, + 10.6316508 + ], + [ + 106.6299903, + 10.63142 + ], + [ + 106.6301434, + 10.6308131 + ], + [ + 106.630766, + 10.6302011 + ], + [ + 106.6306027, + 10.629835 + ], + [ + 106.6296789, + 10.6289406 + ], + [ + 106.6295621, + 10.6275909 + ], + [ + 106.6301368, + 10.6264266 + ], + [ + 106.6307996, + 10.6275256 + ], + [ + 106.6316328, + 10.628275 + ], + [ + 106.6328824, + 10.6279942 + ], + [ + 106.6349407, + 10.6253147 + ], + [ + 106.6353235, + 10.6261223 + ], + [ + 106.6358976, + 10.6262954 + ], + [ + 106.6366163, + 10.6261818 + ], + [ + 106.6373021, + 10.6262847 + ], + [ + 106.6378878, + 10.6265681 + ], + [ + 106.6388936, + 10.6274694 + ], + [ + 106.6391347, + 10.6269983 + ], + [ + 106.6392895, + 10.6271444 + ], + [ + 106.6410251, + 10.6266209 + ], + [ + 106.6415701, + 10.6273885 + ], + [ + 106.6437827, + 10.6296189 + ], + [ + 106.6461988, + 10.6342395 + ], + [ + 106.6468358, + 10.6341508 + ], + [ + 106.6483169, + 10.6330445 + ], + [ + 106.6484757, + 10.6327058 + ], + [ + 106.6491307, + 10.6328708 + ], + [ + 106.6497189, + 10.6326597 + ], + [ + 106.6513717, + 10.6326934 + ], + [ + 106.6520015, + 10.6323547 + ], + [ + 106.6528386, + 10.6322999 + ], + [ + 106.6533429, + 10.6328524 + ], + [ + 106.6534867, + 10.6333058 + ], + [ + 106.653455, + 10.6338531 + ], + [ + 106.653191, + 10.6338911 + ], + [ + 106.6531138, + 10.634353 + ], + [ + 106.6532849, + 10.6365519 + ], + [ + 106.6529674, + 10.6370875 + ], + [ + 106.6529438, + 10.6378948 + ], + [ + 106.6533046, + 10.6381504 + ], + [ + 106.6534501, + 10.6388877 + ], + [ + 106.6539451, + 10.6394395 + ], + [ + 106.6559778, + 10.6388903 + ], + [ + 106.6561804, + 10.6384725 + ], + [ + 106.6565033, + 10.638811 + ], + [ + 106.6568471, + 10.640246 + ], + [ + 106.6562901, + 10.6420446 + ], + [ + 106.6567458, + 10.6432106 + ], + [ + 106.6569372, + 10.6433228 + ], + [ + 106.6581125, + 10.6431966 + ], + [ + 106.6607203, + 10.6419874 + ], + [ + 106.6604625, + 10.6413805 + ], + [ + 106.6600236, + 10.6409817 + ], + [ + 106.6598983, + 10.6402222 + ], + [ + 106.6601906, + 10.6398143 + ], + [ + 106.6608582, + 10.6400786 + ], + [ + 106.6618417, + 10.6399034 + ], + [ + 106.6626216, + 10.6392726 + ], + [ + 106.6629068, + 10.6393695 + ], + [ + 106.6630835, + 10.6399635 + ], + [ + 106.6633378, + 10.6400752 + ], + [ + 106.6640346, + 10.6395496 + ], + [ + 106.6645687, + 10.6395301 + ], + [ + 106.6646986, + 10.6390956 + ], + [ + 106.6649995, + 10.6388865 + ], + [ + 106.6656054, + 10.6396021 + ], + [ + 106.665802, + 10.6394142 + ], + [ + 106.6658399, + 10.638537 + ], + [ + 106.6660405, + 10.6384323 + ], + [ + 106.6664596, + 10.6387884 + ], + [ + 106.666545, + 10.6391372 + ], + [ + 106.6663116, + 10.6400667 + ], + [ + 106.6666233, + 10.6406516 + ], + [ + 106.6680193, + 10.6393407 + ], + [ + 106.6685699, + 10.639132 + ], + [ + 106.6693015, + 10.6391495 + ], + [ + 106.6700722, + 10.6395483 + ], + [ + 106.6718103, + 10.6415075 + ], + [ + 106.6726026, + 10.6418798 + ], + [ + 106.6734454, + 10.6419688 + ], + [ + 106.6734451, + 10.6432685 + ], + [ + 106.6737199, + 10.6438367 + ], + [ + 106.6741834, + 10.6442992 + ], + [ + 106.6754737, + 10.6447882 + ], + [ + 106.6778287, + 10.6451543 + ], + [ + 106.6790676, + 10.6457214 + ], + [ + 106.6813113, + 10.6477541 + ], + [ + 106.6844741, + 10.6499186 + ], + [ + 106.6856124, + 10.6513689 + ], + [ + 106.6859842, + 10.6523855 + ], + [ + 106.6860768, + 10.6535616 + ], + [ + 106.6855034, + 10.6582844 + ], + [ + 106.6849974, + 10.6600904 + ], + [ + 106.6844911, + 10.6608671 + ], + [ + 106.6838871, + 10.6613466 + ], + [ + 106.6808028, + 10.6623546 + ], + [ + 106.6800572, + 10.6627512 + ], + [ + 106.679204, + 10.6636887 + ], + [ + 106.6786623, + 10.6650916 + ], + [ + 106.678361, + 10.6682394 + ], + [ + 106.6786613, + 10.6710153 + ], + [ + 106.6794149, + 10.6731767 + ], + [ + 106.6811645, + 10.6761649 + ], + [ + 106.6813999, + 10.6772466 + ], + [ + 106.6813552, + 10.678102 + ], + [ + 106.6807268, + 10.6799997 + ], + [ + 106.6794815, + 10.682113 + ], + [ + 106.6763845, + 10.685137 + ], + [ + 106.6759215, + 10.6862759 + ], + [ + 106.6757494, + 10.6884439 + ], + [ + 106.6754423, + 10.6895625 + ], + [ + 106.6732786, + 10.6922902 + ], + [ + 106.6738099, + 10.6960002 + ], + [ + 106.673851, + 10.6982869 + ], + [ + 106.6745134, + 10.7021015 + ], + [ + 106.6743105, + 10.7028397 + ], + [ + 106.6735712, + 10.7036408 + ], + [ + 106.6734523, + 10.7041037 + ], + [ + 106.6737639, + 10.7048387 + ], + [ + 106.6748723, + 10.7059555 + ], + [ + 106.6764744, + 10.7088472 + ], + [ + 106.6767484, + 10.7096579 + ], + [ + 106.6778289, + 10.7096092 + ], + [ + 106.6781845, + 10.7097884 + ], + [ + 106.6786637, + 10.711467 + ], + [ + 106.6800628, + 10.7135196 + ], + [ + 106.6809661, + 10.7145652 + ], + [ + 106.6818433, + 10.7139657 + ], + [ + 106.6840811, + 10.7131086 + ], + [ + 106.6853564, + 10.7119394 + ], + [ + 106.6859882, + 10.7116101 + ], + [ + 106.6866886, + 10.7115701 + ], + [ + 106.688856, + 10.712116 + ], + [ + 106.6885895, + 10.7130263 + ], + [ + 106.688402, + 10.7152978 + ], + [ + 106.6893482, + 10.7185056 + ], + [ + 106.6889459, + 10.7214203 + ], + [ + 106.6900942, + 10.7252801 + ], + [ + 106.6902556, + 10.7302321 + ], + [ + 106.6908453, + 10.7312186 + ], + [ + 106.6926419, + 10.732463 + ], + [ + 106.6937685, + 10.7335271 + ], + [ + 106.6942406, + 10.7342544 + ], + [ + 106.6949496, + 10.7360553 + ], + [ + 106.6948785, + 10.7368653 + ], + [ + 106.6943747, + 10.7379754 + ], + [ + 106.6921478, + 10.7415213 + ], + [ + 106.686892, + 10.7400493 + ], + [ + 106.6829835, + 10.7395195 + ], + [ + 106.6830457, + 10.7385115 + ], + [ + 106.6822815, + 10.7370079 + ], + [ + 106.6820757, + 10.736278 + ], + [ + 106.6822111, + 10.7347314 + ], + [ + 106.6815584, + 10.7345719 + ], + [ + 106.6810735, + 10.7349618 + ], + [ + 106.6799127, + 10.7351943 + ], + [ + 106.6798082, + 10.7346882 + ], + [ + 106.678108, + 10.7350182 + ], + [ + 106.6781027, + 10.7354312 + ], + [ + 106.6767759, + 10.7350865 + ], + [ + 106.6744609, + 10.7362303 + ], + [ + 106.6736405, + 10.7373836 + ], + [ + 106.6718026, + 10.7361635 + ], + [ + 106.6717283, + 10.7362667 + ], + [ + 106.6701103, + 10.7352704 + ], + [ + 106.6701997, + 10.735145 + ], + [ + 106.6659431, + 10.7323951 + ], + [ + 106.6657348, + 10.7342221 + ], + [ + 106.6641899, + 10.7339573 + ], + [ + 106.6634511, + 10.7339882 + ], + [ + 106.6611839, + 10.7331928 + ], + [ + 106.6595859, + 10.7329354 + ], + [ + 106.6593625, + 10.7326767 + ], + [ + 106.6576721, + 10.7325205 + ], + [ + 106.6575447, + 10.7323554 + ], + [ + 106.657065, + 10.732269 + ], + [ + 106.6561147, + 10.7323143 + ], + [ + 106.6548687, + 10.7318066 + ], + [ + 106.6497356, + 10.7304894 + ], + [ + 106.6494424, + 10.7302755 + ], + [ + 106.6500848, + 10.7287391 + ], + [ + 106.6499642, + 10.7286981 + ], + [ + 106.6455175, + 10.7291327 + ], + [ + 106.6453111, + 10.7290667 + ], + [ + 106.6453784, + 10.7286487 + ], + [ + 106.6437051, + 10.7280418 + ], + [ + 106.6431959, + 10.7276667 + ], + [ + 106.642375, + 10.7275872 + ], + [ + 106.6422442, + 10.7278381 + ], + [ + 106.627758, + 10.6990013 + ], + [ + 106.5945559, + 10.6898539 + ], + [ + 106.5970397, + 10.6975914 + ], + [ + 106.5973805, + 10.6997062 + ], + [ + 106.5973069, + 10.7016164 + ], + [ + 106.5989167, + 10.7022033 + ], + [ + 106.6012667, + 10.7034806 + ], + [ + 106.6058878, + 10.7047797 + ], + [ + 106.6086473, + 10.7062665 + ], + [ + 106.6072782, + 10.70834 + ], + [ + 106.6034657, + 10.7113586 + ], + [ + 106.6033785, + 10.7118815 + ], + [ + 106.6037975, + 10.7132168 + ], + [ + 106.6036261, + 10.7137856 + ], + [ + 106.6032036, + 10.7143746 + ], + [ + 106.6031198, + 10.7148414 + ], + [ + 106.6038455, + 10.7162036 + ], + [ + 106.6041352, + 10.7173439 + ], + [ + 106.6034209, + 10.7174356 + ], + [ + 106.6032775, + 10.7176517 + ], + [ + 106.6001118, + 10.7179339 + ], + [ + 106.6008731, + 10.7223375 + ], + [ + 106.5997987, + 10.7226191 + ], + [ + 106.5964821, + 10.7245498 + ], + [ + 106.5902889, + 10.7269309 + ], + [ + 106.581323, + 10.7296064 + ], + [ + 106.5738048, + 10.7311645 + ], + [ + 106.5740632, + 10.7316923 + ], + [ + 106.5740733, + 10.7326896 + ], + [ + 106.5684377, + 10.7342026 + ], + [ + 106.5647473, + 10.7349651 + ], + [ + 106.5587993, + 10.7364642 + ], + [ + 106.5589135, + 10.7377293 + ], + [ + 106.5583063, + 10.7389851 + ], + [ + 106.5583063, + 10.7392636 + ], + [ + 106.55928, + 10.7419274 + ], + [ + 106.5589041, + 10.7442158 + ], + [ + 106.5593662, + 10.745917 + ], + [ + 106.5591505, + 10.7479088 + ], + [ + 106.5595326, + 10.7489622 + ], + [ + 106.5601611, + 10.749501 + ], + [ + 106.5620899, + 10.750506 + ], + [ + 106.5642836, + 10.7526309 + ], + [ + 106.5660459, + 10.7535329 + ], + [ + 106.5675926, + 10.7545984 + ], + [ + 106.5696015, + 10.7565962 + ], + [ + 106.5699958, + 10.7572863 + ], + [ + 106.5723128, + 10.7594051 + ], + [ + 106.5731755, + 10.7599681 + ], + [ + 106.5733723, + 10.7604104 + ], + [ + 106.5677452, + 10.7629019 + ], + [ + 106.5701648, + 10.7687251 + ], + [ + 106.5722087, + 10.7681026 + ], + [ + 106.5728974, + 10.7680499 + ], + [ + 106.574981, + 10.768715 + ], + [ + 106.5756274, + 10.7687664 + ], + [ + 106.5758623, + 10.7692308 + ], + [ + 106.5767951, + 10.770119 + ], + [ + 106.5769184, + 10.7711749 + ], + [ + 106.5773767, + 10.7718074 + ], + [ + 106.5781174, + 10.7725154 + ], + [ + 106.5796579, + 10.773433 + ], + [ + 106.5808951, + 10.7750027 + ], + [ + 106.5819769, + 10.7753388 + ], + [ + 106.5846344, + 10.7749074 + ], + [ + 106.5858582, + 10.7752865 + ], + [ + 106.5867124, + 10.7759872 + ], + [ + 106.588665, + 10.7789594 + ], + [ + 106.5888643, + 10.7799791 + ], + [ + 106.5885763, + 10.7800362 + ], + [ + 106.588251, + 10.7807025 + ], + [ + 106.5880841, + 10.7818081 + ], + [ + 106.5883195, + 10.7841637 + ], + [ + 106.5890047, + 10.7873617 + ], + [ + 106.5866657, + 10.7881643 + ], + [ + 106.586855, + 10.7892429 + ], + [ + 106.5856191, + 10.7894715 + ], + [ + 106.5856057, + 10.7906255 + ], + [ + 106.5844457, + 10.7907217 + ], + [ + 106.5846975, + 10.79472 + ], + [ + 106.585422, + 10.7946679 + ], + [ + 106.5854817, + 10.7957245 + ], + [ + 106.584442, + 10.7957903 + ], + [ + 106.5847079, + 10.7972303 + ], + [ + 106.5828647, + 10.7973024 + ], + [ + 106.5834573, + 10.8041318 + ], + [ + 106.5834754, + 10.8063554 + ], + [ + 106.5845228, + 10.806744 + ], + [ + 106.5860416, + 10.8131159 + ], + [ + 106.5849332, + 10.8139978 + ], + [ + 106.5837551, + 10.8137748 + ], + [ + 106.5833678, + 10.8153151 + ], + [ + 106.5819358, + 10.8156398 + ], + [ + 106.5872935, + 10.820401 + ], + [ + 106.5911133, + 10.8242549 + ], + [ + 106.5952141, + 10.8297829 + ], + [ + 106.5944034, + 10.8298299 + ], + [ + 106.5930231, + 10.8293998 + ], + [ + 106.5923381, + 10.8303607 + ], + [ + 106.5909468, + 10.8318376 + ], + [ + 106.5878803, + 10.8327949 + ], + [ + 106.5860186, + 10.8331682 + ], + [ + 106.5851672, + 10.8327389 + ], + [ + 106.5842106, + 10.8325466 + ], + [ + 106.5819271, + 10.8328397 + ], + [ + 106.5807844, + 10.8342176 + ], + [ + 106.5790652, + 10.8355202 + ], + [ + 106.5780835, + 10.8373047 + ], + [ + 106.5765801, + 10.8384193 + ], + [ + 106.5764735, + 10.8401142 + ], + [ + 106.5757593, + 10.8426079 + ], + [ + 106.5736277, + 10.8427469 + ], + [ + 106.5727124, + 10.8427225 + ], + [ + 106.5726882, + 10.8425934 + ], + [ + 106.5692604, + 10.8428002 + ], + [ + 106.5661785, + 10.8411024 + ], + [ + 106.5645739, + 10.8407766 + ], + [ + 106.5634996, + 10.8413988 + ], + [ + 106.5632321, + 10.8413698 + ], + [ + 106.5630779, + 10.8426027 + ], + [ + 106.56276, + 10.8426013 + ], + [ + 106.5626219, + 10.8429425 + ], + [ + 106.5623711, + 10.8447312 + ], + [ + 106.5596473, + 10.8442201 + ], + [ + 106.5588051, + 10.8439067 + ], + [ + 106.5580621, + 10.8440489 + ], + [ + 106.5580595, + 10.8438105 + ], + [ + 106.5575901, + 10.8438171 + ], + [ + 106.5574157, + 10.843335 + ], + [ + 106.5559467, + 10.843056 + ], + [ + 106.5452237, + 10.8447865 + ], + [ + 106.5448056, + 10.8430387 + ], + [ + 106.5286784, + 10.8475074 + ], + [ + 106.5348794, + 10.8718885 + ], + [ + 106.5259106, + 10.8736439 + ], + [ + 106.5200679, + 10.8522195 + ], + [ + 106.5158115, + 10.8348671 + ], + [ + 106.5113115, + 10.8176259 + ], + [ + 106.5094941, + 10.808948 + ], + [ + 106.5080494, + 10.8033606 + ], + [ + 106.5062932, + 10.795111 + ], + [ + 106.5054989, + 10.793118 + ], + [ + 106.5045619, + 10.7889222 + ], + [ + 106.4885044, + 10.7754906 + ], + [ + 106.4635618, + 10.7565046 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-binhtan.json b/src/data/boundaries/tphcm/tphcm-binhtan.json new file mode 100644 index 0000000..8147add --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-binhtan.json @@ -0,0 +1,542 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-BINHTAN", + "name": "Binh Tan", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 52.3, + "bbox": [ + 106.55831, + 10.71096, + 106.62526, + 10.82978 + ], + "center": [ + 10.76473, + 106.59754 + ], + "generatedAt": "2026-08-30T07:34:40.995Z", + "osm": "relation/6909710" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.5583063, + 10.7389851 + ], + [ + 106.5589135, + 10.7377293 + ], + [ + 106.5587993, + 10.7364642 + ], + [ + 106.5647473, + 10.7349651 + ], + [ + 106.5684377, + 10.7342026 + ], + [ + 106.5740733, + 10.7326896 + ], + [ + 106.5740632, + 10.7316923 + ], + [ + 106.5738048, + 10.7311645 + ], + [ + 106.581323, + 10.7296064 + ], + [ + 106.5902889, + 10.7269309 + ], + [ + 106.5964821, + 10.7245498 + ], + [ + 106.5997987, + 10.7226191 + ], + [ + 106.6008731, + 10.7223375 + ], + [ + 106.6001118, + 10.7179339 + ], + [ + 106.6032775, + 10.7176517 + ], + [ + 106.6034209, + 10.7174356 + ], + [ + 106.6041352, + 10.7173439 + ], + [ + 106.6038455, + 10.7162036 + ], + [ + 106.6031142, + 10.7147539 + ], + [ + 106.6037755, + 10.7134089 + ], + [ + 106.6037719, + 10.7129428 + ], + [ + 106.6033719, + 10.7117921 + ], + [ + 106.6034657, + 10.7113586 + ], + [ + 106.6038209, + 10.7109632 + ], + [ + 106.6065404, + 10.7119137 + ], + [ + 106.6160281, + 10.7142529 + ], + [ + 106.615558, + 10.7150037 + ], + [ + 106.6174368, + 10.7152573 + ], + [ + 106.6182121, + 10.7160219 + ], + [ + 106.6190341, + 10.7162048 + ], + [ + 106.6210955, + 10.7342486 + ], + [ + 106.6221717, + 10.7386272 + ], + [ + 106.6220494, + 10.7387654 + ], + [ + 106.6217503, + 10.7413933 + ], + [ + 106.6231052, + 10.7447064 + ], + [ + 106.6231201, + 10.7451195 + ], + [ + 106.6237949, + 10.7455106 + ], + [ + 106.6243672, + 10.7555135 + ], + [ + 106.6252595, + 10.7575529 + ], + [ + 106.6215893, + 10.7733635 + ], + [ + 106.6214527, + 10.7762789 + ], + [ + 106.6212335, + 10.7772689 + ], + [ + 106.6184801, + 10.7853372 + ], + [ + 106.6152161, + 10.7936116 + ], + [ + 106.6136709, + 10.7967177 + ], + [ + 106.6085415, + 10.8056515 + ], + [ + 106.6074148, + 10.8080818 + ], + [ + 106.6078887, + 10.8129234 + ], + [ + 106.6076891, + 10.8130434 + ], + [ + 106.6089918, + 10.8144877 + ], + [ + 106.6097427, + 10.8148686 + ], + [ + 106.6120436, + 10.8171105 + ], + [ + 106.6131346, + 10.8178989 + ], + [ + 106.6148834, + 10.8187404 + ], + [ + 106.6160126, + 10.8196311 + ], + [ + 106.6145173, + 10.8211242 + ], + [ + 106.6116966, + 10.8217939 + ], + [ + 106.6091561, + 10.8229681 + ], + [ + 106.6076711, + 10.8232158 + ], + [ + 106.6044301, + 10.8253075 + ], + [ + 106.603879, + 10.8261239 + ], + [ + 106.6030665, + 10.8262707 + ], + [ + 106.6005353, + 10.8260964 + ], + [ + 106.5974998, + 10.8270872 + ], + [ + 106.5980789, + 10.8294632 + ], + [ + 106.5952141, + 10.8297829 + ], + [ + 106.5911133, + 10.8242549 + ], + [ + 106.5872935, + 10.820401 + ], + [ + 106.5819358, + 10.8156398 + ], + [ + 106.5833678, + 10.8153151 + ], + [ + 106.5837551, + 10.8137748 + ], + [ + 106.5849332, + 10.8139978 + ], + [ + 106.5860416, + 10.8131159 + ], + [ + 106.5845228, + 10.806744 + ], + [ + 106.5834754, + 10.8063554 + ], + [ + 106.5834573, + 10.8041318 + ], + [ + 106.5828647, + 10.7973024 + ], + [ + 106.5847079, + 10.7972303 + ], + [ + 106.584442, + 10.7957903 + ], + [ + 106.5854817, + 10.7957245 + ], + [ + 106.585422, + 10.7946679 + ], + [ + 106.5846975, + 10.79472 + ], + [ + 106.5844457, + 10.7907217 + ], + [ + 106.5856057, + 10.7906255 + ], + [ + 106.5856191, + 10.7894715 + ], + [ + 106.586855, + 10.7892429 + ], + [ + 106.5866657, + 10.7881643 + ], + [ + 106.5890047, + 10.7873617 + ], + [ + 106.5883195, + 10.7841637 + ], + [ + 106.5880841, + 10.7818081 + ], + [ + 106.588251, + 10.7807025 + ], + [ + 106.5885763, + 10.7800362 + ], + [ + 106.5888643, + 10.7799791 + ], + [ + 106.5887643, + 10.7792498 + ], + [ + 106.588447, + 10.7785341 + ], + [ + 106.5868994, + 10.7762366 + ], + [ + 106.5858582, + 10.7752865 + ], + [ + 106.5846344, + 10.7749074 + ], + [ + 106.5819769, + 10.7753388 + ], + [ + 106.5808951, + 10.7750027 + ], + [ + 106.5796579, + 10.773433 + ], + [ + 106.5781174, + 10.7725154 + ], + [ + 106.5773767, + 10.7718074 + ], + [ + 106.5769184, + 10.7711749 + ], + [ + 106.5767951, + 10.770119 + ], + [ + 106.5758623, + 10.7692308 + ], + [ + 106.5756274, + 10.7687664 + ], + [ + 106.574981, + 10.768715 + ], + [ + 106.5728974, + 10.7680499 + ], + [ + 106.5722087, + 10.7681026 + ], + [ + 106.5701648, + 10.7687251 + ], + [ + 106.5677452, + 10.7629019 + ], + [ + 106.5733723, + 10.7604104 + ], + [ + 106.5731755, + 10.7599681 + ], + [ + 106.5723128, + 10.7594051 + ], + [ + 106.5699958, + 10.7572863 + ], + [ + 106.5696015, + 10.7565962 + ], + [ + 106.5675926, + 10.7545984 + ], + [ + 106.5660459, + 10.7535329 + ], + [ + 106.5642836, + 10.7526309 + ], + [ + 106.5620899, + 10.750506 + ], + [ + 106.5601611, + 10.749501 + ], + [ + 106.5595326, + 10.7489622 + ], + [ + 106.5591505, + 10.7479088 + ], + [ + 106.5593662, + 10.745917 + ], + [ + 106.5589041, + 10.7442158 + ], + [ + 106.55928, + 10.7419274 + ], + [ + 106.5583063, + 10.7389851 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-binhthanh.json b/src/data/boundaries/tphcm/tphcm-binhthanh.json new file mode 100644 index 0000000..5448562 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-binhthanh.json @@ -0,0 +1,682 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-BINHTHANH", + "name": "Binh Thanh", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 20.9, + "bbox": [ + 106.68385, + 10.78534, + 106.75139, + 10.83917 + ], + "center": [ + 10.81206, + 106.7162 + ], + "generatedAt": "2026-08-30T07:34:43.044Z", + "osm": "relation/3797166" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6838498, + 10.8071821 + ], + [ + 106.6844495, + 10.806431 + ], + [ + 106.6861537, + 10.8055045 + ], + [ + 106.6870527, + 10.8052401 + ], + [ + 106.6870269, + 10.8061811 + ], + [ + 106.6885023, + 10.8056289 + ], + [ + 106.6879147, + 10.8037448 + ], + [ + 106.6909202, + 10.8033507 + ], + [ + 106.6907951, + 10.8023955 + ], + [ + 106.6921624, + 10.8022829 + ], + [ + 106.6922298, + 10.8014996 + ], + [ + 106.6920229, + 10.8013461 + ], + [ + 106.6920237, + 10.8009754 + ], + [ + 106.6923912, + 10.8010374 + ], + [ + 106.692482, + 10.8004663 + ], + [ + 106.6918172, + 10.8002909 + ], + [ + 106.6918068, + 10.7989945 + ], + [ + 106.6920921, + 10.7988295 + ], + [ + 106.6919144, + 10.7987399 + ], + [ + 106.6920432, + 10.7982558 + ], + [ + 106.6918071, + 10.7982736 + ], + [ + 106.6918366, + 10.7978257 + ], + [ + 106.6920311, + 10.7977881 + ], + [ + 106.691948, + 10.7960657 + ], + [ + 106.6916087, + 10.7955247 + ], + [ + 106.6926141, + 10.7948798 + ], + [ + 106.6943564, + 10.7948981 + ], + [ + 106.6945368, + 10.7945495 + ], + [ + 106.6945432, + 10.7939072 + ], + [ + 106.6948515, + 10.7935112 + ], + [ + 106.6973197, + 10.7936608 + ], + [ + 106.6994158, + 10.7935269 + ], + [ + 106.7032122, + 10.7927802 + ], + [ + 106.7055456, + 10.7921198 + ], + [ + 106.7067238, + 10.7913608 + ], + [ + 106.707618, + 10.7890035 + ], + [ + 106.708727, + 10.7877518 + ], + [ + 106.7094406, + 10.787511 + ], + [ + 106.7118759, + 10.7877139 + ], + [ + 106.7128377, + 10.7874826 + ], + [ + 106.7140324, + 10.7866711 + ], + [ + 106.7151954, + 10.7853396 + ], + [ + 106.7192919, + 10.7862264 + ], + [ + 106.7206793, + 10.7867917 + ], + [ + 106.7218028, + 10.7875111 + ], + [ + 106.723224, + 10.7886979 + ], + [ + 106.7244302, + 10.7900456 + ], + [ + 106.7261653, + 10.7927836 + ], + [ + 106.7270983, + 10.7959549 + ], + [ + 106.7272466, + 10.7983844 + ], + [ + 106.7268654, + 10.8004651 + ], + [ + 106.7259877, + 10.8021589 + ], + [ + 106.723462, + 10.8058608 + ], + [ + 106.7228123, + 10.8073519 + ], + [ + 106.722333, + 10.8090333 + ], + [ + 106.7224267, + 10.8107114 + ], + [ + 106.7228741, + 10.8124258 + ], + [ + 106.7243589, + 10.8153783 + ], + [ + 106.7255858, + 10.8167173 + ], + [ + 106.7280138, + 10.8185849 + ], + [ + 106.7303724, + 10.8196141 + ], + [ + 106.7313617, + 10.8197676 + ], + [ + 106.7322408, + 10.8196769 + ], + [ + 106.7334306, + 10.8190854 + ], + [ + 106.7344711, + 10.8179926 + ], + [ + 106.7352843, + 10.8162744 + ], + [ + 106.7362051, + 10.8132775 + ], + [ + 106.7366718, + 10.8122354 + ], + [ + 106.7376293, + 10.8109063 + ], + [ + 106.7388252, + 10.809827 + ], + [ + 106.7413516, + 10.8087132 + ], + [ + 106.7434736, + 10.8083111 + ], + [ + 106.7457306, + 10.8085595 + ], + [ + 106.7476562, + 10.8092622 + ], + [ + 106.7490423, + 10.8101673 + ], + [ + 106.7501148, + 10.81125 + ], + [ + 106.7507739, + 10.8123065 + ], + [ + 106.7511901, + 10.813658 + ], + [ + 106.7513903, + 10.815905 + ], + [ + 106.7513676, + 10.8254103 + ], + [ + 106.7512491, + 10.8277419 + ], + [ + 106.7510304, + 10.8287121 + ], + [ + 106.7504861, + 10.8301155 + ], + [ + 106.7496599, + 10.8314799 + ], + [ + 106.7485551, + 10.8326695 + ], + [ + 106.7474455, + 10.8334855 + ], + [ + 106.7455807, + 10.8342562 + ], + [ + 106.7421115, + 10.8353768 + ], + [ + 106.7409936, + 10.8355447 + ], + [ + 106.7397465, + 10.835484 + ], + [ + 106.7386213, + 10.8350972 + ], + [ + 106.7375377, + 10.8343068 + ], + [ + 106.7361966, + 10.8326737 + ], + [ + 106.7342118, + 10.8292277 + ], + [ + 106.732656, + 10.8270463 + ], + [ + 106.7303464, + 10.8247186 + ], + [ + 106.7281085, + 10.8231766 + ], + [ + 106.7247757, + 10.821672 + ], + [ + 106.7228982, + 10.8210397 + ], + [ + 106.7210385, + 10.8206229 + ], + [ + 106.7182123, + 10.8204147 + ], + [ + 106.7143435, + 10.820807 + ], + [ + 106.7129396, + 10.821329 + ], + [ + 106.7119364, + 10.821978 + ], + [ + 106.7105547, + 10.8231684 + ], + [ + 106.7098178, + 10.8241752 + ], + [ + 106.7092919, + 10.8252431 + ], + [ + 106.7090068, + 10.8262739 + ], + [ + 106.7086986, + 10.831625 + ], + [ + 106.708404, + 10.8331585 + ], + [ + 106.7078823, + 10.8346562 + ], + [ + 106.7071637, + 10.8358347 + ], + [ + 106.7063053, + 10.8367562 + ], + [ + 106.7027717, + 10.8391736 + ], + [ + 106.7011125, + 10.8378423 + ], + [ + 106.7007034, + 10.8359997 + ], + [ + 106.7001075, + 10.8349207 + ], + [ + 106.6991023, + 10.834231 + ], + [ + 106.6962491, + 10.8329363 + ], + [ + 106.6957335, + 10.8323163 + ], + [ + 106.6953034, + 10.8311161 + ], + [ + 106.6974301, + 10.8306409 + ], + [ + 106.6997009, + 10.8303969 + ], + [ + 106.6999564, + 10.8298916 + ], + [ + 106.6995664, + 10.8286754 + ], + [ + 106.7006982, + 10.8281913 + ], + [ + 106.7010287, + 10.8270518 + ], + [ + 106.7000631, + 10.826481 + ], + [ + 106.6991888, + 10.8256756 + ], + [ + 106.698626, + 10.8243173 + ], + [ + 106.6986716, + 10.8232693 + ], + [ + 106.6935055, + 10.8220061 + ], + [ + 106.6940972, + 10.820544 + ], + [ + 106.6934293, + 10.8203628 + ], + [ + 106.693499, + 10.8196434 + ], + [ + 106.6928673, + 10.8194525 + ], + [ + 106.6929477, + 10.8189623 + ], + [ + 106.6926758, + 10.8186794 + ], + [ + 106.6927809, + 10.8183501 + ], + [ + 106.6933041, + 10.8178443 + ], + [ + 106.6920385, + 10.8175413 + ], + [ + 106.6921748, + 10.8170096 + ], + [ + 106.6914796, + 10.8168204 + ], + [ + 106.6915419, + 10.8164331 + ], + [ + 106.6912616, + 10.8162612 + ], + [ + 106.6912771, + 10.8156763 + ], + [ + 106.6906471, + 10.8155878 + ], + [ + 106.6895474, + 10.8150506 + ], + [ + 106.6895615, + 10.8148231 + ], + [ + 106.6882735, + 10.8158347 + ], + [ + 106.6877789, + 10.8150243 + ], + [ + 106.6874156, + 10.8147335 + ], + [ + 106.6852955, + 10.8140802 + ], + [ + 106.6848203, + 10.8137187 + ], + [ + 106.6847691, + 10.8134488 + ], + [ + 106.6852775, + 10.8128091 + ], + [ + 106.685224, + 10.8118182 + ], + [ + 106.6851673, + 10.8115453 + ], + [ + 106.6841974, + 10.8108206 + ], + [ + 106.6840502, + 10.8103565 + ], + [ + 106.6839355, + 10.8097139 + ], + [ + 106.6842089, + 10.8087048 + ], + [ + 106.6838498, + 10.8071821 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-cangio.json b/src/data/boundaries/tphcm/tphcm-cangio.json new file mode 100644 index 0000000..ec726f5 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-cangio.json @@ -0,0 +1,3196 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-CANGIO", + "name": "Can Gio", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 669.4, + "bbox": [ + 106.73846, + 10.35818, + 107.02767, + 10.67427 + ], + "center": [ + 10.51704, + 106.881 + ], + "generatedAt": "2026-08-30T07:34:59.472Z", + "osm": "relation/7157255" + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 106.7384594, + 10.6636129 + ], + [ + 106.7388457, + 10.6611035 + ], + [ + 106.7396186, + 10.6591852 + ], + [ + 106.7405937, + 10.6573158 + ], + [ + 106.7429755, + 10.6540135 + ], + [ + 106.745503, + 10.6516363 + ], + [ + 106.7479987, + 10.64996 + ], + [ + 106.7507581, + 10.6486476 + ], + [ + 106.7601657, + 10.6458711 + ], + [ + 106.7634362, + 10.6445285 + ], + [ + 106.7654236, + 10.6433841 + ], + [ + 106.7675256, + 10.6418423 + ], + [ + 106.7688834, + 10.6405138 + ], + [ + 106.7698194, + 10.6392419 + ], + [ + 106.7708921, + 10.6369789 + ], + [ + 106.7713992, + 10.6345681 + ], + [ + 106.7714252, + 10.6330276 + ], + [ + 106.7708275, + 10.6282903 + ], + [ + 106.77059, + 10.6235349 + ], + [ + 106.7707663, + 10.6204002 + ], + [ + 106.7712953, + 10.617304 + ], + [ + 106.7724323, + 10.6140858 + ], + [ + 106.7737691, + 10.6114228 + ], + [ + 106.775116, + 10.6093315 + ], + [ + 106.7786677, + 10.6046122 + ], + [ + 106.7812621, + 10.6000877 + ], + [ + 106.7823544, + 10.5975385 + ], + [ + 106.7831021, + 10.5952658 + ], + [ + 106.7835371, + 10.5931719 + ], + [ + 106.7837406, + 10.5910441 + ], + [ + 106.7835197, + 10.5872142 + ], + [ + 106.7830794, + 10.5851327 + ], + [ + 106.7824189, + 10.5831082 + ], + [ + 106.7815455, + 10.5811632 + ], + [ + 106.780469, + 10.5793193 + ], + [ + 106.7797131, + 10.5784771 + ], + [ + 106.7785291, + 10.5776906 + ], + [ + 106.7774266, + 10.577249 + ], + [ + 106.7757226, + 10.5768965 + ], + [ + 106.7736384, + 10.5767602 + ], + [ + 106.771849, + 10.5768951 + ], + [ + 106.7700589, + 10.5772701 + ], + [ + 106.7676541, + 10.5780734 + ], + [ + 106.7626145, + 10.5805027 + ], + [ + 106.760267, + 10.5812953 + ], + [ + 106.7569778, + 10.5817055 + ], + [ + 106.7540142, + 10.5814264 + ], + [ + 106.7522229, + 10.5809498 + ], + [ + 106.7501795, + 10.5800815 + ], + [ + 106.748298, + 10.5789095 + ], + [ + 106.7468881, + 10.5777216 + ], + [ + 106.745422, + 10.5759802 + ], + [ + 106.7445393, + 10.5742958 + ], + [ + 106.7431745, + 10.5709969 + ], + [ + 106.7425864, + 10.569343 + ], + [ + 106.7421276, + 10.5669712 + ], + [ + 106.7418966, + 10.5639214 + ], + [ + 106.7420092, + 10.561775 + ], + [ + 106.7423493, + 10.558386 + ], + [ + 106.7434274, + 10.553281 + ], + [ + 106.747241, + 10.5280244 + ], + [ + 106.7468118, + 10.5153662 + ], + [ + 106.7455304, + 10.5033889 + ], + [ + 106.7452324, + 10.4978311 + ], + [ + 106.7512321, + 10.475321 + ], + [ + 106.7536353, + 10.4673029 + ], + [ + 106.7562254, + 10.4609118 + ], + [ + 106.7583561, + 10.4576386 + ], + [ + 106.7611567, + 10.4537878 + ], + [ + 106.7714627, + 10.4409249 + ], + [ + 106.7925066, + 10.4184025 + ], + [ + 106.809233, + 10.3882046 + ], + [ + 106.8288959, + 10.3974942 + ], + [ + 106.8298408, + 10.3968012 + ], + [ + 106.831778, + 10.3959486 + ], + [ + 106.832015, + 10.3962381 + ], + [ + 106.833991, + 10.3959835 + ], + [ + 106.8371572, + 10.3968462 + ], + [ + 106.838353, + 10.3975075 + ], + [ + 106.8384669, + 10.3980785 + ], + [ + 106.8401301, + 10.3985527 + ], + [ + 106.8408171, + 10.3996236 + ], + [ + 106.8439005, + 10.4014708 + ], + [ + 106.845116, + 10.4019425 + ], + [ + 106.8463185, + 10.4020603 + ], + [ + 106.8484454, + 10.4032993 + ], + [ + 106.8490125, + 10.4031154 + ], + [ + 106.8498734, + 10.4040091 + ], + [ + 106.850453, + 10.4039122 + ], + [ + 106.8519124, + 10.404835 + ], + [ + 106.8528513, + 10.4056174 + ], + [ + 106.8533409, + 10.4066198 + ], + [ + 106.8532106, + 10.4069681 + ], + [ + 106.8533253, + 10.4080192 + ], + [ + 106.8530852, + 10.408505 + ], + [ + 106.8530949, + 10.4090148 + ], + [ + 106.8533797, + 10.4094924 + ], + [ + 106.854031, + 10.4100459 + ], + [ + 106.8723671, + 10.4099772 + ], + [ + 106.8725541, + 10.4094824 + ], + [ + 106.8732419, + 10.4088339 + ], + [ + 106.8736032, + 10.4072174 + ], + [ + 106.874245, + 10.4055112 + ], + [ + 106.8745567, + 10.4052561 + ], + [ + 106.8752433, + 10.4033942 + ], + [ + 106.8758334, + 10.4027078 + ], + [ + 106.8759659, + 10.4015799 + ], + [ + 106.8772036, + 10.3988911 + ], + [ + 106.8779408, + 10.3965696 + ], + [ + 106.8783214, + 10.3963645 + ], + [ + 106.8790251, + 10.3964405 + ], + [ + 106.8795656, + 10.3958833 + ], + [ + 106.8789115, + 10.3940356 + ], + [ + 106.8795747, + 10.392376 + ], + [ + 106.879473, + 10.3922031 + ], + [ + 106.8796899, + 10.3916382 + ], + [ + 106.880144, + 10.3914103 + ], + [ + 106.8806018, + 10.3908129 + ], + [ + 106.8814892, + 10.3885354 + ], + [ + 106.8811829, + 10.3871401 + ], + [ + 106.8806419, + 10.3863322 + ], + [ + 106.880601, + 10.385733 + ], + [ + 106.8799985, + 10.3846169 + ], + [ + 106.880424, + 10.3836802 + ], + [ + 106.8802682, + 10.3826728 + ], + [ + 106.8793793, + 10.3822793 + ], + [ + 106.8794155, + 10.3818168 + ], + [ + 106.8792743, + 10.3816318 + ], + [ + 106.8790929, + 10.381766 + ], + [ + 106.878686, + 10.3812391 + ], + [ + 106.8786473, + 10.3809508 + ], + [ + 106.8762341, + 10.3791681 + ], + [ + 106.8758411, + 10.378628 + ], + [ + 106.8758998, + 10.3783022 + ], + [ + 106.8755142, + 10.3780773 + ], + [ + 106.8751922, + 10.3782424 + ], + [ + 106.8750343, + 10.3781276 + ], + [ + 106.8750705, + 10.3778606 + ], + [ + 106.8776471, + 10.3774023 + ], + [ + 106.8783184, + 10.3770555 + ], + [ + 106.8788998, + 10.3770328 + ], + [ + 106.8796423, + 10.3764744 + ], + [ + 106.8803879, + 10.3763407 + ], + [ + 106.8806256, + 10.3767501 + ], + [ + 106.8809562, + 10.3767743 + ], + [ + 106.8811176, + 10.3729368 + ], + [ + 106.8817906, + 10.372069 + ], + [ + 106.8870631, + 10.3677108 + ], + [ + 106.8881575, + 10.3678607 + ], + [ + 106.8932254, + 10.3648174 + ], + [ + 106.8992805, + 10.3620443 + ], + [ + 106.9027761, + 10.3608155 + ], + [ + 106.9070683, + 10.3596447 + ], + [ + 106.9114389, + 10.3588124 + ], + [ + 106.9151208, + 10.3583809 + ], + [ + 106.9195653, + 10.3581798 + ], + [ + 106.9232719, + 10.358277 + ], + [ + 106.926964, + 10.3586145 + ], + [ + 106.9313526, + 10.3593346 + ], + [ + 106.9370878, + 10.3608216 + ], + [ + 106.9451637, + 10.3643178 + ], + [ + 106.9500965, + 10.3669955 + ], + [ + 106.9549191, + 10.3700191 + ], + [ + 106.9613671, + 10.3733699 + ], + [ + 106.9659443, + 10.375441 + ], + [ + 106.9674928, + 10.3758788 + ], + [ + 106.9700313, + 10.3761571 + ], + [ + 106.9778814, + 10.3755513 + ], + [ + 106.9788698, + 10.3752558 + ], + [ + 106.9823052, + 10.3736764 + ], + [ + 106.9833681, + 10.3729432 + ], + [ + 106.9866335, + 10.3697078 + ], + [ + 106.9878003, + 10.3664546 + ], + [ + 106.9912682, + 10.366565 + ], + [ + 106.9932854, + 10.3639033 + ], + [ + 106.9936287, + 10.3640827 + ], + [ + 106.9894435, + 10.3713403 + ], + [ + 106.9856036, + 10.3766731 + ], + [ + 106.9847909, + 10.3766098 + ], + [ + 106.9840801, + 10.375412 + ], + [ + 106.9820869, + 10.3764988 + ], + [ + 106.9795888, + 10.3775062 + ], + [ + 106.9740131, + 10.3787822 + ], + [ + 106.9727801, + 10.3796477 + ], + [ + 106.971901, + 10.381086 + ], + [ + 106.971697, + 10.3821959 + ], + [ + 106.971825, + 10.3833168 + ], + [ + 106.9736047, + 10.3873322 + ], + [ + 106.9747776, + 10.3907536 + ], + [ + 106.9756287, + 10.3942658 + ], + [ + 106.9760871, + 10.3972409 + ], + [ + 106.9763397, + 10.4020017 + ], + [ + 106.9759266, + 10.4073485 + ], + [ + 106.975092, + 10.4116107 + ], + [ + 106.9738206, + 10.4120988 + ], + [ + 106.9740891, + 10.4123887 + ], + [ + 106.9747022, + 10.4121969 + ], + [ + 106.9740931, + 10.4124747 + ], + [ + 106.9740985, + 10.4128126 + ], + [ + 106.9745019, + 10.4141675 + ], + [ + 106.9747658, + 10.4145226 + ], + [ + 106.974975, + 10.4146371 + ], + [ + 106.9753736, + 10.4145574 + ], + [ + 106.9755128, + 10.4142803 + ], + [ + 106.9754401, + 10.4145817 + ], + [ + 106.9748104, + 10.4146972 + ], + [ + 106.9747031, + 10.4149626 + ], + [ + 106.9749171, + 10.415573 + ], + [ + 106.9754648, + 10.4153976 + ], + [ + 106.9755734, + 10.4159911 + ], + [ + 106.9753186, + 10.4156456 + ], + [ + 106.9749632, + 10.4157049 + ], + [ + 106.9737294, + 10.4165029 + ], + [ + 106.9732077, + 10.4166612 + ], + [ + 106.9730575, + 10.4168248 + ], + [ + 106.9734384, + 10.4174513 + ], + [ + 106.9729623, + 10.4170187 + ], + [ + 106.9725358, + 10.4173853 + ], + [ + 106.9720638, + 10.417541 + ], + [ + 106.971994, + 10.4178364 + ], + [ + 106.9716065, + 10.4182321 + ], + [ + 106.9715421, + 10.4181372 + ], + [ + 106.9718841, + 10.4177876 + ], + [ + 106.9718251, + 10.4175792 + ], + [ + 106.9706382, + 10.4174895 + ], + [ + 106.9699328, + 10.4180079 + ], + [ + 106.9706181, + 10.4174012 + ], + [ + 106.9702439, + 10.4168802 + ], + [ + 106.9698416, + 10.4166216 + ], + [ + 106.9693172, + 10.4166678 + ], + [ + 106.9680431, + 10.4173326 + ], + [ + 106.9672639, + 10.4158282 + ], + [ + 106.964991, + 10.4163565 + ], + [ + 106.9642008, + 10.4169649 + ], + [ + 106.9635441, + 10.4185526 + ], + [ + 106.9619544, + 10.4198359 + ], + [ + 106.9608501, + 10.4210455 + ], + [ + 106.9578048, + 10.421813 + ], + [ + 106.9571265, + 10.4216761 + ], + [ + 106.9573244, + 10.4222914 + ], + [ + 106.9569617, + 10.4222218 + ], + [ + 106.9560053, + 10.4227588 + ], + [ + 106.9558358, + 10.4226568 + ], + [ + 106.9554839, + 10.4228114 + ], + [ + 106.955501, + 10.42299 + ], + [ + 106.9551363, + 10.423291 + ], + [ + 106.954094, + 10.4232302 + ], + [ + 106.9534731, + 10.4234115 + ], + [ + 106.9538721, + 10.4239126 + ], + [ + 106.9535315, + 10.4241593 + ], + [ + 106.9535553, + 10.4244016 + ], + [ + 106.9531068, + 10.4245252 + ], + [ + 106.9529033, + 10.4244288 + ], + [ + 106.9514824, + 10.4252379 + ], + [ + 106.9515609, + 10.4255979 + ], + [ + 106.9498885, + 10.4256323 + ], + [ + 106.9497078, + 10.4259933 + ], + [ + 106.9477646, + 10.4261662 + ], + [ + 106.9479232, + 10.426582 + ], + [ + 106.9478065, + 10.4266062 + ], + [ + 106.947727, + 10.4274368 + ], + [ + 106.9475826, + 10.4276477 + ], + [ + 106.9464652, + 10.4279446 + ], + [ + 106.9465257, + 10.4281594 + ], + [ + 106.9462877, + 10.4285375 + ], + [ + 106.9457286, + 10.4289702 + ], + [ + 106.9459162, + 10.4290126 + ], + [ + 106.9459021, + 10.4292155 + ], + [ + 106.9456732, + 10.4292798 + ], + [ + 106.9454372, + 10.4299738 + ], + [ + 106.9450967, + 10.4299898 + ], + [ + 106.9452258, + 10.4306254 + ], + [ + 106.944907, + 10.4309372 + ], + [ + 106.9444994, + 10.4309182 + ], + [ + 106.9443061, + 10.4307035 + ], + [ + 106.9437551, + 10.4308934 + ], + [ + 106.943586, + 10.431181 + ], + [ + 106.9436155, + 10.4315157 + ], + [ + 106.9438445, + 10.4317366 + ], + [ + 106.9438232, + 10.4326297 + ], + [ + 106.9425677, + 10.4329293 + ], + [ + 106.9422014, + 10.4336083 + ], + [ + 106.9422306, + 10.4339027 + ], + [ + 106.9412022, + 10.4349948 + ], + [ + 106.9400438, + 10.4350768 + ], + [ + 106.9397654, + 10.435391 + ], + [ + 106.9389693, + 10.4354624 + ], + [ + 106.9388642, + 10.4357153 + ], + [ + 106.9381509, + 10.435943 + ], + [ + 106.9337093, + 10.4435499 + ], + [ + 106.933662, + 10.443972 + ], + [ + 106.9333021, + 10.444657 + ], + [ + 106.9330133, + 10.4445548 + ], + [ + 106.9330338, + 10.4450565 + ], + [ + 106.9325815, + 10.4455619 + ], + [ + 106.9321701, + 10.4463933 + ], + [ + 106.931577, + 10.4465474 + ], + [ + 106.9324601, + 10.4483286 + ], + [ + 106.9322825, + 10.4485823 + ], + [ + 106.9325215, + 10.4486266 + ], + [ + 106.9322814, + 10.4490692 + ], + [ + 106.9324975, + 10.4498878 + ], + [ + 106.9326973, + 10.4499787 + ], + [ + 106.9323019, + 10.4506718 + ], + [ + 106.932593, + 10.4508681 + ], + [ + 106.9325064, + 10.4513856 + ], + [ + 106.9321043, + 10.4515972 + ], + [ + 106.931887, + 10.4523149 + ], + [ + 106.9322977, + 10.4534983 + ], + [ + 106.9321325, + 10.4549025 + ], + [ + 106.9319456, + 10.4551112 + ], + [ + 106.9320684, + 10.4565572 + ], + [ + 106.9326163, + 10.457658 + ], + [ + 106.9329802, + 10.4580266 + ], + [ + 106.9327101, + 10.4584275 + ], + [ + 106.9328508, + 10.4586179 + ], + [ + 106.9332837, + 10.4585923 + ], + [ + 106.9335332, + 10.4588283 + ], + [ + 106.9333644, + 10.4590392 + ], + [ + 106.933996, + 10.4599201 + ], + [ + 106.9340835, + 10.4603429 + ], + [ + 106.9342858, + 10.4603739 + ], + [ + 106.9343983, + 10.460865 + ], + [ + 106.9342871, + 10.4612722 + ], + [ + 106.9345327, + 10.4613603 + ], + [ + 106.9345163, + 10.4620507 + ], + [ + 106.9458402, + 10.4722317 + ], + [ + 106.9469456, + 10.4723816 + ], + [ + 106.9476288, + 10.4722747 + ], + [ + 106.9486725, + 10.471164 + ], + [ + 106.9491428, + 10.4708928 + ], + [ + 106.949938, + 10.4709011 + ], + [ + 106.9504575, + 10.4710783 + ], + [ + 106.9508851, + 10.4709077 + ], + [ + 106.9515631, + 10.470943 + ], + [ + 106.952117, + 10.4702692 + ], + [ + 106.9524767, + 10.4701903 + ], + [ + 106.9524032, + 10.4697755 + ], + [ + 106.9525554, + 10.4694125 + ], + [ + 106.9526471, + 10.4692529 + ], + [ + 106.952949, + 10.4692242 + ], + [ + 106.9530974, + 10.4689649 + ], + [ + 106.9536568, + 10.4690354 + ], + [ + 106.9538129, + 10.4688384 + ], + [ + 106.9535149, + 10.4695194 + ], + [ + 106.9541358, + 10.4699127 + ], + [ + 106.9544104, + 10.4698754 + ], + [ + 106.9545039, + 10.4696277 + ], + [ + 106.9547558, + 10.4695056 + ], + [ + 106.9552428, + 10.4696992 + ], + [ + 106.9556253, + 10.4694583 + ], + [ + 106.9563065, + 10.4696075 + ], + [ + 106.9564488, + 10.4694206 + ], + [ + 106.9567624, + 10.4694075 + ], + [ + 106.9572219, + 10.4683483 + ], + [ + 106.9582111, + 10.4672671 + ], + [ + 106.9590526, + 10.467344 + ], + [ + 106.9600436, + 10.4670656 + ], + [ + 106.9615018, + 10.465576 + ], + [ + 106.962153, + 10.4651862 + ], + [ + 106.9623087, + 10.4648799 + ], + [ + 106.9647303, + 10.4649518 + ], + [ + 106.9649258, + 10.4645537 + ], + [ + 106.9658459, + 10.4638877 + ], + [ + 106.9663292, + 10.4639828 + ], + [ + 106.9671441, + 10.4675086 + ], + [ + 106.9672554, + 10.4690497 + ], + [ + 106.967501, + 10.4699137 + ], + [ + 106.9673566, + 10.4715206 + ], + [ + 106.9680384, + 10.4724229 + ], + [ + 106.9684169, + 10.4724077 + ], + [ + 106.9685941, + 10.4726346 + ], + [ + 106.9691749, + 10.4748372 + ], + [ + 106.9691737, + 10.4758334 + ], + [ + 106.9707008, + 10.4782898 + ], + [ + 106.9712198, + 10.4795936 + ], + [ + 106.9716648, + 10.4802016 + ], + [ + 106.9721018, + 10.480508 + ], + [ + 106.9721099, + 10.4810552 + ], + [ + 106.9725074, + 10.481326 + ], + [ + 106.9728634, + 10.4812434 + ], + [ + 106.9738373, + 10.4822011 + ], + [ + 106.9739915, + 10.4824808 + ], + [ + 106.9737741, + 10.4831487 + ], + [ + 106.9741704, + 10.4835121 + ], + [ + 106.9750581, + 10.4833692 + ], + [ + 106.9770282, + 10.4858236 + ], + [ + 106.9768662, + 10.4861185 + ], + [ + 106.9767783, + 10.4874018 + ], + [ + 106.9752418, + 10.4884563 + ], + [ + 106.9754628, + 10.4896709 + ], + [ + 106.9747963, + 10.4934183 + ], + [ + 106.9748686, + 10.494918 + ], + [ + 106.9747763, + 10.496069 + ], + [ + 106.9745367, + 10.4966046 + ], + [ + 106.9745642, + 10.4982833 + ], + [ + 106.974312, + 10.4986621 + ], + [ + 106.9756226, + 10.502555 + ], + [ + 106.9769634, + 10.5044082 + ], + [ + 106.9772574, + 10.505092 + ], + [ + 106.9778519, + 10.5054303 + ], + [ + 106.9804583, + 10.5088147 + ], + [ + 106.9809968, + 10.5091256 + ], + [ + 106.9825889, + 10.5107453 + ], + [ + 106.9850438, + 10.5120291 + ], + [ + 106.9866443, + 10.5124158 + ], + [ + 106.9868344, + 10.5128581 + ], + [ + 106.9874465, + 10.5127041 + ], + [ + 106.9915041, + 10.5153215 + ], + [ + 106.9924681, + 10.514886 + ], + [ + 106.9927729, + 10.5151809 + ], + [ + 106.9953392, + 10.5155201 + ], + [ + 106.9970154, + 10.5149586 + ], + [ + 106.9971533, + 10.5147493 + ], + [ + 106.9971196, + 10.5143542 + ], + [ + 106.9999347, + 10.5068312 + ], + [ + 107.0058274, + 10.5098492 + ], + [ + 107.0076882, + 10.5114154 + ], + [ + 107.0105551, + 10.5158971 + ], + [ + 107.0114386, + 10.5175498 + ], + [ + 107.012328, + 10.5197312 + ], + [ + 107.0126188, + 10.5223388 + ], + [ + 107.0240235, + 10.5330874 + ], + [ + 107.0251983, + 10.5344692 + ], + [ + 107.026062, + 10.5357877 + ], + [ + 107.0267379, + 10.5370324 + ], + [ + 107.0275803, + 10.5394019 + ], + [ + 107.0276712, + 10.5407773 + ], + [ + 107.0273748, + 10.5425664 + ], + [ + 107.0267082, + 10.5444213 + ], + [ + 107.0254909, + 10.5454215 + ], + [ + 107.0236921, + 10.5460825 + ], + [ + 107.0172057, + 10.5476007 + ], + [ + 107.0149164, + 10.5484938 + ], + [ + 107.0134265, + 10.5494584 + ], + [ + 107.0122637, + 10.5508338 + ], + [ + 107.0117913, + 10.5521556 + ], + [ + 107.0113007, + 10.5546741 + ], + [ + 107.0112462, + 10.5568353 + ], + [ + 107.011864, + 10.5589073 + ], + [ + 107.0132812, + 10.5621581 + ], + [ + 107.0154978, + 10.5654624 + ], + [ + 107.0206579, + 10.5719102 + ], + [ + 107.0246006, + 10.5785186 + ], + [ + 107.0259087, + 10.5801975 + ], + [ + 107.0266719, + 10.5817513 + ], + [ + 107.0269081, + 10.5829301 + ], + [ + 107.0271988, + 10.5859663 + ], + [ + 107.0271732, + 10.5871076 + ], + [ + 107.0268288, + 10.5884412 + ], + [ + 107.0223458, + 10.5959671 + ], + [ + 107.0205458, + 10.6015371 + ], + [ + 107.0191458, + 10.6038971 + ], + [ + 107.0164458, + 10.6068571 + ], + [ + 107.0140281, + 10.6091322 + ], + [ + 107.0082867, + 10.6130075 + ], + [ + 107.0070344, + 10.6103618 + ], + [ + 107.0064605, + 10.6099432 + ], + [ + 107.0059494, + 10.6098554 + ], + [ + 107.0053748, + 10.6099712 + ], + [ + 107.0030034, + 10.6110529 + ], + [ + 107.0022063, + 10.6108245 + ], + [ + 107.0021205, + 10.6102879 + ], + [ + 107.0024421, + 10.609468 + ], + [ + 107.0024645, + 10.6087938 + ], + [ + 107.0010416, + 10.6077113 + ], + [ + 107.0005059, + 10.6070001 + ], + [ + 107.0002961, + 10.6069837 + ], + [ + 106.9990204, + 10.6077064 + ], + [ + 106.9981438, + 10.6077893 + ], + [ + 106.9972958, + 10.6073604 + ], + [ + 106.996499, + 10.6058795 + ], + [ + 106.9959167, + 10.6054216 + ], + [ + 106.9951279, + 10.6053629 + ], + [ + 106.9941641, + 10.6055919 + ], + [ + 106.9920265, + 10.605717 + ], + [ + 106.9907667, + 10.6051994 + ], + [ + 106.9903366, + 10.6046794 + ], + [ + 106.9901955, + 10.6041376 + ], + [ + 106.9907499, + 10.601819 + ], + [ + 106.9905627, + 10.6005472 + ], + [ + 106.9895668, + 10.5993529 + ], + [ + 106.9871145, + 10.5971998 + ], + [ + 106.9863267, + 10.5961251 + ], + [ + 106.9862101, + 10.5957231 + ], + [ + 106.986361, + 10.5939229 + ], + [ + 106.9870997, + 10.5900411 + ], + [ + 106.987199, + 10.587777 + ], + [ + 106.9858388, + 10.5833465 + ], + [ + 106.9850002, + 10.5814723 + ], + [ + 106.9837328, + 10.5792082 + ], + [ + 106.9819033, + 10.5806056 + ], + [ + 106.9796263, + 10.5819196 + ], + [ + 106.9789932, + 10.5821331 + ], + [ + 106.9778224, + 10.5822371 + ], + [ + 106.9757061, + 10.5820409 + ], + [ + 106.9749271, + 10.5823359 + ], + [ + 106.973349, + 10.5839155 + ], + [ + 106.9694637, + 10.5886699 + ], + [ + 106.9687519, + 10.5893028 + ], + [ + 106.9676343, + 10.5900994 + ], + [ + 106.9666688, + 10.5905204 + ], + [ + 106.9636957, + 10.5912158 + ], + [ + 106.9611932, + 10.5932718 + ], + [ + 106.9605119, + 10.5935822 + ], + [ + 106.9553752, + 10.5942063 + ], + [ + 106.9498601, + 10.596027 + ], + [ + 106.9466067, + 10.5973811 + ], + [ + 106.9438925, + 10.5967857 + ], + [ + 106.9421773, + 10.5966184 + ], + [ + 106.9413844, + 10.5967216 + ], + [ + 106.9405574, + 10.5970635 + ], + [ + 106.9400409, + 10.5975069 + ], + [ + 106.9386019, + 10.5993595 + ], + [ + 106.9378418, + 10.5999071 + ], + [ + 106.936433, + 10.6002134 + ], + [ + 106.9352672, + 10.6001579 + ], + [ + 106.9334328, + 10.601405 + ], + [ + 106.9297745, + 10.6023911 + ], + [ + 106.928168, + 10.6029951 + ], + [ + 106.9271038, + 10.6036511 + ], + [ + 106.9259391, + 10.6046917 + ], + [ + 106.9245679, + 10.6063106 + ], + [ + 106.9230816, + 10.6086058 + ], + [ + 106.9223611, + 10.6092614 + ], + [ + 106.9215029, + 10.6097301 + ], + [ + 106.9199677, + 10.6100289 + ], + [ + 106.9186148, + 10.6098086 + ], + [ + 106.9174236, + 10.6092107 + ], + [ + 106.9158035, + 10.6079423 + ], + [ + 106.9143498, + 10.6074468 + ], + [ + 106.9128128, + 10.607515 + ], + [ + 106.9113714, + 10.6081568 + ], + [ + 106.9100484, + 10.6094444 + ], + [ + 106.9086321, + 10.6120876 + ], + [ + 106.9073328, + 10.6153307 + ], + [ + 106.9057885, + 10.6207269 + ], + [ + 106.904912, + 10.6226273 + ], + [ + 106.9040689, + 10.6239935 + ], + [ + 106.9025795, + 10.6256824 + ], + [ + 106.8997383, + 10.6279134 + ], + [ + 106.8980046, + 10.6295321 + ], + [ + 106.8970748, + 10.6309677 + ], + [ + 106.8961022, + 10.6334318 + ], + [ + 106.8940187, + 10.6360531 + ], + [ + 106.8929229, + 10.6367507 + ], + [ + 106.8869336, + 10.6389593 + ], + [ + 106.8857519, + 10.6398031 + ], + [ + 106.8851664, + 10.640619 + ], + [ + 106.8847786, + 10.641631 + ], + [ + 106.8845323, + 10.6448717 + ], + [ + 106.8842399, + 10.6459443 + ], + [ + 106.8833767, + 10.6471525 + ], + [ + 106.8819583, + 10.647984 + ], + [ + 106.8797241, + 10.6484712 + ], + [ + 106.8762938, + 10.6486011 + ], + [ + 106.8745403, + 10.6484551 + ], + [ + 106.8727386, + 10.6478356 + ], + [ + 106.8720236, + 10.6473272 + ], + [ + 106.8714755, + 10.6466474 + ], + [ + 106.8707454, + 10.6444865 + ], + [ + 106.8698679, + 10.6432381 + ], + [ + 106.8688854, + 10.6426978 + ], + [ + 106.8660318, + 10.6425716 + ], + [ + 106.8650866, + 10.6423678 + ], + [ + 106.8644423, + 10.6420007 + ], + [ + 106.8635303, + 10.6410915 + ], + [ + 106.8620687, + 10.6378256 + ], + [ + 106.8612987, + 10.6371232 + ], + [ + 106.8603392, + 10.6367029 + ], + [ + 106.8592929, + 10.6366097 + ], + [ + 106.8581226, + 10.6368689 + ], + [ + 106.8546534, + 10.6389312 + ], + [ + 106.8525253, + 10.6395013 + ], + [ + 106.848795, + 10.6394922 + ], + [ + 106.8456907, + 10.6390326 + ], + [ + 106.8438038, + 10.6385756 + ], + [ + 106.8429217, + 10.638106 + ], + [ + 106.8421697, + 10.6374532 + ], + [ + 106.8413092, + 10.6363307 + ], + [ + 106.8405928, + 10.6350522 + ], + [ + 106.8400615, + 10.6336507 + ], + [ + 106.8379655, + 10.6263197 + ], + [ + 106.8351523, + 10.6268899 + ], + [ + 106.8311983, + 10.6270275 + ], + [ + 106.8291248, + 10.6273484 + ], + [ + 106.8271863, + 10.6278756 + ], + [ + 106.8253837, + 10.6286139 + ], + [ + 106.8236895, + 10.6295683 + ], + [ + 106.8210209, + 10.631756 + ], + [ + 106.817515, + 10.6357093 + ], + [ + 106.8148234, + 10.6393323 + ], + [ + 106.8127962, + 10.6429403 + ], + [ + 106.8099771, + 10.6529585 + ], + [ + 106.8087711, + 10.6551263 + ], + [ + 106.807301, + 10.6567531 + ], + [ + 106.8063148, + 10.6575343 + ], + [ + 106.8017263, + 10.6600398 + ], + [ + 106.7961645, + 10.6638976 + ], + [ + 106.7928309, + 10.6664359 + ], + [ + 106.7897686, + 10.6684614 + ], + [ + 106.7864804, + 10.6703509 + ], + [ + 106.7790089, + 10.6742684 + ], + [ + 106.7767952, + 10.6711852 + ], + [ + 106.7738764, + 10.6680657 + ], + [ + 106.7713326, + 10.6662066 + ], + [ + 106.7692478, + 10.665496 + ], + [ + 106.7667622, + 10.6651773 + ], + [ + 106.7639772, + 10.6654723 + ], + [ + 106.7507567, + 10.6701931 + ], + [ + 106.7491793, + 10.6705442 + ], + [ + 106.7474861, + 10.6706077 + ], + [ + 106.7459677, + 10.6703897 + ], + [ + 106.7439502, + 10.6697449 + ], + [ + 106.742093, + 10.6688124 + ], + [ + 106.7406971, + 10.6678439 + ], + [ + 106.739609, + 10.6668916 + ], + [ + 106.738953, + 10.6659536 + ], + [ + 106.7385882, + 10.6649625 + ], + [ + 106.7384594, + 10.6636129 + ] + ] + ], + [ + [ + [ + 106.9637064, + 10.4193628 + ], + [ + 106.9637292, + 10.418873 + ], + [ + 106.9644596, + 10.4187301 + ], + [ + 106.9644137, + 10.4189492 + ], + [ + 106.9637064, + 10.4193628 + ] + ] + ], + [ + [ + [ + 106.9698848, + 10.4543892 + ], + [ + 106.9706329, + 10.4539618 + ], + [ + 106.9708354, + 10.454845 + ], + [ + 106.9704799, + 10.4545303 + ], + [ + 106.9698848, + 10.4543892 + ] + ] + ], + [ + [ + [ + 106.9717469, + 10.4686544 + ], + [ + 106.9729592, + 10.4669671 + ], + [ + 106.9728742, + 10.4665763 + ], + [ + 106.9736133, + 10.4635359 + ], + [ + 106.97355, + 10.4620935 + ], + [ + 106.9737287, + 10.4614537 + ], + [ + 106.9731984, + 10.4606217 + ], + [ + 106.9739409, + 10.4594268 + ], + [ + 106.9744465, + 10.459317 + ], + [ + 106.9744576, + 10.4594322 + ], + [ + 106.9740447, + 10.4594879 + ], + [ + 106.9738828, + 10.4599575 + ], + [ + 106.9760421, + 10.4608484 + ], + [ + 106.9762833, + 10.46035 + ], + [ + 106.9767577, + 10.4602633 + ], + [ + 106.9763488, + 10.4604498 + ], + [ + 106.976162, + 10.4608844 + ], + [ + 106.9764582, + 10.4610741 + ], + [ + 106.9764642, + 10.4616326 + ], + [ + 106.976122, + 10.4628537 + ], + [ + 106.9763562, + 10.4633809 + ], + [ + 106.9771124, + 10.4636423 + ], + [ + 106.9772965, + 10.4639949 + ], + [ + 106.9771541, + 10.4640636 + ], + [ + 106.9769936, + 10.4637503 + ], + [ + 106.9763285, + 10.4635536 + ], + [ + 106.9758181, + 10.4651565 + ], + [ + 106.9765338, + 10.4652217 + ], + [ + 106.9768466, + 10.4656018 + ], + [ + 106.9765273, + 10.4653568 + ], + [ + 106.9758012, + 10.4652845 + ], + [ + 106.9757184, + 10.4664652 + ], + [ + 106.9753333, + 10.4671924 + ], + [ + 106.9759121, + 10.4687352 + ], + [ + 106.9766394, + 10.4683455 + ], + [ + 106.977013, + 10.4684345 + ], + [ + 106.9759758, + 10.4688431 + ], + [ + 106.9776853, + 10.4713561 + ], + [ + 106.9783401, + 10.4709525 + ], + [ + 106.9787619, + 10.4709602 + ], + [ + 106.9777466, + 10.4714712 + ], + [ + 106.9780785, + 10.4726823 + ], + [ + 106.97806, + 10.4735852 + ], + [ + 106.9778381, + 10.4740853 + ], + [ + 106.9776584, + 10.4741254 + ], + [ + 106.977759, + 10.4737925 + ], + [ + 106.9774501, + 10.4735926 + ], + [ + 106.9773159, + 10.4737046 + ], + [ + 106.9753403, + 10.4717868 + ], + [ + 106.9748243, + 10.4714699 + ], + [ + 106.9742774, + 10.4706847 + ], + [ + 106.9737697, + 10.471362 + ], + [ + 106.9732111, + 10.4712055 + ], + [ + 106.9720568, + 10.4698121 + ], + [ + 106.9717469, + 10.4686544 + ] + ] + ], + [ + [ + [ + 106.9830647, + 10.4957543 + ], + [ + 106.9832328, + 10.4954764 + ], + [ + 106.9831269, + 10.4952359 + ], + [ + 106.9833616, + 10.4941759 + ], + [ + 106.9842316, + 10.4921724 + ], + [ + 106.9846895, + 10.4915421 + ], + [ + 106.9851702, + 10.4912044 + ], + [ + 106.985445, + 10.4916096 + ], + [ + 106.9852847, + 10.4922625 + ], + [ + 106.9859486, + 10.4926001 + ], + [ + 106.9878718, + 10.4951664 + ], + [ + 106.9884441, + 10.495234 + ], + [ + 106.9888791, + 10.4955941 + ], + [ + 106.9889249, + 10.4965396 + ], + [ + 106.989543, + 10.4973725 + ], + [ + 106.9902299, + 10.4980929 + ], + [ + 106.9917649, + 10.4988249 + ], + [ + 106.9918346, + 10.4989263 + ], + [ + 106.9912462, + 10.4996033 + ], + [ + 106.9908709, + 10.4997362 + ], + [ + 106.9908686, + 10.5000191 + ], + [ + 106.9918038, + 10.5001072 + ], + [ + 106.9917588, + 10.5003668 + ], + [ + 106.9913082, + 10.50068 + ], + [ + 106.9921814, + 10.5013688 + ], + [ + 106.9919529, + 10.5020159 + ], + [ + 106.9913342, + 10.5022485 + ], + [ + 106.9909854, + 10.5028201 + ], + [ + 106.991077, + 10.5035855 + ], + [ + 106.9899833, + 10.504772 + ], + [ + 106.9889354, + 10.5048922 + ], + [ + 106.9884029, + 10.5045768 + ], + [ + 106.9880905, + 10.5046245 + ], + [ + 106.9877902, + 10.5043472 + ], + [ + 106.9877993, + 10.5042011 + ], + [ + 106.9881007, + 10.5041483 + ], + [ + 106.9884666, + 10.5037299 + ], + [ + 106.9892319, + 10.5038483 + ], + [ + 106.9893613, + 10.5036225 + ], + [ + 106.9893828, + 10.5034054 + ], + [ + 106.9890204, + 10.5035641 + ], + [ + 106.9892036, + 10.503208 + ], + [ + 106.9890095, + 10.5031543 + ], + [ + 106.9887875, + 10.5026851 + ], + [ + 106.9883794, + 10.5026671 + ], + [ + 106.9882489, + 10.5024226 + ], + [ + 106.9884441, + 10.5020323 + ], + [ + 106.9880093, + 10.5022198 + ], + [ + 106.9877324, + 10.5019674 + ], + [ + 106.9875059, + 10.5022526 + ], + [ + 106.9873724, + 10.5021005 + ], + [ + 106.9869709, + 10.5024268 + ], + [ + 106.986967, + 10.5034907 + ], + [ + 106.9866813, + 10.5034206 + ], + [ + 106.9848268, + 10.5002314 + ], + [ + 106.9846301, + 10.4996245 + ], + [ + 106.9848726, + 10.4990608 + ], + [ + 106.9852784, + 10.498847 + ], + [ + 106.9852873, + 10.4984083 + ], + [ + 106.9847701, + 10.4988756 + ], + [ + 106.9843905, + 10.4988338 + ], + [ + 106.9838864, + 10.4984222 + ], + [ + 106.9835935, + 10.4977097 + ], + [ + 106.9837425, + 10.4972905 + ], + [ + 106.9834089, + 10.4971207 + ], + [ + 106.9833845, + 10.496337 + ], + [ + 106.9830647, + 10.4957543 + ] + ] + ], + [ + [ + [ + 106.9831572, + 10.480061 + ], + [ + 106.9845862, + 10.4796666 + ], + [ + 106.9849645, + 10.4797055 + ], + [ + 106.9857446, + 10.4803475 + ], + [ + 106.9860719, + 10.4802114 + ], + [ + 106.9872633, + 10.4804671 + ], + [ + 106.9873284, + 10.4803176 + ], + [ + 106.9874975, + 10.4803508 + ], + [ + 106.9873171, + 10.4806397 + ], + [ + 106.9875558, + 10.4809626 + ], + [ + 106.9875548, + 10.4814008 + ], + [ + 106.9864971, + 10.4823342 + ], + [ + 106.986456, + 10.4826657 + ], + [ + 106.9866609, + 10.4830058 + ], + [ + 106.9862271, + 10.4834693 + ], + [ + 106.9857865, + 10.4847744 + ], + [ + 106.9853896, + 10.4853068 + ], + [ + 106.9854804, + 10.485568 + ], + [ + 106.9849333, + 10.4854544 + ], + [ + 106.9846614, + 10.4849845 + ], + [ + 106.9846622, + 10.4842778 + ], + [ + 106.9844724, + 10.4839065 + ], + [ + 106.9845938, + 10.4836624 + ], + [ + 106.9842797, + 10.483572 + ], + [ + 106.9841957, + 10.4831866 + ], + [ + 106.9836734, + 10.4824115 + ], + [ + 106.9831572, + 10.480061 + ] + ] + ], + [ + [ + [ + 106.9878347, + 10.5033367 + ], + [ + 106.988644, + 10.502975 + ], + [ + 106.988511, + 10.5033616 + ], + [ + 106.9882473, + 10.5035698 + ], + [ + 106.9878393, + 10.5034713 + ], + [ + 106.9878347, + 10.5033367 + ] + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-govap.json b/src/data/boundaries/tphcm/tphcm-govap.json new file mode 100644 index 0000000..1ad6a88 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-govap.json @@ -0,0 +1,782 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-GOVAP", + "name": "Go Vap", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 19.8, + "bbox": [ + 106.63194, + 10.80997, + 106.70106, + 10.86079 + ], + "center": [ + 10.8383, + 106.66741 + ], + "generatedAt": "2026-08-30T07:34:44.646Z", + "osm": "relation/6908316" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6319429, + 10.8368091 + ], + [ + 106.6320372, + 10.8364198 + ], + [ + 106.632536, + 10.8357346 + ], + [ + 106.6327724, + 10.8347746 + ], + [ + 106.632358, + 10.8329517 + ], + [ + 106.6339409, + 10.8323551 + ], + [ + 106.6381996, + 10.8299334 + ], + [ + 106.6407848, + 10.8292595 + ], + [ + 106.6415057, + 10.828921 + ], + [ + 106.6414136, + 10.8286759 + ], + [ + 106.6425122, + 10.8281991 + ], + [ + 106.646312, + 10.8372532 + ], + [ + 106.6464825, + 10.8368769 + ], + [ + 106.6475983, + 10.8366566 + ], + [ + 106.6518955, + 10.8366144 + ], + [ + 106.6519167, + 10.8368321 + ], + [ + 106.6520627, + 10.8368183 + ], + [ + 106.6520426, + 10.836613 + ], + [ + 106.6555819, + 10.8360062 + ], + [ + 106.655547, + 10.8358284 + ], + [ + 106.6571005, + 10.8353982 + ], + [ + 106.6592317, + 10.8332612 + ], + [ + 106.6608741, + 10.8324051 + ], + [ + 106.661986, + 10.8313787 + ], + [ + 106.6627645, + 10.8312538 + ], + [ + 106.6634298, + 10.8307011 + ], + [ + 106.6639467, + 10.8306232 + ], + [ + 106.6661223, + 10.8284392 + ], + [ + 106.6680099, + 10.8283849 + ], + [ + 106.670441, + 10.8271654 + ], + [ + 106.6731419, + 10.8279436 + ], + [ + 106.6734213, + 10.8277727 + ], + [ + 106.6741447, + 10.8263647 + ], + [ + 106.6744185, + 10.8261889 + ], + [ + 106.6773501, + 10.8270259 + ], + [ + 106.6778011, + 10.8269208 + ], + [ + 106.6785859, + 10.826139 + ], + [ + 106.678606, + 10.8256352 + ], + [ + 106.6782975, + 10.825184 + ], + [ + 106.6767593, + 10.8241335 + ], + [ + 106.6753109, + 10.8236524 + ], + [ + 106.6733203, + 10.8223634 + ], + [ + 106.6748586, + 10.8183201 + ], + [ + 106.6741726, + 10.8179961 + ], + [ + 106.6756732, + 10.8163813 + ], + [ + 106.6756901, + 10.8153569 + ], + [ + 106.676116, + 10.8151054 + ], + [ + 106.6760401, + 10.814857 + ], + [ + 106.6749756, + 10.8151379 + ], + [ + 106.6745478, + 10.8147342 + ], + [ + 106.673668, + 10.8146291 + ], + [ + 106.672783, + 10.8141411 + ], + [ + 106.6760522, + 10.8112022 + ], + [ + 106.6768594, + 10.8121494 + ], + [ + 106.6782891, + 10.8112772 + ], + [ + 106.6785299, + 10.8112773 + ], + [ + 106.6785875, + 10.8120795 + ], + [ + 106.6805932, + 10.8119445 + ], + [ + 106.6805372, + 10.8118249 + ], + [ + 106.6810199, + 10.8114975 + ], + [ + 106.6807712, + 10.810994 + ], + [ + 106.6809838, + 10.8108475 + ], + [ + 106.6819604, + 10.8104847 + ], + [ + 106.6821232, + 10.8108063 + ], + [ + 106.6831105, + 10.8102266 + ], + [ + 106.6839728, + 10.809969 + ], + [ + 106.6841974, + 10.8108206 + ], + [ + 106.6851918, + 10.8116365 + ], + [ + 106.6852775, + 10.8128091 + ], + [ + 106.6847691, + 10.8134488 + ], + [ + 106.6848203, + 10.8137187 + ], + [ + 106.6852955, + 10.8140802 + ], + [ + 106.6874156, + 10.8147335 + ], + [ + 106.6877789, + 10.8150243 + ], + [ + 106.6882735, + 10.8158347 + ], + [ + 106.6895615, + 10.8148231 + ], + [ + 106.6895474, + 10.8150506 + ], + [ + 106.6906471, + 10.8155878 + ], + [ + 106.6912771, + 10.8156763 + ], + [ + 106.6912616, + 10.8162612 + ], + [ + 106.6915419, + 10.8164331 + ], + [ + 106.6914796, + 10.8168204 + ], + [ + 106.6921748, + 10.8170096 + ], + [ + 106.6920385, + 10.8175413 + ], + [ + 106.6933041, + 10.8178443 + ], + [ + 106.6927809, + 10.8183501 + ], + [ + 106.6926758, + 10.8186794 + ], + [ + 106.6929477, + 10.8189623 + ], + [ + 106.6928673, + 10.8194525 + ], + [ + 106.693499, + 10.8196434 + ], + [ + 106.6934293, + 10.8203628 + ], + [ + 106.6940972, + 10.820544 + ], + [ + 106.6935055, + 10.8220061 + ], + [ + 106.6986716, + 10.8232693 + ], + [ + 106.698626, + 10.8243173 + ], + [ + 106.6991888, + 10.8256756 + ], + [ + 106.7010554, + 10.8271337 + ], + [ + 106.7006289, + 10.8282637 + ], + [ + 106.6995664, + 10.8286754 + ], + [ + 106.6999616, + 10.8300356 + ], + [ + 106.699601, + 10.8304496 + ], + [ + 106.6974301, + 10.8306409 + ], + [ + 106.6953034, + 10.8311161 + ], + [ + 106.6946272, + 10.8304278 + ], + [ + 106.6938795, + 10.8301438 + ], + [ + 106.6928652, + 10.8302484 + ], + [ + 106.6922483, + 10.8306773 + ], + [ + 106.6916976, + 10.8317902 + ], + [ + 106.6906009, + 10.8363282 + ], + [ + 106.6888654, + 10.8390805 + ], + [ + 106.6887528, + 10.8406447 + ], + [ + 106.6892805, + 10.8434082 + ], + [ + 106.6888802, + 10.8448458 + ], + [ + 106.6883069, + 10.845997 + ], + [ + 106.6876423, + 10.8468103 + ], + [ + 106.6868388, + 10.8472705 + ], + [ + 106.6859324, + 10.8473958 + ], + [ + 106.6842775, + 10.8470625 + ], + [ + 106.6836123, + 10.8471514 + ], + [ + 106.6831958, + 10.8473938 + ], + [ + 106.6829689, + 10.847913 + ], + [ + 106.6830417, + 10.8485442 + ], + [ + 106.6844429, + 10.8506183 + ], + [ + 106.6843408, + 10.8512314 + ], + [ + 106.683898, + 10.8516093 + ], + [ + 106.6830974, + 10.8517582 + ], + [ + 106.6793057, + 10.8508052 + ], + [ + 106.6758943, + 10.8520676 + ], + [ + 106.6758078, + 10.8533005 + ], + [ + 106.6750955, + 10.8548985 + ], + [ + 106.675202, + 10.8568352 + ], + [ + 106.6750963, + 10.8573703 + ], + [ + 106.674247, + 10.8585881 + ], + [ + 106.6734364, + 10.8602855 + ], + [ + 106.6728044, + 10.8606907 + ], + [ + 106.6708938, + 10.8597593 + ], + [ + 106.6704229, + 10.8593775 + ], + [ + 106.6700828, + 10.8587179 + ], + [ + 106.6690449, + 10.858152 + ], + [ + 106.6689809, + 10.858234 + ], + [ + 106.667983, + 10.8575579 + ], + [ + 106.667055, + 10.8560005 + ], + [ + 106.6659111, + 10.8562877 + ], + [ + 106.663415, + 10.8555675 + ], + [ + 106.6626128, + 10.8555458 + ], + [ + 106.6613851, + 10.8557929 + ], + [ + 106.6588817, + 10.8578978 + ], + [ + 106.6582527, + 10.8580289 + ], + [ + 106.6573466, + 10.8577011 + ], + [ + 106.6568062, + 10.8577868 + ], + [ + 106.6555845, + 10.8588443 + ], + [ + 106.6539414, + 10.8593362 + ], + [ + 106.653078, + 10.860505 + ], + [ + 106.6525657, + 10.8607922 + ], + [ + 106.651062, + 10.8599934 + ], + [ + 106.6500186, + 10.8591027 + ], + [ + 106.648915, + 10.8589213 + ], + [ + 106.6471422, + 10.8580699 + ], + [ + 106.6465804, + 10.8563601 + ], + [ + 106.6464955, + 10.8544578 + ], + [ + 106.6463189, + 10.854034 + ], + [ + 106.6459101, + 10.8540014 + ], + [ + 106.6452943, + 10.8545083 + ], + [ + 106.6448176, + 10.8544351 + ], + [ + 106.6445246, + 10.8539282 + ], + [ + 106.6444299, + 10.8529893 + ], + [ + 106.6440861, + 10.8527104 + ], + [ + 106.6433751, + 10.8525687 + ], + [ + 106.6430296, + 10.8523306 + ], + [ + 106.6428154, + 10.8509928 + ], + [ + 106.6415378, + 10.8497153 + ], + [ + 106.6404472, + 10.8493675 + ], + [ + 106.6397425, + 10.8489265 + ], + [ + 106.6361587, + 10.8461774 + ], + [ + 106.6349054, + 10.8449022 + ], + [ + 106.6339785, + 10.8452446 + ], + [ + 106.6338082, + 10.8451471 + ], + [ + 106.6336013, + 10.8431695 + ], + [ + 106.6337206, + 10.8420353 + ], + [ + 106.6335415, + 10.8411301 + ], + [ + 106.6333839, + 10.8409378 + ], + [ + 106.6322665, + 10.8405662 + ], + [ + 106.6321173, + 10.8402495 + ], + [ + 106.6322385, + 10.8392865 + ], + [ + 106.6328525, + 10.8385697 + ], + [ + 106.6330128, + 10.8380462 + ], + [ + 106.6322279, + 10.8374089 + ], + [ + 106.6319429, + 10.8368091 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-hocmon.json b/src/data/boundaries/tphcm/tphcm-hocmon.json new file mode 100644 index 0000000..8675c72 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-hocmon.json @@ -0,0 +1,706 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-HOCMON", + "name": "Hoc Mon", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 109.6, + "bbox": [ + 106.49562, + 10.8261, + 106.69279, + 10.92934 + ], + "center": [ + 10.88585, + 106.58983 + ], + "generatedAt": "2026-08-30T07:35:04.527Z", + "osm": "relation/7157219" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.4956203, + 10.9208398 + ], + [ + 106.5036803, + 10.9168867 + ], + [ + 106.5315364, + 10.9026658 + ], + [ + 106.5327461, + 10.9010902 + ], + [ + 106.5328728, + 10.8999003 + ], + [ + 106.5274982, + 10.8800642 + ], + [ + 106.5265122, + 10.8769134 + ], + [ + 106.5259106, + 10.8736439 + ], + [ + 106.5348794, + 10.8718885 + ], + [ + 106.5286784, + 10.8475074 + ], + [ + 106.5448056, + 10.8430387 + ], + [ + 106.5452237, + 10.8447865 + ], + [ + 106.5559467, + 10.843056 + ], + [ + 106.5574157, + 10.843335 + ], + [ + 106.5575901, + 10.8438171 + ], + [ + 106.5580595, + 10.8438105 + ], + [ + 106.5580621, + 10.8440489 + ], + [ + 106.5588051, + 10.8439067 + ], + [ + 106.5596473, + 10.8442201 + ], + [ + 106.5623711, + 10.8447312 + ], + [ + 106.5626219, + 10.8429425 + ], + [ + 106.56276, + 10.8426013 + ], + [ + 106.5630779, + 10.8426027 + ], + [ + 106.5632321, + 10.8413698 + ], + [ + 106.5634996, + 10.8413988 + ], + [ + 106.5645739, + 10.8407766 + ], + [ + 106.5661785, + 10.8411024 + ], + [ + 106.5692604, + 10.8428002 + ], + [ + 106.5726882, + 10.8425934 + ], + [ + 106.5727124, + 10.8427225 + ], + [ + 106.5736277, + 10.8427469 + ], + [ + 106.5757593, + 10.8426079 + ], + [ + 106.5764735, + 10.8401142 + ], + [ + 106.5765801, + 10.8384193 + ], + [ + 106.5780835, + 10.8373047 + ], + [ + 106.5790652, + 10.8355202 + ], + [ + 106.5807844, + 10.8342176 + ], + [ + 106.5819271, + 10.8328397 + ], + [ + 106.5842106, + 10.8325466 + ], + [ + 106.5851672, + 10.8327389 + ], + [ + 106.5860186, + 10.8331682 + ], + [ + 106.5878803, + 10.8327949 + ], + [ + 106.5909468, + 10.8318376 + ], + [ + 106.5923381, + 10.8303607 + ], + [ + 106.5930231, + 10.8293998 + ], + [ + 106.5945571, + 10.8298413 + ], + [ + 106.5980789, + 10.8294632 + ], + [ + 106.5974998, + 10.8270872 + ], + [ + 106.6005353, + 10.8260964 + ], + [ + 106.6032773, + 10.8262326 + ], + [ + 106.603739, + 10.8282162 + ], + [ + 106.6043611, + 10.8298733 + ], + [ + 106.608031, + 10.8359612 + ], + [ + 106.6088228, + 10.8368728 + ], + [ + 106.6153254, + 10.8426844 + ], + [ + 106.6072559, + 10.8552972 + ], + [ + 106.612047, + 10.8625043 + ], + [ + 106.6155117, + 10.8673445 + ], + [ + 106.6151201, + 10.8698825 + ], + [ + 106.6149189, + 10.8703369 + ], + [ + 106.6194002, + 10.8711719 + ], + [ + 106.6255941, + 10.8780112 + ], + [ + 106.6279236, + 10.881226 + ], + [ + 106.6253325, + 10.8829677 + ], + [ + 106.6252145, + 10.8831995 + ], + [ + 106.6286584, + 10.8858124 + ], + [ + 106.6290661, + 10.8863076 + ], + [ + 106.6294524, + 10.8868976 + ], + [ + 106.6314908, + 10.8915122 + ], + [ + 106.6321024, + 10.8917756 + ], + [ + 106.6390225, + 10.8918177 + ], + [ + 106.6409537, + 10.89206 + ], + [ + 106.6425094, + 10.8924077 + ], + [ + 106.6427776, + 10.8927764 + ], + [ + 106.6428527, + 10.8934086 + ], + [ + 106.6431209, + 10.8937457 + ], + [ + 106.6435393, + 10.8939248 + ], + [ + 106.6442903, + 10.8939459 + ], + [ + 106.6451379, + 10.8942198 + ], + [ + 106.6458782, + 10.8940828 + ], + [ + 106.6468924, + 10.8945782 + ], + [ + 106.6468517, + 10.8948581 + ], + [ + 106.6485068, + 10.8950416 + ], + [ + 106.6496333, + 10.8953576 + ], + [ + 106.6514572, + 10.8949046 + ], + [ + 106.6522703, + 10.8948819 + ], + [ + 106.6524979, + 10.8943778 + ], + [ + 106.6525039, + 10.8930746 + ], + [ + 106.6531126, + 10.8923518 + ], + [ + 106.6532259, + 10.8917401 + ], + [ + 106.6544929, + 10.8920529 + ], + [ + 106.6561492, + 10.8920807 + ], + [ + 106.6575649, + 10.8924977 + ], + [ + 106.6606086, + 10.8925672 + ], + [ + 106.6623357, + 10.8929426 + ], + [ + 106.6634046, + 10.8929634 + ], + [ + 106.6650114, + 10.8924491 + ], + [ + 106.6655352, + 10.8921015 + ], + [ + 106.6672198, + 10.8917331 + ], + [ + 106.6688833, + 10.8909129 + ], + [ + 106.6692378, + 10.8939553 + ], + [ + 106.6693551, + 10.8943597 + ], + [ + 106.6696736, + 10.8941627 + ], + [ + 106.6703254, + 10.8961665 + ], + [ + 106.6707075, + 10.8990249 + ], + [ + 106.6706343, + 10.9011647 + ], + [ + 106.6718621, + 10.9015639 + ], + [ + 106.6734395, + 10.9017156 + ], + [ + 106.6773017, + 10.903033 + ], + [ + 106.6796678, + 10.9036398 + ], + [ + 106.6815461, + 10.8983942 + ], + [ + 106.6857091, + 10.8999511 + ], + [ + 106.6890428, + 10.9018194 + ], + [ + 106.6905714, + 10.9032166 + ], + [ + 106.6913926, + 10.9036957 + ], + [ + 106.692787, + 10.9041992 + ], + [ + 106.6909434, + 10.9090033 + ], + [ + 106.6874412, + 10.9167793 + ], + [ + 106.6850149, + 10.9208556 + ], + [ + 106.6839973, + 10.9218784 + ], + [ + 106.6826373, + 10.9227834 + ], + [ + 106.6808778, + 10.9234567 + ], + [ + 106.6788554, + 10.9234945 + ], + [ + 106.6776795, + 10.9232493 + ], + [ + 106.6705742, + 10.9210022 + ], + [ + 106.6693926, + 10.9208134 + ], + [ + 106.6682663, + 10.9208418 + ], + [ + 106.6671637, + 10.9210689 + ], + [ + 106.6628122, + 10.9226306 + ], + [ + 106.6605079, + 10.9238589 + ], + [ + 106.6572929, + 10.9258852 + ], + [ + 106.6562291, + 10.9245722 + ], + [ + 106.6561019, + 10.9229197 + ], + [ + 106.6557168, + 10.9219588 + ], + [ + 106.6540643, + 10.9199869 + ], + [ + 106.653504, + 10.9196179 + ], + [ + 106.6530076, + 10.9195807 + ], + [ + 106.6512767, + 10.919991 + ], + [ + 106.6487932, + 10.9196151 + ], + [ + 106.6458819, + 10.919811 + ], + [ + 106.6449013, + 10.9194176 + ], + [ + 106.6437346, + 10.9183194 + ], + [ + 106.6428957, + 10.9178005 + ], + [ + 106.6385195, + 10.9161742 + ], + [ + 106.6372313, + 10.9160528 + ], + [ + 106.634626, + 10.9162123 + ], + [ + 106.6302376, + 10.9162121 + ], + [ + 106.625037, + 10.915281 + ], + [ + 106.6220677, + 10.9144584 + ], + [ + 106.6190913, + 10.9150295 + ], + [ + 106.6004518, + 10.9177979 + ], + [ + 106.6005741, + 10.9205142 + ], + [ + 106.6011921, + 10.9230665 + ], + [ + 106.5814577, + 10.929341 + ], + [ + 106.581576, + 10.9261048 + ], + [ + 106.5825949, + 10.9250367 + ], + [ + 106.5830574, + 10.9232359 + ], + [ + 106.5834653, + 10.9226478 + ], + [ + 106.5836357, + 10.9217839 + ], + [ + 106.5840904, + 10.9207526 + ], + [ + 106.5841641, + 10.9196599 + ], + [ + 106.5818751, + 10.9199554 + ], + [ + 106.5795667, + 10.9200252 + ], + [ + 106.5650412, + 10.9191267 + ], + [ + 106.5637793, + 10.9186986 + ], + [ + 106.5613747, + 10.9170763 + ], + [ + 106.5370906, + 10.9159834 + ], + [ + 106.5012395, + 10.9203104 + ], + [ + 106.4956203, + 10.9208398 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-nhabe.json b/src/data/boundaries/tphcm/tphcm-nhabe.json new file mode 100644 index 0000000..e5d04cb --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-nhabe.json @@ -0,0 +1,1326 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-NHABE", + "name": "Nha Be", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 101.1, + "bbox": [ + 106.67328, + 10.57636, + 106.78373, + 10.72563 + ], + "center": [ + 10.6543, + 106.73051 + ], + "generatedAt": "2026-08-30T07:35:06.228Z", + "osm": "relation/7157197" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6732768, + 10.6925007 + ], + [ + 106.6732786, + 10.6922902 + ], + [ + 106.6754423, + 10.6895625 + ], + [ + 106.6757494, + 10.6884439 + ], + [ + 106.6759215, + 10.6862759 + ], + [ + 106.6763845, + 10.685137 + ], + [ + 106.6794815, + 10.682113 + ], + [ + 106.6807268, + 10.6799997 + ], + [ + 106.6813552, + 10.678102 + ], + [ + 106.6813999, + 10.6772466 + ], + [ + 106.6811645, + 10.6761649 + ], + [ + 106.6792899, + 10.6729095 + ], + [ + 106.6785338, + 10.6703212 + ], + [ + 106.6783713, + 10.6675596 + ], + [ + 106.6785346, + 10.6657563 + ], + [ + 106.6788747, + 10.6644089 + ], + [ + 106.6793774, + 10.6634249 + ], + [ + 106.680197, + 10.662656 + ], + [ + 106.683609, + 10.6614841 + ], + [ + 106.6845925, + 10.6607506 + ], + [ + 106.6852978, + 10.6592322 + ], + [ + 106.6857032, + 10.6566582 + ], + [ + 106.6872126, + 10.6558707 + ], + [ + 106.6884597, + 10.6534274 + ], + [ + 106.6901917, + 10.6514053 + ], + [ + 106.6908237, + 10.6489478 + ], + [ + 106.6912555, + 10.6486175 + ], + [ + 106.6921727, + 10.6485094 + ], + [ + 106.6962707, + 10.6498628 + ], + [ + 106.6967465, + 10.6504042 + ], + [ + 106.6976775, + 10.6520799 + ], + [ + 106.6995354, + 10.653447 + ], + [ + 106.7006704, + 10.6538747 + ], + [ + 106.703208, + 10.6531888 + ], + [ + 106.7039785, + 10.6528129 + ], + [ + 106.7053726, + 10.6509958 + ], + [ + 106.7068657, + 10.6501768 + ], + [ + 106.7080169, + 10.6499051 + ], + [ + 106.7087409, + 10.6499011 + ], + [ + 106.7111849, + 10.6505498 + ], + [ + 106.7123309, + 10.6502786 + ], + [ + 106.7157463, + 10.6481574 + ], + [ + 106.7167611, + 10.6473626 + ], + [ + 106.7174114, + 10.6466227 + ], + [ + 106.7186937, + 10.6457417 + ], + [ + 106.719363, + 10.6455527 + ], + [ + 106.719953, + 10.6455759 + ], + [ + 106.7209262, + 10.6459207 + ], + [ + 106.7220957, + 10.6457987 + ], + [ + 106.7224269, + 10.6456266 + ], + [ + 106.722928, + 10.6451945 + ], + [ + 106.7231644, + 10.644393 + ], + [ + 106.7237035, + 10.6412777 + ], + [ + 106.7250958, + 10.6396261 + ], + [ + 106.725705, + 10.6383672 + ], + [ + 106.7268535, + 10.6375664 + ], + [ + 106.7297702, + 10.6364382 + ], + [ + 106.7307295, + 10.6353735 + ], + [ + 106.731205, + 10.6340997 + ], + [ + 106.7310667, + 10.6334264 + ], + [ + 106.7312834, + 10.6333113 + ], + [ + 106.7311404, + 10.6332916 + ], + [ + 106.7312185, + 10.6329492 + ], + [ + 106.7325265, + 10.6306628 + ], + [ + 106.7332404, + 10.6288844 + ], + [ + 106.7329163, + 10.6284625 + ], + [ + 106.7319335, + 10.627753 + ], + [ + 106.7314375, + 10.6277556 + ], + [ + 106.7303291, + 10.628543 + ], + [ + 106.729767, + 10.6287315 + ], + [ + 106.7292776, + 10.6285698 + ], + [ + 106.7290657, + 10.6282855 + ], + [ + 106.7283315, + 10.6250651 + ], + [ + 106.7283726, + 10.6244284 + ], + [ + 106.7289965, + 10.6239653 + ], + [ + 106.731399, + 10.6237009 + ], + [ + 106.7317523, + 10.6231975 + ], + [ + 106.7317806, + 10.6227848 + ], + [ + 106.731533, + 10.6222426 + ], + [ + 106.7298501, + 10.6202085 + ], + [ + 106.7299495, + 10.617933 + ], + [ + 106.7292082, + 10.6165984 + ], + [ + 106.7287575, + 10.6162083 + ], + [ + 106.7278847, + 10.6168472 + ], + [ + 106.7275976, + 10.6165368 + ], + [ + 106.7275447, + 10.6161848 + ], + [ + 106.7276029, + 10.6156711 + ], + [ + 106.7285665, + 10.6130286 + ], + [ + 106.7291316, + 10.6120491 + ], + [ + 106.7294059, + 10.6118764 + ], + [ + 106.7305913, + 10.6124538 + ], + [ + 106.7316087, + 10.6121361 + ], + [ + 106.7327945, + 10.6099603 + ], + [ + 106.7312547, + 10.6088699 + ], + [ + 106.730079, + 10.6089657 + ], + [ + 106.7290111, + 10.6093886 + ], + [ + 106.728702, + 10.6090824 + ], + [ + 106.7283681, + 10.6090137 + ], + [ + 106.7272896, + 10.6099844 + ], + [ + 106.7264952, + 10.6113314 + ], + [ + 106.7252843, + 10.6112996 + ], + [ + 106.7239525, + 10.6119298 + ], + [ + 106.7236747, + 10.6117188 + ], + [ + 106.7229147, + 10.610433 + ], + [ + 106.7223657, + 10.6084176 + ], + [ + 106.7223305, + 10.607567 + ], + [ + 106.722, + 10.606911 + ], + [ + 106.7214946, + 10.6066895 + ], + [ + 106.7195972, + 10.6065134 + ], + [ + 106.7191143, + 10.6062586 + ], + [ + 106.7189372, + 10.6059224 + ], + [ + 106.7191153, + 10.6040818 + ], + [ + 106.7195144, + 10.6029732 + ], + [ + 106.7203887, + 10.6016266 + ], + [ + 106.7217392, + 10.6002068 + ], + [ + 106.7218323, + 10.5998061 + ], + [ + 106.7214215, + 10.5987961 + ], + [ + 106.7208222, + 10.5981637 + ], + [ + 106.7203649, + 10.5973659 + ], + [ + 106.7202664, + 10.5967779 + ], + [ + 106.7203811, + 10.5960004 + ], + [ + 106.7211868, + 10.5951721 + ], + [ + 106.7228727, + 10.5940564 + ], + [ + 106.7235586, + 10.5931111 + ], + [ + 106.7236507, + 10.5904909 + ], + [ + 106.7232472, + 10.5892256 + ], + [ + 106.7232422, + 10.5883371 + ], + [ + 106.7241082, + 10.5872194 + ], + [ + 106.7246368, + 10.5858881 + ], + [ + 106.725134, + 10.5854276 + ], + [ + 106.7258143, + 10.5852264 + ], + [ + 106.7270246, + 10.5855519 + ], + [ + 106.7270593, + 10.5852644 + ], + [ + 106.726656, + 10.5846473 + ], + [ + 106.7267166, + 10.5840995 + ], + [ + 106.7286221, + 10.5801267 + ], + [ + 106.7300196, + 10.5797113 + ], + [ + 106.7309708, + 10.5797061 + ], + [ + 106.7327542, + 10.5802693 + ], + [ + 106.7334431, + 10.5812682 + ], + [ + 106.7343052, + 10.581797 + ], + [ + 106.734799, + 10.5823035 + ], + [ + 106.7349079, + 10.5827555 + ], + [ + 106.7346503, + 10.5835005 + ], + [ + 106.7348683, + 10.5844208 + ], + [ + 106.7347516, + 10.5852228 + ], + [ + 106.7354335, + 10.5862778 + ], + [ + 106.7362014, + 10.5864827 + ], + [ + 106.7375229, + 10.5861508 + ], + [ + 106.7384979, + 10.585511 + ], + [ + 106.7392715, + 10.5842953 + ], + [ + 106.7395159, + 10.5832702 + ], + [ + 106.7393666, + 10.5821414 + ], + [ + 106.7386703, + 10.5811803 + ], + [ + 106.7375832, + 10.5806333 + ], + [ + 106.7366368, + 10.5796971 + ], + [ + 106.7355738, + 10.579197 + ], + [ + 106.7350589, + 10.5787291 + ], + [ + 106.7350676, + 10.5781525 + ], + [ + 106.7352444, + 10.5778103 + ], + [ + 106.7355638, + 10.5774085 + ], + [ + 106.7363123, + 10.577063 + ], + [ + 106.7369921, + 10.5772005 + ], + [ + 106.7376167, + 10.578115 + ], + [ + 106.7380474, + 10.5784538 + ], + [ + 106.7401355, + 10.5790542 + ], + [ + 106.7412316, + 10.5790717 + ], + [ + 106.7419636, + 10.5789013 + ], + [ + 106.7431094, + 10.5782964 + ], + [ + 106.7456478, + 10.5763631 + ], + [ + 106.7477152, + 10.5784562 + ], + [ + 106.7505101, + 10.580248 + ], + [ + 106.7532902, + 10.5812634 + ], + [ + 106.7562314, + 10.5816928 + ], + [ + 106.7584674, + 10.581615 + ], + [ + 106.7609516, + 10.5811103 + ], + [ + 106.762937, + 10.5803569 + ], + [ + 106.767207, + 10.5782463 + ], + [ + 106.7700589, + 10.5772701 + ], + [ + 106.771849, + 10.5768951 + ], + [ + 106.7739869, + 10.576761 + ], + [ + 106.7764096, + 10.5770117 + ], + [ + 106.7780984, + 10.5774895 + ], + [ + 106.7797131, + 10.5784771 + ], + [ + 106.780469, + 10.5793193 + ], + [ + 106.7815455, + 10.5811632 + ], + [ + 106.7824189, + 10.5831082 + ], + [ + 106.7830794, + 10.5851327 + ], + [ + 106.7835197, + 10.5872142 + ], + [ + 106.783735, + 10.5893341 + ], + [ + 106.7835371, + 10.5931719 + ], + [ + 106.7826416, + 10.5967579 + ], + [ + 106.7807669, + 10.6010816 + ], + [ + 106.7786677, + 10.6046122 + ], + [ + 106.774022, + 10.6109945 + ], + [ + 106.7726332, + 10.6136317 + ], + [ + 106.7714309, + 10.6168356 + ], + [ + 106.7708301, + 10.6198805 + ], + [ + 106.77059, + 10.6235349 + ], + [ + 106.7707672, + 10.6275998 + ], + [ + 106.7714367, + 10.6339524 + ], + [ + 106.7710717, + 10.636388 + ], + [ + 106.7702865, + 10.6384189 + ], + [ + 106.7692805, + 10.6400214 + ], + [ + 106.7680044, + 10.6414259 + ], + [ + 106.7661823, + 10.6428697 + ], + [ + 106.7638433, + 10.6443162 + ], + [ + 106.7601657, + 10.6458711 + ], + [ + 106.7507581, + 10.6486476 + ], + [ + 106.7483802, + 10.6497478 + ], + [ + 106.7461883, + 10.6511218 + ], + [ + 106.7435878, + 10.6533433 + ], + [ + 106.741574, + 10.655794 + ], + [ + 106.7396186, + 10.6591852 + ], + [ + 106.7385937, + 10.6620918 + ], + [ + 106.7384594, + 10.6636129 + ], + [ + 106.7385882, + 10.6649625 + ], + [ + 106.738953, + 10.6659536 + ], + [ + 106.7394825, + 10.6667477 + ], + [ + 106.7406971, + 10.6678439 + ], + [ + 106.742093, + 10.6688124 + ], + [ + 106.7436252, + 10.6696071 + ], + [ + 106.7452839, + 10.67021 + ], + [ + 106.7474861, + 10.6706077 + ], + [ + 106.749976, + 10.6704036 + ], + [ + 106.7633789, + 10.6656288 + ], + [ + 106.7655079, + 10.6652244 + ], + [ + 106.7680141, + 10.6652682 + ], + [ + 106.7698551, + 10.6656603 + ], + [ + 106.7713326, + 10.6662066 + ], + [ + 106.7734129, + 10.667659 + ], + [ + 106.7764485, + 10.670767 + ], + [ + 106.7790089, + 10.6742684 + ], + [ + 106.7740594, + 10.6774409 + ], + [ + 106.7696832, + 10.6807997 + ], + [ + 106.7648188, + 10.6850984 + ], + [ + 106.7602978, + 10.6898321 + ], + [ + 106.7566101, + 10.694422 + ], + [ + 106.754782, + 10.6972628 + ], + [ + 106.7530902, + 10.7009507 + ], + [ + 106.751906, + 10.7051207 + ], + [ + 106.7495477, + 10.7046114 + ], + [ + 106.7453833, + 10.7032515 + ], + [ + 106.7366066, + 10.7034337 + ], + [ + 106.7356646, + 10.7030169 + ], + [ + 106.7348339, + 10.7020665 + ], + [ + 106.7346024, + 10.7014355 + ], + [ + 106.7341867, + 10.6988316 + ], + [ + 106.7335779, + 10.6981431 + ], + [ + 106.7322823, + 10.6978986 + ], + [ + 106.7299005, + 10.6983071 + ], + [ + 106.728259, + 10.6987631 + ], + [ + 106.7269622, + 10.6992175 + ], + [ + 106.7264771, + 10.6996892 + ], + [ + 106.7262405, + 10.7004376 + ], + [ + 106.7260703, + 10.7025583 + ], + [ + 106.7249089, + 10.7048314 + ], + [ + 106.7245972, + 10.7058075 + ], + [ + 106.7247136, + 10.7066492 + ], + [ + 106.7257304, + 10.7086976 + ], + [ + 106.7257464, + 10.7106827 + ], + [ + 106.725212, + 10.7121911 + ], + [ + 106.7240874, + 10.7134112 + ], + [ + 106.7234909, + 10.7143101 + ], + [ + 106.7231376, + 10.7151347 + ], + [ + 106.7230375, + 10.7158362 + ], + [ + 106.7234096, + 10.7170245 + ], + [ + 106.7252165, + 10.719299 + ], + [ + 106.725275, + 10.7197654 + ], + [ + 106.7251155, + 10.7204004 + ], + [ + 106.7246577, + 10.720978 + ], + [ + 106.7210606, + 10.7223467 + ], + [ + 106.7205028, + 10.7221066 + ], + [ + 106.7199684, + 10.721549 + ], + [ + 106.7190232, + 10.7193951 + ], + [ + 106.7184432, + 10.7190011 + ], + [ + 106.717675, + 10.7190261 + ], + [ + 106.7112144, + 10.7208069 + ], + [ + 106.7106391, + 10.7207056 + ], + [ + 106.7092937, + 10.7197001 + ], + [ + 106.7088177, + 10.7195863 + ], + [ + 106.7080444, + 10.7199277 + ], + [ + 106.70756, + 10.7205352 + ], + [ + 106.7073417, + 10.7215558 + ], + [ + 106.7074288, + 10.7228109 + ], + [ + 106.7072977, + 10.7238093 + ], + [ + 106.7068232, + 10.7245022 + ], + [ + 106.7061496, + 10.7248806 + ], + [ + 106.7045232, + 10.7253227 + ], + [ + 106.7034075, + 10.7253829 + ], + [ + 106.7022997, + 10.7251939 + ], + [ + 106.7001917, + 10.7244822 + ], + [ + 106.6984219, + 10.7243384 + ], + [ + 106.6952228, + 10.7249052 + ], + [ + 106.6927747, + 10.725626 + ], + [ + 106.6913988, + 10.7255368 + ], + [ + 106.6900942, + 10.7252801 + ], + [ + 106.6889943, + 10.7217805 + ], + [ + 106.6889555, + 10.7206692 + ], + [ + 106.6893482, + 10.7185056 + ], + [ + 106.6885328, + 10.7159703 + ], + [ + 106.6883816, + 10.7149595 + ], + [ + 106.6885895, + 10.7130263 + ], + [ + 106.688856, + 10.712116 + ], + [ + 106.6866886, + 10.7115701 + ], + [ + 106.6859882, + 10.7116101 + ], + [ + 106.6853564, + 10.7119394 + ], + [ + 106.6840811, + 10.7131086 + ], + [ + 106.6818433, + 10.7139657 + ], + [ + 106.6809661, + 10.7145652 + ], + [ + 106.6800628, + 10.7135196 + ], + [ + 106.6786637, + 10.711467 + ], + [ + 106.6781845, + 10.7097884 + ], + [ + 106.6778289, + 10.7096092 + ], + [ + 106.6767484, + 10.7096579 + ], + [ + 106.6764744, + 10.7088472 + ], + [ + 106.6748723, + 10.7059555 + ], + [ + 106.6736401, + 10.7046597 + ], + [ + 106.6734769, + 10.7038635 + ], + [ + 106.6743105, + 10.7028397 + ], + [ + 106.6745134, + 10.7021015 + ], + [ + 106.673851, + 10.6982869 + ], + [ + 106.6738099, + 10.6960002 + ], + [ + 106.6732768, + 10.6925007 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-phunhuan.json b/src/data/boundaries/tphcm/tphcm-phunhuan.json new file mode 100644 index 0000000..80ea104 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-phunhuan.json @@ -0,0 +1,486 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-PHUNHUAN", + "name": "Phu Nhuan", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 4.9, + "bbox": [ + 106.66596, + 10.78791, + 106.69248, + 10.81414 + ], + "center": [ + 10.80033, + 106.67817 + ], + "generatedAt": "2026-08-30T07:34:46.089Z", + "osm": "relation/3851694" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6659623, + 10.790869 + ], + [ + 106.6667297, + 10.7903408 + ], + [ + 106.6667098, + 10.7896271 + ], + [ + 106.6669163, + 10.7894428 + ], + [ + 106.6683212, + 10.7887499 + ], + [ + 106.6707794, + 10.7879103 + ], + [ + 106.6710336, + 10.7892987 + ], + [ + 106.6719005, + 10.7893747 + ], + [ + 106.672193, + 10.7895631 + ], + [ + 106.6721772, + 10.7897854 + ], + [ + 106.6737911, + 10.7899497 + ], + [ + 106.6740013, + 10.7903561 + ], + [ + 106.6746612, + 10.7900096 + ], + [ + 106.6749739, + 10.7902903 + ], + [ + 106.6754926, + 10.7902741 + ], + [ + 106.6764704, + 10.7905835 + ], + [ + 106.6767569, + 10.7904543 + ], + [ + 106.6768404, + 10.7906094 + ], + [ + 106.6777765, + 10.790904 + ], + [ + 106.6778833, + 10.7907561 + ], + [ + 106.6792834, + 10.79104 + ], + [ + 106.6796614, + 10.7909694 + ], + [ + 106.6801247, + 10.7912414 + ], + [ + 106.6810562, + 10.7913798 + ], + [ + 106.681669, + 10.7912391 + ], + [ + 106.6822586, + 10.791826 + ], + [ + 106.6835234, + 10.7924087 + ], + [ + 106.6858743, + 10.79227 + ], + [ + 106.6862779, + 10.792689 + ], + [ + 106.6863946, + 10.7930891 + ], + [ + 106.6851211, + 10.7944282 + ], + [ + 106.6848646, + 10.7961678 + ], + [ + 106.6849599, + 10.7965626 + ], + [ + 106.6852732, + 10.7968688 + ], + [ + 106.6857755, + 10.7969297 + ], + [ + 106.6861233, + 10.7967384 + ], + [ + 106.6869427, + 10.7951322 + ], + [ + 106.6873877, + 10.7948627 + ], + [ + 106.6894209, + 10.7956353 + ], + [ + 106.6907597, + 10.7957902 + ], + [ + 106.6916087, + 10.7955247 + ], + [ + 106.6919171, + 10.7959194 + ], + [ + 106.6920311, + 10.7977881 + ], + [ + 106.6918366, + 10.7978257 + ], + [ + 106.6918071, + 10.7982736 + ], + [ + 106.6920432, + 10.7982558 + ], + [ + 106.6919144, + 10.7987399 + ], + [ + 106.6920921, + 10.7988295 + ], + [ + 106.6918068, + 10.7989945 + ], + [ + 106.6918172, + 10.8002909 + ], + [ + 106.692482, + 10.8004663 + ], + [ + 106.6923912, + 10.8010374 + ], + [ + 106.6920237, + 10.8009754 + ], + [ + 106.6920229, + 10.8013461 + ], + [ + 106.6922298, + 10.8014996 + ], + [ + 106.6921624, + 10.8022829 + ], + [ + 106.6907951, + 10.8023955 + ], + [ + 106.6909202, + 10.8033507 + ], + [ + 106.6879147, + 10.8037448 + ], + [ + 106.6885023, + 10.8056289 + ], + [ + 106.6870269, + 10.8061811 + ], + [ + 106.6870527, + 10.8052401 + ], + [ + 106.6860504, + 10.805546 + ], + [ + 106.6843367, + 10.8065188 + ], + [ + 106.6838498, + 10.8071821 + ], + [ + 106.6842089, + 10.8087048 + ], + [ + 106.6839728, + 10.809969 + ], + [ + 106.6831105, + 10.8102266 + ], + [ + 106.6821232, + 10.8108063 + ], + [ + 106.6819604, + 10.8104847 + ], + [ + 106.6809838, + 10.8108475 + ], + [ + 106.6807712, + 10.810994 + ], + [ + 106.6810199, + 10.8114975 + ], + [ + 106.6805372, + 10.8118249 + ], + [ + 106.6805932, + 10.8119445 + ], + [ + 106.6785875, + 10.8120795 + ], + [ + 106.6785299, + 10.8112773 + ], + [ + 106.6782891, + 10.8112772 + ], + [ + 106.6768594, + 10.8121494 + ], + [ + 106.6760522, + 10.8112022 + ], + [ + 106.672783, + 10.8141411 + ], + [ + 106.6723028, + 10.8135789 + ], + [ + 106.6720607, + 10.8125837 + ], + [ + 106.6721512, + 10.8109242 + ], + [ + 106.672404, + 10.8106675 + ], + [ + 106.671651, + 10.8094077 + ], + [ + 106.6707236, + 10.8098496 + ], + [ + 106.6706718, + 10.8087065 + ], + [ + 106.6710368, + 10.8086713 + ], + [ + 106.6710395, + 10.8078723 + ], + [ + 106.6706965, + 10.8078137 + ], + [ + 106.6706774, + 10.807653 + ], + [ + 106.6699978, + 10.8077159 + ], + [ + 106.6699015, + 10.8068995 + ], + [ + 106.6694258, + 10.8066736 + ], + [ + 106.6690519, + 10.803317 + ], + [ + 106.6686228, + 10.8033104 + ], + [ + 106.668137, + 10.8027002 + ], + [ + 106.6673729, + 10.8005322 + ], + [ + 106.6675849, + 10.8001992 + ], + [ + 106.6698792, + 10.7989467 + ], + [ + 106.669816, + 10.7986179 + ], + [ + 106.6691093, + 10.7988861 + ], + [ + 106.6688635, + 10.7986978 + ], + [ + 106.6688541, + 10.798431 + ], + [ + 106.669058, + 10.7984185 + ], + [ + 106.6690275, + 10.7981784 + ], + [ + 106.6684739, + 10.798224 + ], + [ + 106.6683834, + 10.797225 + ], + [ + 106.668547, + 10.7972171 + ], + [ + 106.66854, + 10.7970376 + ], + [ + 106.6682731, + 10.7942846 + ], + [ + 106.6684519, + 10.7941512 + ], + [ + 106.6659623, + 10.790869 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-q1.json b/src/data/boundaries/tphcm/tphcm-q1.json new file mode 100644 index 0000000..3e63360 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-q1.json @@ -0,0 +1,234 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-Q1", + "name": "District 1", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 7.7, + "bbox": [ + 106.68169, + 10.75352, + 106.7152, + 10.79693 + ], + "center": [ + 10.77622, + 106.69715 + ], + "generatedAt": "2026-08-30T07:34:23.479Z", + "osm": "relation/2587287" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6816889, + 10.7654323 + ], + [ + 106.6854624, + 10.7559828 + ], + [ + 106.6872747, + 10.753519 + ], + [ + 106.6916093, + 10.7575954 + ], + [ + 106.694486, + 10.7592226 + ], + [ + 106.6959129, + 10.7603701 + ], + [ + 106.6982152, + 10.7633005 + ], + [ + 106.7012074, + 10.7653499 + ], + [ + 106.7035693, + 10.7680314 + ], + [ + 106.7056291, + 10.7689242 + ], + [ + 106.7082991, + 10.7697601 + ], + [ + 106.7080073, + 10.7722411 + ], + [ + 106.708136, + 10.7751802 + ], + [ + 106.7085436, + 10.7772914 + ], + [ + 106.7092598, + 10.7793384 + ], + [ + 106.7103796, + 10.7815073 + ], + [ + 106.7113623, + 10.7827581 + ], + [ + 106.7131932, + 10.784281 + ], + [ + 106.7151954, + 10.7853396 + ], + [ + 106.7140324, + 10.7866711 + ], + [ + 106.7128377, + 10.7874826 + ], + [ + 106.7118759, + 10.7877139 + ], + [ + 106.7094406, + 10.787511 + ], + [ + 106.708727, + 10.7877518 + ], + [ + 106.707618, + 10.7890035 + ], + [ + 106.7067238, + 10.7913608 + ], + [ + 106.7055456, + 10.7921198 + ], + [ + 106.7032122, + 10.7927802 + ], + [ + 106.6994158, + 10.7935269 + ], + [ + 106.6973197, + 10.7936608 + ], + [ + 106.6950206, + 10.7934546 + ], + [ + 106.6946043, + 10.7937444 + ], + [ + 106.6945368, + 10.7945495 + ], + [ + 106.6943564, + 10.7948981 + ], + [ + 106.6926141, + 10.7948798 + ], + [ + 106.6909561, + 10.7957797 + ], + [ + 106.689155, + 10.7955932 + ], + [ + 106.6873877, + 10.7948627 + ], + [ + 106.6869427, + 10.7951322 + ], + [ + 106.6861233, + 10.7967384 + ], + [ + 106.6857755, + 10.7969297 + ], + [ + 106.6852732, + 10.7968688 + ], + [ + 106.6849599, + 10.7965626 + ], + [ + 106.6848646, + 10.7961678 + ], + [ + 106.6850667, + 10.7946235 + ], + [ + 106.685342, + 10.7941097 + ], + [ + 106.6863497, + 10.7932013 + ], + [ + 106.6863825, + 10.7928942 + ], + [ + 106.6861498, + 10.7925061 + ], + [ + 106.6981274, + 10.7828849 + ], + [ + 106.6816889, + 10.7654323 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-q10.json b/src/data/boundaries/tphcm/tphcm-q10.json new file mode 100644 index 0000000..defbe2d --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-q10.json @@ -0,0 +1,78 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-Q10", + "name": "District 10", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 5.7, + "bbox": [ + 106.65613, + 10.75843, + 106.6828, + 10.78693 + ], + "center": [ + 10.77237, + 106.66826 + ], + "generatedAt": "2026-08-30T07:34:36.038Z", + "osm": "relation/6228121" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6561318, + 10.7777457 + ], + [ + 106.661562, + 10.7584316 + ], + [ + 106.6747019, + 10.7610637 + ], + [ + 106.6812069, + 10.7652911 + ], + [ + 106.6816889, + 10.7654323 + ], + [ + 106.6744365, + 10.7676889 + ], + [ + 106.6756419, + 10.7693963 + ], + [ + 106.6776153, + 10.7715083 + ], + [ + 106.6827966, + 10.7758944 + ], + [ + 106.6816674, + 10.7778253 + ], + [ + 106.6646464, + 10.7869335 + ], + [ + 106.6561318, + 10.7777457 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-q11.json b/src/data/boundaries/tphcm/tphcm-q11.json new file mode 100644 index 0000000..39c431c --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-q11.json @@ -0,0 +1,130 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-Q11", + "name": "District 11", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 5.2, + "bbox": [ + 106.6342, + 10.7534, + 106.66156, + 10.77845 + ], + "center": [ + 10.76412, + 106.64773 + ], + "generatedAt": "2026-08-30T07:34:37.523Z", + "osm": "relation/6846181" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6342046, + 10.758974 + ], + [ + 106.6374635, + 10.7553954 + ], + [ + 106.6376157, + 10.7546647 + ], + [ + 106.6384948, + 10.7546983 + ], + [ + 106.6507413, + 10.7534041 + ], + [ + 106.6510904, + 10.7563386 + ], + [ + 106.661562, + 10.7584316 + ], + [ + 106.6559493, + 10.7784506 + ], + [ + 106.6533108, + 10.7756279 + ], + [ + 106.6525131, + 10.7693077 + ], + [ + 106.6523283, + 10.7689114 + ], + [ + 106.6518883, + 10.7691722 + ], + [ + 106.6476803, + 10.7752257 + ], + [ + 106.6453628, + 10.7752275 + ], + [ + 106.6442952, + 10.7749853 + ], + [ + 106.6438671, + 10.774622 + ], + [ + 106.6421239, + 10.7721479 + ], + [ + 106.6415908, + 10.7725649 + ], + [ + 106.6392536, + 10.7704387 + ], + [ + 106.6377246, + 10.7693731 + ], + [ + 106.6376048, + 10.7689823 + ], + [ + 106.6356122, + 10.7695551 + ], + [ + 106.6357269, + 10.7627551 + ], + [ + 106.6350891, + 10.7600777 + ], + [ + 106.6342046, + 10.758974 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-q12.json b/src/data/boundaries/tphcm/tphcm-q12.json new file mode 100644 index 0000000..409569f --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-q12.json @@ -0,0 +1,914 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-Q12", + "name": "District 12", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 52.9, + "bbox": [ + 106.60328, + 10.81861, + 106.7182, + 10.9042 + ], + "center": [ + 10.86453, + 106.65697 + ], + "generatedAt": "2026-08-30T07:34:39.203Z", + "osm": "relation/6923167" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6032773, + 10.8262326 + ], + [ + 106.603879, + 10.8261239 + ], + [ + 106.6044301, + 10.8253075 + ], + [ + 106.6076711, + 10.8232158 + ], + [ + 106.6091561, + 10.8229681 + ], + [ + 106.6116966, + 10.8217939 + ], + [ + 106.6145173, + 10.8211242 + ], + [ + 106.6161843, + 10.8195547 + ], + [ + 106.6177833, + 10.8196421 + ], + [ + 106.6191787, + 10.8187331 + ], + [ + 106.6196485, + 10.8186053 + ], + [ + 106.6214038, + 10.8188256 + ], + [ + 106.623437, + 10.8195106 + ], + [ + 106.6247915, + 10.8208015 + ], + [ + 106.6291063, + 10.826186 + ], + [ + 106.6301022, + 10.8275906 + ], + [ + 106.6313754, + 10.8302412 + ], + [ + 106.6320898, + 10.8320138 + ], + [ + 106.6327845, + 10.8346429 + ], + [ + 106.632536, + 10.8357346 + ], + [ + 106.6320372, + 10.8364198 + ], + [ + 106.6319429, + 10.8368091 + ], + [ + 106.6322279, + 10.8374089 + ], + [ + 106.6328817, + 10.837849 + ], + [ + 106.6330171, + 10.8381117 + ], + [ + 106.6328525, + 10.8385697 + ], + [ + 106.6322385, + 10.8392865 + ], + [ + 106.6321392, + 10.840406 + ], + [ + 106.6335415, + 10.8411301 + ], + [ + 106.6337206, + 10.8420353 + ], + [ + 106.6336013, + 10.8431695 + ], + [ + 106.6337534, + 10.8450704 + ], + [ + 106.6339785, + 10.8452446 + ], + [ + 106.6349054, + 10.8449022 + ], + [ + 106.6361587, + 10.8461774 + ], + [ + 106.6397425, + 10.8489265 + ], + [ + 106.6404472, + 10.8493675 + ], + [ + 106.6415378, + 10.8497153 + ], + [ + 106.6428154, + 10.8509928 + ], + [ + 106.6430296, + 10.8523306 + ], + [ + 106.6433751, + 10.8525687 + ], + [ + 106.6440861, + 10.8527104 + ], + [ + 106.6444299, + 10.8529893 + ], + [ + 106.6445125, + 10.8538749 + ], + [ + 106.6447211, + 10.8543505 + ], + [ + 106.6451741, + 10.8545293 + ], + [ + 106.6460279, + 10.8539584 + ], + [ + 106.6463712, + 10.8541026 + ], + [ + 106.6465804, + 10.8563601 + ], + [ + 106.6470451, + 10.8579867 + ], + [ + 106.648915, + 10.8589213 + ], + [ + 106.6500186, + 10.8591027 + ], + [ + 106.651062, + 10.8599934 + ], + [ + 106.6525657, + 10.8607922 + ], + [ + 106.653078, + 10.860505 + ], + [ + 106.6539414, + 10.8593362 + ], + [ + 106.6555845, + 10.8588443 + ], + [ + 106.6568062, + 10.8577868 + ], + [ + 106.6573466, + 10.8577011 + ], + [ + 106.6582527, + 10.8580289 + ], + [ + 106.6588817, + 10.8578978 + ], + [ + 106.6612083, + 10.8558868 + ], + [ + 106.6627642, + 10.8555363 + ], + [ + 106.6637371, + 10.8556238 + ], + [ + 106.6659111, + 10.8562877 + ], + [ + 106.667055, + 10.8560005 + ], + [ + 106.667983, + 10.8575579 + ], + [ + 106.6689809, + 10.858234 + ], + [ + 106.6690449, + 10.858152 + ], + [ + 106.6700828, + 10.8587179 + ], + [ + 106.670645, + 10.8595831 + ], + [ + 106.6724463, + 10.8606255 + ], + [ + 106.6728044, + 10.8606907 + ], + [ + 106.6732013, + 10.8605208 + ], + [ + 106.6734788, + 10.8602221 + ], + [ + 106.674247, + 10.8585881 + ], + [ + 106.6750963, + 10.8573703 + ], + [ + 106.675202, + 10.8568352 + ], + [ + 106.6750955, + 10.8548985 + ], + [ + 106.6758078, + 10.8533005 + ], + [ + 106.6758943, + 10.8520676 + ], + [ + 106.6793057, + 10.8508052 + ], + [ + 106.6830974, + 10.8517582 + ], + [ + 106.683898, + 10.8516093 + ], + [ + 106.6843408, + 10.8512314 + ], + [ + 106.6844429, + 10.8506183 + ], + [ + 106.6830417, + 10.8485442 + ], + [ + 106.6829689, + 10.847913 + ], + [ + 106.6831958, + 10.8473938 + ], + [ + 106.6836123, + 10.8471514 + ], + [ + 106.6844431, + 10.8470612 + ], + [ + 106.6859324, + 10.8473958 + ], + [ + 106.6864596, + 10.8473719 + ], + [ + 106.6872836, + 10.8470764 + ], + [ + 106.6880694, + 10.8463487 + ], + [ + 106.6888066, + 10.8450172 + ], + [ + 106.689262, + 10.8435822 + ], + [ + 106.6887362, + 10.8404574 + ], + [ + 106.6889271, + 10.8388882 + ], + [ + 106.6906009, + 10.8363282 + ], + [ + 106.6916976, + 10.8317902 + ], + [ + 106.6921324, + 10.8308375 + ], + [ + 106.6928652, + 10.8302484 + ], + [ + 106.6941372, + 10.8301909 + ], + [ + 106.6951539, + 10.8309115 + ], + [ + 106.6957335, + 10.8323163 + ], + [ + 106.6962491, + 10.8329363 + ], + [ + 106.6991023, + 10.834231 + ], + [ + 106.7001075, + 10.8349207 + ], + [ + 106.7007034, + 10.8359997 + ], + [ + 106.7011125, + 10.8378423 + ], + [ + 106.7027717, + 10.8391736 + ], + [ + 106.6994467, + 10.8413013 + ], + [ + 106.698748, + 10.8421061 + ], + [ + 106.6982049, + 10.8430531 + ], + [ + 106.697867, + 10.8446041 + ], + [ + 106.697885, + 10.8460493 + ], + [ + 106.6983048, + 10.8487142 + ], + [ + 106.6988781, + 10.849789 + ], + [ + 106.6997415, + 10.850528 + ], + [ + 106.7006584, + 10.8509931 + ], + [ + 106.7041691, + 10.8517419 + ], + [ + 106.7060335, + 10.8517621 + ], + [ + 106.7115481, + 10.851082 + ], + [ + 106.7136919, + 10.8514038 + ], + [ + 106.71487, + 10.85198 + ], + [ + 106.7155427, + 10.8524259 + ], + [ + 106.7171969, + 10.8541553 + ], + [ + 106.7181037, + 10.855809 + ], + [ + 106.7182007, + 10.8570173 + ], + [ + 106.7174084, + 10.8606822 + ], + [ + 106.7168419, + 10.862077 + ], + [ + 106.7155158, + 10.8639953 + ], + [ + 106.7142809, + 10.865054 + ], + [ + 106.7131142, + 10.8657067 + ], + [ + 106.7118781, + 10.8661331 + ], + [ + 106.7101779, + 10.8664698 + ], + [ + 106.7027211, + 10.8671672 + ], + [ + 106.701602, + 10.8675029 + ], + [ + 106.7005135, + 10.8680845 + ], + [ + 106.6978828, + 10.8702404 + ], + [ + 106.6956213, + 10.8726752 + ], + [ + 106.6921642, + 10.8770668 + ], + [ + 106.6897724, + 10.8804197 + ], + [ + 106.689155, + 10.8819699 + ], + [ + 106.6889612, + 10.8831161 + ], + [ + 106.6889896, + 10.8842815 + ], + [ + 106.6892418, + 10.8854263 + ], + [ + 106.6897093, + 10.886504 + ], + [ + 106.6936895, + 10.8929262 + ], + [ + 106.6944572, + 10.8951658 + ], + [ + 106.6945, + 10.89666 + ], + [ + 106.6943267, + 10.8981028 + ], + [ + 106.6933795, + 10.9022668 + ], + [ + 106.692787, + 10.9041992 + ], + [ + 106.6913926, + 10.9036957 + ], + [ + 106.6905714, + 10.9032166 + ], + [ + 106.6890428, + 10.9018194 + ], + [ + 106.6857091, + 10.8999511 + ], + [ + 106.6815461, + 10.8983942 + ], + [ + 106.6796678, + 10.9036398 + ], + [ + 106.6773017, + 10.903033 + ], + [ + 106.6734395, + 10.9017156 + ], + [ + 106.6718621, + 10.9015639 + ], + [ + 106.6706343, + 10.9011647 + ], + [ + 106.6707075, + 10.8990249 + ], + [ + 106.6703254, + 10.8961665 + ], + [ + 106.6696736, + 10.8941627 + ], + [ + 106.6693551, + 10.8943597 + ], + [ + 106.6692378, + 10.8939553 + ], + [ + 106.6688833, + 10.8909129 + ], + [ + 106.6672198, + 10.8917331 + ], + [ + 106.6655352, + 10.8921015 + ], + [ + 106.6650114, + 10.8924491 + ], + [ + 106.6634046, + 10.8929634 + ], + [ + 106.6623357, + 10.8929426 + ], + [ + 106.6606086, + 10.8925672 + ], + [ + 106.6575649, + 10.8924977 + ], + [ + 106.6561492, + 10.8920807 + ], + [ + 106.6544929, + 10.8920529 + ], + [ + 106.6532259, + 10.8917401 + ], + [ + 106.6531126, + 10.8923518 + ], + [ + 106.6525039, + 10.8930746 + ], + [ + 106.6524979, + 10.8943778 + ], + [ + 106.6522703, + 10.8948819 + ], + [ + 106.6514572, + 10.8949046 + ], + [ + 106.6496333, + 10.8953576 + ], + [ + 106.6485068, + 10.8950416 + ], + [ + 106.6468517, + 10.8948581 + ], + [ + 106.6468924, + 10.8945782 + ], + [ + 106.6458782, + 10.8940828 + ], + [ + 106.6451379, + 10.8942198 + ], + [ + 106.6442903, + 10.8939459 + ], + [ + 106.6435393, + 10.8939248 + ], + [ + 106.6431209, + 10.8937457 + ], + [ + 106.6428527, + 10.8934086 + ], + [ + 106.6427776, + 10.8927764 + ], + [ + 106.6425094, + 10.8924077 + ], + [ + 106.6409537, + 10.89206 + ], + [ + 106.6396555, + 10.8918388 + ], + [ + 106.6318127, + 10.8917124 + ], + [ + 106.6312763, + 10.8912172 + ], + [ + 106.6294524, + 10.8868976 + ], + [ + 106.6290661, + 10.8863076 + ], + [ + 106.6286584, + 10.8858124 + ], + [ + 106.6252145, + 10.8831995 + ], + [ + 106.6253325, + 10.8829677 + ], + [ + 106.6279236, + 10.881226 + ], + [ + 106.6255941, + 10.8780112 + ], + [ + 106.6194002, + 10.8711719 + ], + [ + 106.6149189, + 10.8703369 + ], + [ + 106.6151201, + 10.8698825 + ], + [ + 106.6155117, + 10.8673445 + ], + [ + 106.612047, + 10.8625043 + ], + [ + 106.6072559, + 10.8552972 + ], + [ + 106.6153254, + 10.8426844 + ], + [ + 106.6088228, + 10.8368728 + ], + [ + 106.608031, + 10.8359612 + ], + [ + 106.6043611, + 10.8298733 + ], + [ + 106.603739, + 10.8282162 + ], + [ + 106.6032773, + 10.8262326 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-q3.json b/src/data/boundaries/tphcm/tphcm-q3.json new file mode 100644 index 0000000..9bb2441 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-q3.json @@ -0,0 +1,186 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-Q3", + "name": "District 3", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 4.9, + "bbox": [ + 106.66429, + 10.76543, + 106.69813, + 10.79251 + ], + "center": [ + 10.78146, + 106.68284 + ], + "generatedAt": "2026-08-30T07:34:25.565Z", + "osm": "relation/3819816" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6642925, + 10.7871257 + ], + [ + 106.6816674, + 10.7778253 + ], + [ + 106.6827966, + 10.7758944 + ], + [ + 106.6776153, + 10.7715083 + ], + [ + 106.6756419, + 10.7693963 + ], + [ + 106.6744365, + 10.7676889 + ], + [ + 106.6816889, + 10.7654323 + ], + [ + 106.6981274, + 10.7828849 + ], + [ + 106.6861498, + 10.7925061 + ], + [ + 106.6857326, + 10.7922396 + ], + [ + 106.6835234, + 10.7924087 + ], + [ + 106.6822586, + 10.791826 + ], + [ + 106.681669, + 10.7912391 + ], + [ + 106.6810562, + 10.7913798 + ], + [ + 106.6801247, + 10.7912414 + ], + [ + 106.6796614, + 10.7909694 + ], + [ + 106.6792834, + 10.79104 + ], + [ + 106.6778833, + 10.7907561 + ], + [ + 106.6777765, + 10.790904 + ], + [ + 106.6768404, + 10.7906094 + ], + [ + 106.6767569, + 10.7904543 + ], + [ + 106.6764704, + 10.7905835 + ], + [ + 106.6754926, + 10.7902741 + ], + [ + 106.6749739, + 10.7902903 + ], + [ + 106.6746612, + 10.7900096 + ], + [ + 106.6740013, + 10.7903561 + ], + [ + 106.6737911, + 10.7899497 + ], + [ + 106.6721772, + 10.7897854 + ], + [ + 106.672193, + 10.7895631 + ], + [ + 106.6719005, + 10.7893747 + ], + [ + 106.6710336, + 10.7892987 + ], + [ + 106.6707794, + 10.7879103 + ], + [ + 106.6681063, + 10.7888395 + ], + [ + 106.6667209, + 10.789603 + ], + [ + 106.6661193, + 10.7893948 + ], + [ + 106.6650608, + 10.7901541 + ], + [ + 106.6647497, + 10.7901109 + ], + [ + 106.6651983, + 10.7886751 + ], + [ + 106.6642925, + 10.7871257 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-q4.json b/src/data/boundaries/tphcm/tphcm-q4.json new file mode 100644 index 0000000..83f1ae1 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-q4.json @@ -0,0 +1,134 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-Q4", + "name": "District 4", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 4.2, + "bbox": [ + 106.68642, + 10.75171, + 106.72228, + 10.76976 + ], + "center": [ + 10.75846, + 106.70554 + ], + "generatedAt": "2026-08-30T07:34:27.069Z", + "osm": "relation/2778323" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6864219, + 10.7517073 + ], + [ + 106.6917998, + 10.7523424 + ], + [ + 106.7155179, + 10.7524726 + ], + [ + 106.7170231, + 10.7526249 + ], + [ + 106.7186608, + 10.7532452 + ], + [ + 106.7195276, + 10.7540192 + ], + [ + 106.7203028, + 10.7551379 + ], + [ + 106.7222803, + 10.7592738 + ], + [ + 106.7177225, + 10.7608338 + ], + [ + 106.7143725, + 10.7624818 + ], + [ + 106.7127219, + 10.7635176 + ], + [ + 106.7111806, + 10.7648337 + ], + [ + 106.7102524, + 10.7659441 + ], + [ + 106.7091195, + 10.7677888 + ], + [ + 106.7082991, + 10.7697601 + ], + [ + 106.7056291, + 10.7689242 + ], + [ + 106.7035693, + 10.7680314 + ], + [ + 106.7012074, + 10.7653499 + ], + [ + 106.6982152, + 10.7633005 + ], + [ + 106.6959129, + 10.7603701 + ], + [ + 106.694486, + 10.7592226 + ], + [ + 106.6916093, + 10.7575954 + ], + [ + 106.6897117, + 10.7559422 + ], + [ + 106.6869795, + 10.753218 + ], + [ + 106.6866062, + 10.7526228 + ], + [ + 106.6864219, + 10.7517073 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-q5.json b/src/data/boundaries/tphcm/tphcm-q5.json new file mode 100644 index 0000000..7d43e74 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-q5.json @@ -0,0 +1,146 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-Q5", + "name": "District 5", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 4.3, + "bbox": [ + 106.65051, + 10.74614, + 106.68727, + 10.76543 + ], + "center": [ + 10.75494, + 106.66946 + ], + "generatedAt": "2026-08-30T07:34:28.965Z", + "osm": "relation/3820432" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6505141, + 10.7514823 + ], + [ + 106.6532758, + 10.7516666 + ], + [ + 106.6533937, + 10.750473 + ], + [ + 106.6538595, + 10.7485698 + ], + [ + 106.6550498, + 10.7461405 + ], + [ + 106.6577973, + 10.7476151 + ], + [ + 106.6654229, + 10.7501579 + ], + [ + 106.6666192, + 10.7501579 + ], + [ + 106.671196, + 10.7493132 + ], + [ + 106.673426, + 10.7487462 + ], + [ + 106.6752972, + 10.7487828 + ], + [ + 106.675957, + 10.7490121 + ], + [ + 106.6764033, + 10.7494064 + ], + [ + 106.6766246, + 10.7500716 + ], + [ + 106.6767259, + 10.7513448 + ], + [ + 106.6770963, + 10.7516981 + ], + [ + 106.679133, + 10.7517139 + ], + [ + 106.6812255, + 10.75198 + ], + [ + 106.6837322, + 10.7512804 + ], + [ + 106.6850814, + 10.7511236 + ], + [ + 106.6864219, + 10.7517073 + ], + [ + 106.6866062, + 10.7526228 + ], + [ + 106.6872747, + 10.753519 + ], + [ + 106.6854624, + 10.7559828 + ], + [ + 106.6816889, + 10.7654323 + ], + [ + 106.6812069, + 10.7652911 + ], + [ + 106.6747019, + 10.7610637 + ], + [ + 106.6510904, + 10.7563386 + ], + [ + 106.6505141, + 10.7514823 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-q6.json b/src/data/boundaries/tphcm/tphcm-q6.json new file mode 100644 index 0000000..0498235 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-q6.json @@ -0,0 +1,254 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-Q6", + "name": "District 6", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 7.2, + "bbox": [ + 106.62108, + 10.72973, + 106.65505, + 10.76202 + ], + "center": [ + 10.74587, + 106.63524 + ], + "generatedAt": "2026-08-30T07:34:30.860Z", + "osm": "relation/6228792" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6210796, + 10.7340559 + ], + [ + 106.6215381, + 10.7340412 + ], + [ + 106.622237, + 10.7347042 + ], + [ + 106.6236549, + 10.7353804 + ], + [ + 106.6240796, + 10.7357855 + ], + [ + 106.6244153, + 10.7357988 + ], + [ + 106.6245587, + 10.7347465 + ], + [ + 106.6239795, + 10.7319717 + ], + [ + 106.6241397, + 10.7314621 + ], + [ + 106.6260492, + 10.731423 + ], + [ + 106.6271275, + 10.7317319 + ], + [ + 106.6276212, + 10.7316954 + ], + [ + 106.6278287, + 10.7311138 + ], + [ + 106.6274048, + 10.7305413 + ], + [ + 106.6272047, + 10.7297295 + ], + [ + 106.6300523, + 10.7312836 + ], + [ + 106.6329789, + 10.732892 + ], + [ + 106.6494595, + 10.7429234 + ], + [ + 106.6550498, + 10.7461405 + ], + [ + 106.6538595, + 10.7485698 + ], + [ + 106.6533937, + 10.750473 + ], + [ + 106.6532758, + 10.7516666 + ], + [ + 106.6505141, + 10.7514823 + ], + [ + 106.6507413, + 10.7534041 + ], + [ + 106.6384948, + 10.7546983 + ], + [ + 106.6376157, + 10.7546647 + ], + [ + 106.6374635, + 10.7553954 + ], + [ + 106.6342046, + 10.758974 + ], + [ + 106.6337331, + 10.7581715 + ], + [ + 106.632997, + 10.758465 + ], + [ + 106.6325973, + 10.7588418 + ], + [ + 106.6318678, + 10.7588932 + ], + [ + 106.6310014, + 10.7593728 + ], + [ + 106.6306313, + 10.7597575 + ], + [ + 106.6298119, + 10.7597483 + ], + [ + 106.6297542, + 10.7601607 + ], + [ + 106.6296, + 10.760212 + ], + [ + 106.6289643, + 10.7603333 + ], + [ + 106.6285043, + 10.7602239 + ], + [ + 106.6281194, + 10.7604044 + ], + [ + 106.6262646, + 10.7605981 + ], + [ + 106.6258409, + 10.7604321 + ], + [ + 106.6253151, + 10.7605546 + ], + [ + 106.6251395, + 10.7607852 + ], + [ + 106.6247143, + 10.7607509 + ], + [ + 106.6244093, + 10.7617951 + ], + [ + 106.6241619, + 10.7620157 + ], + [ + 106.6252577, + 10.7574684 + ], + [ + 106.6243798, + 10.7556165 + ], + [ + 106.6237949, + 10.7455106 + ], + [ + 106.6231201, + 10.7451195 + ], + [ + 106.6231052, + 10.7447064 + ], + [ + 106.6217503, + 10.7413933 + ], + [ + 106.6220494, + 10.7387654 + ], + [ + 106.6221717, + 10.7386272 + ], + [ + 106.6210796, + 10.7340559 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-q7.json b/src/data/boundaries/tphcm/tphcm-q7.json new file mode 100644 index 0000000..9a2fc40 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-q7.json @@ -0,0 +1,546 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-Q7", + "name": "District 7", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 35.7, + "bbox": [ + 106.69009, + 10.69795, + 106.76866, + 10.77763 + ], + "center": [ + 10.73646, + 106.72962 + ], + "generatedAt": "2026-08-30T07:34:32.649Z", + "osm": "relation/2764875" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6900942, + 10.7252801 + ], + [ + 106.6927747, + 10.725626 + ], + [ + 106.6952228, + 10.7249052 + ], + [ + 106.6984219, + 10.7243384 + ], + [ + 106.7001917, + 10.7244822 + ], + [ + 106.7022997, + 10.7251939 + ], + [ + 106.7034075, + 10.7253829 + ], + [ + 106.7045232, + 10.7253227 + ], + [ + 106.7061496, + 10.7248806 + ], + [ + 106.7068232, + 10.7245022 + ], + [ + 106.7072977, + 10.7238093 + ], + [ + 106.7074288, + 10.7228109 + ], + [ + 106.7073417, + 10.7215558 + ], + [ + 106.70756, + 10.7205352 + ], + [ + 106.7080444, + 10.7199277 + ], + [ + 106.7088177, + 10.7195863 + ], + [ + 106.7092937, + 10.7197001 + ], + [ + 106.7106391, + 10.7207056 + ], + [ + 106.7112144, + 10.7208069 + ], + [ + 106.717675, + 10.7190261 + ], + [ + 106.7184432, + 10.7190011 + ], + [ + 106.7190232, + 10.7193951 + ], + [ + 106.7199684, + 10.721549 + ], + [ + 106.7205028, + 10.7221066 + ], + [ + 106.7210606, + 10.7223467 + ], + [ + 106.7244476, + 10.7211278 + ], + [ + 106.7250856, + 10.720479 + ], + [ + 106.725275, + 10.7197654 + ], + [ + 106.7252165, + 10.719299 + ], + [ + 106.7234096, + 10.7170245 + ], + [ + 106.7230856, + 10.7162545 + ], + [ + 106.7230504, + 10.7155521 + ], + [ + 106.7237023, + 10.7139434 + ], + [ + 106.7253004, + 10.7120346 + ], + [ + 106.7257464, + 10.7106827 + ], + [ + 106.7257304, + 10.7086976 + ], + [ + 106.7247136, + 10.7066492 + ], + [ + 106.7245972, + 10.7058075 + ], + [ + 106.7249089, + 10.7048314 + ], + [ + 106.7260703, + 10.7025583 + ], + [ + 106.7263609, + 10.6999459 + ], + [ + 106.7268836, + 10.6992594 + ], + [ + 106.7286655, + 10.698636 + ], + [ + 106.731293, + 10.6980354 + ], + [ + 106.7329744, + 10.6979464 + ], + [ + 106.7336579, + 10.6981902 + ], + [ + 106.7341867, + 10.6988316 + ], + [ + 106.7346024, + 10.7014355 + ], + [ + 106.7349768, + 10.7023049 + ], + [ + 106.7356646, + 10.7030169 + ], + [ + 106.7363214, + 10.7033525 + ], + [ + 106.7370473, + 10.7034952 + ], + [ + 106.7453833, + 10.7032515 + ], + [ + 106.7495477, + 10.7046114 + ], + [ + 106.751906, + 10.7051207 + ], + [ + 106.7512155, + 10.7092477 + ], + [ + 106.7512531, + 10.713473 + ], + [ + 106.7519171, + 10.7185809 + ], + [ + 106.752304, + 10.7204199 + ], + [ + 106.7528834, + 10.7219417 + ], + [ + 106.7536556, + 10.7234634 + ], + [ + 106.764866, + 10.7377245 + ], + [ + 106.7686561, + 10.7431427 + ], + [ + 106.7605662, + 10.7440812 + ], + [ + 106.758578, + 10.7440515 + ], + [ + 106.75522, + 10.7435471 + ], + [ + 106.7512499, + 10.7422959 + ], + [ + 106.7491947, + 10.742096 + ], + [ + 106.7473831, + 10.742354 + ], + [ + 106.7463773, + 10.7429059 + ], + [ + 106.7455949, + 10.7436167 + ], + [ + 106.7447776, + 10.7449103 + ], + [ + 106.744245, + 10.746242 + ], + [ + 106.7440823, + 10.7476196 + ], + [ + 106.7443435, + 10.7493188 + ], + [ + 106.745346, + 10.751807 + ], + [ + 106.7464144, + 10.7536636 + ], + [ + 106.7480829, + 10.756012 + ], + [ + 106.7504998, + 10.7589585 + ], + [ + 106.7520333, + 10.7613851 + ], + [ + 106.7524697, + 10.7626517 + ], + [ + 106.7526877, + 10.7639233 + ], + [ + 106.7527261, + 10.7651092 + ], + [ + 106.7525521, + 10.7662674 + ], + [ + 106.7518294, + 10.7684425 + ], + [ + 106.7508683, + 10.770106 + ], + [ + 106.7489684, + 10.7722975 + ], + [ + 106.7467441, + 10.7743204 + ], + [ + 106.7440514, + 10.7763208 + ], + [ + 106.7427218, + 10.7770556 + ], + [ + 106.740673, + 10.7776336 + ], + [ + 106.7389863, + 10.7776019 + ], + [ + 106.7378086, + 10.7772026 + ], + [ + 106.7365916, + 10.776362 + ], + [ + 106.7357404, + 10.7753754 + ], + [ + 106.7351494, + 10.7742426 + ], + [ + 106.7346271, + 10.7722869 + ], + [ + 106.7343574, + 10.7671217 + ], + [ + 106.7339688, + 10.764798 + ], + [ + 106.733272, + 10.7627184 + ], + [ + 106.7321193, + 10.7610314 + ], + [ + 106.7308536, + 10.760207 + ], + [ + 106.7292256, + 10.7596409 + ], + [ + 106.7250908, + 10.75915 + ], + [ + 106.7222803, + 10.7592738 + ], + [ + 106.7200864, + 10.7547764 + ], + [ + 106.7192636, + 10.7537245 + ], + [ + 106.7184667, + 10.7531384 + ], + [ + 106.7174356, + 10.7527259 + ], + [ + 106.7158543, + 10.7524833 + ], + [ + 106.6917998, + 10.7523424 + ], + [ + 106.6902025, + 10.7521092 + ], + [ + 106.6903889, + 10.7500103 + ], + [ + 106.6919585, + 10.7479882 + ], + [ + 106.6925424, + 10.7469369 + ], + [ + 106.692855, + 10.7458472 + ], + [ + 106.6927935, + 10.7440551 + ], + [ + 106.6919158, + 10.7427513 + ], + [ + 106.6918898, + 10.7420137 + ], + [ + 106.6943747, + 10.7379754 + ], + [ + 106.6948785, + 10.7368653 + ], + [ + 106.6949594, + 10.7361939 + ], + [ + 106.6947688, + 10.7353862 + ], + [ + 106.6937685, + 10.7335271 + ], + [ + 106.6926419, + 10.732463 + ], + [ + 106.6908453, + 10.7312186 + ], + [ + 106.6903276, + 10.7304666 + ], + [ + 106.690195, + 10.7297562 + ], + [ + 106.6900942, + 10.7252801 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-q8.json b/src/data/boundaries/tphcm/tphcm-q8.json new file mode 100644 index 0000000..3642a57 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-q8.json @@ -0,0 +1,438 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-Q8", + "name": "District 8", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 19.8, + "bbox": [ + 106.59456, + 10.68985, + 106.69285, + 10.75211 + ], + "center": [ + 10.7245, + 106.64055 + ], + "generatedAt": "2026-08-30T07:34:34.548Z", + "osm": "relation/6888445" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.5945559, + 10.6898539 + ], + [ + 106.627758, + 10.6990013 + ], + [ + 106.6422442, + 10.7278381 + ], + [ + 106.642375, + 10.7275872 + ], + [ + 106.6431959, + 10.7276667 + ], + [ + 106.6437051, + 10.7280418 + ], + [ + 106.6453784, + 10.7286487 + ], + [ + 106.6453111, + 10.7290667 + ], + [ + 106.6455175, + 10.7291327 + ], + [ + 106.6499642, + 10.7286981 + ], + [ + 106.6500848, + 10.7287391 + ], + [ + 106.6494424, + 10.7302755 + ], + [ + 106.6497356, + 10.7304894 + ], + [ + 106.6548687, + 10.7318066 + ], + [ + 106.6561147, + 10.7323143 + ], + [ + 106.657065, + 10.732269 + ], + [ + 106.6575447, + 10.7323554 + ], + [ + 106.6576721, + 10.7325205 + ], + [ + 106.6593625, + 10.7326767 + ], + [ + 106.6595859, + 10.7329354 + ], + [ + 106.6611839, + 10.7331928 + ], + [ + 106.6634511, + 10.7339882 + ], + [ + 106.6641899, + 10.7339573 + ], + [ + 106.6657348, + 10.7342221 + ], + [ + 106.6659431, + 10.7323951 + ], + [ + 106.6701997, + 10.735145 + ], + [ + 106.6701103, + 10.7352704 + ], + [ + 106.6717283, + 10.7362667 + ], + [ + 106.6718026, + 10.7361635 + ], + [ + 106.6736405, + 10.7373836 + ], + [ + 106.6744609, + 10.7362303 + ], + [ + 106.6767759, + 10.7350865 + ], + [ + 106.6781027, + 10.7354312 + ], + [ + 106.678108, + 10.7350182 + ], + [ + 106.6798082, + 10.7346882 + ], + [ + 106.6799127, + 10.7351943 + ], + [ + 106.6810735, + 10.7349618 + ], + [ + 106.6815584, + 10.7345719 + ], + [ + 106.6822111, + 10.7347314 + ], + [ + 106.6820757, + 10.736278 + ], + [ + 106.6822815, + 10.7370079 + ], + [ + 106.6830457, + 10.7385115 + ], + [ + 106.6829835, + 10.7395195 + ], + [ + 106.686892, + 10.7400493 + ], + [ + 106.6921478, + 10.7415213 + ], + [ + 106.6918898, + 10.7420137 + ], + [ + 106.6918471, + 10.7425352 + ], + [ + 106.6927935, + 10.7440551 + ], + [ + 106.692855, + 10.7458472 + ], + [ + 106.6925424, + 10.7469369 + ], + [ + 106.6919585, + 10.7479882 + ], + [ + 106.6903889, + 10.7500103 + ], + [ + 106.6902025, + 10.7521092 + ], + [ + 106.6864219, + 10.7517073 + ], + [ + 106.6848442, + 10.7510971 + ], + [ + 106.6812255, + 10.75198 + ], + [ + 106.679133, + 10.7517139 + ], + [ + 106.6771808, + 10.7517228 + ], + [ + 106.6767459, + 10.7514071 + ], + [ + 106.6766246, + 10.7500716 + ], + [ + 106.67631, + 10.7492777 + ], + [ + 106.6757212, + 10.7489065 + ], + [ + 106.6749964, + 10.7487357 + ], + [ + 106.673426, + 10.7487462 + ], + [ + 106.671196, + 10.7493132 + ], + [ + 106.6658361, + 10.7501969 + ], + [ + 106.6647248, + 10.7500024 + ], + [ + 106.6587243, + 10.7479588 + ], + [ + 106.6558803, + 10.7466435 + ], + [ + 106.6494595, + 10.7429234 + ], + [ + 106.6329789, + 10.732892 + ], + [ + 106.6272047, + 10.7297295 + ], + [ + 106.6274048, + 10.7305413 + ], + [ + 106.6278287, + 10.7311138 + ], + [ + 106.6276878, + 10.731656 + ], + [ + 106.6272354, + 10.7317441 + ], + [ + 106.6262132, + 10.7314364 + ], + [ + 106.6244427, + 10.7313794 + ], + [ + 106.6240144, + 10.7316488 + ], + [ + 106.6245587, + 10.7347465 + ], + [ + 106.6244153, + 10.7357988 + ], + [ + 106.6240796, + 10.7357855 + ], + [ + 106.6236549, + 10.7353804 + ], + [ + 106.622237, + 10.7347042 + ], + [ + 106.6215381, + 10.7340412 + ], + [ + 106.6210796, + 10.7340559 + ], + [ + 106.6190341, + 10.7162048 + ], + [ + 106.6182121, + 10.7160219 + ], + [ + 106.6174368, + 10.7152573 + ], + [ + 106.615558, + 10.7150037 + ], + [ + 106.6160281, + 10.7142529 + ], + [ + 106.6065404, + 10.7119137 + ], + [ + 106.6038209, + 10.7109632 + ], + [ + 106.6072782, + 10.70834 + ], + [ + 106.6086473, + 10.7062665 + ], + [ + 106.6058878, + 10.7047797 + ], + [ + 106.6012667, + 10.7034806 + ], + [ + 106.5989167, + 10.7022033 + ], + [ + 106.5973069, + 10.7016164 + ], + [ + 106.5973805, + 10.6997062 + ], + [ + 106.5970397, + 10.6975914 + ], + [ + 106.5945559, + 10.6898539 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-tanbinh.json b/src/data/boundaries/tphcm/tphcm-tanbinh.json new file mode 100644 index 0000000..6e7163c --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-tanbinh.json @@ -0,0 +1,462 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-TANBINH", + "name": "Tan Binh", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 22.5, + "bbox": [ + 106.62789, + 10.76891, + 106.67861, + 10.83725 + ], + "center": [ + 10.80882, + 106.65239 + ], + "generatedAt": "2026-08-30T07:34:48.592Z", + "osm": "relation/6846177" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6278908, + 10.8246854 + ], + [ + 106.6295221, + 10.8232091 + ], + [ + 106.6302464, + 10.8219341 + ], + [ + 106.6357729, + 10.8038388 + ], + [ + 106.6362173, + 10.8026501 + ], + [ + 106.6367349, + 10.8018264 + ], + [ + 106.6382682, + 10.7959026 + ], + [ + 106.6393945, + 10.7923729 + ], + [ + 106.6429519, + 10.7822253 + ], + [ + 106.6434517, + 10.7811899 + ], + [ + 106.6504264, + 10.7711933 + ], + [ + 106.6518883, + 10.7691722 + ], + [ + 106.6523283, + 10.7689114 + ], + [ + 106.6525131, + 10.7693077 + ], + [ + 106.6532259, + 10.7753215 + ], + [ + 106.6534406, + 10.7758836 + ], + [ + 106.6559493, + 10.7784506 + ], + [ + 106.6561318, + 10.7777457 + ], + [ + 106.6646464, + 10.7869335 + ], + [ + 106.6642925, + 10.7871257 + ], + [ + 106.6651983, + 10.7886751 + ], + [ + 106.6647497, + 10.7901109 + ], + [ + 106.6650608, + 10.7901541 + ], + [ + 106.6661193, + 10.7893948 + ], + [ + 106.6667209, + 10.789603 + ], + [ + 106.6667297, + 10.7903408 + ], + [ + 106.6659623, + 10.790869 + ], + [ + 106.6684519, + 10.7941512 + ], + [ + 106.6682731, + 10.7942846 + ], + [ + 106.66854, + 10.7970376 + ], + [ + 106.668547, + 10.7972171 + ], + [ + 106.6683834, + 10.797225 + ], + [ + 106.6684739, + 10.798224 + ], + [ + 106.6690275, + 10.7981784 + ], + [ + 106.669058, + 10.7984185 + ], + [ + 106.6688541, + 10.798431 + ], + [ + 106.6688635, + 10.7986978 + ], + [ + 106.6691093, + 10.7988861 + ], + [ + 106.669816, + 10.7986179 + ], + [ + 106.6698792, + 10.7989467 + ], + [ + 106.6673501, + 10.800385 + ], + [ + 106.668137, + 10.8027002 + ], + [ + 106.6686228, + 10.8033104 + ], + [ + 106.6690519, + 10.803317 + ], + [ + 106.6694258, + 10.8066736 + ], + [ + 106.6699015, + 10.8068995 + ], + [ + 106.6699978, + 10.8077159 + ], + [ + 106.6706774, + 10.807653 + ], + [ + 106.6706965, + 10.8078137 + ], + [ + 106.6710395, + 10.8078723 + ], + [ + 106.6710368, + 10.8086713 + ], + [ + 106.6706718, + 10.8087065 + ], + [ + 106.6707236, + 10.8098496 + ], + [ + 106.671651, + 10.8094077 + ], + [ + 106.672404, + 10.8106675 + ], + [ + 106.6721512, + 10.8109242 + ], + [ + 106.6720607, + 10.8125837 + ], + [ + 106.6725375, + 10.8139935 + ], + [ + 106.673668, + 10.8146291 + ], + [ + 106.6745478, + 10.8147342 + ], + [ + 106.6749756, + 10.8151379 + ], + [ + 106.6760401, + 10.814857 + ], + [ + 106.676116, + 10.8151054 + ], + [ + 106.6756901, + 10.8153569 + ], + [ + 106.6757402, + 10.8160225 + ], + [ + 106.6756024, + 10.8164998 + ], + [ + 106.6741726, + 10.8179961 + ], + [ + 106.6748586, + 10.8183201 + ], + [ + 106.6733203, + 10.8223634 + ], + [ + 106.6750903, + 10.8235374 + ], + [ + 106.6767593, + 10.8241335 + ], + [ + 106.6781916, + 10.8250878 + ], + [ + 106.678606, + 10.8256352 + ], + [ + 106.6785859, + 10.826139 + ], + [ + 106.6779257, + 10.8268289 + ], + [ + 106.6774204, + 10.8270321 + ], + [ + 106.6743134, + 10.8262207 + ], + [ + 106.6734213, + 10.8277727 + ], + [ + 106.6731419, + 10.8279436 + ], + [ + 106.670441, + 10.8271654 + ], + [ + 106.6680099, + 10.8283849 + ], + [ + 106.6661223, + 10.8284392 + ], + [ + 106.6639467, + 10.8306232 + ], + [ + 106.6634298, + 10.8307011 + ], + [ + 106.6627645, + 10.8312538 + ], + [ + 106.661986, + 10.8313787 + ], + [ + 106.6608741, + 10.8324051 + ], + [ + 106.6592317, + 10.8332612 + ], + [ + 106.6571005, + 10.8353982 + ], + [ + 106.655547, + 10.8358284 + ], + [ + 106.6555819, + 10.8360062 + ], + [ + 106.6520426, + 10.836613 + ], + [ + 106.6520627, + 10.8368183 + ], + [ + 106.6519167, + 10.8368321 + ], + [ + 106.6518955, + 10.8366144 + ], + [ + 106.6475983, + 10.8366566 + ], + [ + 106.6464825, + 10.8368769 + ], + [ + 106.646312, + 10.8372532 + ], + [ + 106.6425122, + 10.8281991 + ], + [ + 106.6414136, + 10.8286759 + ], + [ + 106.6415057, + 10.828921 + ], + [ + 106.6407848, + 10.8292595 + ], + [ + 106.6381996, + 10.8299334 + ], + [ + 106.6339409, + 10.8323551 + ], + [ + 106.632358, + 10.8329517 + ], + [ + 106.6313754, + 10.8302412 + ], + [ + 106.6301022, + 10.8275906 + ], + [ + 106.6278908, + 10.8246854 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-tanphu.json b/src/data/boundaries/tphcm/tphcm-tanphu.json new file mode 100644 index 0000000..91408e4 --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-tanphu.json @@ -0,0 +1,298 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-TANPHU", + "name": "Tan Phu", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 16, + "bbox": [ + 106.6074, + 10.75817, + 106.64768, + 10.82469 + ], + "center": [ + 10.79255, + 106.62689 + ], + "generatedAt": "2026-08-30T07:34:50.584Z", + "osm": "relation/6846128" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6074036, + 10.8082441 + ], + [ + 106.6075792, + 10.8075692 + ], + [ + 106.6085415, + 10.8056515 + ], + [ + 106.6136709, + 10.7967177 + ], + [ + 106.6152161, + 10.7936116 + ], + [ + 106.6184801, + 10.7853372 + ], + [ + 106.6212335, + 10.7772689 + ], + [ + 106.6214527, + 10.7762789 + ], + [ + 106.6215893, + 10.7733635 + ], + [ + 106.6241619, + 10.7620157 + ], + [ + 106.6244093, + 10.7617951 + ], + [ + 106.6247143, + 10.7607509 + ], + [ + 106.6251395, + 10.7607852 + ], + [ + 106.6253151, + 10.7605546 + ], + [ + 106.6258409, + 10.7604321 + ], + [ + 106.6262646, + 10.7605981 + ], + [ + 106.6281194, + 10.7604044 + ], + [ + 106.6285043, + 10.7602239 + ], + [ + 106.6289643, + 10.7603333 + ], + [ + 106.6296, + 10.760212 + ], + [ + 106.6297542, + 10.7601607 + ], + [ + 106.6298119, + 10.7597483 + ], + [ + 106.6306313, + 10.7597575 + ], + [ + 106.6310014, + 10.7593728 + ], + [ + 106.6318678, + 10.7588932 + ], + [ + 106.6325973, + 10.7588418 + ], + [ + 106.632997, + 10.758465 + ], + [ + 106.6337331, + 10.7581715 + ], + [ + 106.6340344, + 10.7587757 + ], + [ + 106.6350891, + 10.7600777 + ], + [ + 106.6357269, + 10.7627551 + ], + [ + 106.6356122, + 10.7695551 + ], + [ + 106.6376048, + 10.7689823 + ], + [ + 106.6377246, + 10.7693731 + ], + [ + 106.6392536, + 10.7704387 + ], + [ + 106.6415908, + 10.7725649 + ], + [ + 106.6421239, + 10.7721479 + ], + [ + 106.6438671, + 10.774622 + ], + [ + 106.6442952, + 10.7749853 + ], + [ + 106.6453628, + 10.7752275 + ], + [ + 106.6476803, + 10.7752257 + ], + [ + 106.6434517, + 10.7811899 + ], + [ + 106.6427251, + 10.7828118 + ], + [ + 106.6393945, + 10.7923729 + ], + [ + 106.6382682, + 10.7959026 + ], + [ + 106.6367349, + 10.8018264 + ], + [ + 106.6362173, + 10.8026501 + ], + [ + 106.6357729, + 10.8038388 + ], + [ + 106.6302464, + 10.8219341 + ], + [ + 106.6299024, + 10.8226839 + ], + [ + 106.6295221, + 10.8232091 + ], + [ + 106.6278908, + 10.8246854 + ], + [ + 106.6247915, + 10.8208015 + ], + [ + 106.623437, + 10.8195106 + ], + [ + 106.6214038, + 10.8188256 + ], + [ + 106.6196485, + 10.8186053 + ], + [ + 106.6191787, + 10.8187331 + ], + [ + 106.6177833, + 10.8196421 + ], + [ + 106.6160126, + 10.8196311 + ], + [ + 106.6148834, + 10.8187404 + ], + [ + 106.6131346, + 10.8178989 + ], + [ + 106.6108974, + 10.8160869 + ], + [ + 106.6097427, + 10.8148686 + ], + [ + 106.6089918, + 10.8144877 + ], + [ + 106.6076891, + 10.8130434 + ], + [ + 106.6078887, + 10.8129234 + ], + [ + 106.6074036, + 10.8082441 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm-thuduc.json b/src/data/boundaries/tphcm/tphcm-thuduc.json new file mode 100644 index 0000000..2a6c11e --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm-thuduc.json @@ -0,0 +1,1934 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM-THUDUC", + "name": "Thu Duc", + "level": "district", + "parent": "TPHCM", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 212.4, + "bbox": [ + 106.69783, + 10.74212, + 106.88176, + 10.89885 + ], + "center": [ + 10.82035, + 106.78951 + ], + "generatedAt": "2026-08-30T07:34:52.776Z", + "osm": "relation/19407794" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 106.6978347, + 10.8453608 + ], + [ + 106.69793, + 10.8441328 + ], + [ + 106.6982049, + 10.8430531 + ], + [ + 106.6991486, + 10.8416074 + ], + [ + 106.7004906, + 10.8405373 + ], + [ + 106.7057005, + 10.8372372 + ], + [ + 106.7066701, + 10.8364072 + ], + [ + 106.7074541, + 10.8354238 + ], + [ + 106.7080561, + 10.8342529 + ], + [ + 106.7085487, + 10.8325467 + ], + [ + 106.7087786, + 10.8305683 + ], + [ + 106.7089132, + 10.8268672 + ], + [ + 106.7094778, + 10.8248105 + ], + [ + 106.710393, + 10.8233593 + ], + [ + 106.7114575, + 10.8223464 + ], + [ + 106.7129396, + 10.821329 + ], + [ + 106.7143435, + 10.820807 + ], + [ + 106.7182123, + 10.8204147 + ], + [ + 106.7210385, + 10.8206229 + ], + [ + 106.7228982, + 10.8210397 + ], + [ + 106.7247757, + 10.821672 + ], + [ + 106.7281085, + 10.8231766 + ], + [ + 106.7299417, + 10.8243803 + ], + [ + 106.7318687, + 10.8261646 + ], + [ + 106.7337193, + 10.8284829 + ], + [ + 106.7359005, + 10.8321987 + ], + [ + 106.7368682, + 10.8335517 + ], + [ + 106.7379702, + 10.8346871 + ], + [ + 106.7395254, + 10.8354358 + ], + [ + 106.7407798, + 10.8355526 + ], + [ + 106.7421115, + 10.8353768 + ], + [ + 106.7472019, + 10.8336149 + ], + [ + 106.7481286, + 10.8330184 + ], + [ + 106.7491678, + 10.8320729 + ], + [ + 106.7504861, + 10.8301155 + ], + [ + 106.7511148, + 10.8284259 + ], + [ + 106.7512977, + 10.8272385 + ], + [ + 106.7513903, + 10.815905 + ], + [ + 106.7512788, + 10.8142506 + ], + [ + 106.7510108, + 10.8128749 + ], + [ + 106.7502418, + 10.8114177 + ], + [ + 106.7490423, + 10.8101673 + ], + [ + 106.7478882, + 10.809383 + ], + [ + 106.7460028, + 10.8086309 + ], + [ + 106.7437806, + 10.808295 + ], + [ + 106.7413516, + 10.8087132 + ], + [ + 106.7388252, + 10.809827 + ], + [ + 106.7376293, + 10.8109063 + ], + [ + 106.7366718, + 10.8122354 + ], + [ + 106.7362051, + 10.8132775 + ], + [ + 106.7352843, + 10.8162744 + ], + [ + 106.7344711, + 10.8179926 + ], + [ + 106.7334306, + 10.8190854 + ], + [ + 106.7322408, + 10.8196769 + ], + [ + 106.7313617, + 10.8197676 + ], + [ + 106.7303724, + 10.8196141 + ], + [ + 106.7280138, + 10.8185849 + ], + [ + 106.7255858, + 10.8167173 + ], + [ + 106.7243589, + 10.8153783 + ], + [ + 106.7228741, + 10.8124258 + ], + [ + 106.7224267, + 10.8107114 + ], + [ + 106.7222986, + 10.8093058 + ], + [ + 106.722706, + 10.8076593 + ], + [ + 106.723462, + 10.8058608 + ], + [ + 106.7262057, + 10.8018102 + ], + [ + 106.7269973, + 10.8000503 + ], + [ + 106.7272305, + 10.7986543 + ], + [ + 106.7272056, + 10.7966242 + ], + [ + 106.7268834, + 10.7949608 + ], + [ + 106.7262856, + 10.7930837 + ], + [ + 106.7254739, + 10.7915377 + ], + [ + 106.7241936, + 10.7897534 + ], + [ + 106.7230009, + 10.7884897 + ], + [ + 106.7215455, + 10.7873279 + ], + [ + 106.7202593, + 10.7865864 + ], + [ + 106.7192919, + 10.7862264 + ], + [ + 106.7162798, + 10.7856214 + ], + [ + 106.714661, + 10.7851059 + ], + [ + 106.7126629, + 10.7839097 + ], + [ + 106.7113623, + 10.7827581 + ], + [ + 106.710106, + 10.7810618 + ], + [ + 106.7088877, + 10.7783879 + ], + [ + 106.70829, + 10.7761973 + ], + [ + 106.7080071, + 10.7733719 + ], + [ + 106.7081291, + 10.7704852 + ], + [ + 106.7088273, + 10.7683942 + ], + [ + 106.7102524, + 10.7659441 + ], + [ + 106.7111806, + 10.7648337 + ], + [ + 106.7121903, + 10.7639279 + ], + [ + 106.7143725, + 10.7624818 + ], + [ + 106.7186654, + 10.7604432 + ], + [ + 106.7222803, + 10.7592738 + ], + [ + 106.7246996, + 10.7591349 + ], + [ + 106.7281855, + 10.7594765 + ], + [ + 106.7299414, + 10.7598322 + ], + [ + 106.7317192, + 10.7607251 + ], + [ + 106.7327729, + 10.7618692 + ], + [ + 106.7336507, + 10.7635985 + ], + [ + 106.7342038, + 10.7659845 + ], + [ + 106.7345814, + 10.7718205 + ], + [ + 106.7348939, + 10.7735276 + ], + [ + 106.7357404, + 10.7753754 + ], + [ + 106.7370666, + 10.7767447 + ], + [ + 106.7380085, + 10.7773018 + ], + [ + 106.7389863, + 10.7776019 + ], + [ + 106.7402244, + 10.7776805 + ], + [ + 106.7413911, + 10.7775037 + ], + [ + 106.7437503, + 10.7765186 + ], + [ + 106.7464009, + 10.7745988 + ], + [ + 106.7489684, + 10.7722975 + ], + [ + 106.7510228, + 10.769885 + ], + [ + 106.7521539, + 10.7676528 + ], + [ + 106.7527261, + 10.7651092 + ], + [ + 106.7525752, + 10.7631376 + ], + [ + 106.7518314, + 10.7609817 + ], + [ + 106.7504998, + 10.7589585 + ], + [ + 106.7480829, + 10.756012 + ], + [ + 106.7464144, + 10.7536636 + ], + [ + 106.7450249, + 10.7511183 + ], + [ + 106.7442302, + 10.7489496 + ], + [ + 106.7441003, + 10.7471633 + ], + [ + 106.744245, + 10.746242 + ], + [ + 106.7446553, + 10.7451681 + ], + [ + 106.7457379, + 10.7434608 + ], + [ + 106.7472063, + 10.7424288 + ], + [ + 106.7486126, + 10.7421212 + ], + [ + 106.7506666, + 10.7421927 + ], + [ + 106.7556481, + 10.743647 + ], + [ + 106.7589784, + 10.7440706 + ], + [ + 106.7605662, + 10.7440812 + ], + [ + 106.7686561, + 10.7431427 + ], + [ + 106.7708469, + 10.7452907 + ], + [ + 106.7726629, + 10.7466967 + ], + [ + 106.774151, + 10.7476922 + ], + [ + 106.7773151, + 10.7493683 + ], + [ + 106.7853359, + 10.7530425 + ], + [ + 106.7968881, + 10.7577716 + ], + [ + 106.7993177, + 10.7589946 + ], + [ + 106.8013778, + 10.760408 + ], + [ + 106.8032183, + 10.7628535 + ], + [ + 106.8038509, + 10.7643648 + ], + [ + 106.8052142, + 10.7686419 + ], + [ + 106.8060649, + 10.7703311 + ], + [ + 106.807322, + 10.7719553 + ], + [ + 106.8128045, + 10.7772928 + ], + [ + 106.8145391, + 10.7786541 + ], + [ + 106.8163172, + 10.7797015 + ], + [ + 106.8194156, + 10.7808846 + ], + [ + 106.8209711, + 10.7810009 + ], + [ + 106.8217297, + 10.7808709 + ], + [ + 106.8225319, + 10.7805166 + ], + [ + 106.8234677, + 10.7798119 + ], + [ + 106.8243479, + 10.7788743 + ], + [ + 106.8250649, + 10.7778482 + ], + [ + 106.8252961, + 10.7772193 + ], + [ + 106.8256227, + 10.7759176 + ], + [ + 106.8257376, + 10.7739807 + ], + [ + 106.8256022, + 10.7725292 + ], + [ + 106.8253325, + 10.7712668 + ], + [ + 106.8238146, + 10.7668923 + ], + [ + 106.8230167, + 10.7634726 + ], + [ + 106.8230374, + 10.7624235 + ], + [ + 106.8234613, + 10.7607717 + ], + [ + 106.8238554, + 10.7601599 + ], + [ + 106.8248281, + 10.7595803 + ], + [ + 106.8257854, + 10.7594491 + ], + [ + 106.8266356, + 10.7595517 + ], + [ + 106.8283027, + 10.7602232 + ], + [ + 106.8289198, + 10.7606319 + ], + [ + 106.8293199, + 10.761024 + ], + [ + 106.8313625, + 10.7642026 + ], + [ + 106.8355853, + 10.7691959 + ], + [ + 106.8390248, + 10.771997 + ], + [ + 106.8407189, + 10.7731639 + ], + [ + 106.8426174, + 10.7741932 + ], + [ + 106.8450574, + 10.7750983 + ], + [ + 106.8465768, + 10.7754044 + ], + [ + 106.8487105, + 10.7754991 + ], + [ + 106.8512722, + 10.7751564 + ], + [ + 106.8521205, + 10.7749362 + ], + [ + 106.8536416, + 10.7741461 + ], + [ + 106.8584194, + 10.7691155 + ], + [ + 106.8609354, + 10.766716 + ], + [ + 106.8624117, + 10.765739 + ], + [ + 106.8638538, + 10.7650669 + ], + [ + 106.8652882, + 10.764637 + ], + [ + 106.8668961, + 10.7644838 + ], + [ + 106.8682886, + 10.7645651 + ], + [ + 106.8694652, + 10.7648269 + ], + [ + 106.8707164, + 10.7654647 + ], + [ + 106.8726326, + 10.7669322 + ], + [ + 106.8738005, + 10.7687001 + ], + [ + 106.8741548, + 10.7704548 + ], + [ + 106.8741142, + 10.7711991 + ], + [ + 106.8733521, + 10.7736419 + ], + [ + 106.8713587, + 10.7772307 + ], + [ + 106.8654422, + 10.7837295 + ], + [ + 106.8649947, + 10.7844494 + ], + [ + 106.8646648, + 10.7851774 + ], + [ + 106.8643661, + 10.7865777 + ], + [ + 106.8642654, + 10.7884521 + ], + [ + 106.8647338, + 10.7899654 + ], + [ + 106.8657355, + 10.7912147 + ], + [ + 106.875679, + 10.7985086 + ], + [ + 106.8786841, + 10.8021248 + ], + [ + 106.8806878, + 10.8048208 + ], + [ + 106.8815567, + 10.8065311 + ], + [ + 106.8817591, + 10.8083737 + ], + [ + 106.8815533, + 10.8106588 + ], + [ + 106.8810585, + 10.8124723 + ], + [ + 106.8781227, + 10.81854 + ], + [ + 106.8771366, + 10.8198366 + ], + [ + 106.8711054, + 10.8259823 + ], + [ + 106.8646831, + 10.8338632 + ], + [ + 106.8569283, + 10.8426284 + ], + [ + 106.8547418, + 10.8462681 + ], + [ + 106.8520545, + 10.8515705 + ], + [ + 106.8492254, + 10.8581116 + ], + [ + 106.8468153, + 10.8648961 + ], + [ + 106.849292, + 10.8695668 + ], + [ + 106.8513221, + 10.8753108 + ], + [ + 106.8478466, + 10.8798872 + ], + [ + 106.845235, + 10.8845157 + ], + [ + 106.8422415, + 10.8918533 + ], + [ + 106.8401265, + 10.8988461 + ], + [ + 106.8382178, + 10.8983633 + ], + [ + 106.83433, + 10.8983849 + ], + [ + 106.8339199, + 10.8982586 + ], + [ + 106.8339115, + 10.8979766 + ], + [ + 106.8332706, + 10.8979957 + ], + [ + 106.8328268, + 10.897503 + ], + [ + 106.8329169, + 10.8972811 + ], + [ + 106.8323356, + 10.8971813 + ], + [ + 106.832364, + 10.896814 + ], + [ + 106.8321038, + 10.8967102 + ], + [ + 106.831681, + 10.8969058 + ], + [ + 106.8315875, + 10.8966623 + ], + [ + 106.8304938, + 10.8960567 + ], + [ + 106.8298537, + 10.8949756 + ], + [ + 106.8286583, + 10.8946705 + ], + [ + 106.8279449, + 10.8942913 + ], + [ + 106.8267285, + 10.8947951 + ], + [ + 106.8262569, + 10.8944328 + ], + [ + 106.8258688, + 10.8936644 + ], + [ + 106.8250931, + 10.8937553 + ], + [ + 106.8249857, + 10.8932738 + ], + [ + 106.8253466, + 10.8932105 + ], + [ + 106.8250914, + 10.8928682 + ], + [ + 106.8247914, + 10.8926898 + ], + [ + 106.8238948, + 10.8928774 + ], + [ + 106.8235777, + 10.8925433 + ], + [ + 106.8235777, + 10.8910133 + ], + [ + 106.8242309, + 10.8891291 + ], + [ + 106.8241281, + 10.8882349 + ], + [ + 106.8231381, + 10.8873269 + ], + [ + 106.8223836, + 10.8870598 + ], + [ + 106.822426, + 10.8867331 + ], + [ + 106.8221712, + 10.8861909 + ], + [ + 106.8217842, + 10.8858868 + ], + [ + 106.8213382, + 10.885951 + ], + [ + 106.8213289, + 10.8857607 + ], + [ + 106.8208088, + 10.8856179 + ], + [ + 106.8203743, + 10.8857419 + ], + [ + 106.8204082, + 10.886344 + ], + [ + 106.8201024, + 10.8862731 + ], + [ + 106.8200426, + 10.8859425 + ], + [ + 106.8197028, + 10.8857062 + ], + [ + 106.819402, + 10.8857514 + ], + [ + 106.8193736, + 10.8852509 + ], + [ + 106.8191436, + 10.8852127 + ], + [ + 106.8191082, + 10.884243 + ], + [ + 106.8186835, + 10.8843403 + ], + [ + 106.8186906, + 10.8841631 + ], + [ + 106.8181178, + 10.8840762 + ], + [ + 106.8180712, + 10.8842222 + ], + [ + 106.8177208, + 10.8840671 + ], + [ + 106.8174819, + 10.8835977 + ], + [ + 106.8176368, + 10.883558 + ], + [ + 106.8175364, + 10.8829152 + ], + [ + 106.8178166, + 10.8828694 + ], + [ + 106.8171911, + 10.8810661 + ], + [ + 106.8168772, + 10.8810003 + ], + [ + 106.8162917, + 10.881227 + ], + [ + 106.8151507, + 10.8797799 + ], + [ + 106.8152443, + 10.8796043 + ], + [ + 106.8146696, + 10.8792625 + ], + [ + 106.8138254, + 10.8783947 + ], + [ + 106.8130632, + 10.8791098 + ], + [ + 106.8084835, + 10.8729171 + ], + [ + 106.8077189, + 10.8738529 + ], + [ + 106.8052969, + 10.8751165 + ], + [ + 106.8049943, + 10.8742744 + ], + [ + 106.8043491, + 10.8737027 + ], + [ + 106.8030792, + 10.8735124 + ], + [ + 106.8013329, + 10.8736321 + ], + [ + 106.7986664, + 10.8720074 + ], + [ + 106.7981744, + 10.8720639 + ], + [ + 106.7978832, + 10.8723569 + ], + [ + 106.7977151, + 10.8727581 + ], + [ + 106.7978258, + 10.8732082 + ], + [ + 106.7958854, + 10.8732205 + ], + [ + 106.7958812, + 10.8735609 + ], + [ + 106.795159, + 10.8735589 + ], + [ + 106.794665, + 10.8734465 + ], + [ + 106.7935278, + 10.8725871 + ], + [ + 106.7921713, + 10.8725947 + ], + [ + 106.7921659, + 10.8719756 + ], + [ + 106.7889215, + 10.8719524 + ], + [ + 106.7879506, + 10.8700758 + ], + [ + 106.7877281, + 10.8672115 + ], + [ + 106.7830268, + 10.8674882 + ], + [ + 106.7803318, + 10.8682665 + ], + [ + 106.7801581, + 10.8689592 + ], + [ + 106.7802299, + 10.8696588 + ], + [ + 106.7818545, + 10.873959 + ], + [ + 106.7821065, + 10.8771956 + ], + [ + 106.7818065, + 10.8777556 + ], + [ + 106.7813065, + 10.8782456 + ], + [ + 106.7811703, + 10.8798933 + ], + [ + 106.7806065, + 10.8811856 + ], + [ + 106.7792065, + 10.8828356 + ], + [ + 106.7769065, + 10.8849856 + ], + [ + 106.7761065, + 10.8859556 + ], + [ + 106.7758065, + 10.8867256 + ], + [ + 106.7751065, + 10.8875456 + ], + [ + 106.7727065, + 10.8897056 + ], + [ + 106.7695436, + 10.8939241 + ], + [ + 106.7684209, + 10.8940402 + ], + [ + 106.7684183, + 10.8922433 + ], + [ + 106.7672646, + 10.8925065 + ], + [ + 106.7676681, + 10.8916337 + ], + [ + 106.7668916, + 10.8915511 + ], + [ + 106.7660192, + 10.8884548 + ], + [ + 106.7652788, + 10.8876148 + ], + [ + 106.7649905, + 10.8866611 + ], + [ + 106.764737, + 10.8863171 + ], + [ + 106.7645467, + 10.8848594 + ], + [ + 106.7640119, + 10.8849425 + ], + [ + 106.7635609, + 10.883864 + ], + [ + 106.7612073, + 10.8820412 + ], + [ + 106.7605209, + 10.8812602 + ], + [ + 106.7619415, + 10.8787059 + ], + [ + 106.7614269, + 10.8785209 + ], + [ + 106.7618984, + 10.8755415 + ], + [ + 106.76134, + 10.8748582 + ], + [ + 106.7612713, + 10.8745629 + ], + [ + 106.7617939, + 10.8743899 + ], + [ + 106.7603765, + 10.8723815 + ], + [ + 106.7622139, + 10.8710848 + ], + [ + 106.7628632, + 10.8701772 + ], + [ + 106.7632849, + 10.8699203 + ], + [ + 106.7630843, + 10.8687709 + ], + [ + 106.7622395, + 10.8672623 + ], + [ + 106.7610992, + 10.8672488 + ], + [ + 106.7595389, + 10.8668755 + ], + [ + 106.7583481, + 10.8671125 + ], + [ + 106.7575009, + 10.8670868 + ], + [ + 106.7560405, + 10.8663954 + ], + [ + 106.7550399, + 10.8664175 + ], + [ + 106.7546015, + 10.8662775 + ], + [ + 106.7535757, + 10.8657096 + ], + [ + 106.7537465, + 10.8651952 + ], + [ + 106.7528282, + 10.8644404 + ], + [ + 106.7524971, + 10.863786 + ], + [ + 106.7517472, + 10.8634587 + ], + [ + 106.7516204, + 10.8634757 + ], + [ + 106.7515679, + 10.8638639 + ], + [ + 106.7512102, + 10.8644268 + ], + [ + 106.7505076, + 10.8640323 + ], + [ + 106.7502574, + 10.864407 + ], + [ + 106.7500353, + 10.8642951 + ], + [ + 106.7490898, + 10.8658042 + ], + [ + 106.7487055, + 10.8656559 + ], + [ + 106.7479409, + 10.8673159 + ], + [ + 106.747918, + 10.8692233 + ], + [ + 106.747341, + 10.8694849 + ], + [ + 106.7459858, + 10.8717248 + ], + [ + 106.7470408, + 10.872075 + ], + [ + 106.7464425, + 10.8738789 + ], + [ + 106.751339, + 10.8754629 + ], + [ + 106.7503719, + 10.8772949 + ], + [ + 106.749396, + 10.8767632 + ], + [ + 106.7483768, + 10.8782166 + ], + [ + 106.7471969, + 10.8773867 + ], + [ + 106.744687, + 10.8800774 + ], + [ + 106.7456581, + 10.8807856 + ], + [ + 106.7449812, + 10.8816265 + ], + [ + 106.7437697, + 10.8807094 + ], + [ + 106.7435357, + 10.8809347 + ], + [ + 106.7432901, + 10.8804375 + ], + [ + 106.7411417, + 10.8814406 + ], + [ + 106.7403898, + 10.8807626 + ], + [ + 106.7396693, + 10.8809044 + ], + [ + 106.7391056, + 10.8800758 + ], + [ + 106.7384029, + 10.8794311 + ], + [ + 106.7366584, + 10.8806 + ], + [ + 106.7360653, + 10.8796048 + ], + [ + 106.7353749, + 10.8802261 + ], + [ + 106.7341768, + 10.8805112 + ], + [ + 106.7368171, + 10.8847474 + ], + [ + 106.7314616, + 10.8859131 + ], + [ + 106.7316293, + 10.8870085 + ], + [ + 106.7323708, + 10.8889553 + ], + [ + 106.7328295, + 10.8907332 + ], + [ + 106.7295653, + 10.8896769 + ], + [ + 106.7293024, + 10.8903249 + ], + [ + 106.7290932, + 10.890267 + ], + [ + 106.7286801, + 10.8910624 + ], + [ + 106.7281866, + 10.8908833 + ], + [ + 106.727496, + 10.89019 + ], + [ + 106.7257351, + 10.8911046 + ], + [ + 106.7210466, + 10.8940282 + ], + [ + 106.717641, + 10.8964358 + ], + [ + 106.7156487, + 10.8931468 + ], + [ + 106.7131068, + 10.8899024 + ], + [ + 106.7131045, + 10.8894264 + ], + [ + 106.7134711, + 10.8887852 + ], + [ + 106.7145051, + 10.8881524 + ], + [ + 106.7138627, + 10.8875052 + ], + [ + 106.7139148, + 10.8872283 + ], + [ + 106.7144266, + 10.8868687 + ], + [ + 106.7147384, + 10.8869559 + ], + [ + 106.7155501, + 10.8877036 + ], + [ + 106.7170399, + 10.8879851 + ], + [ + 106.7175863, + 10.8877483 + ], + [ + 106.7172872, + 10.8863447 + ], + [ + 106.716614, + 10.8846164 + ], + [ + 106.7169349, + 10.8826782 + ], + [ + 106.7178787, + 10.8809826 + ], + [ + 106.7139831, + 10.8793655 + ], + [ + 106.7126469, + 10.8778823 + ], + [ + 106.7128507, + 10.8774169 + ], + [ + 106.713841, + 10.8778073 + ], + [ + 106.7140468, + 10.8769959 + ], + [ + 106.7152941, + 10.8774166 + ], + [ + 106.7164835, + 10.8771611 + ], + [ + 106.7174419, + 10.8771992 + ], + [ + 106.7182977, + 10.8768799 + ], + [ + 106.7193215, + 10.8768766 + ], + [ + 106.7214372, + 10.8763851 + ], + [ + 106.7213778, + 10.8761016 + ], + [ + 106.7217364, + 10.8748499 + ], + [ + 106.7226278, + 10.8734193 + ], + [ + 106.7234802, + 10.8727462 + ], + [ + 106.7236453, + 10.8717823 + ], + [ + 106.7227017, + 10.871657 + ], + [ + 106.7214599, + 10.8717347 + ], + [ + 106.7199607, + 10.8723219 + ], + [ + 106.7179142, + 10.8724119 + ], + [ + 106.7162931, + 10.872861 + ], + [ + 106.7156218, + 10.8728401 + ], + [ + 106.7150398, + 10.8726183 + ], + [ + 106.7152044, + 10.8696268 + ], + [ + 106.7155185, + 10.8689201 + ], + [ + 106.7154729, + 10.8683837 + ], + [ + 106.7149419, + 10.8676778 + ], + [ + 106.7137373, + 10.8665906 + ], + [ + 106.7131142, + 10.8657067 + ], + [ + 106.7142809, + 10.865054 + ], + [ + 106.7153264, + 10.8641894 + ], + [ + 106.7169672, + 10.8618361 + ], + [ + 106.7175841, + 10.8600943 + ], + [ + 106.7182007, + 10.8570173 + ], + [ + 106.7179915, + 10.8554895 + ], + [ + 106.7171969, + 10.8541553 + ], + [ + 106.7155427, + 10.8524259 + ], + [ + 106.7136919, + 10.8514038 + ], + [ + 106.7123751, + 10.8511473 + ], + [ + 106.7109427, + 10.8510811 + ], + [ + 106.7048703, + 10.8517994 + ], + [ + 106.7026117, + 10.8514855 + ], + [ + 106.700272, + 10.8508284 + ], + [ + 106.6991444, + 10.8500589 + ], + [ + 106.6984178, + 10.8490329 + ], + [ + 106.698077, + 10.847563 + ], + [ + 106.6978347, + 10.8453608 + ] + ] + ] + } +} diff --git a/src/data/boundaries/tphcm/tphcm.json b/src/data/boundaries/tphcm/tphcm.json new file mode 100644 index 0000000..2647bcb --- /dev/null +++ b/src/data/boundaries/tphcm/tphcm.json @@ -0,0 +1,7425 @@ +{ + "type": "Feature", + "properties": { + "code": "TPHCM", + "name": "Ho Chi Minh", + "level": "province", + "parent": "VN", + "basis": "pre-2025-merger extent, from OSM boundary/historic relations", + "areaKm2": 1629, + "bbox": [ + 106.46356, + 10.35828, + 107.02758, + 10.92934 + ], + "center": [ + 10.8231, + 106.6297 + ], + "generatedAt": "2026-08-30T07:36:51.903Z", + "parts": 22, + "missingParts": 1 + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + 106.4635618, + 10.7565046 + ], + [ + 106.4722331, + 10.7455255 + ], + [ + 106.4735079, + 10.7464922 + ], + [ + 106.4871569, + 10.7298149 + ], + [ + 106.4889865, + 10.7312615 + ], + [ + 106.4996255, + 10.7249923 + ], + [ + 106.5016856, + 10.7265365 + ], + [ + 106.5093718, + 10.7170518 + ], + [ + 106.5202276, + 10.7236952 + ], + [ + 106.5302547, + 10.7172794 + ], + [ + 106.5284362, + 10.7149779 + ], + [ + 106.5272397, + 10.7091259 + ], + [ + 106.5338586, + 10.6881685 + ], + [ + 106.535663, + 10.6855532 + ], + [ + 106.5476422, + 10.6871709 + ], + [ + 106.5481494, + 10.6862394 + ], + [ + 106.5504213, + 10.6856057 + ], + [ + 106.5515685, + 10.6794588 + ], + [ + 106.5536211, + 10.675406 + ], + [ + 106.5532335, + 10.6720611 + ], + [ + 106.5520597, + 10.6705916 + ], + [ + 106.5535808, + 10.6685847 + ], + [ + 106.553235, + 10.6656959 + ], + [ + 106.551519, + 10.6641393 + ], + [ + 106.5504895, + 10.6590349 + ], + [ + 106.5492686, + 10.659657 + ], + [ + 106.5489702, + 10.6574327 + ], + [ + 106.5559217, + 10.6569738 + ], + [ + 106.5552058, + 10.652581 + ], + [ + 106.5556683, + 10.6509266 + ], + [ + 106.5572657, + 10.6505125 + ], + [ + 106.5579277, + 10.648603 + ], + [ + 106.55918, + 10.6499646 + ], + [ + 106.5590288, + 10.6518814 + ], + [ + 106.5630729, + 10.6514923 + ], + [ + 106.5631335, + 10.6522051 + ], + [ + 106.5652959, + 10.6523024 + ], + [ + 106.5662728, + 10.6564275 + ], + [ + 106.5685221, + 10.6560476 + ], + [ + 106.5686163, + 10.656583 + ], + [ + 106.5734877, + 10.6541309 + ], + [ + 106.5733555, + 10.6498562 + ], + [ + 106.5751194, + 10.6498703 + ], + [ + 106.5754631, + 10.6491116 + ], + [ + 106.5789715, + 10.6496043 + ], + [ + 106.5795486, + 10.6519005 + ], + [ + 106.5780058, + 10.651892 + ], + [ + 106.5779066, + 10.6532379 + ], + [ + 106.5798284, + 10.6560951 + ], + [ + 106.5831997, + 10.6553672 + ], + [ + 106.5841286, + 10.6536567 + ], + [ + 106.586855, + 10.6532116 + ], + [ + 106.5869821, + 10.6524906 + ], + [ + 106.5905312, + 10.6527818 + ], + [ + 106.591663, + 10.6501114 + ], + [ + 106.5959254, + 10.6503934 + ], + [ + 106.5952297, + 10.6534997 + ], + [ + 106.5996118, + 10.6525942 + ], + [ + 106.6006523, + 10.6506916 + ], + [ + 106.6017542, + 10.6512846 + ], + [ + 106.6053836, + 10.6586959 + ], + [ + 106.6108327, + 10.6568916 + ], + [ + 106.6141904, + 10.6538525 + ], + [ + 106.6156273, + 10.6541118 + ], + [ + 106.6167353, + 10.6533377 + ], + [ + 106.6167909, + 10.6521968 + ], + [ + 106.6177159, + 10.6519567 + ], + [ + 106.6173422, + 10.6501711 + ], + [ + 106.618984, + 10.6496845 + ], + [ + 106.6189639, + 10.6490133 + ], + [ + 106.6245614, + 10.6474547 + ], + [ + 106.6238926, + 10.6460911 + ], + [ + 106.6243293, + 10.6444613 + ], + [ + 106.6217719, + 10.6441002 + ], + [ + 106.6215383, + 10.6432687 + ], + [ + 106.6225062, + 10.6425918 + ], + [ + 106.6212058, + 10.6409296 + ], + [ + 106.6241101, + 10.6394356 + ], + [ + 106.625805, + 10.6397168 + ], + [ + 106.6271793, + 10.6423959 + ], + [ + 106.629483, + 10.64203 + ], + [ + 106.6296754, + 10.6393398 + ], + [ + 106.6305332, + 10.6390601 + ], + [ + 106.6311629, + 10.636743 + ], + [ + 106.6295121, + 10.6363135 + ], + [ + 106.6296305, + 10.6316508 + ], + [ + 106.630766, + 10.6302011 + ], + [ + 106.6295621, + 10.6275909 + ], + [ + 106.6301368, + 10.6264266 + ], + [ + 106.6316328, + 10.628275 + ], + [ + 106.6328824, + 10.6279942 + ], + [ + 106.6349407, + 10.6253147 + ], + [ + 106.6353235, + 10.6261223 + ], + [ + 106.6373021, + 10.6262847 + ], + [ + 106.6388936, + 10.6274694 + ], + [ + 106.6410251, + 10.6266209 + ], + [ + 106.6437827, + 10.6296189 + ], + [ + 106.6461988, + 10.6342395 + ], + [ + 106.6484757, + 10.6327058 + ], + [ + 106.6528386, + 10.6322999 + ], + [ + 106.6534867, + 10.6333058 + ], + [ + 106.6529438, + 10.6378948 + ], + [ + 106.6539451, + 10.6394395 + ], + [ + 106.6565033, + 10.638811 + ], + [ + 106.6562901, + 10.6420446 + ], + [ + 106.6569372, + 10.6433228 + ], + [ + 106.6607203, + 10.6419874 + ], + [ + 106.6601906, + 10.6398143 + ], + [ + 106.6626216, + 10.6392726 + ], + [ + 106.6633378, + 10.6400752 + ], + [ + 106.6649995, + 10.6388865 + ], + [ + 106.6656054, + 10.6396021 + ], + [ + 106.6660405, + 10.6384323 + ], + [ + 106.6666233, + 10.6406516 + ], + [ + 106.6685699, + 10.639132 + ], + [ + 106.6700722, + 10.6395483 + ], + [ + 106.6718103, + 10.6415075 + ], + [ + 106.6734454, + 10.6419688 + ], + [ + 106.6741834, + 10.6442992 + ], + [ + 106.6790676, + 10.6457214 + ], + [ + 106.6844741, + 10.6499186 + ], + [ + 106.6859842, + 10.6523855 + ], + [ + 106.68569289397279, + 10.656723635900471 + ], + [ + 106.6872126, + 10.6558707 + ], + [ + 106.6912555, + 10.6486175 + ], + [ + 106.6962707, + 10.6498628 + ], + [ + 106.6976775, + 10.6520799 + ], + [ + 106.7006704, + 10.6538747 + ], + [ + 106.7039785, + 10.6528129 + ], + [ + 106.7068657, + 10.6501768 + ], + [ + 106.7123309, + 10.6502786 + ], + [ + 106.7186937, + 10.6457417 + ], + [ + 106.722928, + 10.6451945 + ], + [ + 106.7237035, + 10.6412777 + ], + [ + 106.725705, + 10.6383672 + ], + [ + 106.7307295, + 10.6353735 + ], + [ + 106.7332404, + 10.6288844 + ], + [ + 106.7319335, + 10.627753 + ], + [ + 106.729767, + 10.6287315 + ], + [ + 106.7290657, + 10.6282855 + ], + [ + 106.7283726, + 10.6244284 + ], + [ + 106.731399, + 10.6237009 + ], + [ + 106.7317806, + 10.6227848 + ], + [ + 106.7298501, + 10.6202085 + ], + [ + 106.7292082, + 10.6165984 + ], + [ + 106.7278847, + 10.6168472 + ], + [ + 106.7275447, + 10.6161848 + ], + [ + 106.7291316, + 10.6120491 + ], + [ + 106.7316087, + 10.6121361 + ], + [ + 106.7327945, + 10.6099603 + ], + [ + 106.7312547, + 10.6088699 + ], + [ + 106.7283681, + 10.6090137 + ], + [ + 106.7264952, + 10.6113314 + ], + [ + 106.7236747, + 10.6117188 + ], + [ + 106.722, + 10.606911 + ], + [ + 106.7189372, + 10.6059224 + ], + [ + 106.7195144, + 10.6029732 + ], + [ + 106.7218323, + 10.5998061 + ], + [ + 106.7203649, + 10.5973659 + ], + [ + 106.7203811, + 10.5960004 + ], + [ + 106.7235586, + 10.5931111 + ], + [ + 106.7232422, + 10.5883371 + ], + [ + 106.725134, + 10.5854276 + ], + [ + 106.7270246, + 10.5855519 + ], + [ + 106.7267166, + 10.5840995 + ], + [ + 106.7286221, + 10.5801267 + ], + [ + 106.7309708, + 10.5797061 + ], + [ + 106.7327542, + 10.5802693 + ], + [ + 106.734799, + 10.5823035 + ], + [ + 106.7347516, + 10.5852228 + ], + [ + 106.7362014, + 10.5864827 + ], + [ + 106.7384979, + 10.585511 + ], + [ + 106.7395159, + 10.5832702 + ], + [ + 106.7386703, + 10.5811803 + ], + [ + 106.7350589, + 10.5787291 + ], + [ + 106.7355638, + 10.5774085 + ], + [ + 106.7369921, + 10.5772005 + ], + [ + 106.7380474, + 10.5784538 + ], + [ + 106.7412316, + 10.5790717 + ], + [ + 106.7456478, + 10.5763631 + ], + [ + 106.74630193477834, + 10.577025366375429 + ], + [ + 106.7425864, + 10.569343 + ], + [ + 106.7418966, + 10.5639214 + ], + [ + 106.747241, + 10.5280244 + ], + [ + 106.7452324, + 10.4978311 + ], + [ + 106.7536353, + 10.4673029 + ], + [ + 106.7562254, + 10.4609118 + ], + [ + 106.7611567, + 10.4537878 + ], + [ + 106.7714627, + 10.4409249 + ], + [ + 106.7925066, + 10.4184025 + ], + [ + 106.809233, + 10.3882046 + ], + [ + 106.8288959, + 10.3974942 + ], + [ + 106.831778, + 10.3959486 + ], + [ + 106.8371572, + 10.3968462 + ], + [ + 106.8439005, + 10.4014708 + ], + [ + 106.8519124, + 10.404835 + ], + [ + 106.8533409, + 10.4066198 + ], + [ + 106.8530949, + 10.4090148 + ], + [ + 106.854031, + 10.4100459 + ], + [ + 106.8723671, + 10.4099772 + ], + [ + 106.8779408, + 10.3965696 + ], + [ + 106.8795656, + 10.3958833 + ], + [ + 106.8789115, + 10.3940356 + ], + [ + 106.8814892, + 10.3885354 + ], + [ + 106.8799985, + 10.3846169 + ], + [ + 106.8802682, + 10.3826728 + ], + [ + 106.8750705, + 10.3778606 + ], + [ + 106.8796423, + 10.3764744 + ], + [ + 106.8809562, + 10.3767743 + ], + [ + 106.8811176, + 10.3729368 + ], + [ + 106.8870631, + 10.3677108 + ], + [ + 106.8881575, + 10.3678607 + ], + [ + 106.8992805, + 10.3620443 + ], + [ + 106.9070683, + 10.3596447 + ], + [ + 106.9151208, + 10.3583809 + ], + [ + 106.9232719, + 10.358277 + ], + [ + 106.9313526, + 10.3593346 + ], + [ + 106.9370878, + 10.3608216 + ], + [ + 106.9451637, + 10.3643178 + ], + [ + 106.9659443, + 10.375441 + ], + [ + 106.9700313, + 10.3761571 + ], + [ + 106.9778814, + 10.3755513 + ], + [ + 106.9823052, + 10.3736764 + ], + [ + 106.9866335, + 10.3697078 + ], + [ + 106.9878003, + 10.3664546 + ], + [ + 106.9912682, + 10.366565 + ], + [ + 106.9936287, + 10.3640827 + ], + [ + 106.9856036, + 10.3766731 + ], + [ + 106.9840801, + 10.375412 + ], + [ + 106.9795888, + 10.3775062 + ], + [ + 106.9740131, + 10.3787822 + ], + [ + 106.971901, + 10.381086 + ], + [ + 106.971825, + 10.3833168 + ], + [ + 106.9747776, + 10.3907536 + ], + [ + 106.9760871, + 10.3972409 + ], + [ + 106.9759266, + 10.4073485 + ], + [ + 106.975092, + 10.4116107 + ], + [ + 106.9738206, + 10.4120988 + ], + [ + 106.9747022, + 10.4121969 + ], + [ + 106.9740985, + 10.4128126 + ], + [ + 106.9747658, + 10.4145226 + ], + [ + 106.9755128, + 10.4142803 + ], + [ + 106.9747031, + 10.4149626 + ], + [ + 106.9755734, + 10.4159911 + ], + [ + 106.9732077, + 10.4166612 + ], + [ + 106.9734384, + 10.4174513 + ], + [ + 106.9729623, + 10.4170187 + ], + [ + 106.9716065, + 10.4182321 + ], + [ + 106.9718251, + 10.4175792 + ], + [ + 106.9699328, + 10.4180079 + ], + [ + 106.9706181, + 10.4174012 + ], + [ + 106.9698416, + 10.4166216 + ], + [ + 106.9680431, + 10.4173326 + ], + [ + 106.9672639, + 10.4158282 + ], + [ + 106.964991, + 10.4163565 + ], + [ + 106.9608501, + 10.4210455 + ], + [ + 106.9571265, + 10.4216761 + ], + [ + 106.9573244, + 10.4222914 + ], + [ + 106.9534731, + 10.4234115 + ], + [ + 106.9535553, + 10.4244016 + ], + [ + 106.9515609, + 10.4255979 + ], + [ + 106.9477646, + 10.4261662 + ], + [ + 106.947727, + 10.4274368 + ], + [ + 106.9464652, + 10.4279446 + ], + [ + 106.9452258, + 10.4306254 + ], + [ + 106.9437551, + 10.4308934 + ], + [ + 106.9438232, + 10.4326297 + ], + [ + 106.9425677, + 10.4329293 + ], + [ + 106.9412022, + 10.4349948 + ], + [ + 106.9381509, + 10.435943 + ], + [ + 106.931577, + 10.4465474 + ], + [ + 106.9326973, + 10.4499787 + ], + [ + 106.931887, + 10.4523149 + ], + [ + 106.9320684, + 10.4565572 + ], + [ + 106.9345163, + 10.4620507 + ], + [ + 106.9458402, + 10.4722317 + ], + [ + 106.9476288, + 10.4722747 + ], + [ + 106.9491428, + 10.4708928 + ], + [ + 106.9515631, + 10.470943 + ], + [ + 106.9530974, + 10.4689649 + ], + [ + 106.9538129, + 10.4688384 + ], + [ + 106.9541358, + 10.4699127 + ], + [ + 106.9563065, + 10.4696075 + ], + [ + 106.9582111, + 10.4672671 + ], + [ + 106.9600436, + 10.4670656 + ], + [ + 106.9623087, + 10.4648799 + ], + [ + 106.9647303, + 10.4649518 + ], + [ + 106.9663292, + 10.4639828 + ], + [ + 106.9673566, + 10.4715206 + ], + [ + 106.9685941, + 10.4726346 + ], + [ + 106.9691737, + 10.4758334 + ], + [ + 106.9721099, + 10.4810552 + ], + [ + 106.9770282, + 10.4858236 + ], + [ + 106.9767783, + 10.4874018 + ], + [ + 106.9752418, + 10.4884563 + ], + [ + 106.974312, + 10.4986621 + ], + [ + 106.9772574, + 10.505092 + ], + [ + 106.9825889, + 10.5107453 + ], + [ + 106.9915041, + 10.5153215 + ], + [ + 106.9970154, + 10.5149586 + ], + [ + 106.9999347, + 10.5068312 + ], + [ + 107.0058274, + 10.5098492 + ], + [ + 107.0076882, + 10.5114154 + ], + [ + 107.0105551, + 10.5158971 + ], + [ + 107.012328, + 10.5197312 + ], + [ + 107.0126188, + 10.5223388 + ], + [ + 107.026062, + 10.5357877 + ], + [ + 107.0275803, + 10.5394019 + ], + [ + 107.0267082, + 10.5444213 + ], + [ + 107.0254909, + 10.5454215 + ], + [ + 107.0172057, + 10.5476007 + ], + [ + 107.0134265, + 10.5494584 + ], + [ + 107.0122637, + 10.5508338 + ], + [ + 107.0113007, + 10.5546741 + ], + [ + 107.0112462, + 10.5568353 + ], + [ + 107.0132812, + 10.5621581 + ], + [ + 107.0206579, + 10.5719102 + ], + [ + 107.0269081, + 10.5829301 + ], + [ + 107.0268288, + 10.5884412 + ], + [ + 107.0223458, + 10.5959671 + ], + [ + 107.0191458, + 10.6038971 + ], + [ + 107.0140281, + 10.6091322 + ], + [ + 107.0082867, + 10.6130075 + ], + [ + 107.0064605, + 10.6099432 + ], + [ + 107.0022063, + 10.6108245 + ], + [ + 107.0024645, + 10.6087938 + ], + [ + 107.0005059, + 10.6070001 + ], + [ + 106.9981438, + 10.6077893 + ], + [ + 106.9959167, + 10.6054216 + ], + [ + 106.9907667, + 10.6051994 + ], + [ + 106.9901955, + 10.6041376 + ], + [ + 106.9905627, + 10.6005472 + ], + [ + 106.9862101, + 10.5957231 + ], + [ + 106.987199, + 10.587777 + ], + [ + 106.9837328, + 10.5792082 + ], + [ + 106.9796263, + 10.5819196 + ], + [ + 106.9749271, + 10.5823359 + ], + [ + 106.9687519, + 10.5893028 + ], + [ + 106.9636957, + 10.5912158 + ], + [ + 106.9605119, + 10.5935822 + ], + [ + 106.9553752, + 10.5942063 + ], + [ + 106.9466067, + 10.5973811 + ], + [ + 106.9413844, + 10.5967216 + ], + [ + 106.9378418, + 10.5999071 + ], + [ + 106.9352672, + 10.6001579 + ], + [ + 106.928168, + 10.6029951 + ], + [ + 106.9215029, + 10.6097301 + ], + [ + 106.9186148, + 10.6098086 + ], + [ + 106.9143498, + 10.6074468 + ], + [ + 106.9113714, + 10.6081568 + ], + [ + 106.9086321, + 10.6120876 + ], + [ + 106.9040689, + 10.6239935 + ], + [ + 106.8980046, + 10.6295321 + ], + [ + 106.8940187, + 10.6360531 + ], + [ + 106.8857519, + 10.6398031 + ], + [ + 106.8847786, + 10.641631 + ], + [ + 106.8842399, + 10.6459443 + ], + [ + 106.8819583, + 10.647984 + ], + [ + 106.8762938, + 10.6486011 + ], + [ + 106.8727386, + 10.6478356 + ], + [ + 106.8698679, + 10.6432381 + ], + [ + 106.8644423, + 10.6420007 + ], + [ + 106.8620687, + 10.6378256 + ], + [ + 106.8603392, + 10.6367029 + ], + [ + 106.8581226, + 10.6368689 + ], + [ + 106.8525253, + 10.6395013 + ], + [ + 106.8438038, + 10.6385756 + ], + [ + 106.8405928, + 10.6350522 + ], + [ + 106.8379655, + 10.6263197 + ], + [ + 106.8271863, + 10.6278756 + ], + [ + 106.8210209, + 10.631756 + ], + [ + 106.8148234, + 10.6393323 + ], + [ + 106.8127962, + 10.6429403 + ], + [ + 106.8099771, + 10.6529585 + ], + [ + 106.807301, + 10.6567531 + ], + [ + 106.7696832, + 10.6807997 + ], + [ + 106.7602978, + 10.6898321 + ], + [ + 106.7566101, + 10.694422 + ], + [ + 106.7530902, + 10.7009507 + ], + [ + 106.7512155, + 10.7092477 + ], + [ + 106.752304, + 10.7204199 + ], + [ + 106.7536556, + 10.7234634 + ], + [ + 106.7686561, + 10.7431427 + ], + [ + 106.7726629, + 10.7466967 + ], + [ + 106.7773151, + 10.7493683 + ], + [ + 106.7968881, + 10.7577716 + ], + [ + 106.8013778, + 10.760408 + ], + [ + 106.8032183, + 10.7628535 + ], + [ + 106.8052142, + 10.7686419 + ], + [ + 106.807322, + 10.7719553 + ], + [ + 106.8163172, + 10.7797015 + ], + [ + 106.8194156, + 10.7808846 + ], + [ + 106.8217297, + 10.7808709 + ], + [ + 106.8250649, + 10.7778482 + ], + [ + 106.8256022, + 10.7725292 + ], + [ + 106.8230167, + 10.7634726 + ], + [ + 106.8234613, + 10.7607717 + ], + [ + 106.8248281, + 10.7595803 + ], + [ + 106.8289198, + 10.7606319 + ], + [ + 106.8355853, + 10.7691959 + ], + [ + 106.8390248, + 10.771997 + ], + [ + 106.8426174, + 10.7741932 + ], + [ + 106.8465768, + 10.7754044 + ], + [ + 106.8512722, + 10.7751564 + ], + [ + 106.8536416, + 10.7741461 + ], + [ + 106.8609354, + 10.766716 + ], + [ + 106.8652882, + 10.764637 + ], + [ + 106.8694652, + 10.7648269 + ], + [ + 106.8726326, + 10.7669322 + ], + [ + 106.8738005, + 10.7687001 + ], + [ + 106.8741142, + 10.7711991 + ], + [ + 106.8733521, + 10.7736419 + ], + [ + 106.8713587, + 10.7772307 + ], + [ + 106.8649947, + 10.7844494 + ], + [ + 106.8642654, + 10.7884521 + ], + [ + 106.8657355, + 10.7912147 + ], + [ + 106.875679, + 10.7985086 + ], + [ + 106.8786841, + 10.8021248 + ], + [ + 106.8815567, + 10.8065311 + ], + [ + 106.8815533, + 10.8106588 + ], + [ + 106.8781227, + 10.81854 + ], + [ + 106.8569283, + 10.8426284 + ], + [ + 106.8520545, + 10.8515705 + ], + [ + 106.8468153, + 10.8648961 + ], + [ + 106.8513221, + 10.8753108 + ], + [ + 106.845235, + 10.8845157 + ], + [ + 106.8401265, + 10.8988461 + ], + [ + 106.8339199, + 10.8982586 + ], + [ + 106.8298537, + 10.8949756 + ], + [ + 106.8279449, + 10.8942913 + ], + [ + 106.8267285, + 10.8947951 + ], + [ + 106.8250931, + 10.8937553 + ], + [ + 106.8250914, + 10.8928682 + ], + [ + 106.8238948, + 10.8928774 + ], + [ + 106.8241281, + 10.8882349 + ], + [ + 106.8217842, + 10.8858868 + ], + [ + 106.8203743, + 10.8857419 + ], + [ + 106.8204082, + 10.886344 + ], + [ + 106.819402, + 10.8857514 + ], + [ + 106.8191082, + 10.884243 + ], + [ + 106.8174819, + 10.8835977 + ], + [ + 106.8171911, + 10.8810661 + ], + [ + 106.8162917, + 10.881227 + ], + [ + 106.8138254, + 10.8783947 + ], + [ + 106.8130632, + 10.8791098 + ], + [ + 106.8084835, + 10.8729171 + ], + [ + 106.8052969, + 10.8751165 + ], + [ + 106.8043491, + 10.8737027 + ], + [ + 106.8013329, + 10.8736321 + ], + [ + 106.7986664, + 10.8720074 + ], + [ + 106.7978258, + 10.8732082 + ], + [ + 106.795159, + 10.8735589 + ], + [ + 106.7921713, + 10.8725947 + ], + [ + 106.7921659, + 10.8719756 + ], + [ + 106.7889215, + 10.8719524 + ], + [ + 106.7877281, + 10.8672115 + ], + [ + 106.7803318, + 10.8682665 + ], + [ + 106.7821065, + 10.8771956 + ], + [ + 106.7806065, + 10.8811856 + ], + [ + 106.7695436, + 10.8939241 + ], + [ + 106.7684209, + 10.8940402 + ], + [ + 106.7684183, + 10.8922433 + ], + [ + 106.7672646, + 10.8925065 + ], + [ + 106.7676681, + 10.8916337 + ], + [ + 106.7668916, + 10.8915511 + ], + [ + 106.7645467, + 10.8848594 + ], + [ + 106.7605209, + 10.8812602 + ], + [ + 106.7619415, + 10.8787059 + ], + [ + 106.7614269, + 10.8785209 + ], + [ + 106.7618984, + 10.8755415 + ], + [ + 106.7603765, + 10.8723815 + ], + [ + 106.7632849, + 10.8699203 + ], + [ + 106.7630843, + 10.8687709 + ], + [ + 106.7622395, + 10.8672623 + ], + [ + 106.7546015, + 10.8662775 + ], + [ + 106.7517472, + 10.8634587 + ], + [ + 106.7487055, + 10.8656559 + ], + [ + 106.747918, + 10.8692233 + ], + [ + 106.7459858, + 10.8717248 + ], + [ + 106.7470408, + 10.872075 + ], + [ + 106.7464425, + 10.8738789 + ], + [ + 106.751339, + 10.8754629 + ], + [ + 106.7503719, + 10.8772949 + ], + [ + 106.749396, + 10.8767632 + ], + [ + 106.7483768, + 10.8782166 + ], + [ + 106.7471969, + 10.8773867 + ], + [ + 106.744687, + 10.8800774 + ], + [ + 106.7456581, + 10.8807856 + ], + [ + 106.7449812, + 10.8816265 + ], + [ + 106.7432901, + 10.8804375 + ], + [ + 106.7411417, + 10.8814406 + ], + [ + 106.7384029, + 10.8794311 + ], + [ + 106.7366584, + 10.8806 + ], + [ + 106.7360653, + 10.8796048 + ], + [ + 106.7341768, + 10.8805112 + ], + [ + 106.7368171, + 10.8847474 + ], + [ + 106.7314616, + 10.8859131 + ], + [ + 106.7328295, + 10.8907332 + ], + [ + 106.7295653, + 10.8896769 + ], + [ + 106.7286801, + 10.8910624 + ], + [ + 106.727496, + 10.89019 + ], + [ + 106.717641, + 10.8964358 + ], + [ + 106.7131045, + 10.8894264 + ], + [ + 106.7145051, + 10.8881524 + ], + [ + 106.7138627, + 10.8875052 + ], + [ + 106.7144266, + 10.8868687 + ], + [ + 106.7155501, + 10.8877036 + ], + [ + 106.7175863, + 10.8877483 + ], + [ + 106.716614, + 10.8846164 + ], + [ + 106.7178787, + 10.8809826 + ], + [ + 106.7139831, + 10.8793655 + ], + [ + 106.7126469, + 10.8778823 + ], + [ + 106.713841, + 10.8778073 + ], + [ + 106.7140468, + 10.8769959 + ], + [ + 106.7152941, + 10.8774166 + ], + [ + 106.7214372, + 10.8763851 + ], + [ + 106.7236453, + 10.8717823 + ], + [ + 106.7150398, + 10.8726183 + ], + [ + 106.7154729, + 10.8683837 + ], + [ + 106.7131142, + 10.8657067 + ], + [ + 106.7005135, + 10.8680845 + ], + [ + 106.6956213, + 10.8726752 + ], + [ + 106.6897724, + 10.8804197 + ], + [ + 106.6889612, + 10.8831161 + ], + [ + 106.6892418, + 10.8854263 + ], + [ + 106.6936895, + 10.8929262 + ], + [ + 106.6943267, + 10.8981028 + ], + [ + 106.692787, + 10.9041992 + ], + [ + 106.6874412, + 10.9167793 + ], + [ + 106.6850149, + 10.9208556 + ], + [ + 106.6808778, + 10.9234567 + ], + [ + 106.6682663, + 10.9208418 + ], + [ + 106.6628122, + 10.9226306 + ], + [ + 106.6572929, + 10.9258852 + ], + [ + 106.6557168, + 10.9219588 + ], + [ + 106.653504, + 10.9196179 + ], + [ + 106.6458819, + 10.919811 + ], + [ + 106.6385195, + 10.9161742 + ], + [ + 106.6302376, + 10.9162121 + ], + [ + 106.6220677, + 10.9144584 + ], + [ + 106.6004518, + 10.9177979 + ], + [ + 106.6011921, + 10.9230665 + ], + [ + 106.5814577, + 10.929341 + ], + [ + 106.581576, + 10.9261048 + ], + [ + 106.5825949, + 10.9250367 + ], + [ + 106.5841641, + 10.9196599 + ], + [ + 106.5650412, + 10.9191267 + ], + [ + 106.5613747, + 10.9170763 + ], + [ + 106.5370906, + 10.9159834 + ], + [ + 106.4956203, + 10.9208398 + ], + [ + 106.5315364, + 10.9026658 + ], + [ + 106.5328728, + 10.8999003 + ], + [ + 106.5200679, + 10.8522195 + ], + [ + 106.5045619, + 10.7889222 + ], + [ + 106.4885044, + 10.7754906 + ], + [ + 106.4635618, + 10.7565046 + ] + ], + [ + [ + 106.7790089, + 10.6742684 + ], + [ + 106.7767952, + 10.6711852 + ], + [ + 106.7766080279956, + 10.670985157836176 + ], + [ + 106.7790089, + 10.6742684 + ] + ], + [ + [ + 106.5583063, + 10.7389851 + ], + [ + 106.5583063, + 10.7392636 + ], + [ + 106.55928, + 10.7419274 + ], + [ + 106.5583063, + 10.7389851 + ] + ], + [ + [ + 106.58684158710777, + 10.77618384545821 + ], + [ + 106.5885744384624, + 10.778821549440718 + ], + [ + 106.588447, + 10.7785341 + ], + [ + 106.58684158710777, + 10.77618384545821 + ] + ], + [ + [ + 106.58868821700167, + 10.779078187639762 + ], + [ + 106.5888643, + 10.7799791 + ], + [ + 106.5887643, + 10.7792498 + ], + [ + 106.58868821700167, + 10.779078187639762 + ] + ], + [ + [ + 106.59449836194246, + 10.829824394620333 + ], + [ + 106.5945571, + 10.8298413 + ], + [ + 106.59496837018528, + 10.829797146085225 + ], + [ + 106.59449836194246, + 10.829824394620333 + ] + ], + [ + [ + 106.6031198, + 10.7148414 + ], + [ + 106.6038455, + 10.7162036 + ], + [ + 106.6031299153384, + 10.714785053461059 + ], + [ + 106.6031198, + 10.7148414 + ] + ], + [ + [ + 106.60314776232511, + 10.714685638504053 + ], + [ + 106.6035122510165, + 10.713944314914286 + ], + [ + 106.6032036, + 10.7143746 + ], + [ + 106.60314776232511, + 10.714685638504053 + ] + ], + [ + [ + 106.6033785, + 10.7118815 + ], + [ + 106.60377342366083, + 10.713140071752495 + ], + [ + 106.6037719, + 10.7129428 + ], + [ + 106.6033785, + 10.7118815 + ] + ], + [ + [ + 106.60368279847643, + 10.713597443095725 + ], + [ + 106.6037755, + 10.7134089 + ], + [ + 106.60377460316187, + 10.713292784373012 + ], + [ + 106.60368279847643, + 10.713597443095725 + ] + ], + [ + [ + 106.6074148, + 10.8080818 + ], + [ + 106.60742328185442, + 10.808168454877297 + ], + [ + 106.60748551567454, + 10.807929265781645 + ], + [ + 106.6074148, + 10.8080818 + ] + ], + [ + [ + 106.61146430644618, + 10.816546060772612 + ], + [ + 106.6120436, + 10.8171105 + ], + [ + 106.6131346, + 10.8178989 + ], + [ + 106.61146430644618, + 10.816546060772612 + ] + ], + [ + [ + 106.6145173, + 10.8211242 + ], + [ + 106.61610256033104, + 10.819631658854489 + ], + [ + 106.6160126, + 10.8196311 + ], + [ + 106.6145173, + 10.8211242 + ] + ], + [ + [ + 106.6190341, + 10.7162048 + ], + [ + 106.6210955, + 10.7342486 + ], + [ + 106.6221717, + 10.7386272 + ], + [ + 106.6190341, + 10.7162048 + ] + ], + [ + [ + 106.6237949, + 10.7455106 + ], + [ + 106.6243672, + 10.7555135 + ], + [ + 106.62437485070508, + 10.755530986101025 + ], + [ + 106.6237949, + 10.7455106 + ] + ], + [ + [ + 106.6240144, + 10.7316488 + ], + [ + 106.62403828162915, + 10.731784714243327 + ], + [ + 106.62409742514384, + 10.731596577320218 + ], + [ + 106.6240144, + 10.7316488 + ] + ], + [ + [ + 106.62431699275203, + 10.73145846965352 + ], + [ + 106.62589503248567, + 10.731426156821058 + ], + [ + 106.6244427, + 10.7313794 + ], + [ + 106.62431699275203, + 10.73145846965352 + ] + ], + [ + [ + 106.6248011906813, + 10.756505409218235 + ], + [ + 106.62524520860019, + 10.75752023623136 + ], + [ + 106.6252577, + 10.7574684 + ], + [ + 106.6248011906813, + 10.756505409218235 + ] + ], + [ + [ + 106.6260811344444, + 10.731432148242492 + ], + [ + 106.62718158677332, + 10.731727901281698 + ], + [ + 106.6262132, + 10.7314364 + ], + [ + 106.6260811344444, + 10.731432148242492 + ] + ], + [ + [ + 106.62740241935657, + 10.731711574789315 + ], + [ + 106.6276212, + 10.7316954 + ], + [ + 106.62763133375269, + 10.731666996190071 + ], + [ + 106.62740241935657, + 10.731711574789315 + ] + ], + [ + [ + 106.63141846500038, + 10.891348445540993 + ], + [ + 106.6314908, + 10.8915122 + ], + [ + 106.63168769714993, + 10.891596998412838 + ], + [ + 106.63141846500038, + 10.891348445540993 + ] + ], + [ + [ + 106.63196121072782, + 10.89171479350181 + ], + [ + 106.6321024, + 10.8917756 + ], + [ + 106.63793626753156, + 10.891811091658079 + ], + [ + 106.63196121072782, + 10.89171479350181 + ] + ], + [ + [ + 106.6321392, + 10.840406 + ], + [ + 106.63220768949958, + 10.8404413656469 + ], + [ + 106.63214741209168, + 10.840313417556535 + ], + [ + 106.6321392, + 10.840406 + ] + ], + [ + [ + 106.63228284900505, + 10.832744396141052 + ], + [ + 106.63248350229271, + 10.833503770775541 + ], + [ + 106.632358, + 10.8329517 + ], + [ + 106.63228284900505, + 10.832744396141052 + ] + ], + [ + [ + 106.632536, + 10.8357346 + ], + [ + 106.6327724, + 10.8347746 + ], + [ + 106.63276346661287, + 10.834735303013016 + ], + [ + 106.632536, + 10.8357346 + ] + ], + [ + [ + 106.63278044109668, + 10.840737115081017 + ], + [ + 106.6335415, + 10.8411301 + ], + [ + 106.6333839, + 10.8409378 + ], + [ + 106.63278044109668, + 10.840737115081017 + ] + ], + [ + [ + 106.63296213887087, + 10.838005065667478 + ], + [ + 106.6330018207419, + 10.83808205553099 + ], + [ + 106.6330128, + 10.8380462 + ], + [ + 106.63296213887087, + 10.838005065667478 + ] + ], + [ + [ + 106.6336013, + 10.8431695 + ], + [ + 106.6337534, + 10.8450704 + ], + [ + 106.63380429630513, + 10.84510978754489 + ], + [ + 106.6336013, + 10.8431695 + ] + ], + [ + [ + 106.6337331, + 10.7581715 + ], + [ + 106.6340344, + 10.7587757 + ], + [ + 106.6350891, + 10.7600777 + ], + [ + 106.6337331, + 10.7581715 + ] + ], + [ + [ + 106.63912216345908, + 10.891830204378694 + ], + [ + 106.6409537, + 10.89206 + ], + [ + 106.6396555, + 10.8918388 + ], + [ + 106.63912216345908, + 10.891830204378694 + ] + ], + [ + [ + 106.6393945, + 10.7923729 + ], + [ + 106.64282255126606, + 10.782594271499546 + ], + [ + 106.6427251, + 10.7828118 + ], + [ + 106.6393945, + 10.7923729 + ] + ], + [ + [ + 106.6444299, + 10.8529893 + ], + [ + 106.6445125, + 10.8538749 + ], + [ + 106.64452123207192, + 10.8538948087891 + ], + [ + 106.6444299, + 10.8529893 + ] + ], + [ + [ + 106.64457135609628, + 10.854009089642343 + ], + [ + 106.6447211, + 10.8543505 + ], + [ + 106.64478276877203, + 10.854374840786843 + ], + [ + 106.64457135609628, + 10.854009089642343 + ] + ], + [ + [ + 106.64501047569391, + 10.854464717161305 + ], + [ + 106.6451741, + 10.8545293 + ], + [ + 106.64522208923452, + 10.85449721162569 + ], + [ + 106.64501047569391, + 10.854464717161305 + ] + ], + [ + [ + 106.64567859131247, + 10.854191967966392 + ], + [ + 106.64595789225557, + 10.854005211221946 + ], + [ + 106.6459101, + 10.8540014 + ], + [ + 106.64567859131247, + 10.854191967966392 + ] + ], + [ + [ + 106.64618186642035, + 10.8540230721754 + ], + [ + 106.64634245462771, + 10.854090525771387 + ], + [ + 106.6463189, + 10.854034 + ], + [ + 106.64618186642035, + 10.8540230721754 + ] + ], + [ + [ + 106.64637798177557, + 10.854175782879317 + ], + [ + 106.6465804, + 10.8563601 + ], + [ + 106.6464955, + 10.8544578 + ], + [ + 106.64637798177557, + 10.854175782879317 + ] + ], + [ + [ + 106.6465804, + 10.8563601 + ], + [ + 106.6470451, + 10.8579867 + ], + [ + 106.64712857053162, + 10.858028419642146 + ], + [ + 106.6465804, + 10.8563601 + ] + ], + [ + [ + 106.6505141, + 10.7514823 + ], + [ + 106.6507413, + 10.7534041 + ], + [ + 106.6510904, + 10.7563386 + ], + [ + 106.6505141, + 10.7514823 + ] + ], + [ + [ + 106.6525131, + 10.7693077 + ], + [ + 106.6532259, + 10.7753215 + ], + [ + 106.65329494205608, + 10.77550225705506 + ], + [ + 106.6525131, + 10.7693077 + ] + ], + [ + [ + 106.65336513567131, + 10.775686028974562 + ], + [ + 106.6534406, + 10.7758836 + ], + [ + 106.6559493, + 10.7784506 + ], + [ + 106.65336513567131, + 10.775686028974562 + ] + ], + [ + [ + 106.65614341723276, + 10.77775823573992 + ], + [ + 106.65614341723276, + 10.777758235739922 + ], + [ + 106.6646464, + 10.7869335 + ], + [ + 106.65614341723276, + 10.77775823573992 + ] + ], + [ + [ + 106.65665182721291, + 10.74700031777185 + ], + [ + 106.6577973, + 10.7476151 + ], + [ + 106.65845624274927, + 10.747834828234215 + ], + [ + 106.65665182721291, + 10.74700031777185 + ] + ], + [ + [ + 106.66129725590163, + 10.855866760766425 + ], + [ + 106.66271031863423, + 10.855548437938623 + ], + [ + 106.6613851, + 10.8557929 + ], + [ + 106.66129725590163, + 10.855866760766425 + ] + ], + [ + [ + 106.66298038982444, + 10.855555743529283 + ], + [ + 106.66355262429732, + 10.855607208753229 + ], + [ + 106.663415, + 10.8555675 + ], + [ + 106.66298038982444, + 10.855555743529283 + ] + ], + [ + [ + 106.6642925, + 10.7871257 + ], + [ + 106.6816674, + 10.7778253 + ], + [ + 106.6646464, + 10.7869335 + ], + [ + 106.6642925, + 10.7871257 + ] + ], + [ + [ + 106.6652126038873, + 10.750087775556626 + ], + [ + 106.6654229, + 10.7501579 + ], + [ + 106.66561326863753, + 10.7501579 + ], + [ + 106.6652126038873, + 10.750087775556626 + ] + ], + [ + [ + 106.66607264645242, + 10.7501579 + ], + [ + 106.6666192, + 10.7501579 + ], + [ + 106.671196, + 10.7493132 + ], + [ + 106.66607264645242, + 10.7501579 + ] + ], + [ + [ + 106.6667209, + 10.789603 + ], + [ + 106.66672106750558, + 10.789617043819483 + ], + [ + 106.66676247513391, + 10.789580087761848 + ], + [ + 106.6667209, + 10.789603 + ] + ], + [ + [ + 106.6673501, + 10.800385 + ], + [ + 106.66739065305325, + 10.800504314307878 + ], + [ + 106.66753273799809, + 10.800281133710548 + ], + [ + 106.6673501, + 10.800385 + ] + ], + [ + [ + 106.66782324959206, + 10.78899549031793 + ], + [ + 106.66821887008047, + 10.788800369358134 + ], + [ + 106.6681063, + 10.7888395 + ], + [ + 106.66782324959206, + 10.78899549031793 + ] + ], + [ + [ + 106.67060994754098, + 10.859529155874172 + ], + [ + 106.670645, + 10.8595831 + ], + [ + 106.67075497243482, + 10.859646740296483 + ], + [ + 106.67060994754098, + 10.859529155874172 + ] + ], + [ + [ + 106.67124709296836, + 10.859931527086113 + ], + [ + 106.6724463, + 10.8606255 + ], + [ + 106.6728044, + 10.8606907 + ], + [ + 106.67124709296836, + 10.859931527086113 + ] + ], + [ + [ + 106.67245921359296, + 10.813762023119455 + ], + [ + 106.6725375, + 10.8139935 + ], + [ + 106.67276726912894, + 10.814122682891073 + ], + [ + 106.67245921359296, + 10.813762023119455 + ] + ], + [ + [ + 106.6728044, + 10.8606907 + ], + [ + 106.6732013, + 10.8605208 + ], + [ + 106.67339559471385, + 10.860311661870167 + ], + [ + 106.6728044, + 10.8606907 + ] + ], + [ + [ + 106.6733203, + 10.8223634 + ], + [ + 106.6750903, + 10.8235374 + ], + [ + 106.67518620106908, + 10.823571652023537 + ], + [ + 106.6733203, + 10.8223634 + ] + ], + [ + [ + 106.673426, + 10.7487462 + ], + [ + 106.67518713608195, + 10.74878064718929 + ], + [ + 106.6749964, + 10.7487357 + ], + [ + 106.673426, + 10.7487462 + ] + ], + [ + [ + 106.6734523, + 10.7041037 + ], + [ + 106.67359524926404, + 10.704440887769813 + ], + [ + 106.67349336486834, + 10.703943826765745 + ], + [ + 106.6734523, + 10.7041037 + ] + ], + [ + [ + 106.67345385347129, + 10.860248952353606 + ], + [ + 106.6734788, + 10.8602221 + ], + [ + 106.674247, + 10.8585881 + ], + [ + 106.67345385347129, + 10.860248952353606 + ] + ], + [ + [ + 106.67353109379799, + 10.703796940966425 + ], + [ + 106.6743105, + 10.7028397 + ], + [ + 106.6735712, + 10.7036408 + ], + [ + 106.67353109379799, + 10.703796940966425 + ] + ], + [ + [ + 106.6737265599812, + 10.704750622612929 + ], + [ + 106.6737639, + 10.7048387 + ], + [ + 106.6748723, + 10.7059555 + ], + [ + 106.6737265599812, + 10.704750622612929 + ] + ], + [ + [ + 106.67428089206881, + 10.826277254544573 + ], + [ + 106.6743529050644, + 10.826231016835935 + ], + [ + 106.6743134, + 10.8262207 + ], + [ + 106.67428089206881, + 10.826277254544573 + ] + ], + [ + [ + 106.67550978704008, + 10.748856680279312 + ], + [ + 106.67580480584645, + 10.748959208033634 + ], + [ + 106.6757212, + 10.7489065 + ], + [ + 106.67550978704008, + 10.748856680279312 + ] + ], + [ + [ + 106.6756201214321, + 10.816438418000432 + ], + [ + 106.6756732, + 10.8163813 + ], + [ + 106.67567541745159, + 10.816246888318984 + ], + [ + 106.6756201214321, + 10.816438418000432 + ] + ], + [ + [ + 106.67612714913669, + 10.749162424455736 + ], + [ + 106.67633821323994, + 10.749348896729806 + ], + [ + 106.67631, + 10.7492777 + ], + [ + 106.67612714913669, + 10.749162424455736 + ] + ], + [ + [ + 106.6766246, + 10.7500716 + ], + [ + 106.6767259, + 10.7513448 + ], + [ + 106.67674160176293, + 10.751359776870528 + ], + [ + 106.6766246, + 10.7500716 + ] + ], + [ + [ + 106.67685090833666, + 10.82688337597823 + ], + [ + 106.6773501, + 10.8270259 + ], + [ + 106.67737470390529, + 10.827020166362649 + ], + [ + 106.67685090833666, + 10.82688337597823 + ] + ], + [ + [ + 106.67693554279093, + 10.75154476435754 + ], + [ + 106.6770963, + 10.7516981 + ], + [ + 106.67714731915893, + 10.751698495788634 + ], + [ + 106.67693554279093, + 10.75154476435754 + ] + ], + [ + [ + 106.67755394581083, + 10.826978396242309 + ], + [ + 106.6778011, + 10.8269208 + ], + [ + 106.67787145500151, + 10.826850713939626 + ], + [ + 106.67755394581083, + 10.826978396242309 + ] + ], + [ + [ + 106.67822902375573, + 10.825137234758417 + ], + [ + 106.678606, + 10.8256352 + ], + [ + 106.6782975, + 10.825184 + ], + [ + 106.67822902375573, + 10.825137234758417 + ] + ], + [ + [ + 106.678361, + 10.6682394 + ], + [ + 106.6784712922794, + 10.669258914946266 + ], + [ + 106.67839215106167, + 10.667913952565717 + ], + [ + 106.678361, + 10.6682394 + ] + ], + [ + [ + 106.67861703619516, + 10.670606136177682 + ], + [ + 106.6786613, + 10.6710153 + ], + [ + 106.67912540996541, + 10.672346413693253 + ], + [ + 106.67861703619516, + 10.670606136177682 + ] + ], + [ + [ + 106.67863781795451, + 10.665347373590379 + ], + [ + 106.6787780326063, + 10.664791874555307 + ], + [ + 106.6786623, + 10.6650916 + ], + [ + 106.67863781795451, + 10.665347373590379 + ] + ], + [ + [ + 106.67908442262019, + 10.663998382677017 + ], + [ + 106.67929206907284, + 10.663591929306383 + ], + [ + 106.679204, + 10.6636887 + ], + [ + 106.67908442262019, + 10.663998382677017 + ] + ], + [ + [ + 106.67937059923432, + 10.67304964098336 + ], + [ + 106.6794149, + 10.6731767 + ], + [ + 106.6811645, + 10.6761649 + ], + [ + 106.67937059923432, + 10.67304964098336 + ] + ], + [ + [ + 106.67983342826372, + 10.662997081390948 + ], + [ + 106.68014570389867, + 10.662704122953041 + ], + [ + 106.6800572, + 10.6627512 + ], + [ + 106.67983342826372, + 10.662997081390948 + ] + ], + [ + [ + 106.68030756936646, + 10.662618023376156 + ], + [ + 106.68372024947324, + 10.661401129498094 + ], + [ + 106.6808028, + 10.6623546 + ], + [ + 106.68030756936646, + 10.662618023376156 + ] + ], + [ + [ + 106.6835234, + 10.7924087 + ], + [ + 106.68578814767316, + 10.79227508287368 + ], + [ + 106.6857326, + 10.7922396 + ], + [ + 106.6835234, + 10.7924087 + ] + ], + [ + [ + 106.6836123, + 10.8471514 + ], + [ + 106.68433130874222, + 10.847073337182778 + ], + [ + 106.6842775, + 10.8470625 + ], + [ + 106.6836123, + 10.8471514 + ] + ], + [ + [ + 106.6838498, + 10.8071821 + ], + [ + 106.68441479217442, + 10.806474470148052 + ], + [ + 106.6843367, + 10.8065188 + ], + [ + 106.6838498, + 10.8071821 + ] + ], + [ + [ + 106.6839728, + 10.809969 + ], + [ + 106.68399827418263, + 10.810065588663958 + ], + [ + 106.68397701001619, + 10.809946457422852 + ], + [ + 106.6839728, + 10.809969 + ] + ], + [ + [ + 106.6841974, + 10.8108206 + ], + [ + 106.68518510760782, + 10.81163100892721 + ], + [ + 106.6851673, + 10.8115453 + ], + [ + 106.6841974, + 10.8108206 + ] + ], + [ + [ + 106.68442102925128, + 10.751200346318853 + ], + [ + 106.68495169214904, + 10.751138674259584 + ], + [ + 106.6848442, + 10.7510971 + ], + [ + 106.68442102925128, + 10.751200346318853 + ] + ], + [ + [ + 106.6845429547656, + 10.660787551122956 + ], + [ + 106.6845925, + 10.6607506 + ], + [ + 106.6846556165705, + 10.66061471994804 + ], + [ + 106.6845429547656, + 10.660787551122956 + ] + ], + [ + [ + 106.68510202417372, + 10.794557573518142 + ], + [ + 106.68523618336766, + 10.794307188505982 + ], + [ + 106.6851211, + 10.7944282 + ], + [ + 106.68510202417372, + 10.794557573518142 + ] + ], + [ + [ + 106.68514672004027, + 10.659557451397792 + ], + [ + 106.6852978, + 10.6592322 + ], + [ + 106.6853747675641, + 10.658743511026149 + ], + [ + 106.68514672004027, + 10.659557451397792 + ] + ], + [ + [ + 106.68519481252206, + 10.811677719175853 + ], + [ + 106.6852775, + 10.8128091 + ], + [ + 106.685224, + 10.8118182 + ], + [ + 106.68519481252206, + 10.811677719175853 + ] + ], + [ + [ + 106.68543967290893, + 10.80589268571757 + ], + [ + 106.68611187708608, + 10.805527237313546 + ], + [ + 106.6860504, + 10.805546 + ], + [ + 106.68543967290893, + 10.80589268571757 + ] + ], + [ + [ + 106.68591660495903, + 10.793591717321835 + ], + [ + 106.6863497, + 10.7932013 + ], + [ + 106.68635751913568, + 10.793128090958312 + ], + [ + 106.68591660495903, + 10.793591717321835 + ] + ], + [ + [ + 106.6859324, + 10.8473958 + ], + [ + 106.6864596, + 10.8473719 + ], + [ + 106.68668185381728, + 10.847292196112859 + ], + [ + 106.6859324, + 10.8473958 + ] + ], + [ + [ + 106.68602482413345, + 10.792426267621202 + ], + [ + 106.68622906889806, + 10.79263830566969 + ], + [ + 106.6861498, + 10.7925061 + ], + [ + 106.68602482413345, + 10.792426267621202 + ] + ], + [ + [ + 106.68629536345742, + 10.792748872573371 + ], + [ + 106.68637050619797, + 10.793006495628168 + ], + [ + 106.6863825, + 10.7928942 + ], + [ + 106.68629536345742, + 10.792748872573371 + ] + ], + [ + [ + 106.6864219, + 10.7517073 + ], + [ + 106.6917998, + 10.7523424 + ], + [ + 106.6902025, + 10.7521092 + ], + [ + 106.6864219, + 10.7517073 + ] + ], + [ + [ + 106.68700032684742, + 10.847177986427894 + ], + [ + 106.6872836, + 10.8470764 + ], + [ + 106.68745527700662, + 10.846917416342944 + ], + [ + 106.68700032684742, + 10.847177986427894 + ] + ], + [ + [ + 106.68725530100112, + 10.753492993443839 + ], + [ + 106.6872747, + 10.753519 + ], + [ + 106.68739236343959, + 10.753629654557546 + ], + [ + 106.68725530100112, + 10.753492993443839 + ] + ], + [ + [ + 106.68786427809086, + 10.846538655730832 + ], + [ + 106.6880694, + 10.8463487 + ], + [ + 106.68817424089758, + 10.846159340728247 + ], + [ + 106.68786427809086, + 10.846538655730832 + ] + ], + [ + [ + 106.688402, + 10.7152978 + ], + [ + 106.68846328153602, + 10.715505556194515 + ], + [ + 106.68841274062838, + 10.715167680867461 + ], + [ + 106.688402, + 10.7152978 + ] + ], + [ + [ + 106.68868964351567, + 10.84522844194096 + ], + [ + 106.6888066, + 10.8450172 + ], + [ + 106.68882725474604, + 10.84495211532593 + ], + [ + 106.68868964351567, + 10.84522844194096 + ] + ], + [ + [ + 106.6887528, + 10.8406447 + ], + [ + 106.6888783505769, + 10.841302192930174 + ], + [ + 106.68875726931859, + 10.840582613782228 + ], + [ + 106.6887528, + 10.8406447 + ] + ], + [ + [ + 106.68880988262418, + 10.839851728057203 + ], + [ + 106.68891286285762, + 10.839005229459502 + ], + [ + 106.6888654, + 10.8390805 + ], + [ + 106.68880988262418, + 10.839851728057203 + ] + ], + [ + [ + 106.6889459, + 10.7214203 + ], + [ + 106.68898648714932, + 10.721556726264007 + ], + [ + 106.68897449155975, + 10.72121315155552 + ], + [ + 106.6889459, + 10.7214203 + ] + ], + [ + [ + 106.68901767158822, + 10.844352097388917 + ], + [ + 106.689262, + 10.8435822 + ], + [ + 106.68925071848099, + 10.843515154563372 + ], + [ + 106.68901767158822, + 10.844352097388917 + ] + ], + [ + [ + 106.68936820717339, + 10.795615277140545 + ], + [ + 106.6907597, + 10.7957902 + ], + [ + 106.690833779064, + 10.795767033932284 + ], + [ + 106.68936820717339, + 10.795615277140545 + ] + ], + [ + [ + 106.69024962791282, + 10.73004886718908 + ], + [ + 106.6902556, + 10.7302321 + ], + [ + 106.69029664606037, + 10.730300765318896 + ], + [ + 106.69024962791282, + 10.73004886718908 + ] + ], + [ + [ + 106.69117744428337, + 10.795659562653432 + ], + [ + 106.6916087, + 10.7955247 + ], + [ + 106.6926141, + 10.7948798 + ], + [ + 106.69117744428337, + 10.795659562653432 + ] + ], + [ + [ + 106.6918471, + 10.7425352 + ], + [ + 106.6919118479712, + 10.742639183982908 + ], + [ + 106.6918898, + 10.7420137 + ], + [ + 106.6918471, + 10.7425352 + ] + ], + [ + [ + 106.6918898, + 10.7420137 + ], + [ + 106.6943747, + 10.7379754 + ], + [ + 106.6921478, + 10.7415213 + ], + [ + 106.6918898, + 10.7420137 + ] + ], + [ + [ + 106.69192365720583, + 10.79602688640837 + ], + [ + 106.6920311, + 10.7977881 + ], + [ + 106.691948, + 10.7960657 + ], + [ + 106.69192365720583, + 10.79602688640837 + ] + ], + [ + [ + 106.69219322294127, + 10.830788604264876 + ], + [ + 106.6928652, + 10.8302484 + ], + [ + 106.6922483, + 10.8306773 + ], + [ + 106.69219322294127, + 10.830788604264876 + ] + ], + [ + [ + 106.6928652, + 10.8302484 + ], + [ + 106.69401772168081, + 10.830196300946033 + ], + [ + 106.6938795, + 10.8301438 + ], + [ + 106.6928652, + 10.8302484 + ] + ], + [ + [ + 106.69429158615861, + 10.830300323296838 + ], + [ + 106.69498431196027, + 10.830791302162456 + ], + [ + 106.6946272, + 10.8304278 + ], + [ + 106.69429158615861, + 10.830300323296838 + ] + ], + [ + [ + 106.69446087117417, + 10.734813901209531 + ], + [ + 106.69489241926078, + 10.735910057696383 + ], + [ + 106.6947688, + 10.7353862 + ], + [ + 106.69446087117417, + 10.734813901209531 + ] + ], + [ + [ + 106.69459637744609, + 10.793838895528216 + ], + [ + 106.69474761959111, + 10.793644630560886 + ], + [ + 106.6946043, + 10.7937444 + ], + [ + 106.69459637744609, + 10.793838895528216 + ] + ], + [ + [ + 106.6948785, + 10.7368653 + ], + [ + 106.6949594, + 10.7361939 + ], + [ + 106.69494338948435, + 10.73612605270992 + ], + [ + 106.6948785, + 10.7368653 + ] + ], + [ + [ + 106.69493226186526, + 10.793516095055118 + ], + [ + 106.6973197, + 10.7936608 + ], + [ + 106.6950206, + 10.7934546 + ], + [ + 106.69493226186526, + 10.793516095055118 + ] + ], + [ + [ + 106.69519119058172, + 10.831001882693576 + ], + [ + 106.6957335, + 10.8323163 + ], + [ + 106.6953034, + 10.8311161 + ], + [ + 106.69519119058172, + 10.831001882693576 + ] + ], + [ + [ + 106.697867, + 10.8446041 + ], + [ + 106.69787065437201, + 10.844897505468682 + ], + [ + 106.69790804562321, + 10.844415695852033 + ], + [ + 106.697867, + 10.8446041 + ] + ], + [ + [ + 106.69788175089572, + 10.845788433027463 + ], + [ + 106.697885, + 10.8460493 + ], + [ + 106.69796940758863, + 10.846585121302875 + ], + [ + 106.69788175089572, + 10.845788433027463 + ] + ], + [ + [ + 106.6982049, + 10.8430531 + ], + [ + 106.69905055218412, + 10.841757604225311 + ], + [ + 106.698748, + 10.8421061 + ], + [ + 106.6982049, + 10.8430531 + ] + ], + [ + [ + 106.69822190854129, + 10.848188003124521 + ], + [ + 106.6983048, + 10.8487142 + ], + [ + 106.69837397810274, + 10.848843892350997 + ], + [ + 106.69822190854129, + 10.848188003124521 + ] + ], + [ + [ + 106.69864872970862, + 10.849358985715718 + ], + [ + 106.6988781, + 10.849789 + ], + [ + 106.6990689350309, + 10.84995233922612 + ], + [ + 106.69864872970862, + 10.849358985715718 + ] + ], + [ + [ + 106.69925373839209, + 10.841523563492276 + ], + [ + 106.69988101872698, + 10.841023375201384 + ], + [ + 106.6994467, + 10.8413013 + ], + [ + 106.69925373839209, + 10.841523563492276 + ] + ], + [ + [ + 106.69938630186671, + 10.850223979360086 + ], + [ + 106.6997415, + 10.850528 + ], + [ + 106.70009330263753, + 10.850706452837512 + ], + [ + 106.69938630186671, + 10.850223979360086 + ] + ], + [ + [ + 106.6995664, + 10.8286754 + ], + [ + 106.69993313165276, + 10.829937617596338 + ], + [ + 106.6999564, + 10.8298916 + ], + [ + 106.6995664, + 10.8286754 + ] + ], + [ + [ + 106.69964132693208, + 10.830403301192783 + ], + [ + 106.6997009, + 10.8303969 + ], + [ + 106.69977562700551, + 10.830249113088517 + ], + [ + 106.69964132693208, + 10.830403301192783 + ] + ], + [ + [ + 106.70041025878717, + 10.850867229699984 + ], + [ + 106.7006584, + 10.8509931 + ], + [ + 106.70148999699057, + 10.85117047198466 + ], + [ + 106.70041025878717, + 10.850867229699984 + ] + ], + [ + [ + 106.7006481454908, + 10.828212709602315 + ], + [ + 106.7006982, + 10.8281913 + ], + [ + 106.70083750066136, + 10.827711018294615 + ], + [ + 106.7006481454908, + 10.828212709602315 + ] + ], + [ + [ + 106.70070745009252, + 10.826861897921304 + ], + [ + 106.70101426542782, + 10.827101567609713 + ], + [ + 106.7010287, + 10.8270518 + ], + [ + 106.70070745009252, + 10.826861897921304 + ] + ], + [ + [ + 106.70363145738665, + 10.851627225778655 + ], + [ + 106.7041691, + 10.8517419 + ], + [ + 106.7044808765598, + 10.851745277969592 + ], + [ + 106.70363145738665, + 10.851627225778655 + ] + ], + [ + [ + 106.70437388788416, + 10.838077514141059 + ], + [ + 106.7057005, + 10.8372372 + ], + [ + 106.70609167742461, + 10.83690234308743 + ], + [ + 106.70437388788416, + 10.838077514141059 + ] + ], + [ + [ + 106.70525677215174, + 10.85175368447622 + ], + [ + 106.7060335, + 10.8517621 + ], + [ + 106.71138838121296, + 10.851101697665664 + ], + [ + 106.70525677215174, + 10.85175368447622 + ] + ], + [ + [ + 106.70647415139392, + 10.836574936533667 + ], + [ + 106.7066701, + 10.8364072 + ], + [ + 106.70690577178681, + 10.836111588220476 + ], + [ + 106.70647415139392, + 10.836574936533667 + ] + ], + [ + [ + 106.70728463784819, + 10.835636362602159 + ], + [ + 106.7074541, + 10.8354238 + ], + [ + 106.70766836108757, + 10.835007058625509 + ], + [ + 106.70728463784819, + 10.835636362602159 + ] + ], + [ + [ + 106.70795278692162, + 10.834453845653615 + ], + [ + 106.7080561, + 10.8342529 + ], + [ + 106.70821743155088, + 10.833694102005454 + ], + [ + 106.70795278692162, + 10.834453845653615 + ] + ], + [ + [ + 106.7080073, + 10.7722411 + ], + [ + 106.70803151739241, + 10.772794148469735 + ], + [ + 106.70808158339744, + 10.771609512923089 + ], + [ + 106.7080073, + 10.7722411 + ] + ], + [ + [ + 106.70809545849568, + 10.774254360564472 + ], + [ + 106.708136, + 10.7751802 + ], + [ + 106.70824435570535, + 10.775741437892865 + ], + [ + 106.70809545849568, + 10.774254360564472 + ] + ], + [ + [ + 106.70825988540497, + 10.770093518129771 + ], + [ + 106.70866393040205, + 10.76888346644129 + ], + [ + 106.7082991, + 10.7697601 + ], + [ + 106.70825988540497, + 10.770093518129771 + ] + ], + [ + [ + 106.70843489131677, + 10.776728333827204 + ], + [ + 106.7085436, + 10.7772914 + ], + [ + 106.70874764215141, + 10.777874581072222 + ], + [ + 106.70843489131677, + 10.776728333827204 + ] + ], + [ + [ + 106.70846750577931, + 10.832827929353092 + ], + [ + 106.7085487, + 10.8325467 + ], + [ + 106.70859029152093, + 10.832188784971635 + ], + [ + 106.70846750577931, + 10.832827929353092 + ] + ], + [ + [ + 106.70874065364903, + 10.830894846588723 + ], + [ + 106.7087786, + 10.8305683 + ], + [ + 106.7088113880843, + 10.829666725120465 + ], + [ + 106.70874065364903, + 10.830894846588723 + ] + ], + [ + [ + 106.70896877571171, + 10.76815096819784 + ], + [ + 106.7102524, + 10.7659441 + ], + [ + 106.7091195, + 10.7677888 + ], + [ + 106.70896877571171, + 10.76815096819784 + ] + ], + [ + [ + 106.70898840757329, + 10.826593237166199 + ], + [ + 106.70944361639113, + 10.824935022544052 + ], + [ + 106.7090068, + 10.8262739 + ], + [ + 106.70898840757329, + 10.826593237166199 + ] + ], + [ + [ + 106.70905806581177, + 10.778761815410078 + ], + [ + 106.7092598, + 10.7793384 + ], + [ + 106.70977866104896, + 10.780343363144377 + ], + [ + 106.70905806581177, + 10.778761815410078 + ] + ], + [ + [ + 106.70960165400967, + 10.824614109114028 + ], + [ + 106.710256150107, + 10.823576297994673 + ], + [ + 106.7098178, + 10.8241752 + ], + [ + 106.70960165400967, + 10.824614109114028 + ] + ], + [ + [ + 106.71024991707266, + 10.7812561218422 + ], + [ + 106.7103796, + 10.7815073 + ], + [ + 106.7113623, + 10.7827581 + ], + [ + 106.71024991707266, + 10.7812561218422 + ] + ], + [ + [ + 106.71046539494536, + 10.823290414288259 + ], + [ + 106.71096633037102, + 10.822813760936771 + ], + [ + 106.7105547, + 10.8231684 + ], + [ + 106.71046539494536, + 10.823290414288259 + ] + ], + [ + [ + 106.71170991473646, + 10.822173127782955 + ], + [ + 106.7129396, + 10.821329 + ], + [ + 106.7119364, + 10.821978 + ], + [ + 106.71170991473646, + 10.822173127782955 + ] + ], + [ + [ + 106.71180875023641, + 10.851121125499617 + ], + [ + 106.7136919, + 10.8514038 + ], + [ + 106.7123751, + 10.8511473 + ], + [ + 106.71180875023641, + 10.851121125499617 + ] + ], + [ + [ + 106.71241846674708, + 10.763776698490997 + ], + [ + 106.7143725, + 10.7624818 + ], + [ + 106.7127219, + 10.7635176 + ], + [ + 106.71241846674708, + 10.763776698490997 + ] + ], + [ + [ + 106.71296229427055, + 10.784088937989305 + ], + [ + 106.7131932, + 10.784281 + ], + [ + 106.71396268847984, + 10.784687842725381 + ], + [ + 106.71296229427055, + 10.784088937989305 + ] + ], + [ + [ + 106.7142809, + 10.865054 + ], + [ + 106.7153264, + 10.8641894 + ], + [ + 106.71538138875331, + 10.864110532963698 + ], + [ + 106.7142809, + 10.865054 + ] + ], + [ + [ + 106.7143725, + 10.7624818 + ], + [ + 106.7181535613751, + 10.760686260453472 + ], + [ + 106.7177225, + 10.7608338 + ], + [ + 106.7143725, + 10.7624818 + ] + ], + [ + [ + 106.71489330371978, + 10.785179876135127 + ], + [ + 106.7151954, + 10.7853396 + ], + [ + 106.71581836415793, + 10.785474457711523 + ], + [ + 106.71489330371978, + 10.785179876135127 + ] + ], + [ + [ + 106.7156094764286, + 10.752481865938131 + ], + [ + 106.71630108068761, + 10.752551844232476 + ], + [ + 106.7158543, + 10.7524833 + ], + [ + 106.7156094764286, + 10.752481865938131 + ] + ], + [ + [ + 106.7169014291473, + 10.86193043114802 + ], + [ + 106.7169672, + 10.8618361 + ], + [ + 106.71715429893055, + 10.861307831370985 + ], + [ + 106.7169014291473, + 10.86193043114802 + ] + ], + [ + [ + 106.71719046592246, + 10.752688292002016 + ], + [ + 106.71856000248235, + 10.753207021639982 + ], + [ + 106.7174356, + 10.7527259 + ], + [ + 106.71719046592246, + 10.752688292002016 + ] + ], + [ + [ + 106.7171969, + 10.8541553 + ], + [ + 106.71801246668412, + 10.855642620936825 + ], + [ + 106.7179915, + 10.8554895 + ], + [ + 106.7171969, + 10.8541553 + ] + ], + [ + [ + 106.71745934730106, + 10.860446535777308 + ], + [ + 106.7175841, + 10.8600943 + ], + [ + 106.7182007, + 10.8570173 + ], + [ + 106.71745934730106, + 10.860446535777308 + ] + ], + [ + [ + 106.71888914144849, + 10.753449095109751 + ], + [ + 106.71941655452795, + 10.753920043106408 + ], + [ + 106.7192636, + 10.7537245 + ], + [ + 106.71888914144849, + 10.753449095109751 + ] + ], + [ + [ + 106.7192919, + 10.7862264 + ], + [ + 106.72046142656912, + 10.786702926862855 + ], + [ + 106.7202593, + 10.7865864 + ], + [ + 106.7192919, + 10.7862264 + ] + ], + [ + [ + 106.71978755935285, + 10.754394350319956 + ], + [ + 106.72016749263717, + 10.754942636394752 + ], + [ + 106.7200864, + 10.7547764 + ], + [ + 106.71978755935285, + 10.754394350319956 + ] + ], + [ + [ + 106.7210606, + 10.7223467 + ], + [ + 106.7244476, + 10.7211278 + ], + [ + 106.72455736397139, + 10.721016177955123 + ], + [ + 106.7210606, + 10.7223467 + ] + ], + [ + [ + 106.7212564571996, + 10.78716126554463 + ], + [ + 106.72166228238129, + 10.787421123698355 + ], + [ + 106.7215455, + 10.7873279 + ], + [ + 106.7212564571996, + 10.78716126554463 + ] + ], + [ + [ + 106.722333, + 10.8090333 + ], + [ + 106.72233908056185, + 10.809142198514776 + ], + [ + 106.72258320712957, + 10.80815556524587 + ], + [ + 106.722333, + 10.8090333 + ] + ], + [ + [ + 106.72240590393986, + 10.7880147333773 + ], + [ + 106.72309845025902, + 10.788593057308892 + ], + [ + 106.7230009, + 10.7884897 + ], + [ + 106.72240590393986, + 10.7880147333773 + ] + ], + [ + [ + 106.72276401605824, + 10.807521281639254 + ], + [ + 106.723462, + 10.8058608 + ], + [ + 106.7228123, + 10.8073519 + ], + [ + 106.72276401605824, + 10.807521281639254 + ] + ], + [ + [ + 106.7230375, + 10.7158362 + ], + [ + 106.72306980786054, + 10.715939375035438 + ], + [ + 106.72305758392709, + 10.715695451999515 + ], + [ + 106.7230375, + 10.7158362 + ] + ], + [ + [ + 106.72309306186395, + 10.715446822901448 + ], + [ + 106.72365220464644, + 10.714067020793493 + ], + [ + 106.7231376, + 10.7151347 + ], + [ + 106.72309306186395, + 10.715446822901448 + ] + ], + [ + [ + 106.72371171228846, + 10.789242826091161 + ], + [ + 106.72429435847916, + 10.789893822833987 + ], + [ + 106.7241936, + 10.7897534 + ], + [ + 106.72371171228846, + 10.789242826091161 + ] + ], + [ + [ + 106.7238562944003, + 10.71375946625911 + ], + [ + 106.72474703428036, + 10.712695550181872 + ], + [ + 106.7240874, + 10.7134112 + ], + [ + 106.7238562944003, + 10.71375946625911 + ] + ], + [ + [ + 106.72463383202627, + 10.790366932769262 + ], + [ + 106.72594802167535, + 10.79244073327596 + ], + [ + 106.7254739, + 10.7915377 + ], + [ + 106.72463383202627, + 10.790366932769262 + ] + ], + [ + [ + 106.72491859623435, + 10.720648830788651 + ], + [ + 106.7250856, + 10.720479 + ], + [ + 106.72510191107773, + 10.720417544957417 + ], + [ + 106.72491859623435, + 10.720648830788651 + ] + ], + [ + [ + 106.72492721986235, + 10.7591572055581 + ], + [ + 106.72621170831552, + 10.759283078720154 + ], + [ + 106.7250908, + 10.75915 + ], + [ + 106.72492721986235, + 10.7591572055581 + ] + ], + [ + [ + 106.72524327001635, + 10.712102837102053 + ], + [ + 106.7253004, + 10.7120346 + ], + [ + 106.7257464, + 10.7106827 + ], + [ + 106.72524327001635, + 10.712102837102053 + ] + ], + [ + [ + 106.72604693095666, + 10.802044595118625 + ], + [ + 106.7262057, + 10.8018102 + ], + [ + 106.72645109694557, + 10.801264628897812 + ], + [ + 106.72604693095666, + 10.802044595118625 + ] + ], + [ + [ + 106.7260703, + 10.7025583 + ], + [ + 106.72634187369125, + 10.70011694036123 + ], + [ + 106.7262405, + 10.7004376 + ], + [ + 106.7260703, + 10.7025583 + ] + ], + [ + [ + 106.72621279176589, + 10.792945026192012 + ], + [ + 106.72703289411255, + 10.795732583075182 + ], + [ + 106.7268834, + 10.7949608 + ], + [ + 106.72621279176589, + 10.792945026192012 + ] + ], + [ + [ + 106.7264208303135, + 10.699867189152064 + ], + [ + 106.72678234129158, + 10.699392390440655 + ], + [ + 106.7264771, + 10.6996892 + ], + [ + 106.7264208303135, + 10.699867189152064 + ] + ], + [ + [ + 106.72690297489329, + 10.800260005350308 + ], + [ + 106.7269973, + 10.8000503 + ], + [ + 106.72722840751966, + 10.79848369982641 + ], + [ + 106.72690297489329, + 10.800260005350308 + ] + ], + [ + [ + 106.72693906570572, + 10.69923999525173 + ], + [ + 106.72846875941092, + 10.698704829947378 + ], + [ + 106.728259, + 10.6987631 + ], + [ + 106.72693906570572, + 10.69923999525173 + ] + ], + [ + [ + 106.7271085809865, + 10.796123326545414 + ], + [ + 106.72722230853894, + 10.797986449193314 + ], + [ + 106.7272056, + 10.7966242 + ], + [ + 106.7271085809865, + 10.796123326545414 + ] + ], + [ + [ + 106.72867345563347, + 10.759575347211587 + ], + [ + 106.72954455567424, + 10.75975180958672 + ], + [ + 106.7292256, + 10.7596409 + ], + [ + 106.72867345563347, + 10.759575347211587 + ] + ], + [ + [ + 106.72895356673138, + 10.698570153043248 + ], + [ + 106.73071700802632, + 10.698167061571604 + ], + [ + 106.7299005, + 10.6983071 + ], + [ + 106.72895356673138, + 10.698570153043248 + ] + ], + [ + [ + 106.73019262409552, + 10.824612642430537 + ], + [ + 106.73079127572623, + 10.825166962152737 + ], + [ + 106.7303464, + 10.8247186 + ], + [ + 106.73019262409552, + 10.824612642430537 + ] + ], + [ + [ + 106.73031418135922, + 10.760019429427182 + ], + [ + 106.73141267751774, + 10.760571149091906 + ], + [ + 106.7308536, + 10.760207 + ], + [ + 106.73031418135922, + 10.760019429427182 + ] + ], + [ + [ + 106.7315702361864, + 10.69802072531189 + ], + [ + 106.7326317106552, + 10.697964539259955 + ], + [ + 106.7322823, + 10.6978986 + ], + [ + 106.7315702361864, + 10.69802072531189 + ] + ], + [ + [ + 106.73182438771019, + 10.76083931207101 + ], + [ + 106.73245850152475, + 10.76152782836145 + ], + [ + 106.7321193, + 10.7610314 + ], + [ + 106.73182438771019, + 10.76083931207101 + ] + ], + [ + [ + 106.73222898146214, + 10.826615934979834 + ], + [ + 106.73335605250139, + 10.828027849380739 + ], + [ + 106.732656, + 10.8270463 + ], + [ + 106.73222898146214, + 10.826615934979834 + ] + ], + [ + [ + 106.73300735737807, + 10.76233109011607 + ], + [ + 106.73340413541047, + 10.763112758208374 + ], + [ + 106.733272, + 10.7627184 + ], + [ + 106.73300735737807, + 10.76233109011607 + ] + ], + [ + [ + 106.73346738231955, + 10.698122243583766 + ], + [ + 106.73360187836023, + 10.698170217445831 + ], + [ + 106.7335779, + 10.6981431 + ], + [ + 106.73346738231955, + 10.698122243583766 + ] + ], + [ + [ + 106.73383885753678, + 10.76441018664392 + ], + [ + 106.7340724984283, + 10.765418082444274 + ], + [ + 106.7339688, + 10.764798 + ], + [ + 106.73383885753678, + 10.76441018664392 + ] + ], + [ + [ + 106.73389930263234, + 10.828789544865781 + ], + [ + 106.73601613128754, + 10.832360371108853 + ], + [ + 106.7342118, + 10.8292277 + ], + [ + 106.73389930263234, + 10.828789544865781 + ] + ], + [ + [ + 106.73422688213765, + 10.766341246174134 + ], + [ + 106.7346112657678, + 10.771983648327035 + ], + [ + 106.7343574, + 10.7671217 + ], + [ + 106.73422688213765, + 10.766341246174134 + ] + ], + [ + [ + 106.73475324278307, + 10.772759229007974 + ], + [ + 106.7348939, + 10.7735276 + ], + [ + 106.73504868042465, + 10.773865465645219 + ], + [ + 106.73475324278307, + 10.772759229007974 + ] + ], + [ + [ + 106.7349132112893, + 10.702157239676602 + ], + [ + 106.7349768, + 10.7023049 + ], + [ + 106.7356646, + 10.7030169 + ], + [ + 106.7349132112893, + 10.702157239676602 + ] + ], + [ + [ + 106.7356646, + 10.7030169 + ], + [ + 106.7363214, + 10.7033525 + ], + [ + 106.73650437760152, + 10.703388470386741 + ], + [ + 106.7356646, + 10.7030169 + ] + ], + [ + [ + 106.7365347091329, + 10.833085426213513 + ], + [ + 106.7368682, + 10.8335517 + ], + [ + 106.7371892455654, + 10.833882475984542 + ], + [ + 106.7365347091329, + 10.833085426213513 + ] + ], + [ + [ + 106.73672224377002, + 10.703431299291887 + ], + [ + 106.7370473, + 10.7034952 + ], + [ + 106.7453833, + 10.7032515 + ], + [ + 106.73672224377002, + 10.703431299291887 + ] + ], + [ + [ + 106.7369068194483, + 10.776579726761076 + ], + [ + 106.7370666, + 10.7767447 + ], + [ + 106.73761682659409, + 10.777070139256367 + ], + [ + 106.7369068194483, + 10.776579726761076 + ] + ], + [ + [ + 106.73775475226505, + 10.83446512236092 + ], + [ + 106.7379702, + 10.8346871 + ], + [ + 106.73823159032526, + 10.834812937793547 + ], + [ + 106.73775475226505, + 10.83446512236092 + ] + ], + [ + [ + 106.73788400672666, + 10.777228166702857 + ], + [ + 106.7380085, + 10.7773018 + ], + [ + 106.7389863, + 10.7776019 + ], + [ + 106.73788400672666, + 10.777228166702857 + ] + ], + [ + [ + 106.7384594, + 10.6636129 + ], + [ + 106.73877093722267, + 10.661589158072593 + ], + [ + 106.7385937, + 10.6620918 + ], + [ + 106.7384594, + 10.6636129 + ] + ], + [ + [ + 106.738953, + 10.6659536 + ], + [ + 106.7394825, + 10.6667477 + ], + [ + 106.73955262223959, + 10.66681098667795 + ], + [ + 106.738953, + 10.6659536 + ] + ], + [ + [ + 106.7389863, + 10.7776019 + ], + [ + 106.7402244, + 10.7776805 + ], + [ + 106.7405492410681, + 10.777631274062879 + ], + [ + 106.7389863, + 10.7776019 + ] + ], + [ + [ + 106.73932340686711, + 10.835338557035373 + ], + [ + 106.7395254, + 10.8354358 + ], + [ + 106.73963633439946, + 10.83544612935097 + ], + [ + 106.73932340686711, + 10.835338557035373 + ] + ], + [ + [ + 106.74036786145065, + 10.83551424347691 + ], + [ + 106.7407798, + 10.8355526 + ], + [ + 106.74088111614398, + 10.835539225082142 + ], + [ + 106.74036786145065, + 10.83551424347691 + ] + ], + [ + [ + 106.74083443768728, + 10.777588055787167 + ], + [ + 106.7413911, + 10.7775037 + ], + [ + 106.74192777693119, + 10.777279606898562 + ], + [ + 106.74083443768728, + 10.777588055787167 + ] + ], + [ + [ + 106.74110637434848, + 10.656604991157549 + ], + [ + 106.74253342469562, + 10.654626425215229 + ], + [ + 106.741574, + 10.655794 + ], + [ + 106.74110637434848, + 10.656604991157549 + ] + ], + [ + [ + 106.742093, + 10.6688124 + ], + [ + 106.7436252, + 10.6696071 + ], + [ + 106.7438083050267, + 10.669673654543073 + ], + [ + 106.742093, + 10.6688124 + ] + ], + [ + [ + 106.74324661147904, + 10.653758510402392 + ], + [ + 106.74468093934134, + 10.652409476101992 + ], + [ + 106.7435878, + 10.6533433 + ], + [ + 106.74324661147904, + 10.653758510402392 + ] + ], + [ + [ + 106.74351787923348, + 10.776615648871271 + ], + [ + 106.7437503, + 10.7765186 + ], + [ + 106.74393322707347, + 10.776386107962107 + ], + [ + 106.74351787923348, + 10.776615648871271 + ] + ], + [ + [ + 106.74360383574769, + 10.808325433433641 + ], + [ + 106.7449944443366, + 10.808478480475504 + ], + [ + 106.7437806, + 10.808295 + ], + [ + 106.74360383574769, + 10.808325433433641 + ] + ], + [ + [ + 106.7440823, + 10.7476196 + ], + [ + 106.7441794329674, + 10.748251484908907 + ], + [ + 106.74411397744768, + 10.747351383331742 + ], + [ + 106.7440823, + 10.7476196 + ] + ], + [ + [ + 106.74432760936686, + 10.749215425712727 + ], + [ + 106.7443435, + 10.7493188 + ], + [ + 106.74458649337123, + 10.749921908335459 + ], + [ + 106.74432760936686, + 10.749215425712727 + ] + ], + [ + [ + 106.74439852609629, + 10.669888186575905 + ], + [ + 106.7452839, + 10.67021 + ], + [ + 106.74556333658464, + 10.670260464049456 + ], + [ + 106.74439852609629, + 10.669888186575905 + ] + ], + [ + [ + 106.7447072808418, + 10.74508612430149 + ], + [ + 106.74569903020918, + 10.7435220990891 + ], + [ + 106.7455949, + 10.7436167 + ], + [ + 106.7447072808418, + 10.74508612430149 + ] + ], + [ + [ + 106.7451413984126, + 10.775511042944046 + ], + [ + 106.7464009, + 10.7745988 + ], + [ + 106.74655366559924, + 10.774461873233296 + ], + [ + 106.7451413984126, + 10.775511042944046 + ] + ], + [ + [ + 106.74519141967829, + 10.75142333241248 + ], + [ + 106.745346, + 10.751807 + ], + [ + 106.7464144, + 10.7536636 + ], + [ + 106.74519141967829, + 10.75142333241248 + ] + ], + [ + [ + 106.74586424326621, + 10.743372005222877 + ], + [ + 106.74706214085242, + 10.742530115881436 + ], + [ + 106.7463773, + 10.7429059 + ], + [ + 106.74586424326621, + 10.743372005222877 + ] + ], + [ + [ + 106.74587213239752, + 10.808611148741035 + ], + [ + 106.74682477928545, + 10.808958793614398 + ], + [ + 106.7460028, + 10.8086309 + ], + [ + 106.74587213239752, + 10.808611148741035 + ] + ], + [ + [ + 106.74589144445076, + 10.651375391464198 + ], + [ + 106.74739755194919, + 10.650363776286243 + ], + [ + 106.7461883, + 10.6511218 + ], + [ + 106.74589144445076, + 10.651375391464198 + ] + ], + [ + [ + 106.74677425956175, + 10.833762915811754 + ], + [ + 106.7472019, + 10.8336149 + ], + [ + 106.74732656914777, + 10.833534652728343 + ], + [ + 106.74677425956175, + 10.833762915811754 + ] + ], + [ + [ + 106.7472736154206, + 10.742414076098006 + ], + [ + 106.74785651667044, + 10.742286578107214 + ], + [ + 106.7473831, + 10.742354 + ], + [ + 106.7472736154206, + 10.742414076098006 + ] + ], + [ + [ + 106.74749309332479, + 10.578231332300527 + ], + [ + 106.7477152, + 10.5784562 + ], + [ + 106.7479025134245, + 10.578576285940112 + ], + [ + 106.74749309332479, + 10.578231332300527 + ] + ], + [ + [ + 106.74774425082421, + 10.833265798600797 + ], + [ + 106.7481286, + 10.8330184 + ], + [ + 106.7483306923043, + 10.832834529451784 + ], + [ + 106.74774425082421, + 10.833265798600797 + ] + ], + [ + [ + 106.74776740100793, + 10.809334812388917 + ], + [ + 106.7490423, + 10.8101673 + ], + [ + 106.7478882, + 10.809383 + ], + [ + 106.74776740100793, + 10.809334812388917 + ] + ], + [ + [ + 106.74817685447906, + 10.6498752678342 + ], + [ + 106.7507581, + 10.6486476 + ], + [ + 106.7483802, + 10.6497478 + ], + [ + 106.74817685447906, + 10.6498752678342 + ] + ], + [ + [ + 106.74878960791226, + 10.832416992204543 + ], + [ + 106.7491678, + 10.8320729 + ], + [ + 106.74932251314543, + 10.831843183311182 + ], + [ + 106.74878960791226, + 10.832416992204543 + ] + ], + [ + [ + 106.7489381741002, + 10.74213253327564 + ], + [ + 106.74992262766881, + 10.742166802228978 + ], + [ + 106.7491947, + 10.742096 + ], + [ + 106.7489381741002, + 10.74213253327564 + ] + ], + [ + [ + 106.7497147769474, + 10.670425012757555 + ], + [ + 106.749976, + 10.6704036 + ], + [ + 106.7502507864726, + 10.670305706973165 + ], + [ + 106.7497147769474, + 10.670425012757555 + ] + ], + [ + [ + 106.75017779780033, + 10.811350981908744 + ], + [ + 106.75036466180478, + 10.8116505143328 + ], + [ + 106.7502418, + 10.8114177 + ], + [ + 106.75017779780033, + 10.811350981908744 + ] + ], + [ + [ + 106.75038973736268, + 10.580170835960663 + ], + [ + 106.7505101, + 10.580248 + ], + [ + 106.75094599033461, + 10.58040720400193 + ], + [ + 106.75038973736268, + 10.580170835960663 + ] + ], + [ + [ + 106.7504998, + 10.7589585 + ], + [ + 106.75189516015915, + 10.761166508452678 + ], + [ + 106.7518314, + 10.7609817 + ], + [ + 106.7504998, + 10.7589585 + ] + ], + [ + [ + 106.75086226108765, + 10.81259342938482 + ], + [ + 106.75111730763508, + 10.813421625946228 + ], + [ + 106.7510108, + 10.8128749 + ], + [ + 106.75086226108765, + 10.81259342938482 + ] + ], + [ + [ + 106.75090528046678, + 10.742262380418115 + ], + [ + 106.75413971007656, + 10.74320664037626 + ], + [ + 106.7512499, + 10.7422959 + ], + [ + 106.75090528046678, + 10.742262380418115 + ] + ], + [ + [ + 106.75093940123226, + 10.769982935906926 + ], + [ + 106.7510228, + 10.769885 + ], + [ + 106.75121407766066, + 10.769507517908101 + ], + [ + 106.75093940123226, + 10.769982935906926 + ] + ], + [ + [ + 106.75106435495644, + 10.828561468547171 + ], + [ + 106.7511148, + 10.8284259 + ], + [ + 106.75115770979885, + 10.828147326489077 + ], + [ + 106.75106435495644, + 10.828561468547171 + ] + ], + [ + [ + 106.75121264048919, + 10.813910989406631 + ], + [ + 106.7513903, + 10.815905 + ], + [ + 106.7512788, + 10.8142506 + ], + [ + 106.75121264048919, + 10.813910989406631 + ] + ], + [ + [ + 106.75126335114098, + 10.827461495271775 + ], + [ + 106.7512977, + 10.8272385 + ], + [ + 106.75130210876668, + 10.826698902190865 + ], + [ + 106.75126335114098, + 10.827461495271775 + ] + ], + [ + [ + 106.75197348936955, + 10.768008836256119 + ], + [ + 106.7521539, + 10.7676528 + ], + [ + 106.75228411829808, + 10.76707394074977 + ], + [ + 106.75197348936955, + 10.768008836256119 + ] + ], + [ + [ + 106.75253107564009, + 10.763009705797895 + ], + [ + 106.75259310293706, + 10.76337151272823 + ], + [ + 106.7525752, + 10.7631376 + ], + [ + 106.75253107564009, + 10.763009705797895 + ] + ], + [ + [ + 106.75299143333112, + 10.581154278862062 + ], + [ + 106.7532902, + 10.5812634 + ], + [ + 106.75353697624098, + 10.581299428055853 + ], + [ + 106.75299143333112, + 10.581154278862062 + ] + ], + [ + [ + 106.75511997065774, + 10.581530537059852 + ], + [ + 106.7562314, + 10.5816928 + ], + [ + 106.75667796000639, + 10.581677262268114 + ], + [ + 106.75511997065774, + 10.581530537059852 + ] + ], + [ + [ + 106.7553969511459, + 10.743573679558663 + ], + [ + 106.7556481, + 10.743647 + ], + [ + 106.75719488699238, + 10.743843744728697 + ], + [ + 106.7553969511459, + 10.743573679558663 + ] + ], + [ + [ + 106.75740786873037, + 10.581651865622888 + ], + [ + 106.7584674, + 10.581615 + ], + [ + 106.75968175745882, + 10.581368286285539 + ], + [ + 106.75740786873037, + 10.581651865622888 + ] + ], + [ + [ + 106.75886153691712, + 10.744055735512745 + ], + [ + 106.7589784, + 10.7440706 + ], + [ + 106.7605662, + 10.7440812 + ], + [ + 106.75886153691712, + 10.744055735512745 + ] + ], + [ + [ + 106.7601657, + 10.6458711 + ], + [ + 106.7634362, + 10.6445285 + ], + [ + 106.76369875177863, + 10.644377315409342 + ], + [ + 106.7601657, + 10.6458711 + ] + ], + [ + [ + 106.76060843911739, + 10.581180017936338 + ], + [ + 106.7609516, + 10.5811103 + ], + [ + 106.76205465186369, + 10.58069172476372 + ], + [ + 106.76060843911739, + 10.581180017936338 + ] + ], + [ + [ + 106.76284283581354, + 10.58039263249626 + ], + [ + 106.762937, + 10.5803569 + ], + [ + 106.76372587790682, + 10.579966968920345 + ], + [ + 106.76284283581354, + 10.58039263249626 + ] + ], + [ + [ + 106.76372079467278, + 10.665563857676998 + ], + [ + 106.76448722150606, + 10.665418276177993 + ], + [ + 106.7639772, + 10.6654723 + ], + [ + 106.76372079467278, + 10.665563857676998 + ] + ], + [ + [ + 106.76436254884587, + 10.643995082661162 + ], + [ + 106.7654236, + 10.6433841 + ], + [ + 106.76581641786186, + 10.643095971275255 + ], + [ + 106.76436254884587, + 10.643995082661162 + ] + ], + [ + [ + 106.76620287851998, + 10.665236545901834 + ], + [ + 106.76738545988535, + 10.665257213471781 + ], + [ + 106.7667622, + 10.6651773 + ], + [ + 106.76620287851998, + 10.665236545901834 + ] + ], + [ + [ + 106.76689719139225, + 10.64230323263151 + ], + [ + 106.7675256, + 10.6418423 + ], + [ + 106.76772452273637, + 10.641647669822305 + ], + [ + 106.76689719139225, + 10.64230323263151 + ] + ], + [ + [ + 106.76751199374537, + 10.578141901215249 + ], + [ + 106.7700589, + 10.5772701 + ], + [ + 106.7676541, + 10.5780734 + ], + [ + 106.76751199374537, + 10.578141901215249 + ] + ], + [ + [ + 106.76843049470575, + 10.640956932039625 + ], + [ + 106.7688834, + 10.6405138 + ], + [ + 106.76909770589933, + 10.640222586673772 + ], + [ + 106.76843049470575, + 10.640956932039625 + ] + ], + [ + [ + 106.76883540585678, + 10.665443123425554 + ], + [ + 106.76952117990255, + 10.665589181004776 + ], + [ + 106.7692478, + 10.665496 + ], + [ + 106.76883540585678, + 10.665443123425554 + ] + ], + [ + [ + 106.76948217180654, + 10.639700148439376 + ], + [ + 106.7698194, + 10.6392419 + ], + [ + 106.76997217439664, + 10.638919602563998 + ], + [ + 106.76948217180654, + 10.639700148439376 + ] + ], + [ + [ + 106.77059, + 10.6235349 + ], + [ + 106.7707672, + 10.6275998 + ], + [ + 106.77081626616861, + 10.628065367950216 + ], + [ + 106.77059, + 10.6235349 + ] + ], + [ + [ + 106.77062708901884, + 10.63753797509122 + ], + [ + 106.7708921, + 10.6369789 + ], + [ + 106.77095039863964, + 10.636701742909754 + ], + [ + 106.77062708901884, + 10.63753797509122 + ] + ], + [ + [ + 106.77081448380517, + 10.620118183558482 + ], + [ + 106.77101648247744, + 10.618935899458117 + ], + [ + 106.7708301, + 10.6198805 + ], + [ + 106.77081448380517, + 10.620118183558482 + ] + ], + [ + [ + 106.77090322771151, + 10.628890508947238 + ], + [ + 106.77141333357098, + 10.633730685919366 + ], + [ + 106.7714252, + 10.6330276 + ], + [ + 106.77090322771151, + 10.628890508947238 + ] + ], + [ + [ + 106.7712087319913, + 10.635473602416495 + ], + [ + 106.7713992, + 10.6345681 + ], + [ + 106.77140615106731, + 10.634156249261489 + ], + [ + 106.7712087319913, + 10.635473602416495 + ] + ], + [ + [ + 106.77139309527035, + 10.617027197239178 + ], + [ + 106.77194166331826, + 10.615474513253462 + ], + [ + 106.7714309, + 10.6168356 + ], + [ + 106.77139309527035, + 10.617027197239178 + ] + ], + [ + [ + 106.771849, + 10.5768951 + ], + [ + 106.77381526046605, + 10.57677176610763 + ], + [ + 106.7736384, + 10.5767602 + ], + [ + 106.771849, + 10.5768951 + ] + ], + [ + [ + 106.77255309010111, + 10.61384517758881 + ], + [ + 106.7732116679135, + 10.612533244080158 + ], + [ + 106.7726332, + 10.6136317 + ], + [ + 106.77255309010111, + 10.61384517758881 + ] + ], + [ + [ + 106.77364482577259, + 10.667896457274093 + ], + [ + 106.77538727445945, + 10.669680463901681 + ], + [ + 106.7738764, + 10.6680657 + ], + [ + 106.77364482577259, + 10.667896457274093 + ] + ], + [ + [ + 106.77391909669727, + 10.611189903650605 + ], + [ + 106.77422118606793, + 10.610720856578903 + ], + [ + 106.774022, + 10.6109945 + ], + [ + 106.77391909669727, + 10.611189903650605 + ] + ], + [ + [ + 106.77456434668262, + 10.576820753945322 + ], + [ + 106.77614924638256, + 10.576984758714701 + ], + [ + 106.7757226, + 10.5768965 + ], + [ + 106.77456434668262, + 10.576820753945322 + ] + ], + [ + [ + 106.77676350855799, + 10.577111828795006 + ], + [ + 106.77785536941545, + 10.577420741110078 + ], + [ + 106.7774266, + 10.577249 + ], + [ + 106.77676350855799, + 10.577111828795006 + ] + ], + [ + [ + 106.77823382133435, + 10.577572327837869 + ], + [ + 106.7797131, + 10.5784771 + ], + [ + 106.7785291, + 10.5776906 + ], + [ + 106.77823382133435, + 10.577572327837869 + ] + ], + [ + [ + 106.78099858230246, + 10.600547261294519 + ], + [ + 106.7812621, + 10.6000877 + ], + [ + 106.78251562627665, + 10.597048438532912 + ], + [ + 106.78099858230246, + 10.600547261294519 + ] + ], + [ + [ + 106.7827373319225, + 10.596374544696694 + ], + [ + 106.7831021, + 10.5952658 + ], + [ + 106.7835371, + 10.5931719 + ], + [ + 106.7827373319225, + 10.596374544696694 + ] + ], + [ + [ + 106.7835371, + 10.5931719 + ], + [ + 106.7837406, + 10.5910441 + ], + [ + 106.78369108782323, + 10.590185672268856 + ], + [ + 106.7835371, + 10.5931719 + ] + ] + ], + [ + [ + [ + 106.9637064, + 10.4193628 + ], + [ + 106.9637292, + 10.418873 + ], + [ + 106.9644596, + 10.4187301 + ], + [ + 106.9637064, + 10.4193628 + ] + ] + ], + [ + [ + [ + 106.9698848, + 10.4543892 + ], + [ + 106.9706329, + 10.4539618 + ], + [ + 106.9708354, + 10.454845 + ], + [ + 106.9698848, + 10.4543892 + ] + ] + ], + [ + [ + [ + 106.9717469, + 10.4686544 + ], + [ + 106.9729592, + 10.4669671 + ], + [ + 106.9736133, + 10.4635359 + ], + [ + 106.9731984, + 10.4606217 + ], + [ + 106.9744465, + 10.459317 + ], + [ + 106.9738828, + 10.4599575 + ], + [ + 106.9760421, + 10.4608484 + ], + [ + 106.9767577, + 10.4602633 + ], + [ + 106.976122, + 10.4628537 + ], + [ + 106.9772965, + 10.4639949 + ], + [ + 106.9763285, + 10.4635536 + ], + [ + 106.9758181, + 10.4651565 + ], + [ + 106.9768466, + 10.4656018 + ], + [ + 106.9758012, + 10.4652845 + ], + [ + 106.9753333, + 10.4671924 + ], + [ + 106.9759121, + 10.4687352 + ], + [ + 106.977013, + 10.4684345 + ], + [ + 106.9759758, + 10.4688431 + ], + [ + 106.9776853, + 10.4713561 + ], + [ + 106.9787619, + 10.4709602 + ], + [ + 106.9777466, + 10.4714712 + ], + [ + 106.9778381, + 10.4740853 + ], + [ + 106.9742774, + 10.4706847 + ], + [ + 106.9732111, + 10.4712055 + ], + [ + 106.9717469, + 10.4686544 + ] + ] + ], + [ + [ + [ + 106.9830647, + 10.4957543 + ], + [ + 106.9851702, + 10.4912044 + ], + [ + 106.9852847, + 10.4922625 + ], + [ + 106.9888791, + 10.4955941 + ], + [ + 106.989543, + 10.4973725 + ], + [ + 106.9917649, + 10.4988249 + ], + [ + 106.9908686, + 10.5000191 + ], + [ + 106.9918038, + 10.5001072 + ], + [ + 106.9913082, + 10.50068 + ], + [ + 106.9921814, + 10.5013688 + ], + [ + 106.9899833, + 10.504772 + ], + [ + 106.9877902, + 10.5043472 + ], + [ + 106.9893613, + 10.5036225 + ], + [ + 106.9884441, + 10.5020323 + ], + [ + 106.9873724, + 10.5021005 + ], + [ + 106.9866813, + 10.5034206 + ], + [ + 106.9846301, + 10.4996245 + ], + [ + 106.9852873, + 10.4984083 + ], + [ + 106.9838864, + 10.4984222 + ], + [ + 106.9830647, + 10.4957543 + ] + ] + ], + [ + [ + [ + 106.9831572, + 10.480061 + ], + [ + 106.9874975, + 10.4803508 + ], + [ + 106.9854804, + 10.485568 + ], + [ + 106.9846614, + 10.4849845 + ], + [ + 106.9831572, + 10.480061 + ] + ] + ], + [ + [ + [ + 106.9878347, + 10.5033367 + ], + [ + 106.988644, + 10.502975 + ], + [ + 106.9882473, + 10.5035698 + ], + [ + 106.9878347, + 10.5033367 + ] + ] + ] + ] + } +} diff --git a/src/data/panos/dn.json b/src/data/panos/dn.json index 74a02fb..8a3d8b3 100644 --- a/src/data/panos/dn.json +++ b/src/data/panos/dn.json @@ -1,12 +1,13 @@ { "code": "DN", "name": "Da Nang", - "center": [16.07868,108.08095], + "center": [16.0544,108.2022], "bbox": [107.81854,15.91799,108.33864,16.2255], "count": 1521, "source": "mapillary vector tiles z14", "grid": 0.0003, "generatedAt": "2026-08-30T04:26:55.880Z", + "reclippedAt": "2026-08-30T07:38:26.488Z", "panos": [ {"id":"809174308506012","lat":15.965507,"lng":108.285922}, {"id":"2371280393367178","lat":15.965579,"lng":108.285869}, diff --git a/src/data/panos/hn.json b/src/data/panos/hn.json index b668fd8..b4a09b4 100644 --- a/src/data/panos/hn.json +++ b/src/data/panos/hn.json @@ -1,12 +1,13 @@ { "code": "HN", "name": "Ha Noi", - "center": [20.99862,105.70059], + "center": [21.0285,105.8542], "bbox": [105.28896,20.56452,106.02004,21.38542], - "count": 225985, + "count": 225966, "source": "mapillary vector tiles z14", "grid": 0.0003, "generatedAt": "2026-08-30T04:33:17.835Z", + "reclippedAt": "2026-08-30T07:38:27.243Z", "panos": [ {"id":"424902840263020","lat":20.616432,"lng":105.788088}, {"id":"314933181439578","lat":20.616583,"lng":105.788287}, @@ -32659,7 +32660,6 @@ {"id":"1756108371477987","lat":20.960989,"lng":105.769469}, {"id":"1525702838285974","lat":20.960989,"lng":105.799048}, {"id":"1018756006031412","lat":20.960989,"lng":105.808189}, - {"id":"255573487475211","lat":20.960989,"lng":105.817035}, {"id":"331655722730872","lat":20.960989,"lng":105.837876}, {"id":"837865837883479","lat":20.960989,"lng":105.84662}, {"id":"1067662564266261","lat":20.960994,"lng":105.735592}, @@ -32741,7 +32741,6 @@ {"id":"1817497318850395","lat":20.961019,"lng":105.849066}, {"id":"881307916939022","lat":20.961024,"lng":105.737008}, {"id":"870799727833286","lat":20.961024,"lng":105.756916}, - {"id":"1599085597166612","lat":20.961024,"lng":105.817174}, {"id":"1472721080220323","lat":20.961024,"lng":105.81851}, {"id":"651084133827252","lat":20.961024,"lng":105.824288}, {"id":"3647810492102486","lat":20.961034,"lng":105.735603}, @@ -32761,7 +32760,6 @@ {"id":"214146748343408","lat":20.961049,"lng":105.83912}, {"id":"3718500998475571","lat":20.961059,"lng":105.797696}, {"id":"1071497937604489","lat":20.961064,"lng":105.736493}, - {"id":"1050409029637964","lat":20.961064,"lng":105.817475}, {"id":"1485172482352137","lat":20.961064,"lng":105.874488}, {"id":"337956295280143","lat":20.961069,"lng":105.811193}, {"id":"765954685529447","lat":20.961074,"lng":105.731703}, @@ -32779,9 +32777,7 @@ {"id":"728227722473306","lat":20.961099,"lng":105.814809}, {"id":"1615758002287490","lat":20.961104,"lng":105.768583}, {"id":"1778229482582463","lat":20.961104,"lng":105.794676}, - {"id":"1361578074780751","lat":20.961104,"lng":105.817775}, {"id":"406142145463934","lat":20.961104,"lng":105.873887}, - {"id":"852446289619271","lat":20.961119,"lng":105.818076}, {"id":"3650118995312542","lat":20.961119,"lng":105.843304}, {"id":"644370867836133","lat":20.961119,"lng":105.846915}, {"id":"354080880640478","lat":20.961124,"lng":105.728731}, @@ -54525,7 +54521,6 @@ {"id":"2310796399104641","lat":20.985643,"lng":105.858861}, {"id":"1469152277856443","lat":20.985643,"lng":105.863619}, {"id":"289624557162053","lat":20.985643,"lng":105.878012}, - {"id":"1181642889600599","lat":20.985648,"lng":105.786415}, {"id":"1011635089941562","lat":20.985648,"lng":105.823756}, {"id":"721798236441039","lat":20.985648,"lng":105.876907}, {"id":"1771029003354524","lat":20.985653,"lng":105.797846}, @@ -65092,7 +65087,6 @@ {"id":"358456693412662","lat":20.994458,"lng":105.764705}, {"id":"865820771677852","lat":20.994458,"lng":105.822233}, {"id":"873532194255643","lat":20.994458,"lng":105.825865}, - {"id":"710547200409739","lat":20.994458,"lng":105.842296}, {"id":"857189366007883","lat":20.994458,"lng":105.842838}, {"id":"264531656560250","lat":20.994458,"lng":105.884401}, {"id":"1044065650563065","lat":20.994458,"lng":105.942889}, @@ -65375,7 +65369,6 @@ {"id":"24026934410283870","lat":20.994698,"lng":105.934805}, {"id":"362808969508446","lat":20.994698,"lng":105.945014}, {"id":"1027138218500075","lat":20.994703,"lng":105.729268}, - {"id":"1272219003472611","lat":20.994703,"lng":105.842441}, {"id":"505302308526898","lat":20.994708,"lng":105.940218}, {"id":"1174014103367159","lat":20.994713,"lng":105.763798}, {"id":"962235428952288","lat":20.994718,"lng":105.584085}, @@ -67154,7 +67147,6 @@ {"id":"649650463951112","lat":20.996221,"lng":105.792058}, {"id":"6745275752186533","lat":20.996221,"lng":105.793485}, {"id":"939882110817178","lat":20.996221,"lng":105.820978}, - {"id":"1573923316680479","lat":20.996221,"lng":105.8428}, {"id":"836581378009408","lat":20.996221,"lng":105.846759}, {"id":"840398907573298","lat":20.996221,"lng":105.84964}, {"id":"902905651965823","lat":20.996221,"lng":105.869681}, @@ -68920,7 +68912,6 @@ {"id":"1264508530907545","lat":20.997814,"lng":105.817915}, {"id":"649861117314748","lat":20.997819,"lng":105.711023}, {"id":"223873520523656","lat":20.997819,"lng":105.747598}, - {"id":"1757365531390374","lat":20.997819,"lng":105.842366}, {"id":"851394176287033","lat":20.997819,"lng":105.865953}, {"id":"320545740583825","lat":20.997824,"lng":105.785744}, {"id":"1229421864395626","lat":20.997824,"lng":105.816547}, @@ -69730,7 +69721,6 @@ {"id":"2764838380339608","lat":20.99861,"lng":105.738881}, {"id":"1497717184395643","lat":20.99861,"lng":105.78959}, {"id":"1360184188184793","lat":20.99861,"lng":105.823102}, - {"id":"995293234924997","lat":20.99861,"lng":105.842022}, {"id":"1544590642791740","lat":20.99861,"lng":105.852225}, {"id":"1292780402176382","lat":20.99861,"lng":105.871022}, {"id":"1845215089227125","lat":20.99861,"lng":105.877524}, @@ -70162,7 +70152,6 @@ {"id":"1197267131286064","lat":20.998985,"lng":105.870459}, {"id":"393644930165108","lat":20.99899,"lng":105.534008}, {"id":"863779478289875","lat":20.99899,"lng":105.745205}, - {"id":"1711061542649589","lat":20.99899,"lng":105.841926}, {"id":"1258928978138104","lat":20.99899,"lng":105.853094}, {"id":"883997353285925","lat":20.998995,"lng":105.75477}, {"id":"482727270971252","lat":20.998995,"lng":105.845879}, @@ -70362,7 +70351,6 @@ {"id":"1346003583882963","lat":20.999121,"lng":105.873098}, {"id":"1646834856182631","lat":20.999121,"lng":105.929988}, {"id":"732936798667563","lat":20.999126,"lng":105.739803}, - {"id":"697288592241199","lat":20.999126,"lng":105.841888}, {"id":"790502743696387","lat":20.999126,"lng":105.869574}, {"id":"892232661766987","lat":20.999126,"lng":105.915402}, {"id":"1083964249714706","lat":20.999126,"lng":105.952502}, @@ -70475,7 +70463,6 @@ {"id":"1114794193016832","lat":20.999291,"lng":105.78104}, {"id":"1727339577695231","lat":20.999291,"lng":105.809691}, {"id":"1008882690306677","lat":20.999291,"lng":105.82867}, - {"id":"999654984589383","lat":20.999291,"lng":105.841781}, {"id":"1476209156766631","lat":20.999291,"lng":105.872996}, {"id":"1115856346489310","lat":20.999291,"lng":105.906894}, {"id":"397369276455457","lat":20.999296,"lng":105.5322}, @@ -70749,7 +70736,6 @@ {"id":"994624302138007","lat":20.999601,"lng":105.809541}, {"id":"354113820598469","lat":20.999601,"lng":105.822158}, {"id":"1815372358877220","lat":20.999601,"lng":105.828751}, - {"id":"1783557778756264","lat":20.999601,"lng":105.841658}, {"id":"1644915576049446","lat":20.999601,"lng":105.845606}, {"id":"1371645427653389","lat":20.999601,"lng":105.872771}, {"id":"1396215391723347","lat":20.999606,"lng":105.412493}, @@ -95738,7 +95724,6 @@ {"id":"438724371992764","lat":21.018992,"lng":105.553819}, {"id":"1199447267708202","lat":21.018992,"lng":105.554409}, {"id":"2107501759628519","lat":21.018992,"lng":105.795583}, - {"id":"214707721614923","lat":21.018992,"lng":105.848122}, {"id":"1366613580712524","lat":21.018997,"lng":105.548996}, {"id":"420280857185657","lat":21.018997,"lng":105.69633}, {"id":"324751107343727","lat":21.018997,"lng":105.800748}, @@ -136815,7 +136800,6 @@ {"id":"932732428275695","lat":21.053254,"lng":105.731703}, {"id":"1032248977926373","lat":21.053254,"lng":105.781292}, {"id":"314928354566671","lat":21.053254,"lng":105.797428}, - {"id":"831210518680284","lat":21.053254,"lng":105.805512}, {"id":"230259606574456","lat":21.053254,"lng":105.868785}, {"id":"1115961486121818","lat":21.053254,"lng":105.973198}, {"id":"935953824681529","lat":21.053259,"lng":105.621598}, @@ -217880,7 +217864,6 @@ {"id":"852529756307974","lat":21.194485,"lng":105.762489}, {"id":"403135945408847","lat":21.19449,"lng":105.7809}, {"id":"372564369148914","lat":21.194515,"lng":105.874209}, - {"id":"3408803739417552","lat":21.194525,"lng":105.90705}, {"id":"975148443993316","lat":21.194535,"lng":105.860401}, {"id":"1660756007662661","lat":21.194595,"lng":105.8955}, {"id":"824803602853287","lat":21.194625,"lng":105.903305}, @@ -223162,7 +223145,6 @@ {"id":"3635633666540739","lat":21.236602,"lng":105.814825}, {"id":"930934717727193","lat":21.236662,"lng":105.814787}, {"id":"1212854850524878","lat":21.236687,"lng":105.769184}, - {"id":"1052924258837031","lat":21.236697,"lng":105.732658}, {"id":"910465434181407","lat":21.236702,"lng":105.744942}, {"id":"1746835829530446","lat":21.236712,"lng":105.769163}, {"id":"1123003582119917","lat":21.236752,"lng":105.744535}, diff --git a/src/data/panos/index.js b/src/data/panos/index.js index 145b441..b893b39 100644 --- a/src/data/panos/index.js +++ b/src/data/panos/index.js @@ -1,18 +1,18 @@ // Generated by scripts/build-pano-index.mjs. Do not edit by hand. // -// Lists only the city indexes that have actually been built, so a partial -// build still compiles. +// Lists only the province indexes that have actually been built, so a +// partial build still compiles. -import dh from './dh.json'; -import dl from './dl.json'; import dn from './dn.json'; import hn from './hn.json'; +import la from './la.json'; +import ld from './ld.json'; import tphcm from './tphcm.json'; export const PANO_INDEXES = { - DH: dh, - DL: dl, - DN: dn, - HN: hn, - TPHCM: tphcm, + "DN": dn, + "HN": hn, + "LA": la, + "LD": ld, + "TPHCM": tphcm, }; diff --git a/src/data/panos/dh.json b/src/data/panos/la.json similarity index 99% rename from src/data/panos/dh.json rename to src/data/panos/la.json index a3c4b43..263894b 100644 --- a/src/data/panos/dh.json +++ b/src/data/panos/la.json @@ -1,12 +1,13 @@ { - "code": "DH", - "name": "Duc Hoa", - "center": [10.88904,106.40896], + "code": "LA", + "name": "Long An", + "center": [10.88908,106.40895], "bbox": [106.27082,10.7409,106.53287,11.02578], - "count": 11718, + "count": 11717, "source": "mapillary vector tiles z14", "grid": 0.0003, "generatedAt": "2026-08-30T04:26:15.527Z", + "reclippedAt": "2026-08-30T07:38:27.347Z", "panos": [ {"id":"564462039872493","lat":10.745689,"lng":106.471751}, {"id":"566528822988202","lat":10.745731,"lng":106.471789}, @@ -2323,7 +2324,6 @@ {"id":"502282576179543","lat":10.793429,"lng":106.465802}, {"id":"1068891564930333","lat":10.793455,"lng":106.465797}, {"id":"1079670583895683","lat":10.793619,"lng":106.473597}, - {"id":"582738327454394","lat":10.793619,"lng":106.505703}, {"id":"990905126134429","lat":10.793634,"lng":106.505681}, {"id":"920013016306613","lat":10.793671,"lng":106.481461}, {"id":"1628238277769221","lat":10.793677,"lng":106.489073}, diff --git a/src/data/panos/dl.json b/src/data/panos/ld.json similarity index 99% rename from src/data/panos/dl.json rename to src/data/panos/ld.json index defb2e2..2f24945 100644 --- a/src/data/panos/dl.json +++ b/src/data/panos/ld.json @@ -1,12 +1,13 @@ { - "code": "DL", - "name": "Da Lat", - "center": [11.92057,108.46436], - "bbox": [108.31521,11.80798,108.5944,12.00855], + "code": "LD", + "name": "Lam Dong", + "center": [11.92055,108.4644], + "bbox": [108.31521,11.80798,108.59461,12.00855], "count": 475, "source": "mapillary vector tiles z14", "grid": 0.0003, "generatedAt": "2026-08-30T04:25:42.884Z", + "reclippedAt": "2026-08-30T07:38:27.372Z", "panos": [ {"id":"500652592608650","lat":11.933637,"lng":108.460255}, {"id":"1032715811583639","lat":11.933716,"lng":108.460277}, diff --git a/src/data/panos/tphcm.json b/src/data/panos/tphcm.json index 43d35c3..2911f53 100644 --- a/src/data/panos/tphcm.json +++ b/src/data/panos/tphcm.json @@ -1,12 +1,13 @@ { "code": "TPHCM", "name": "Ho Chi Minh", - "center": [10.66748,106.76447], + "center": [10.8231,106.6297], "bbox": [106.46356,10.35828,107.02758,10.92934], - "count": 184992, + "count": 184938, "source": "mapillary vector tiles z14", "grid": 0.0003, "generatedAt": "2026-08-30T04:29:47.789Z", + "reclippedAt": "2026-08-30T07:38:28.062Z", "panos": [ {"id":"389711540263441","lat":10.532117,"lng":106.764107}, {"id":"840654070870055","lat":10.53218,"lng":106.764321}, @@ -22242,7 +22243,6 @@ {"id":"869202661716111","lat":10.718983,"lng":106.540775}, {"id":"517922627331567","lat":10.718983,"lng":106.553763}, {"id":"1181234199577251","lat":10.718983,"lng":106.557582}, - {"id":"2075583632806742","lat":10.718983,"lng":106.619418}, {"id":"1618295305659730","lat":10.718983,"lng":106.663256}, {"id":"776183794442651","lat":10.718983,"lng":106.680534}, {"id":"960717108852720","lat":10.718983,"lng":106.682986}, @@ -22336,7 +22336,6 @@ {"id":"943583787158161","lat":10.719056,"lng":106.62358}, {"id":"2227491320920066","lat":10.719056,"lng":106.681194}, {"id":"1130549901448306","lat":10.719062,"lng":106.604703}, - {"id":"1032935964703098","lat":10.719062,"lng":106.619407}, {"id":"381457391533235","lat":10.719062,"lng":106.664532}, {"id":"1058986241825666","lat":10.719072,"lng":106.605615}, {"id":"406357928685999","lat":10.719072,"lng":106.6851}, @@ -26110,7 +26109,6 @@ {"id":"1114492743318790","lat":10.725487,"lng":106.583707}, {"id":"1073743133924702","lat":10.725487,"lng":106.679386}, {"id":"883989240022840","lat":10.725487,"lng":106.729496}, - {"id":"1039674343812402","lat":10.725497,"lng":106.62033}, {"id":"315815764112576","lat":10.725503,"lng":106.647881}, {"id":"2355742077948227","lat":10.725503,"lng":106.696526}, {"id":"1021967396166952","lat":10.725508,"lng":106.573799}, @@ -26326,7 +26324,6 @@ {"id":"736810904698548","lat":10.725819,"lng":106.645483}, {"id":"306614628466194","lat":10.725819,"lng":106.650601}, {"id":"1031743457891462","lat":10.725829,"lng":106.598089}, - {"id":"272029405703611","lat":10.725829,"lng":106.620324}, {"id":"1611245392746731","lat":10.725829,"lng":106.644593}, {"id":"1312930156084801","lat":10.725829,"lng":106.648788}, {"id":"3813972848886791","lat":10.725829,"lng":106.678523}, @@ -26794,7 +26791,6 @@ {"id":"1521260568417458","lat":10.726478,"lng":106.728895}, {"id":"709173674608094","lat":10.726478,"lng":106.743293}, {"id":"385487190738512","lat":10.726483,"lng":106.613163}, - {"id":"1134041084642579","lat":10.726483,"lng":106.620228}, {"id":"7980254198668260","lat":10.726483,"lng":106.622985}, {"id":"395530419625352","lat":10.726483,"lng":106.623328}, {"id":"221546550948433","lat":10.726483,"lng":106.624525}, @@ -27032,7 +27028,6 @@ {"id":"1845786965943474","lat":10.726789,"lng":106.734645}, {"id":"1036738807796598","lat":10.726794,"lng":106.558655}, {"id":"350607421116486","lat":10.726794,"lng":106.599462}, - {"id":"758808772388407","lat":10.726794,"lng":106.620271}, {"id":"747574060284568","lat":10.726794,"lng":106.62792}, {"id":"1094718035099785","lat":10.726794,"lng":106.674473}, {"id":"955628525916882","lat":10.726794,"lng":106.685094}, @@ -27051,7 +27046,6 @@ {"id":"354319877453083","lat":10.726799,"lng":106.614273}, {"id":"754231672916538","lat":10.726799,"lng":106.614965}, {"id":"1482705808973043","lat":10.726799,"lng":106.61709}, - {"id":"916949929648024","lat":10.726799,"lng":106.620319}, {"id":"382859117608025","lat":10.726799,"lng":106.631809}, {"id":"6649220141769289","lat":10.726799,"lng":106.642308}, {"id":"339840468818696","lat":10.726799,"lng":106.649464}, @@ -27155,7 +27149,6 @@ {"id":"896114821487638","lat":10.72691,"lng":106.729807}, {"id":"403611372231464","lat":10.726915,"lng":106.612203}, {"id":"915321413469274","lat":10.726915,"lng":106.617009}, - {"id":"355450387375361","lat":10.726915,"lng":106.620292}, {"id":"824273729378958","lat":10.72692,"lng":106.590289}, {"id":"1520867045425273","lat":10.726926,"lng":106.646996}, {"id":"2056737348052515","lat":10.726931,"lng":106.596002}, @@ -27218,7 +27211,6 @@ {"id":"1108925570126174","lat":10.727073,"lng":106.600208}, {"id":"720513350224086","lat":10.727073,"lng":106.610872}, {"id":"7533078850070284","lat":10.727073,"lng":106.613452}, - {"id":"366912966060195","lat":10.727073,"lng":106.620319}, {"id":"7735747439798137","lat":10.727073,"lng":106.681484}, {"id":"946711180379501","lat":10.727073,"lng":106.693152}, {"id":"1160167102009718","lat":10.727073,"lng":106.694938}, @@ -27437,7 +27429,6 @@ {"id":"698957615676242","lat":10.727374,"lng":106.581346}, {"id":"1194306288441725","lat":10.727374,"lng":106.601801}, {"id":"1682655502263739","lat":10.727374,"lng":106.610813}, - {"id":"2768136263334337","lat":10.727374,"lng":106.620351}, {"id":"254629487642729","lat":10.727374,"lng":106.650982}, {"id":"2240818179453652","lat":10.727374,"lng":106.651953}, {"id":"3763334003904362","lat":10.727374,"lng":106.654324}, @@ -27689,7 +27680,6 @@ {"id":"509030675468885","lat":10.727669,"lng":106.679971}, {"id":"731616749145465","lat":10.727669,"lng":106.695904}, {"id":"2509427375932485","lat":10.727674,"lng":106.558628}, - {"id":"692519916417327","lat":10.727674,"lng":106.620373}, {"id":"728799898839514","lat":10.727674,"lng":106.632249}, {"id":"384244247314366","lat":10.727674,"lng":106.649426}, {"id":"693719172568264","lat":10.727674,"lng":106.650424}, @@ -27949,7 +27939,6 @@ {"id":"858256042818475","lat":10.727985,"lng":106.558617}, {"id":"1144807866634880","lat":10.727985,"lng":106.576974}, {"id":"973127321282429","lat":10.727985,"lng":106.601908}, - {"id":"763566038474136","lat":10.727985,"lng":106.620394}, {"id":"800611141677899","lat":10.727985,"lng":106.641943}, {"id":"1084261496340644","lat":10.727985,"lng":106.649501}, {"id":"275620828830387","lat":10.727985,"lng":106.650462}, @@ -28176,7 +28165,6 @@ {"id":"999659404458039","lat":10.728275,"lng":106.726486}, {"id":"361556539784495","lat":10.728275,"lng":106.7289}, {"id":"1165157964791866","lat":10.72828,"lng":106.579206}, - {"id":"297243493338349","lat":10.72828,"lng":106.620421}, {"id":"210760552108072","lat":10.72828,"lng":106.646953}, {"id":"210373212155725","lat":10.72828,"lng":106.651014}, {"id":"1850069445451501","lat":10.72828,"lng":106.667215}, @@ -28419,7 +28407,6 @@ {"id":"234839829597427","lat":10.728596,"lng":106.614965}, {"id":"344237145180226","lat":10.728596,"lng":106.61909}, {"id":"908510774254192","lat":10.728596,"lng":106.619112}, - {"id":"409716011573971","lat":10.728596,"lng":106.620458}, {"id":"324144297245177","lat":10.728596,"lng":106.647903}, {"id":"1391900578114946","lat":10.728596,"lng":106.65103}, {"id":"1075345610553216","lat":10.728596,"lng":106.651508}, @@ -28593,7 +28580,6 @@ {"id":"1043987413572045","lat":10.728892,"lng":106.612401}, {"id":"915303113513560","lat":10.728892,"lng":106.617604}, {"id":"370091185731697","lat":10.728892,"lng":106.618999}, - {"id":"881979780339867","lat":10.728892,"lng":106.620491}, {"id":"1559643548189106","lat":10.728892,"lng":106.625136}, {"id":"1093866925127578","lat":10.728892,"lng":106.632775}, {"id":"901711184946528","lat":10.728892,"lng":106.650483}, @@ -28756,7 +28742,6 @@ {"id":"993266061778764","lat":10.729171,"lng":106.724399}, {"id":"883948270089993","lat":10.729176,"lng":106.616966}, {"id":"1294431204567539","lat":10.729176,"lng":106.618795}, - {"id":"384939570805285","lat":10.729176,"lng":106.620528}, {"id":"893655425535758","lat":10.729176,"lng":106.650445}, {"id":"374957228414704","lat":10.729176,"lng":106.654378}, {"id":"371889022060543","lat":10.729176,"lng":106.672477}, @@ -28953,7 +28938,6 @@ {"id":"3634691873480713","lat":10.729456,"lng":106.630501}, {"id":"3611330259194876","lat":10.729461,"lng":106.613093}, {"id":"1340070196959756","lat":10.729461,"lng":106.628687}, - {"id":"3651691601741030","lat":10.729466,"lng":106.620555}, {"id":"166190453247808","lat":10.729466,"lng":106.728305}, {"id":"1698622220666213","lat":10.729471,"lng":106.61342}, {"id":"1113555069984874","lat":10.729471,"lng":106.704154}, @@ -29171,8 +29155,6 @@ {"id":"1144905913147301","lat":10.729766,"lng":106.687503}, {"id":"581401204104645","lat":10.729766,"lng":106.700404}, {"id":"1530439874232344","lat":10.729772,"lng":106.602225}, - {"id":"852982633251494","lat":10.729772,"lng":106.620587}, - {"id":"1107904950395902","lat":10.729772,"lng":106.620614}, {"id":"1158604731772729","lat":10.729772,"lng":106.687814}, {"id":"387651754326449","lat":10.729777,"lng":106.577409}, {"id":"1471296533443933","lat":10.729777,"lng":106.603432}, @@ -29299,7 +29281,6 @@ {"id":"1736749013503611","lat":10.729872,"lng":106.606205}, {"id":"351558517657362","lat":10.729872,"lng":106.618195}, {"id":"371561982153290","lat":10.729882,"lng":106.626874}, - {"id":"1873968699703566","lat":10.729888,"lng":106.620598}, {"id":"934310914332508","lat":10.729893,"lng":106.586711}, {"id":"799316361910472","lat":10.729893,"lng":106.640993}, {"id":"756415126513090","lat":10.729893,"lng":106.721406}, @@ -29417,7 +29398,6 @@ {"id":"911214590467553","lat":10.730093,"lng":106.690979}, {"id":"204029552542055","lat":10.730093,"lng":106.702561}, {"id":"1408251400081120","lat":10.730099,"lng":106.617277}, - {"id":"1448335919229230","lat":10.730099,"lng":106.62063}, {"id":"895820572333304","lat":10.730099,"lng":106.630136}, {"id":"1830956784014606","lat":10.730099,"lng":106.630688}, {"id":"893986395378668","lat":10.730099,"lng":106.645328}, @@ -29519,7 +29499,6 @@ {"id":"1088439388830412","lat":10.730193,"lng":106.652114}, {"id":"360993849922068","lat":10.730199,"lng":106.730402}, {"id":"1045945369861307","lat":10.730199,"lng":106.742418}, - {"id":"755714256100130","lat":10.730204,"lng":106.62093}, {"id":"6516783438397668","lat":10.730204,"lng":106.713295}, {"id":"1150877142602033","lat":10.730204,"lng":106.717806}, {"id":"1025067565392885","lat":10.730204,"lng":106.729222}, @@ -29608,7 +29587,6 @@ {"id":"1243680283491180","lat":10.730383,"lng":106.602327}, {"id":"359855483353039","lat":10.730383,"lng":106.603555}, {"id":"777753787540129","lat":10.730383,"lng":106.605894}, - {"id":"343652501833448","lat":10.730383,"lng":106.620668}, {"id":"666919125631316","lat":10.730383,"lng":106.635141}, {"id":"780845193881918","lat":10.730383,"lng":106.646084}, {"id":"858428089099952","lat":10.730383,"lng":106.653476}, @@ -29778,7 +29756,6 @@ {"id":"803891508469547","lat":10.730668,"lng":106.707888}, {"id":"3178418612294494","lat":10.730673,"lng":106.534917}, {"id":"1257579448982217","lat":10.730673,"lng":106.576223}, - {"id":"1308688146472435","lat":10.730673,"lng":106.62092}, {"id":"319607954312819","lat":10.730673,"lng":106.634105}, {"id":"991550486020280","lat":10.730673,"lng":106.704964}, {"id":"457042173649854","lat":10.730673,"lng":106.708172}, @@ -29792,7 +29769,6 @@ {"id":"303765089248570","lat":10.730678,"lng":106.725016}, {"id":"696626569286676","lat":10.730684,"lng":106.600412}, {"id":"1127641675070852","lat":10.730684,"lng":106.615491}, - {"id":"3490747427852607","lat":10.730684,"lng":106.62071}, {"id":"622701053334198","lat":10.730684,"lng":106.632925}, {"id":"191619423862078","lat":10.730684,"lng":106.688989}, {"id":"6367487589979686","lat":10.730684,"lng":106.703993}, @@ -29963,7 +29939,6 @@ {"id":"2503475439813694","lat":10.730973,"lng":106.577677}, {"id":"1088465032295014","lat":10.730973,"lng":106.581309}, {"id":"1567882784078719","lat":10.730973,"lng":106.602434}, - {"id":"3479631049016266","lat":10.730973,"lng":106.620748}, {"id":"1082715573174107","lat":10.730973,"lng":106.653487}, {"id":"1461598574419781","lat":10.730973,"lng":106.674006}, {"id":"1276423519913059","lat":10.730973,"lng":106.705404}, @@ -30136,7 +30111,6 @@ {"id":"221414947680592","lat":10.731258,"lng":106.686875}, {"id":"914789567261541","lat":10.731258,"lng":106.692599}, {"id":"462613019809589","lat":10.731269,"lng":106.519173}, - {"id":"393133670074452","lat":10.731269,"lng":106.62078}, {"id":"398408432773465","lat":10.731269,"lng":106.628703}, {"id":"620581336696606","lat":10.731269,"lng":106.641009}, {"id":"1828837177575826","lat":10.731269,"lng":106.687192}, @@ -30372,7 +30346,6 @@ {"id":"798087588703568","lat":10.731595,"lng":106.590611}, {"id":"203936459469866","lat":10.731595,"lng":106.597375}, {"id":"269825332793905","lat":10.731595,"lng":106.618474}, - {"id":"362465896717083","lat":10.731595,"lng":106.620818}, {"id":"1069725947633356","lat":10.731595,"lng":106.621188}, {"id":"1384560512448875","lat":10.731595,"lng":106.621215}, {"id":"935549194805695","lat":10.731595,"lng":106.635758}, @@ -30427,7 +30400,6 @@ {"id":"710507957460981","lat":10.731622,"lng":106.726502}, {"id":"362391839782840","lat":10.731622,"lng":106.73435}, {"id":"1504298373517759","lat":10.731627,"lng":106.535277}, - {"id":"1460430661557623","lat":10.731627,"lng":106.620904}, {"id":"389552166942053","lat":10.731627,"lng":106.665283}, {"id":"343882862091213","lat":10.731632,"lng":106.558505}, {"id":"790647819569693","lat":10.731638,"lng":106.618779}, @@ -30507,7 +30479,6 @@ {"id":"370451262190147","lat":10.731875,"lng":106.725692}, {"id":"211684891995721","lat":10.73188,"lng":106.602643}, {"id":"2696547307181491","lat":10.73188,"lng":106.613957}, - {"id":"1456373888276252","lat":10.73188,"lng":106.620855}, {"id":"735982454724293","lat":10.73188,"lng":106.626284}, {"id":"298202463244349","lat":10.73188,"lng":106.633542}, {"id":"3663196807332854","lat":10.73188,"lng":106.634223}, @@ -30723,7 +30694,6 @@ {"id":"371473685584558","lat":10.732165,"lng":106.616977}, {"id":"352885510884310","lat":10.732165,"lng":106.622116}, {"id":"269197692404129","lat":10.732165,"lng":106.737923}, - {"id":"1348695912454768","lat":10.73217,"lng":106.620888}, {"id":"3200716270233188","lat":10.73217,"lng":106.725504}, {"id":"1058571715419613","lat":10.732175,"lng":106.581309}, {"id":"2171403723207344","lat":10.732175,"lng":106.674022}, @@ -30744,7 +30714,6 @@ {"id":"1525382808018239","lat":10.732191,"lng":106.577951}, {"id":"1209579160257129","lat":10.732191,"lng":106.602654}, {"id":"341595271696250","lat":10.732191,"lng":106.611682}, - {"id":"394184176520074","lat":10.732191,"lng":106.620904}, {"id":"1136622114371128","lat":10.732191,"lng":106.621805}, {"id":"875290010715589","lat":10.732191,"lng":106.625099}, {"id":"395115543196853","lat":10.732191,"lng":106.63116}, @@ -30843,7 +30812,6 @@ {"id":"1961917734189807","lat":10.732249,"lng":106.679424}, {"id":"323282716747601","lat":10.732254,"lng":106.621478}, {"id":"354216963795005","lat":10.732254,"lng":106.742708}, - {"id":"7564212903612660","lat":10.732259,"lng":106.620898}, {"id":"820525846414443","lat":10.732259,"lng":106.671619}, {"id":"352944084502806","lat":10.732265,"lng":106.569008}, {"id":"239504068990876","lat":10.732265,"lng":106.70579}, @@ -30941,7 +30909,6 @@ {"id":"1224166209020215","lat":10.732491,"lng":106.534842}, {"id":"1133977510949699","lat":10.732491,"lng":106.611865}, {"id":"925193435891586","lat":10.732491,"lng":106.619203}, - {"id":"368432549257099","lat":10.732491,"lng":106.620925}, {"id":"932514221767090","lat":10.732491,"lng":106.622942}, {"id":"742886821066794","lat":10.732491,"lng":106.65169}, {"id":"339606689095087","lat":10.732491,"lng":106.711798}, @@ -31116,7 +31083,6 @@ {"id":"316071198119105","lat":10.732781,"lng":106.600841}, {"id":"1422182048447959","lat":10.732781,"lng":106.602783}, {"id":"995363798671319","lat":10.732781,"lng":106.612047}, - {"id":"1413168112907720","lat":10.732781,"lng":106.620947}, {"id":"1410020253243081","lat":10.732781,"lng":106.626547}, {"id":"770599505095309","lat":10.732781,"lng":106.633204}, {"id":"902989417916053","lat":10.732781,"lng":106.668218}, @@ -31312,7 +31278,6 @@ {"id":"1855968941519327","lat":10.733071,"lng":106.672815}, {"id":"1656036114912753","lat":10.733071,"lng":106.718992}, {"id":"2070069076683924","lat":10.733076,"lng":106.619997}, - {"id":"1602441767227341","lat":10.733076,"lng":106.620973}, {"id":"738628434874824","lat":10.733076,"lng":106.634771}, {"id":"390172940026829","lat":10.733076,"lng":106.690539}, {"id":"395910026100056","lat":10.733076,"lng":106.736137}, @@ -31434,7 +31399,6 @@ {"id":"918523866141898","lat":10.733171,"lng":106.621526}, {"id":"1427372331318450","lat":10.733171,"lng":106.632898}, {"id":"473672885271339","lat":10.733182,"lng":106.534805}, - {"id":"1163386471294641","lat":10.733187,"lng":106.621183}, {"id":"1967817353599503","lat":10.733187,"lng":106.643686}, {"id":"376745494969127","lat":10.733192,"lng":106.616119}, {"id":"1457915551731643","lat":10.733192,"lng":106.691414}, @@ -31542,7 +31506,6 @@ {"id":"263523743374261","lat":10.733398,"lng":106.741903}, {"id":"446739681495796","lat":10.733403,"lng":106.558505}, {"id":"7122688127830506","lat":10.733403,"lng":106.588824}, - {"id":"294349759936907","lat":10.733403,"lng":106.621011}, {"id":"637363965077659","lat":10.733403,"lng":106.627663}, {"id":"302779659017711","lat":10.733403,"lng":106.632464}, {"id":"919133412916233","lat":10.733403,"lng":106.653514}, @@ -31771,7 +31734,6 @@ {"id":"991603889181263","lat":10.733709,"lng":106.558923}, {"id":"3665642197051237","lat":10.733709,"lng":106.601168}, {"id":"758513372855100","lat":10.733709,"lng":106.602654}, - {"id":"2213691158836832","lat":10.733709,"lng":106.621048}, {"id":"2992274397570774","lat":10.733709,"lng":106.632957}, {"id":"1217809589196143","lat":10.733709,"lng":106.641374}, {"id":"1438906463728729","lat":10.733709,"lng":106.644282}, @@ -31999,7 +31961,6 @@ {"id":"781748010490430","lat":10.734015,"lng":106.550179}, {"id":"692633253072916","lat":10.734015,"lng":106.589849}, {"id":"675199721462771","lat":10.734015,"lng":106.60826}, - {"id":"2093594041033190","lat":10.734015,"lng":106.621086}, {"id":"344713804940733","lat":10.734015,"lng":106.668406}, {"id":"910061157439756","lat":10.734015,"lng":106.690807}, {"id":"342307698556018","lat":10.734015,"lng":106.693087}, @@ -32209,7 +32170,6 @@ {"id":"1625365374641364","lat":10.734315,"lng":106.702062}, {"id":"1547155422785032","lat":10.73432,"lng":106.601409}, {"id":"2767020413444911","lat":10.73432,"lng":106.608045}, - {"id":"936354891335540","lat":10.73432,"lng":106.621118}, {"id":"3021452311345477","lat":10.73432,"lng":106.624793}, {"id":"1383428629202918","lat":10.73432,"lng":106.659919}, {"id":"1550162719096588","lat":10.73432,"lng":106.718187}, @@ -44866,7 +44826,6 @@ {"id":"1026912661757805","lat":10.749657,"lng":106.727977}, {"id":"3639905276272409","lat":10.749662,"lng":106.645516}, {"id":"924772925850760","lat":10.749662,"lng":106.655847}, - {"id":"904185627777749","lat":10.749662,"lng":106.669199}, {"id":"1742979146485379","lat":10.749662,"lng":106.675422}, {"id":"3593206534284545","lat":10.749662,"lng":106.717683}, {"id":"1540091600165803","lat":10.749668,"lng":106.590922}, @@ -63674,7 +63633,6 @@ {"id":"2311795462352063","lat":10.771207,"lng":106.619112}, {"id":"7547893308558185","lat":10.771207,"lng":106.635774}, {"id":"754427676682120","lat":10.771207,"lng":106.644995}, - {"id":"8586167881470315","lat":10.771207,"lng":106.652747}, {"id":"341477612089102","lat":10.771207,"lng":106.662253}, {"id":"1798963357238368","lat":10.771207,"lng":106.668679}, {"id":"2127672317581819","lat":10.771207,"lng":106.674306}, @@ -66284,7 +66242,6 @@ {"id":"1267176841191548","lat":10.773599,"lng":106.621601}, {"id":"1093743312351580","lat":10.773599,"lng":106.629438}, {"id":"992561181814673","lat":10.773599,"lng":106.648917}, - {"id":"954358642699857","lat":10.773599,"lng":106.653042}, {"id":"1073481937182509","lat":10.773599,"lng":106.654817}, {"id":"312171768407227","lat":10.773599,"lng":106.656534}, {"id":"1741331899694571","lat":10.773599,"lng":106.657194}, @@ -66777,7 +66734,6 @@ {"id":"590144237030260","lat":10.774184,"lng":106.627867}, {"id":"217017891408923","lat":10.774184,"lng":106.648112}, {"id":"329116359853173","lat":10.774184,"lng":106.648498}, - {"id":"913391510460951","lat":10.774184,"lng":106.653117}, {"id":"970626714568415","lat":10.774184,"lng":106.664506}, {"id":"347420058093048","lat":10.774184,"lng":106.671823}, {"id":"24324253347220264","lat":10.774184,"lng":106.723836}, @@ -67060,7 +67016,6 @@ {"id":"1095894834920256","lat":10.774495,"lng":106.632448}, {"id":"663012642646823","lat":10.774495,"lng":106.63653}, {"id":"1060548418526428","lat":10.774495,"lng":106.64831}, - {"id":"901750884930894","lat":10.774495,"lng":106.653138}, {"id":"1565042817645741","lat":10.774495,"lng":106.671876}, {"id":"263135573296247","lat":10.774495,"lng":106.686333}, {"id":"792839732197771","lat":10.774495,"lng":106.729571}, @@ -76892,7 +76847,6 @@ {"id":"1490596681616508","lat":10.784376,"lng":106.586754}, {"id":"1216131142955074","lat":10.784376,"lng":106.594484}, {"id":"509628938698195","lat":10.784376,"lng":106.618844}, - {"id":"912910303541467","lat":10.784376,"lng":106.642195}, {"id":"1570129313802123","lat":10.784376,"lng":106.661711}, {"id":"558736836478662","lat":10.784376,"lng":106.69409}, {"id":"1494897421353898","lat":10.784376,"lng":106.735353}, @@ -77854,7 +77808,6 @@ {"id":"1169065591146265","lat":10.785219,"lng":106.814232}, {"id":"871152897986084","lat":10.785224,"lng":106.749317}, {"id":"3597839097146995","lat":10.785229,"lng":106.635291}, - {"id":"1513561276112058","lat":10.785229,"lng":106.641889}, {"id":"894353755028372","lat":10.785229,"lng":106.647291}, {"id":"1570629220007751","lat":10.785229,"lng":106.653305}, {"id":"1300630140525604","lat":10.785229,"lng":106.67848}, @@ -78832,7 +78785,6 @@ {"id":"657064613262515","lat":10.786025,"lng":106.7646}, {"id":"1389718048560573","lat":10.78603,"lng":106.60171}, {"id":"651741510457010","lat":10.78603,"lng":106.629621}, - {"id":"8674420159317746","lat":10.78603,"lng":106.641605}, {"id":"1322126528494764","lat":10.78603,"lng":106.663792}, {"id":"1451757595408387","lat":10.786036,"lng":106.590289}, {"id":"1482801549120682","lat":10.786036,"lng":106.615802}, @@ -82827,7 +82779,6 @@ {"id":"1078335316927849","lat":10.789477,"lng":106.62976}, {"id":"885892713056564","lat":10.789477,"lng":106.637791}, {"id":"215776984883750","lat":10.789477,"lng":106.640344}, - {"id":"2567314493452341","lat":10.789477,"lng":106.640409}, {"id":"1051279729619134","lat":10.789477,"lng":106.690019}, {"id":"1063732531612948","lat":10.789477,"lng":106.696681}, {"id":"1030614581996656","lat":10.789477,"lng":106.714835}, @@ -92092,7 +92043,6 @@ {"id":"660547606282855","lat":10.796707,"lng":106.683844}, {"id":"755080063326902","lat":10.796707,"lng":106.687959}, {"id":"308902308684797","lat":10.796707,"lng":106.690464}, - {"id":"232569889864686","lat":10.796707,"lng":106.691971}, {"id":"886326456205945","lat":10.796707,"lng":106.695324}, {"id":"1993147544431115","lat":10.796707,"lng":106.703607}, {"id":"792709422167633","lat":10.796707,"lng":106.722377}, @@ -92987,7 +92937,6 @@ {"id":"892956768807329","lat":10.797571,"lng":106.686661}, {"id":"1391745975106166","lat":10.797571,"lng":106.687079}, {"id":"2700641240075238","lat":10.797571,"lng":106.68797}, - {"id":"751041336838503","lat":10.797571,"lng":106.69202}, {"id":"207244425403571","lat":10.797571,"lng":106.704749}, {"id":"832195191891373","lat":10.797571,"lng":106.724222}, {"id":"358444699928859","lat":10.797571,"lng":106.738181}, @@ -96233,7 +96182,6 @@ {"id":"329346086692004","lat":10.800348,"lng":106.779894}, {"id":"934810305048717","lat":10.800353,"lng":106.665241}, {"id":"271578665287348","lat":10.800353,"lng":106.666448}, - {"id":"1026240492538525","lat":10.800353,"lng":106.66744}, {"id":"895801912165306","lat":10.800353,"lng":106.741968}, {"id":"339249652264968","lat":10.800358,"lng":106.569008}, {"id":"1020566369166246","lat":10.800358,"lng":106.783494}, @@ -119427,7 +119375,6 @@ {"id":"734522548741115","lat":10.824481,"lng":106.685963}, {"id":"689886593121315","lat":10.824486,"lng":106.691403}, {"id":"1144866656476505","lat":10.824486,"lng":106.703982}, - {"id":"373618955201903","lat":10.824491,"lng":106.709674}, {"id":"344545841948055","lat":10.824491,"lng":106.796717}, {"id":"678930210821170","lat":10.824496,"lng":106.601104}, {"id":"749135060566921","lat":10.824496,"lng":106.60378}, diff --git a/src/data/regions/index.js b/src/data/regions/index.js new file mode 100644 index 0000000..cc08049 --- /dev/null +++ b/src/data/regions/index.js @@ -0,0 +1,77 @@ +// Generated by scripts/build-region-boundaries.mjs. Do not edit by hand. +// +// The region tree: country > province > district. Safe to import from a +// client component -- it holds names and extents, never panorama data. +// +// A node marked coverage: 'unresolved' has no boundary. That is recorded, +// not a build failure; see the Coverage note in docs/project-overview.md. + +export const REGIONS = { + "VN": {"code":"VN","name":"Vietnam","parent":null,"level":"country","children":["HN","TPHCM","DN","LD","LA"],"center":[15.87185,106.94179],"bbox":[105.28896,10.35828,108.59461,21.38542]}, + "HN": {"code":"HN","name":"Ha Noi","parent":"VN","level":"province","children":["HN-BADINH","HN-HOANKIEM","HN-TAYHO","HN-LONGBIEN","HN-CAUGIAY","HN-DONGDA","HN-HAIBATRUNG","HN-HOANGMAI","HN-THANHXUAN","HN-BACTULIEM","HN-NAMTULIEM","HN-HADONG","HN-SONTAY","HN-BAVI","HN-CHUONGMY","HN-DANPHUONG","HN-DONGANH","HN-GIALAM","HN-HOAIDUC","HN-MELINH","HN-MYDUC","HN-PHUXUYEN","HN-PHUCTHO","HN-QUOCOAI","HN-SOCSON","HN-THACHTHAT","HN-THANHOAI","HN-THANHTRI","HN-THUONGTIN","HN-UNGHOA"],"center":[21.0285,105.8542],"bbox":[105.28896,20.56452,106.02004,21.38542]}, + "HN-BADINH": {"code":"HN-BADINH","name":"Ba Dinh","parent":"HN","level":"district","children":[],"center":[21.03578,105.826],"bbox":[105.80135,21.01596,105.85597,21.05337]}, + "HN-HOANKIEM": {"code":"HN-HOANKIEM","name":"Hoan Kiem","parent":"HN","level":"district","children":[],"center":[21.02901,105.85378],"bbox":[105.84093,21.01813,105.86728,21.04321]}, + "HN-TAYHO": {"code":"HN-TAYHO","name":"Tay Ho","parent":"HN","level":"district","children":[],"center":[21.06931,105.81988],"bbox":[105.79178,21.03951,105.84828,21.09737]}, + "HN-LONGBIEN": {"code":"HN-LONGBIEN","name":"Long Bien","parent":"HN","level":"district","children":[],"center":[21.04246,105.89397],"bbox":[105.84106,20.99411,105.93877,21.08081]}, + "HN-CAUGIAY": {"code":"HN-CAUGIAY","name":"Cau Giay","parent":"HN","level":"district","children":[],"center":[21.0306,105.79168],"bbox":[105.76716,21.00066,105.81352,21.05879]}, + "HN-DONGDA": {"code":"HN-DONGDA","name":"Dong Da","parent":"HN","level":"district","children":[],"center":[21.01547,105.82503],"bbox":[105.79763,20.99742,105.84263,21.03215]}, + "HN-HAIBATRUNG": {"code":"HN-HAIBATRUNG","name":"Hai Ba Trung","parent":"HN","level":"district","children":[],"center":[21.00564,105.8585],"bbox":[105.8409,20.98996,105.88241,21.02127]}, + "HN-HOANGMAI": {"code":"HN-HOANGMAI","name":"Hoang Mai","parent":"HN","level":"district","children":[],"center":[20.97454,105.86322],"bbox":[105.80739,20.94544,105.90879,21.00376]}, + "HN-THANHXUAN": {"code":"HN-THANHXUAN","name":"Thanh Xuan","parent":"HN","level":"district","children":[],"center":[20.99482,105.81531],"bbox":[105.79218,20.98056,105.84287,21.00885]}, + "HN-BACTULIEM": {"code":"HN-BACTULIEM","name":"Bac Tu Liem","parent":"HN","level":"district","children":[],"center":[21.07198,105.7613],"bbox":[105.71721,21.03798,105.80499,21.10812]}, + "HN-NAMTULIEM": {"code":"HN-NAMTULIEM","name":"Nam Tu Liem","parent":"HN","level":"district","children":[],"center":[21.01256,105.76151],"bbox":[105.72656,20.97966,105.7992,21.05656]}, + "HN-HADONG": {"code":"HN-HADONG","name":"Ha Dong","parent":"HN","level":"district","children":[],"center":[20.95356,105.75706],"bbox":[105.70525,20.91082,105.8043,20.99698]}, + "HN-SONTAY": {"code":"HN-SONTAY","name":"Son Tay","parent":"HN","level":"district","children":[],"center":[21.09694,105.47954],"bbox":[105.41344,21.02175,105.53798,21.17188]}, + "HN-BAVI": {"code":"HN-BAVI","name":"Ba Vi","parent":"HN","level":"district","children":[],"center":[21.14125,105.38297],"bbox":[105.28896,21.0074,105.47524,21.30451]}, + "HN-CHUONGMY": {"code":"HN-CHUONGMY","name":"Chuong My","parent":"HN","level":"district","children":[],"center":[20.87763,105.66036],"bbox":[105.55102,20.7919,105.75984,20.96484]}, + "HN-DANPHUONG": {"code":"HN-DANPHUONG","name":"Dan Phuong","parent":"HN","level":"district","children":[],"center":[21.11385,105.67739],"bbox":[105.62321,21.06614,105.74057,21.17336]}, + "HN-DONGANH": {"code":"HN-DONGANH","name":"Dong Anh","parent":"HN","level":"district","children":[],"center":[21.13619,105.84265],"bbox":[105.73214,21.06689,105.92674,21.20628]}, + "HN-GIALAM": {"code":"HN-GIALAM","name":"Gia Lam","parent":"HN","level":"district","children":[],"center":[21.02888,105.95055],"bbox":[105.88147,20.92633,106.02004,21.12119]}, + "HN-HOAIDUC": {"code":"HN-HOAIDUC","name":"Hoai Duc","parent":"HN","level":"district","children":[],"center":[21.02405,105.69946],"bbox":[105.64615,20.95542,105.74275,21.09028]}, + "HN-MELINH": {"code":"HN-MELINH","name":"Me Linh","parent":"HN","level":"district","children":[],"center":[21.18352,105.7058],"bbox":[105.61499,21.12176,105.7909,21.23963]}, + "HN-MYDUC": {"code":"HN-MYDUC","name":"My Duc","parent":"HN","level":"district","children":[],"center":[20.68678,105.72026],"bbox":[105.64768,20.56452,105.81286,20.82997]}, + "HN-PHUXUYEN": {"code":"HN-PHUXUYEN","name":"Phu Xuyen","parent":"HN","level":"district","children":[],"center":[20.73559,105.90112],"bbox":[105.7918,20.65079,106.00392,20.80684]}, + "HN-PHUCTHO": {"code":"HN-PHUCTHO","name":"Phuc Tho","parent":"HN","level":"district","children":[],"center":[21.11707,105.58374],"bbox":[105.50053,21.04026,105.66491,21.17912]}, + "HN-QUOCOAI": {"code":"HN-QUOCOAI","name":"Quoc Oai","parent":"HN","level":"district","children":[],"center":[20.96769,105.59765],"bbox":[105.4782,20.90939,105.72589,21.04616]}, + "HN-SOCSON": {"code":"HN-SOCSON","name":"Soc Son","parent":"HN","level":"district","children":[],"center":[21.27256,105.83045],"bbox":[105.72329,21.17692,105.93902,21.38542]}, + "HN-THACHTHAT": {"code":"HN-THACHTHAT","name":"Thach That","parent":"HN","level":"district","children":[],"center":[21.01894,105.53016],"bbox":[105.39192,20.94573,105.63988,21.10199]}, + "HN-THANHOAI": {"code":"HN-THANHOAI","name":"Thanh Oai","parent":"HN","level":"district","children":[],"center":[20.85577,105.78086],"bbox":[105.72512,20.78033,105.84123,20.93973]}, + "HN-THANHTRI": {"code":"HN-THANHTRI","name":"Thanh Tri","parent":"HN","level":"district","children":[],"center":[20.93266,105.84089],"bbox":[105.78821,20.89699,105.91311,20.98653]}, + "HN-THUONGTIN": {"code":"HN-THUONGTIN","name":"Thuong Tin","parent":"HN","level":"district","children":[],"center":[20.84497,105.87482],"bbox":[105.81267,20.75192,105.93617,20.91223]}, + "HN-UNGHOA": {"code":"HN-UNGHOA","name":"Ung Hoa","parent":"HN","level":"district","children":[],"center":[20.7119,105.79932],"bbox":[105.69662,20.61188,105.90562,20.80969]}, + "TPHCM": {"code":"TPHCM","name":"Ho Chi Minh","parent":"VN","level":"province","children":["TPHCM-Q1","TPHCM-Q3","TPHCM-Q4","TPHCM-Q5","TPHCM-Q6","TPHCM-Q7","TPHCM-Q8","TPHCM-Q10","TPHCM-Q11","TPHCM-Q12","TPHCM-BINHTAN","TPHCM-BINHTHANH","TPHCM-GOVAP","TPHCM-PHUNHUAN","TPHCM-TANBINH","TPHCM-TANPHU","TPHCM-THUDUC","TPHCM-BINHCHANH","TPHCM-CANGIO","TPHCM-CUCHI","TPHCM-HOCMON","TPHCM-NHABE"],"center":[10.8231,106.6297],"bbox":[106.46356,10.35828,107.02758,10.92934],"missingParts":1}, + "TPHCM-Q1": {"code":"TPHCM-Q1","name":"District 1","parent":"TPHCM","level":"district","children":[],"center":[10.77622,106.69715],"bbox":[106.68169,10.75352,106.7152,10.79693]}, + "TPHCM-Q3": {"code":"TPHCM-Q3","name":"District 3","parent":"TPHCM","level":"district","children":[],"center":[10.78146,106.68284],"bbox":[106.66429,10.76543,106.69813,10.79251]}, + "TPHCM-Q4": {"code":"TPHCM-Q4","name":"District 4","parent":"TPHCM","level":"district","children":[],"center":[10.75846,106.70554],"bbox":[106.68642,10.75171,106.72228,10.76976]}, + "TPHCM-Q5": {"code":"TPHCM-Q5","name":"District 5","parent":"TPHCM","level":"district","children":[],"center":[10.75494,106.66946],"bbox":[106.65051,10.74614,106.68727,10.76543]}, + "TPHCM-Q6": {"code":"TPHCM-Q6","name":"District 6","parent":"TPHCM","level":"district","children":[],"center":[10.74587,106.63524],"bbox":[106.62108,10.72973,106.65505,10.76202]}, + "TPHCM-Q7": {"code":"TPHCM-Q7","name":"District 7","parent":"TPHCM","level":"district","children":[],"center":[10.73646,106.72962],"bbox":[106.69009,10.69795,106.76866,10.77763]}, + "TPHCM-Q8": {"code":"TPHCM-Q8","name":"District 8","parent":"TPHCM","level":"district","children":[],"center":[10.7245,106.64055],"bbox":[106.59456,10.68985,106.69285,10.75211]}, + "TPHCM-Q10": {"code":"TPHCM-Q10","name":"District 10","parent":"TPHCM","level":"district","children":[],"center":[10.77237,106.66826],"bbox":[106.65613,10.75843,106.6828,10.78693]}, + "TPHCM-Q11": {"code":"TPHCM-Q11","name":"District 11","parent":"TPHCM","level":"district","children":[],"center":[10.76412,106.64773],"bbox":[106.6342,10.7534,106.66156,10.77845]}, + "TPHCM-Q12": {"code":"TPHCM-Q12","name":"District 12","parent":"TPHCM","level":"district","children":[],"center":[10.86453,106.65697],"bbox":[106.60328,10.81861,106.7182,10.9042]}, + "TPHCM-BINHTAN": {"code":"TPHCM-BINHTAN","name":"Binh Tan","parent":"TPHCM","level":"district","children":[],"center":[10.76473,106.59754],"bbox":[106.55831,10.71096,106.62526,10.82978]}, + "TPHCM-BINHTHANH": {"code":"TPHCM-BINHTHANH","name":"Binh Thanh","parent":"TPHCM","level":"district","children":[],"center":[10.81206,106.7162],"bbox":[106.68385,10.78534,106.75139,10.83917]}, + "TPHCM-GOVAP": {"code":"TPHCM-GOVAP","name":"Go Vap","parent":"TPHCM","level":"district","children":[],"center":[10.8383,106.66741],"bbox":[106.63194,10.80997,106.70106,10.86079]}, + "TPHCM-PHUNHUAN": {"code":"TPHCM-PHUNHUAN","name":"Phu Nhuan","parent":"TPHCM","level":"district","children":[],"center":[10.80033,106.67817],"bbox":[106.66596,10.78791,106.69248,10.81414]}, + "TPHCM-TANBINH": {"code":"TPHCM-TANBINH","name":"Tan Binh","parent":"TPHCM","level":"district","children":[],"center":[10.80882,106.65239],"bbox":[106.62789,10.76891,106.67861,10.83725]}, + "TPHCM-TANPHU": {"code":"TPHCM-TANPHU","name":"Tan Phu","parent":"TPHCM","level":"district","children":[],"center":[10.79255,106.62689],"bbox":[106.6074,10.75817,106.64768,10.82469]}, + "TPHCM-THUDUC": {"code":"TPHCM-THUDUC","name":"Thu Duc","parent":"TPHCM","level":"district","children":[],"center":[10.82035,106.78951],"bbox":[106.69783,10.74212,106.88176,10.89885]}, + "TPHCM-BINHCHANH": {"code":"TPHCM-BINHCHANH","name":"Binh Chanh","parent":"TPHCM","level":"district","children":[],"center":[10.73382,106.57587],"bbox":[106.46356,10.62531,106.69495,10.87364]}, + "TPHCM-CANGIO": {"code":"TPHCM-CANGIO","name":"Can Gio","parent":"TPHCM","level":"district","children":[],"center":[10.51704,106.881],"bbox":[106.73846,10.35818,107.02767,10.67427]}, + "TPHCM-CUCHI": {"code":"TPHCM-CUCHI","name":"Cu Chi","parent":"TPHCM","level":"district","children":[],"coverage":"unresolved"}, + "TPHCM-HOCMON": {"code":"TPHCM-HOCMON","name":"Hoc Mon","parent":"TPHCM","level":"district","children":[],"center":[10.88585,106.58983],"bbox":[106.49562,10.8261,106.69279,10.92934]}, + "TPHCM-NHABE": {"code":"TPHCM-NHABE","name":"Nha Be","parent":"TPHCM","level":"district","children":[],"center":[10.6543,106.73051],"bbox":[106.67328,10.57636,106.78373,10.72563]}, + "DN": {"code":"DN","name":"Da Nang","parent":"VN","level":"province","children":["DN-HAICHAU","DN-THANHKHE","DN-SONTRA","DN-NGUHANHSON","DN-LIENCHIEU","DN-CAMLE","DN-HOAVANG"],"center":[16.0544,108.2022],"bbox":[107.81854,15.91799,108.33864,16.2255]}, + "DN-HAICHAU": {"code":"DN-HAICHAU","name":"Hai Chau","parent":"DN","level":"district","children":[],"center":[16.05669,108.21143],"bbox":[108.18883,16.02131,108.236,16.10365]}, + "DN-THANHKHE": {"code":"DN-THANHKHE","name":"Thanh Khe","parent":"DN","level":"district","children":[],"center":[16.06315,108.19039],"bbox":[108.16378,16.02637,108.21456,16.08084]}, + "DN-SONTRA": {"code":"DN-SONTRA","name":"Son Tra","parent":"DN","level":"district","children":[],"center":[16.11094,108.26514],"bbox":[108.20903,16.05099,108.33864,16.15565]}, + "DN-NGUHANHSON": {"code":"DN-NGUHANHSON","name":"Ngu Hanh Son","parent":"DN","level":"district","children":[],"center":[15.99755,108.25003],"bbox":[108.21683,15.95597,108.28957,16.05675]}, + "DN-LIENCHIEU": {"code":"DN-LIENCHIEU","name":"Lien Chieu","parent":"DN","level":"district","children":[],"center":[16.13388,108.14835],"bbox":[108.08699,16.0331,108.21061,16.22576]}, + "DN-CAMLE": {"code":"DN-CAMLE","name":"Cam Le","parent":"DN","level":"district","children":[],"center":[16.01409,108.19606],"bbox":[108.15769,15.97164,108.23951,16.06188]}, + "DN-HOAVANG": {"code":"DN-HOAVANG","name":"Hoa Vang","parent":"DN","level":"district","children":[],"center":[16.06583,108.01436],"bbox":[107.81854,15.91799,108.22494,16.21544]}, + "LD": {"code":"LD","name":"Lam Dong","parent":"VN","level":"province","children":["DL"],"center":[11.92055,108.4644],"bbox":[108.31521,11.80798,108.59461,12.00855],"partialCoverage":"one town covered"}, + "DL": {"code":"DL","name":"Da Lat","parent":"LD","level":"district","children":[],"center":[11.9404,108.4583],"bbox":[108.31521,11.80798,108.59461,12.00855]}, + "LA": {"code":"LA","name":"Long An","parent":"VN","level":"province","children":["DH"],"center":[10.88908,106.40895],"bbox":[106.27082,10.7409,106.53287,11.02578],"partialCoverage":"one town covered"}, + "DH": {"code":"DH","name":"Duc Hoa","parent":"LA","level":"district","children":[],"center":[10.8888,106.3825],"bbox":[106.27082,10.7409,106.53287,11.02578]}, +}; diff --git a/src/lib/game.js b/src/lib/game.js index a55cece..1f7e0ab 100644 --- a/src/lib/game.js +++ b/src/lib/game.js @@ -1,77 +1,50 @@ import * as turf from '@turf/turf'; +import { REGIONS } from '../data/regions/index.js'; +import { provinces } from './regions.js'; -// Cities enum-like structure. +// Region lookups, derived from the generated tree in src/data/regions/. // -// bbox comes from src/data/boundaries/.geojson, which holds each city's -// pre-2025-merger extent. Vietnam merged its provinces in mid-2025, so today's -// official Ho Chi Minh City covers 36,566 km2 and reaches Vung Tau; the legacy -// outline is the area people actually mean by the city. +// These used to be a hand-written map of five cities that duplicated the bbox +// and centre already recorded in each boundary file, which meant two places to +// update and a test to police the drift. The tree is generated by +// scripts/build-region-boundaries.mjs from those same boundaries, so there is +// one source now. // -// center stays the recognisable city centre rather than the polygon's centroid, +// bbox is a pre-2025-merger extent. Vietnam merged its provinces in mid-2025, so +// today's official Ho Chi Minh City covers 36,566 km2 and reaches Vung Tau; the +// legacy outline is the area people actually mean by the city. +// +// centre stays the recognisable city centre rather than the polygon's centroid, // which for an irregular outline can land somewhere no one associates with the -// place. The map fits the bbox anyway. +// place. The build honours a per-node override for exactly that reason. The map +// fits the bbox anyway. // -// There is no Mapillary query window any more: locations come from the prebuilt -// index in src/data/panos/, not from searching an area. -export const CITIES = { - HN: { - code: 'HN', - name: 'Ha Noi', - center: [21.0285, 105.8542], - bbox: [105.28896, 20.56452, 106.02004, 21.38542], - enabled: true - }, - DN: { - code: 'DN', - name: 'Da Nang', - center: [16.0544, 108.2022], - bbox: [107.81854, 15.91799, 108.33864, 16.2255], - enabled: true - }, - TPHCM: { - code: 'TPHCM', - name: 'Ho Chi Minh', - center: [10.8231, 106.6297], - bbox: [106.46356, 10.35828, 107.02758, 10.92934], - enabled: true - }, - DL: { - code: 'DL', - name: 'Da Lat', - center: [11.9404, 108.4583], - bbox: [108.31521, 11.80798, 108.5944, 12.00855], - enabled: true - }, - DH: { - code: 'DH', - name: 'Duc Hoa (Long An)', - center: [10.8888, 106.3825], - bbox: [106.27082, 10.7409, 106.53287, 11.02578], - enabled: true - } -}; +// Keyed by EVERY node, not just the playable provinces, so a bookmarked +// /game?location=DL still resolves after Da Lat became a district of Lam Dong. +export const CITIES = REGIONS; -// Helper functions for backward compatibility export const cityCenters = Object.fromEntries( - Object.values(CITIES).map(city => [city.code, city.center]) + Object.values(REGIONS) + .filter((region) => region.center) + .map((region) => [region.code, region.center]) ); export const cityNames = Object.fromEntries( - Object.values(CITIES).map(city => [city.code, city.name]) + Object.values(REGIONS).map((region) => [region.code, region.name]) ); - export const cityBboxes = Object.fromEntries( - Object.values(CITIES).map(city => [city.code, city.bbox]) + Object.values(REGIONS) + .filter((region) => region.bbox) + .map((region) => [region.code, region.bbox]) ); -// Cities list for UI components (only enabled cities) -export const cities = Object.values(CITIES) - .filter(city => city.enabled) - .map(city => ({ - code: city.code, - name: city.name.toUpperCase() - })); +// Province list for UI components. Districts are reached by expanding a +// province, not from this flat list. +export const cities = provinces().map((code) => ({ + code, + name: REGIONS[code].name.toUpperCase() +})); // Calculate distance between two coordinates in meters using Turf export function calculateDistance(lat1, lon1, lat2, lon2) { diff --git a/src/lib/regions.js b/src/lib/regions.js new file mode 100644 index 0000000..52502c5 --- /dev/null +++ b/src/lib/regions.js @@ -0,0 +1,119 @@ +// Navigation over the region tree: country > province > district. +// +// Client-safe by construction. This module imports the generated tree and the +// generated panorama counts and NOTHING else -- in particular never +// pano-index.js or src/data/panos/, which together are ~25MB of exact +// panorama coordinates. A client component that reached those would ship every +// answer to the browser. tests/regions.test.js enforces the boundary. +// +// Scores roll upward: a guess resolves to the leaf its panorama sits in, and +// credits that leaf, its province, and the country. ancestorsOf() is what the +// leaderboard fans out over. + +import { REGIONS } from '../data/regions/index.js'; + +export const COUNTRY_CODE = 'VN'; + +/** + * One region node. + * @param {string} code Region code, e.g. 'TPHCM-Q7'. + * @returns {Object} The node. + */ +export function getRegion(code) { + const region = REGIONS[code]; + if (!region) { + throw new Error( + `Unknown region: ${code}. Known codes: ${Object.keys(REGIONS).join(', ')}` + ); + } + return region; +} + +/** True when the code names a region, without throwing. */ +export function isRegion(code) { + return Boolean(code && REGIONS[code]); +} + +/** + * The node and every ancestor above it, ending at the country. + * + * This is the fan-out chain: a guess in TPHCM-Q7 credits + * ['TPHCM-Q7', 'TPHCM', 'VN']. + * @param {string} code Region code. + * @returns {string[]} Codes, self first. + */ +export function ancestorsOf(code) { + const chain = []; + let current = getRegion(code); + while (current) { + chain.push(current.code); + current = current.parent ? getRegion(current.parent) : null; + } + return chain; +} + +/** + * Direct children of a node. + * @param {string} code Region code. + * @returns {string[]} Child codes, empty for a leaf. + */ +export function childrenOf(code) { + return getRegion(code).children ?? []; +} + +/** + * Every leaf at or below a node. A leaf is its own only leaf. + * @param {string} code Region code. + * @returns {string[]} Leaf codes. + */ +export function leavesUnder(code) { + const children = childrenOf(code); + if (children.length === 0) return [code]; + return children.flatMap((child) => leavesUnder(child)); +} + +/** + * The province a node belongs to. + * @param {string} code Region code. + * @returns {string|null} Province code, or null for the country itself. + */ +export function provinceOf(code) { + return ancestorsOf(code).find((c) => getRegion(c).level === 'province') ?? null; +} + +/** Every province, in declaration order. */ +export function provinces() { + return childrenOf(COUNTRY_CODE); +} + +/** + * Ancestor names, country first, for a UI header or a result reveal. + * + * Only safe to show the resolved leaf's path AFTER a guess: before it, the + * district names the answer. + * @param {string} code Region code. + * @returns {string[]} Names, outermost first. + */ +export function regionPath(code) { + return ancestorsOf(code) + .reverse() + .map((c) => getRegion(c).name); +} + +/** Every node in the tree, in declaration order. */ +export function allRegions() { + return Object.keys(REGIONS); +} + +/** + * True when a node has no boundary because its OSM lookup did not resolve. + * + * Distinct from having no street imagery: an unresolved node never entered its + * province's union, so its panoramas were clipped away at index-build time. + * See the Coverage note in docs/project-overview.md. + * @param {string} code Region code. + * @returns {boolean} True when unresolved. + */ +export function isUnresolved(code) { + return getRegion(code).coverage === 'unresolved'; +} diff --git a/tests/game.test.js b/tests/game.test.js index 1ac18b7..441944d 100644 --- a/tests/game.test.js +++ b/tests/game.test.js @@ -1,11 +1,14 @@ import { describe, it, expect } from 'vitest'; import { - CITIES, cities, + cityNames, + cityCenters, + cityBboxes, calculateDistance, calculateScore, formatDistance, } from '../src/lib/game.js'; +import { allRegions, getRegion, provinces } from '../src/lib/regions.js'; describe('calculateScore', () => { // The bands are the whole scoring rule, so each boundary is pinned on both @@ -71,35 +74,40 @@ describe('formatDistance', () => { }); }); -describe('city configuration', () => { - it('exposes only enabled cities to the UI', () => { - const exposed = cities.map((city) => city.code).sort(); - const expected = Object.values(CITIES) - .filter((city) => city.enabled) - .map((city) => city.code) - .sort(); - expect(exposed).toEqual(expected); +describe('region lookups', () => { + // Shape and geography of the tree itself are covered by regions.test.js. + // These assert only that game.js's derived lookups stay faithful to it. + + it('offers the provinces, and only the provinces, as entry points', () => { + expect(cities.map((city) => city.code)).toEqual(provinces()); }); - it('uppercases city names for the UI', () => { + it('uppercases entry-point names for the UI', () => { for (const city of cities) { expect(city.name).toBe(city.name.toUpperCase()); } }); - it('gives every city a well-formed bbox', () => { - for (const city of Object.values(CITIES)) { - const [minLng, minLat, maxLng, maxLat] = city.bbox; - expect(maxLng).toBeGreaterThan(minLng); - expect(maxLat).toBeGreaterThan(minLat); + it('names every node, not just the entry points', () => { + // A bookmarked /game?location=DL has to keep resolving now that Da Lat is a + // district of Lam Dong rather than a top-level city. + for (const code of allRegions()) { + expect(cityNames[code], code).toBe(getRegion(code).name); + } + expect(cityNames.DL).toBe('Da Lat'); + }); - // The centre must sit inside the box it labels, or the map opens on one - // city while the panorama comes from another. - const [centreLat, centreLng] = city.center; - expect(centreLat).toBeGreaterThanOrEqual(minLat); - expect(centreLat).toBeLessThanOrEqual(maxLat); - expect(centreLng).toBeGreaterThanOrEqual(minLng); - expect(centreLng).toBeLessThanOrEqual(maxLng); + it('mirrors the tree for centres and boxes it has', () => { + for (const code of allRegions()) { + const region = getRegion(code); + if (region.center) expect(cityCenters[code], code).toEqual(region.center); + if (region.bbox) expect(cityBboxes[code], code).toEqual(region.bbox); } }); + + it('omits nodes with no boundary rather than inventing one', () => { + // Cu Chi has no OSM relation left, so it has no extent to look up. + expect(cityBboxes['TPHCM-CUCHI']).toBeUndefined(); + expect(cityNames['TPHCM-CUCHI']).toBe('Cu Chi'); + }); }); diff --git a/tests/pano-index.test.js b/tests/pano-index.test.js index 877ddc7..532659e 100644 --- a/tests/pano-index.test.js +++ b/tests/pano-index.test.js @@ -1,10 +1,12 @@ import { describe, it, expect } from 'vitest'; import * as turf from '@turf/turf'; import { readFileSync } from 'node:fs'; -import { getCityIndex, pickRandomPano, countPanos } from '../src/lib/pano-index.js'; -import { CITIES } from '../src/lib/game.js'; +import { getCityIndex, pickRandomPano, countPanos, indexedCities } from '../src/lib/pano-index.js'; +import { getRegion } from '../src/lib/regions.js'; -const CODES = Object.keys(CITIES); +// Indexes are built per province, so the province list -- not every node in the +// tree -- is what has one. Districts are served by filtering their province. +const CODES = indexedCities(); describe('panorama index', () => { it.each(CODES)('%s has an index with panoramas', (code) => { @@ -34,7 +36,7 @@ describe('panorama index', () => { it.each(CODES)('%s panoramas sit inside the city bbox', (code) => { // The index is built from tiles covering the bbox, then clipped to the // boundary, so anything outside means the clip or the bbox is wrong. - const [minLng, minLat, maxLng, maxLat] = CITIES[code].bbox; + const [minLng, minLat, maxLng, maxLat] = getRegion(code).bbox; const stray = getCityIndex(code).panos.find( (p) => p.lat < minLat || p.lat > maxLat || p.lng < minLng || p.lng > maxLng ); @@ -43,7 +45,7 @@ describe('panorama index', () => { it.each(CODES)('%s panoramas sit inside the city boundary', (code) => { const boundary = JSON.parse( - readFileSync(`src/data/boundaries/${code.toLowerCase()}.json`, 'utf8') + readFileSync(`src/data/boundaries/${code.toLowerCase()}/${code.toLowerCase()}.json`, 'utf8') ); // Sample rather than test every point: booleanPointInPolygon against a // detailed outline is slow, and a clipping bug would not hide in a sample. @@ -58,32 +60,32 @@ describe('panorama index', () => { } }); - it.each(CODES)('%s index bbox agrees with the city config', (code) => { - expect(getCityIndex(code).bbox).toEqual(CITIES[code].bbox); + it.each(CODES)('%s index bbox agrees with the region tree', (code) => { + expect(getCityIndex(code).bbox).toEqual(getRegion(code).bbox); }); }); describe('pickRandomPano', () => { - it('returns an entry from the city', () => { - const chosen = pickRandomPano('DL'); - expect(getCityIndex('DL').panos.some((p) => p.id === chosen.id)).toBe(true); + it('returns an entry from the province', () => { + const chosen = pickRandomPano('LD'); + expect(getCityIndex('LD').panos.some((p) => p.id === chosen.id)).toBe(true); }); it('never returns an excluded id', () => { - const { panos } = getCityIndex('DL'); + const { panos } = getCityIndex('LD'); const exclude = new Set(panos.slice(0, panos.length - 1).map((p) => p.id)); // Only one candidate is left, so the choice is forced and checkable. - expect(pickRandomPano('DL', exclude).id).toBe(panos[panos.length - 1].id); + expect(pickRandomPano('LD', exclude).id).toBe(panos[panos.length - 1].id); }); it('throws when everything is excluded', () => { - const all = new Set(getCityIndex('DL').panos.map((p) => p.id)); - expect(() => pickRandomPano('DL', all)).toThrow(/No panoramas left/); + const all = new Set(getCityIndex('LD').panos.map((p) => p.id)); + expect(() => pickRandomPano('LD', all)).toThrow(/No panoramas left/); }); it('spreads across the index rather than returning one entry', () => { const seen = new Set(); - for (let i = 0; i < 100; i++) seen.add(pickRandomPano('DL').id); + for (let i = 0; i < 100; i++) seen.add(pickRandomPano('LD').id); expect(seen.size).toBeGreaterThan(10); }); }); diff --git a/tests/regions.test.js b/tests/regions.test.js new file mode 100644 index 0000000..67cbeab --- /dev/null +++ b/tests/regions.test.js @@ -0,0 +1,223 @@ +import { describe, it, expect } from 'vitest'; +import { readFileSync, existsSync } from 'node:fs'; +import { dirname, resolve } from 'node:path'; +import { + COUNTRY_CODE, + getRegion, + isRegion, + ancestorsOf, + childrenOf, + leavesUnder, + provinceOf, + provinces, + regionPath, + allRegions, + isUnresolved, +} from '../src/lib/regions.js'; + +const LEAVES = allRegions().filter((code) => childrenOf(code).length === 0); +const RESOLVED_LEAVES = LEAVES.filter((code) => !isUnresolved(code)); + +describe('region tree shape', () => { + it('has exactly one root, and it is the country', () => { + const roots = allRegions().filter((code) => getRegion(code).parent === null); + expect(roots).toEqual([COUNTRY_CODE]); + expect(getRegion(COUNTRY_CODE).level).toBe('country'); + }); + + it('every parent reference resolves', () => { + for (const code of allRegions()) { + const { parent } = getRegion(code); + if (parent !== null) expect(isRegion(parent), `${code} -> ${parent}`).toBe(true); + } + }); + + it('every child reference resolves and points back', () => { + for (const code of allRegions()) { + for (const child of childrenOf(code)) { + expect(isRegion(child), `${code} -> ${child}`).toBe(true); + expect(getRegion(child).parent).toBe(code); + } + } + }); + + it('has no cycles', () => { + // ancestorsOf would loop forever on a cycle, so walk with a guard instead. + for (const code of allRegions()) { + const seen = new Set(); + let current = code; + while (current) { + expect(seen.has(current), `cycle through ${current}`).toBe(false); + seen.add(current); + current = getRegion(current).parent; + } + } + }); + + it('holds one country, five provinces and 61 leaves', () => { + const byLevel = (level) => allRegions().filter((c) => getRegion(c).level === level); + expect(byLevel('country')).toHaveLength(1); + expect(byLevel('province')).toHaveLength(5); + expect(LEAVES).toHaveLength(61); + }); + + it('gives every province the country as parent', () => { + for (const code of provinces()) expect(getRegion(code).parent).toBe(COUNTRY_CODE); + }); +}); + +describe('ancestry', () => { + it('walks every leaf up to the country in three steps', () => { + for (const code of LEAVES) { + const chain = ancestorsOf(code); + expect(chain, code).toHaveLength(3); + expect(chain[0]).toBe(code); + expect(chain[2]).toBe(COUNTRY_CODE); + } + }); + + it('places Da Lat under Lam Dong and Duc Hoa under Long An', () => { + // Pre-2025 administrative units throughout: Duc Hoa belongs to Long An, not + // the Tay Ninh it was merged into in 2025. + expect(ancestorsOf('DL')).toEqual(['DL', 'LD', COUNTRY_CODE]); + expect(ancestorsOf('DH')).toEqual(['DH', 'LA', COUNTRY_CODE]); + }); + + it('resolves the province of a node at every level', () => { + expect(provinceOf('TPHCM-Q7')).toBe('TPHCM'); + expect(provinceOf('TPHCM')).toBe('TPHCM'); + expect(provinceOf(COUNTRY_CODE)).toBeNull(); + }); + + it('collects every leaf under a node', () => { + expect(leavesUnder(COUNTRY_CODE).sort()).toEqual([...LEAVES].sort()); + expect(leavesUnder('LD')).toEqual(['DL']); + expect(leavesUnder('DL')).toEqual(['DL']); + }); + + it('renders an outermost-first path', () => { + expect(regionPath('DL')).toEqual(['Vietnam', 'Lam Dong', 'Da Lat']); + }); + + it('rejects an unknown code with the known ones listed', () => { + expect(() => getRegion('NOPE')).toThrow(/Unknown region: NOPE/); + expect(isRegion('NOPE')).toBe(false); + }); +}); + +describe('geography', () => { + it('gives every resolved node a well-formed bbox', () => { + for (const code of allRegions()) { + const region = getRegion(code); + if (!region.bbox) continue; + const [minLng, minLat, maxLng, maxLat] = region.bbox; + expect(maxLng, code).toBeGreaterThan(minLng); + expect(maxLat, code).toBeGreaterThan(minLat); + } + }); + + it('keeps every centre inside the box it labels', () => { + // A centre outside its own bbox opens the map on one place while the + // panorama comes from another. + for (const code of allRegions()) { + const region = getRegion(code); + if (!region.bbox || !region.center) continue; + const [minLng, minLat, maxLng, maxLat] = region.bbox; + const [lat, lng] = region.center; + expect(lat, `${code} centre latitude`).toBeGreaterThanOrEqual(minLat); + expect(lat, `${code} centre latitude`).toBeLessThanOrEqual(maxLat); + expect(lng, `${code} centre longitude`).toBeGreaterThanOrEqual(minLng); + expect(lng, `${code} centre longitude`).toBeLessThanOrEqual(maxLng); + } + }); + + it('nests every resolved leaf inside its province', () => { + for (const code of RESOLVED_LEAVES) { + const leaf = getRegion(code); + const province = getRegion(provinceOf(code)); + if (!leaf.bbox || !province.bbox) continue; + // Simplification moves both outlines by a few metres, so allow a small + // slack rather than demanding exact containment. + const slack = 0.01; + expect(leaf.bbox[0], `${code} west`).toBeGreaterThanOrEqual(province.bbox[0] - slack); + expect(leaf.bbox[1], `${code} south`).toBeGreaterThanOrEqual(province.bbox[1] - slack); + expect(leaf.bbox[2], `${code} east`).toBeLessThanOrEqual(province.bbox[2] + slack); + expect(leaf.bbox[3], `${code} north`).toBeLessThanOrEqual(province.bbox[3] + slack); + } + }); + + it('keeps the hand-picked centres of the original five entry points', () => { + // src/lib/game.js explains why these are not polygon centroids: the centre + // of mass of an irregular outline lands somewhere no one recognises. The + // build honours a per-node override so a regenerated tree cannot lose them. + expect(getRegion('HN').center).toEqual([21.0285, 105.8542]); + expect(getRegion('DN').center).toEqual([16.0544, 108.2022]); + expect(getRegion('TPHCM').center).toEqual([10.8231, 106.6297]); + expect(getRegion('DL').center).toEqual([11.9404, 108.4583]); + expect(getRegion('DH').center).toEqual([10.8888, 106.3825]); + }); +}); + +describe('coverage', () => { + it('marks Lam Dong and Long An as partially covered', () => { + expect(getRegion('LD').partialCoverage).toBeTruthy(); + expect(getRegion('LA').partialCoverage).toBeTruthy(); + }); + + it('records an unresolved leaf instead of dropping it', () => { + // Cu Chi has no boundary relation left in OpenStreetMap, so it cannot be + // built. It still belongs in the tree: absent coverage is data, not a gap + // in the model. See the Coverage note in docs/project-overview.md. + expect(isRegion('TPHCM-CUCHI')).toBe(true); + expect(getRegion('TPHCM-CUCHI').bbox).toBeUndefined(); + expect(isUnresolved('TPHCM-CUCHI')).toBe(true); + }); + + it('counts unresolved leaves against their province', () => { + for (const code of provinces()) { + const unresolved = childrenOf(code).filter(isUnresolved).length; + expect(getRegion(code).missingParts ?? 0, code).toBe(unresolved); + } + }); +}); + +describe('client safety', () => { + it('never reaches the panorama data', () => { + // src/lib/regions.js is imported by client components. The panorama + // indexes are ~25MB of exact answers; a path from one to the other would + // ship every round's solution to the browser. + const seen = new Set(); + const walk = (file) => { + if (seen.has(file) || !existsSync(file)) return; + seen.add(file); + const source = readFileSync(file, 'utf8'); + for (const match of source.matchAll(/from\s+'(\.[^']+)'/g)) { + const target = resolve(dirname(file), match[1]); + expect(target.replace(/\\/g, '/')).not.toContain('data/panos'); + if (target.endsWith('.js')) walk(target); + } + }; + walk(resolve('src/lib/regions.js')); + expect(seen.size).toBeGreaterThan(0); + }); +}); + +describe('generated barrels', () => { + // Region codes contain hyphens, which are legal in a filename but not in a + // bare import identifier or an unquoted object key. A barrel generated + // without sanitising them is a syntax error that breaks the whole build, so + // importing them at all is the assertion. + + it('the region tree parses and covers every node', async () => { + const { REGIONS } = await import('../src/data/regions/index.js'); + expect(Object.keys(REGIONS)).toHaveLength(allRegions().length); + }); + + it('the boundary barrel parses and holds every resolved region', async () => { + const { REGION_BOUNDARIES } = await import('../src/data/boundaries/index.js'); + const withGeometry = allRegions().filter((code) => getRegion(code).bbox); + expect(Object.keys(REGION_BOUNDARIES).sort()).toEqual( + withGeometry.filter((code) => code !== COUNTRY_CODE).sort() + ); + }); +});