# CesiumExtensions **Repository Path**: e-zhou/CesiumExtensions ## Basic Information - **Project Name**: CesiumExtensions - **Description**: 挑战全程使用AI编程开发一个 Cesium 功能扩展库,使用 JavaScript 开发,支持打包成独立的 JS 文件或 npm 包。 - **Primary Language**: JavaScript - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-29 - **Last Updated**: 2025-11-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CesiumExtensions 挑战全程使用AI编程开发一个 Cesium 功能扩展库,使用 JavaScript 开发,支持打包成独立的 JS 文件或 npm 包。 ## 项目特性 - 基于 Cesium 的功能扩展 - 支持模块化开发 - 可打包为独立 JS 文件或 npm 包 - 使用现代构建工具链 ## 安装 ### 使用 npm/pnpm/yarn ```bash # 使用 pnpm pnpm add CesiumExtensions # 或使用 npm npm install CesiumExtensions # 或使用 yarn yarn add CesiumExtensions ``` ### 直接引入 JS 文件 ```html ``` ## 使用方法 ### 模块化引入 ```javascript // 导入整个命名空间 import * as CesiumExtensions from 'CesiumExtensions'; // 初始化 Cesium Viewer const viewer = new CesiumExtensions.Cesium.Viewer('cesiumContainer'); // 使用命名空间方式访问扩展功能 const controlBase = new CesiumExtensions.control.ControlBase(); const layerBase = new CesiumExtensions.layer.LayerBase('myLayer'); // 或者导入具体模块 import { control, layer, util } from 'CesiumExtensions'; const editTool = new control.EditTool(viewer); // 为viewer添加CesiumExtensions命名空间(可选,但推荐) CesiumExtensions.extend(viewer); // 现在可以通过viewer.CesiumExtensions访问 viewer.CesiumExtensions.util.CoordinateUtil.calculateDistance(point1, point2); ``` ### 直接引入方式 ```javascript // 在HTML中引入脚本 // // // 使用全局CesiumExtensions命名空间 const viewer = new Cesium.Viewer('cesiumContainer'); // 为viewer添加CesiumExtensions命名空间(可选,但推荐) CesiumExtensions.extend(viewer); // 使用CesiumExtensions.**格式访问扩展功能 const measureTool = new CesiumExtensions.tool.MeasureTool(viewer); const projectionUtil = new CesiumExtensions.projection.ProjectionUtil(); // 通过viewer访问 viewer.CesiumExtensions.control.ControlBase(); ``` ### 命名空间使用示例 ```javascript // 创建自定义控件 class MyControl extends CesiumExtensions.control.ControlBase { constructor(options) { super(options); } init(viewer) { super.init(viewer); // 自定义控件初始化 } } // 创建自定义图层 const myLayer = new CesiumExtensions.layer.LayerBase('myLayer', { name: '我的图层', visible: true }); myLayer.addTo(viewer); // 使用工具函数 const point = { x: 100, y: 200, z: 0 }; const formatted = CesiumExtensions.util.CoordinateUtil.formatCoordinate(point.x, 4); // 使用投影转换 const wgs84 = { lng: 116.397428, lat: 39.90923, height: 0 }; const cartesian = CesiumExtensions.projection.ProjectionUtil.wgs84ToXyz(wgs84); ``` ## 开发指南 ### 安装依赖 ```bash pnpm install ``` ### 开发模式 ```bash pnpm run dev ``` ### 构建项目 ```bash pnpm run build ``` 构建后的文件将输出到 `dist` 目录。 ### API文档生成 项目使用 JSDoc 3 规范编写代码注释,支持生成 API 文档: ```bash pnpm run docs ``` 生成的文档将输出到 `docs` 目录,可以通过浏览器打开 `docs/index.html` 查看。 ### 代码注释规范 在 `source` 目录下编写扩展代码时,请遵循 JSDoc 3 规范添加注释,包括: - 模块级别的描述注释 - 类、函数、方法的详细注释 - 参数、返回值的类型和描述 - 示例代码 - 相关链接引用 这样可以确保生成的 API 文档清晰完整,便于其他开发者使用。 ## 项目结构 - `source/` - 扩展代码源文件 - `dist/` - 构建输出目录 - `vite.config.js` - Vite 构建配置 ## 许可证 MIT License