# 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