# geo-map **Repository Path**: c-java-father/geo-map ## Basic Information - **Project Name**: geo-map - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-20 - **Last Updated**: 2026-08-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # UZB 行政地图数据说明 Vue3 + Three.js 乌兹别克斯坦(UZB)行政地图项目(ADM0 / ADM1 / ADM2 三级钻取)。 ## 数据文件 | 文件 | 说明 | Features 数 | | --- | --- | --- | | `data/UZB/geoBoundaries-UZB-ADM0_simplified.geojson` | 国家边界(ADM0) | 1 | | `data/UZB/geoBoundaries-UZB-ADM1_simplified.geojson` | 州级边界(ADM1,14 州 + 塔什干市) | 15 | | `data/UZB/geoBoundaries-UZB-ADM2_simplified.geojson` | 区级边界(ADM2,akbartus 5 州 + geoBoundaries 其余 9 州) | 200 | | `src/map/assets/json/tashkent.json` | 「塔什干·区」tab 的数据源(12 区) | 12 | > 注:数据统一存放在 `data/UZB/`(原 `data/uzb2`,2026-08 更名)。 > `data/UZB/` 仅保留运行时必需的 3 个 `geoBoundaries-UZB-ADM*_simplified.geojson`; > akbartus 构建源文件已删除(2026-08),重新构建时需按下文「下次抓取」步骤重新下载。 > 原始 geoBoundaries 官方数据:https://www.geoboundaries.org/ > 各文件原始下载地址(simplified 版本): > `https://www.geoboundaries.org/api/current/gbOpen/UZB/ADM0/`、`/ADM1/`、`/ADM2/` > (返回 JSON,其中 `simplifiedGeometryGeoJSON` 字段为可直接使用的简化 GeoJSON) ## 塔什干市 12 区数据获取过程(2026-08) ### 背景 geoBoundaries 官方 ADM2 数据中塔什干市(Tashkent)只有 **11 个区**,缺少 **Yangihayot(扬吉海约特)**。 Yangihayot 区于 2020 年从 Sergeli 区拆分出来,官方数据未更新。 ### 获取过程 1. **尝试 Overpass API(失败)** - 主站 `https://overpass-api.de/api/interpreter` 返回 406,需带 User-Agent。 - 镜像 `https://overpass.osm.ch/api/interpreter` 可访问,但按名字查询不到 Yangihayot 边界(OSM 中该区边界结构/命名不完整)。 2. **改用 GitHub 数据源(成功)** - 仓库:https://github.com/akbartus/GeoJSON-Uzbekistan - 文件:`geojson/tashkent_districts.geojson`(含 12 区,含 Yangihayot) - 直接下载:`https://raw.githubusercontent.com/akbartus/GeoJSON-Uzbekistan/main/geojson/tashkent_districts.geojson` 3. **处理流程** - 用脚本从该文件提取 12 个区 feature,移除原 geoBoundaries ADM2 中旧的 11 区 feature,插入新的 12 区 → 生成新 `geoBoundaries-UZB-ADM2_simplified.geojson`(共 200 features)。 - 同步更新 `src/map/assets/json/tashkent.json` 为 12 区(adcode 1000~1011,Yangihayot=1009)。 - **区名统一**:该数据源为乌兹别克语拼写,统一为项目英文拼写: - Chilonzor → Chilanzar、Mirobod → Mirabad、Shayxontohur → Shaykhantokhur - Olmazor → Almazar、Yakkasaroy → Yakkasaray、Yunusobod → Yunusabad - 修改前原文件已备份(`data/UZB/` 备份目录已于 2026-08 清理删除)。 4. **归属逻辑修复(UzbMap.vue)** - `getAdm2ParentMap()` 原按质心归属有误(Bektemir/Uchtepa 质心落在市边界外被误归州;Urtachirchik 命中市 MultiPolygon 第二环被误归市)。 - 新增 `TASHKENT_CITY_DISTRICTS` 白名单(12 区名),白名单内的区按名称直接归 `Tashkent`。 ### 验证 - 12 区全部归 Tashkent;Urtachirchik / Kibray / Zangiata 等归 Tashkent Region。 - 无重名、几何闭合、共 200 features。 ## 下次抓取行政边界数据的步骤 1. **国家/州级(ADM1)数据**:优先用 geoBoundaries 官方: `https://www.geoboundaries.org/api/current/gbOpen/UZB/ADM1/`(取 `simplifiedGeometryGeoJSON`)。 2. **区级(ADM2)数据**:geoBoundaries 可能缺最新拆分区(如 Yangihayot), 改用 GitHub 仓库 `akbartus/GeoJSON-Uzbekistan`(含各州 districts 文件): - 目录:https://github.com/akbartus/GeoJSON-Uzbekistan/tree/main/geojson - 所需文件:`tashkent_districts.geojson`、`tashkent_region_districts..geojson`、`jizzakh_region_districts.geojson`、`sirdaryo_region_districts.geojson`、`surkhandarya_region_districts.geojson`、`uzbekistan_regional.geojson` (这些构建源文件已于 2026-08 从 `data/UZB/` 清理,重建前需重新下载放回) - 用脚本合并进 `data/UZB/geoBoundaries-UZB-ADM2_simplified.geojson`。 3. **处理注意点** - 区名统一为项目英文拼写(见上文对照表)。 - 塔什干市区在新数据源中是独立 MultiPolygon,归属时用白名单按名称归属。 - 修改前先备份原 geojson / json。 - package.json 为 `"type": "module"`,临时脚本需用 `.cjs` 扩展名运行(如 `node scripts/xxx.cjs`)。 - Overpass API 主站会 406,需带 User-Agent;建议优先用 GitHub / geoBoundaries 数据源。 ## 辅助脚本 `scripts/` 目录下的检查脚本(均为一次性验证脚本): - `verify-uzb.cjs` / `check-data.mjs`:检查 ADM2 数据完整性、名称、归属。 - `tk-*.cjs`:塔什干 12 区数据检查。