# CesiumBeiDouGrid **Repository Path**: fuchange/Cesium-Bei-Dou-Grid ## Basic Information - **Project Name**: CesiumBeiDouGrid - **Description**: Cesium中北斗网格位置码的编码处理,经纬度坐标转二维网格与三维网格,网格编码解码为经纬度坐标等 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2026-01-07 - **Last Updated**: 2026-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 北斗网格位置码 Vue 演示项目 基于 **GB/T 39409-2020** 标准的北斗二维/三维网格位置码库的 Vue 3 演示应用。 ## 🚀 快速开始 ```bash npm install npm run dev ``` 访问 --- ## 📦 核心功能 ### BeidouGridCode 库 | 方法 | 说明 | |------|------| | `encode2D(lat, lon, level)` | 二维网格编码 | | `encode3D(lat, lon, height, level)` | 三维网格编码 | | `decode2D(code)` | 二维网格解码 | | `getGridBounds(code)` | 获取网格边界 | | `getGridCenter(code)` | 获取网格中心 | | `getNeighbors(code)` | 获取相邻网格 | | `validateCode(code)` | 验证网格码 | --- ## 💡 使用示例 ### 二维编码 ```javascript import BeidouGridCode from './utils/BeidouGridCode.js' // 北京坐标 → 5级网格码 const code = BeidouGridCode.encode2D(39.99, 116.31, 5) // 输出: "N50J47539B8" ``` ### 二维解码 ```javascript const bounds = BeidouGridCode.decode2D("N50J47539B8") // 返回: { minLat, maxLat, minLon, maxLon, level, centerLat, centerLon } ``` ### 三维编码(含高度) ```javascript const code3D = BeidouGridCode.encode3D(39.99, 116.31, 100, 5) // 输出: "N50J47539B8/+00000064" (含高度层级) ``` ### 获取相邻网格 ```javascript const neighbors = BeidouGridCode.getNeighbors("N50J47539B8") // 返回: { N, NE, E, SE, S, SW, W, NW } 8方向相邻网格码 ``` --- ## 📐 编码结构(共 20 位) > **⚠️ 重点:编码位数与级别对应关系** | 级别 | 位置 | 编码规则 | 网格尺寸 | 总位数 | |:----:|:----:|:---------|:---------|:------:| | 1 | 1-4 | `N` + `01-60` + `A-V` | 6°×4° | 4 | | 2 | 5-6 | `0-B` + `0-7` | 30'×30' | 6 | | 3 | 7 | **Z序 `0-5`** | 15'×10' | 7 | | 4 | 8-9 | `0-E` + `0-9` | 1'×1' | 9 | | 5 | 10-11 | `0-E` + `0-E` | 4"×4" | 11 | | 6 | 12 | **Z序 `0-3`** | 2"×2" | 12 | | 7 | 13-14 | `0-7` + `0-7` | 1/4" | 14 | | 8 | 15-16 | `0-7` + `0-7` | 1/32" | 16 | | 9 | 17-18 | `0-7` + `0-7` | 1/256" | 18 | | 10 | 19-20 | `0-7` + `0-7` | 1/2048" | 20 | --- ## 🔑 关键注意事项 ### 1. 经度规范化 ```javascript // 编码时 normLon = lon + 180 // -180~180 → 0~360 // 解码时 lon = normLon - 180 // 0~360 → -180~180 ``` ### 2. 纬度字母表 ```javascript LAT_LETTERS = 'ABCDEFGHIJKLMNOPQRSTUV' // 完整22字母(含I和O) ``` ### 3. Z序编码(第3、6级) ``` 第3级 (2×3网格): 第6级 (2×2网格): 4 5 2 3 2 3 0 1 0 1 ``` --- ## 📁 项目结构 ``` vue-demo/ ├── src/ │ ├── main.js │ ├── App.vue # 主应用 │ ├── components/ │ │ ├── CesiumViewer.vue # Cesium 3D地球 │ │ └── ControlPanel.vue # 控制面板 │ └── utils/ │ └── BeidouGridCode.js # 核心编码库 ├── vite.config.js └── package.json ``` --- ## 📄 参考标准 **GB/T 39409-2020** 北斗网格位置码