@krazyphish/earth 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/HISTORY.md ADDED
@@ -0,0 +1,275 @@
1
+ ## @krazyphish/earth
2
+
3
+ ### 版本更新历史记录
4
+
5
+ #### Version 2.6.0
6
+
7
+ 1. 删除类 `EChartsoverlay`
8
+ 2. 删除方法 `Earth.useEcharts`
9
+ 3. 删除方法 `Coordinate.registerMouseCoordinate`
10
+ 4. 删除方法 `Coordinate.unregisterMouseCoordinate`
11
+ 5. 删除方法 `Utils.ConvertPic2Canvas`
12
+ 6. 删除方法 `Utils.ConvertSvg2Canvas`
13
+ 7. 删除方法 `Utils.DecodeId`
14
+ 8. 删除方法 `Utils.EncodeId`
15
+ 9. 删除方法 `Utils.RandomUUID`
16
+ 10. 删除方法 `useEarth`,`useEarthRecycle`,`useNavigation`,`useImageryProvider`
17
+ 11. 新增类 `Animation` 用于描述单个动画对象
18
+ 12. 重写 `AnimationManager` 以使用 `Animation` 对象并进行管理
19
+ 13. 重写方法 `AnimationManger.add`
20
+ 14. 修正 `Utils` 中两个图片转换方法返回值标注
21
+ 15. `Covering` 类新增参数中新增属性 `distanceDisplayCallback` 控制覆盖物按距离显示和隐藏
22
+ 16. 修复热力图销毁实效的问题
23
+ 17. 修复严验证装饰器无法有效忽略缺省参数的问题
24
+ 18. 修正声明文件一些描述问题
25
+ 19. 修复 `Utils` 中各方法中隐性的错误
26
+ 20. 修复 `Figure` 中各方法中隐性的错误
27
+ 21. 废弃 `Figure` 中命名不规范的方法
28
+
29
+ #### Version 2.5.5
30
+
31
+ 1. 废弃类 `EChartsoverlay`
32
+ 2. 废弃方法 `Earth.useEcharts`
33
+
34
+ #### Version 2.5.4
35
+
36
+ 1. 修复 `PolylineLayer` 新增时参数 `ground` 和 `perLineVertextColors` 冲突出错的问题
37
+ 2. 修复 `DiffusePointLayer` 图层定位问题,现所有定位相关的组件图层在地球容器的父组件定位方式为 `relative` 时适用
38
+
39
+ #### Version 2.5.3
40
+
41
+ 1. 修复 `GlobalEvent` 订阅事件取消错误的问题
42
+
43
+ #### Version 2.5.2
44
+
45
+ 1. 优化对 `?` 型可选参数的验证逻辑
46
+ 2. 废弃类 `Utils` 上的静态方法 `ConvertPic2Canvas` 改用 `convertPic2Canvas`
47
+ 3. 废弃类 `Utils` 上的静态方法 `ConvertSvg2Canvas` 改用 `convertSvg2Canvas`
48
+ 4. 废弃类 `Utils` 上的静态方法 `RandomUUID` 改用 `uuid`
49
+ 5. 废弃类 `Utils` 上的静态方法 `EncodeId` 改用 `encode`
50
+ 6. 废弃类 `Utils` 上的静态方法 `DecodeId` 改用 `decode`
51
+ 7. 废弃类 `Coordinate` 上的方法 `registerMouseCoordinate`
52
+ 8. 废弃类 `Coordinate` 上的方法 `unregisterMouseCoordinate`
53
+ 9. 优化测量工具的接收参数及错误抛出流程
54
+
55
+ #### Version 2.5.1
56
+
57
+ 1. 修复在React中使用时,单例工具类导致的事件无效化问题
58
+ 2. 修复类型声明文件中 `Sensor` 没有默认数据参数的错误
59
+ 3. 修复在React中使用时,风场、洋流实例找不到销毁对象的问题
60
+ 4. 风场、洋流不再使用针对地球实例的单例模式
61
+ 5. 热力图修改为针对地球实例的单例模式
62
+
63
+ #### Version 2.5.0
64
+
65
+ 1. 类 `AnimationManager`,`GlobalEvent`,`Coordinate`,`Draw`,`Measure`,`ContextMenu`,
66
+ `EChartsOverlay`,`Weather`,`WindField` 现皆升级为针对地球实例的单例类,以优化开发中的性能问题
67
+ 2. `Coordinate` 类新增方法 `cartographicArrayToCartesianArray` 用于地理坐标数组向空间坐标数组的快捷转换
68
+ 3. `Coordinate` 类新增方法 `cartesianArrayToCartographicArray` 用于空间坐标数组向地理坐标数组的快捷转换
69
+ 4. `Utils` 新增方法 `singleton` 用于注册单例类
70
+ 5. 去除覆盖物及上下文菜单样式中的 `z-index` 属性
71
+ 6. 修复 `Radar` 类使用灯照扫描效果的过程中,存在视觉闪烁的问题
72
+ 7. 各类或命名空间中的方法部分参数新增强类型验证检查
73
+ 8. 类中的只读属性现更改为用 `getter` 和 `setter` 覆写的强只读属性
74
+ 9. 添加地图实例初始化时附加版本、创建时间等信息,同时控制台打印欢迎信息
75
+ 10. 废弃各类的 `isDestroyed` 方法,现可直接访问只读属性 `isDestroyed`
76
+ 11. 类 `Geographic` 新增方法 `toString` 用于将地理坐标按模板转换为字符串
77
+ 12. 类 `Geographic` 的方法 `clone` 新增可选参数 `result` 用于指定存储对象
78
+ 13. 新增语义化工具类 `Color` 用于使用8位十六进制值构建颜色
79
+ 14. 新增语义化工具类 `Dimension` 用于描述最多在四个维度或方向上的值
80
+ 15. 新增语义化工具类 `Hpr` 用于使用角度制描述物体的航向、俯仰、翻滚
81
+ 16. 删除抽象类 `Dynamic` 和 `Layer` 的导出资源,仅保留其命名空间及所含类型声明
82
+ 17. 新增 `Runner` 类,用于对数量繁多的异步任务按条件进行调度
83
+ 18. 类 `Queue` 新增 `delete` 方法用于删除具体元素
84
+ 19. 类 `Stack` 新增 `delete` 方法用于删除具体元素
85
+ 20. `Earth.ConstructorOptions` 新增参数 `adaptiveAnimation` 用于配置是否使用适应性的动画控件
86
+ 21. 新增适应性的动画控件以解决在视窗画幅缩放、拉伸的情况下鼠标操作与动画控件交互时定位或移动错误的问题
87
+ 22. `Earth.ConstructorOptions` 新增参数 `adaptiveTimeline` 用于配置是否使用适应性的时间轴控件
88
+ 23. 新增适应性的时间轴控件以解决在视窗画幅缩放、拉伸的情况下鼠标操作与时间轴交互时定位或移动错误的问题
89
+ 24. `Earth` 新增方法 `setFormatters` 可以自定义设置时间轴及动画控件的时间显示格式化函数
90
+ 25. 修复类构造函数参数验证没有正确忽略可选参数的问题
91
+ 26. `PolylineLayer.AddParam` 新增配置项 `perLineVertextColors` 用于新增线段时为组合线段或线段中的顶点单独配置颜色
92
+ 27. `PolylineLayer` 类及 `RectangleLayer` 类暴露只读属性 `outlineLayer` 以访问其边框图层
93
+ 28. 样式文件引用目录从 `@krazyphish/earth/dist/style/index.css` 更改为 `@krazyphish/earth/dist/style.css`
94
+ 29. 废弃钩子方法 `useEarth` 改用 `createEarth`
95
+ 30. 废弃钩子方法 `useEarthRecycle` 改用 `recycleEarth`
96
+ 31. 废弃钩子方法 `useNavigation` 改用 `createNavigation`
97
+ 32. 废弃钩子方法 `useTileImageryProvider`
98
+
99
+ #### Version 2.4.2
100
+
101
+ 1. `RectangleLayer.AddParam` 新增属性 `outline` 用于绘制矩形轮廓线
102
+ 2. `RectangleLayer` 新增方法 `getOutlineEntity` 用于获取矩形轮廓线实体
103
+ 3. 修复 `PolygonLayer` 中多边形使用轮廓线时,轮廓线无法正常显隐的问题
104
+ 4. 覆盖物新增参数中新增类型 `Covering.LineOptions` 用于控制连接线启用、样式、颜色、锚点位置等
105
+ 5. `Covering.AddParam` 类型中的 `connectionLine` 属性从 `boolean` 类型升级至 `LineOptions` 类型
106
+ 6. 废弃并删除 `Covering.AddParam` 中的 `lineStroke` 属性
107
+ 7. `Covering.AddParam` 类型中的新增 `offset` 属性用于控制初始时覆盖物出现位置的偏移
108
+
109
+ #### Version 2.4.1
110
+
111
+ 1. 修复 `ContextMenu` 上下文菜单在视图拉伸、缩放的情况下定位错误的问题
112
+ 2. 优化上下文菜单触发时的显示外观,以更符合使用直觉
113
+
114
+ #### Version 2.4.0
115
+
116
+ 1. `Utils` 工具新增方法 `ConvertPic2Canvas` 用于将图片转成Canvas,支持`base64`、`jpg`、`jpeg`和`png`格式
117
+ 2. `Utils` 工具新增方法 `debounce` 和 `throttle` 用于函数防抖和节流
118
+ 3. `PolylineLayer` 类新增静态方法 `isGroundSupported` 用于获取指定地球是否支持绘制贴地线
119
+ 4. `Geographic.equals` 方法新增入参 `diff` 用于声明在比较时可接受的数学误差值
120
+ 5. 枚举 `ConicMode.Rhumb` 更改为 `ConicMode.GEODESIC` 描述从大圆更正为测地线
121
+ 6. `CircleDynamic` 动态绘制圆类新增方法 `edit` 用于编辑具体圆
122
+ 7. 废弃并删除 `Earth` 属性 `measure`,`global`,`drawTool`,`contextMenu`,`weather`,改为按需手动初始化,以改善卡顿问题
123
+ 8. `GlobalEvent` 新增初始化参数 `delay` 用于设置事件触发节流的间隔时间
124
+ 9. `Covering.AddParam` 中的属性 `reference` 现在增加支持输入类型 `string` 以接收字符串形式的自定义方式
125
+ 10. 删除若干已废弃方法和接口类型
126
+
127
+ #### Version 2.3.3
128
+
129
+ 1. `Earth.ConstructorOptions` 新增参数 `adaptiveCameraController` 用于配置是否使用适应性的相机控制器
130
+ 2. 新增适应性的相机控制器以解决在视窗画幅缩放、拉伸的情况下放大缩小地图时定位或移动错误的问题
131
+
132
+ #### Version 2.3.2
133
+
134
+ 1. 修复 `GlobalEvent` 全局事件在Canvas有缩放的情况下与目标交互事件无法触发的问题
135
+ 2. 修复 `GlobalEvent` 全局事件模块目标有时点击后不触发事件的问题
136
+ 3. 修复 `Covering` 覆盖物连接线初始化时报错导致的视觉闪烁问题
137
+ 4. 类 `Queue` 和 `Stack` 新增方法 `clear` 用于清空当前队列或栈
138
+ 5. 类 `Queue` 和 `Stack` 新增方法 `contains` 用于查询是否包含具体元素
139
+
140
+ #### Version 2.3.1
141
+
142
+ 1. `Covering.AddParam` 新增参数 `follow` 用于设置覆盖物是否跟随锚定点
143
+ 2. 若干工具类新增 `isDestroyed` 方法以获取销毁状态:
144
+ `AnimationManager`、`Cluster`、`ContextMenu`、`Covering`、`Draw`、`Dynamic`、`EChartsOverlay`、
145
+ `Earth`、`GlobalEvent`、`GraphicsLayer`、`Layer`、`Measure`、`Radar`、`Sensor`、`Weather`
146
+ 3. 修复 `Covering` 覆盖物元素在移动时超出Canvas边界的问题
147
+
148
+ #### Version 2.3.0
149
+
150
+ 1. 新增 `Queue` 类和 `Stack` 类,用于模拟队列和栈的管理工具
151
+ 2. `PolylineLayer.AddParam` 新增参数 `loop` 用于配置首尾相连的折线
152
+ 3. `PolylineDynamic` 类同步,即可绘制首尾相连的折线
153
+ 4. `AnimationManager` 类新增方法 `show` 和 `hide` 控制动画显示和隐藏
154
+ 5. `DiffusePointLayer` 类新增方法 `show` 和 `hide` 控制扩散点图层对象显示和隐藏
155
+ 6. `GlobalEvent` 全局事件类新增事件类型,仅支持对象触发的 `HOVER` 事件
156
+ 7. 废弃属性 `GraphicsLayer.allowDestroy` 现不再限制该默认图层的销毁操作
157
+ 8. 废弃方法 `GraphicsLayer.forceDestroy` 改用 `GraphicsLayer.destroy`
158
+ 9. 修复调用 `useEarthRecycle` 导致Vue页面崩溃的问题
159
+ 10. `Covering` 类新增参数中新增 `closeable` 属性,以给覆盖物增加可关闭吊牌的按钮
160
+ 11. `Covering` 覆盖物自定义连接线颜色
161
+
162
+ #### Version 2.2.5
163
+
164
+ 1. `Geographic` 类新增静态方法 `fromRadiansArray` 和 `fromRadiansArrayHeights` 用于批量弧度坐标转换
165
+ 2. `EChartsOverlay` 新增方法 `destroy` 用于替代原 `dispose` 方法以保持方法命名统一
166
+ 3. 修复 `Covering` 覆盖物移除未清理键值对缓存的问题
167
+
168
+ #### Version 2.2.4
169
+
170
+ 1. `Covering` 类新增方法 `has`用于判断是否有具体条目
171
+ 2. 修复 `Covering` 覆盖物元素自定义时错误更新内容的问题
172
+ 3. 修复 `Covering` 覆盖物元素自定义时元素定位错误的问题
173
+
174
+ #### Version 2.2.3
175
+
176
+ 1. 修复 `Covering` 类在拉伸视图、缩放视图下错位、无法拖拽的若干问题
177
+ 2. `Covering` 覆盖物定位方式从 `fixed` 切换至 `absolute`,如还有错位问题请将地球的父对象定位方式改为 `relative`
178
+ 3. `2D` 地图模式下加载覆盖物出现位置错误请等待地球视图加载完成后再加载(由 `Cesium` 二维坐标转换缺陷引起)
179
+
180
+ #### Version 2.2.2
181
+
182
+ 1. 新增属性 `PointLayer.labelLayer`,现在点图层也可以添加附属标签
183
+ 2. 修正 `EChartsOverlay` 的构造器函数的入参
184
+ 3. 废弃参数 `EChartsOverlay.ConstructionOptions.earth`
185
+ 4. 修正若干类型声明错误
186
+
187
+ #### Version 2.2.1
188
+
189
+ 1. 修复若干类型声明错误
190
+
191
+ #### Version 2.2.0
192
+
193
+ 1. 新增 `CloudLayer` 积云图层类,提供积云图层展示
194
+ 2. 类 `Geographic` 新增若干方法
195
+ 3. 类 `Coordinate` 新增若干方法
196
+ 4. 修正若干类型声明错误
197
+ 5. 废弃属性 `GraphicsLayer.wall`
198
+ 6. 废弃方法 `Polyline.addFlowingDash`
199
+ 7. 废弃方法 `Polyline.addFlowingWave`
200
+ 8. 废弃方法 `Earth.useDraw`,现通过属性 `Earth.drawTool` 访问
201
+ 9. 废弃方法 `Earth.useDefaultLayers`,现属性 `Earth.layers` 访问
202
+ 10. 废弃方法 `Earth.useMeasure`,现通过属性 `Earth.measure` 访问
203
+ 11. 废弃方法 `Earth.useContextMenu`,现通过属性 `Earth.contextMenu` 访问
204
+
205
+ #### Version 2.1.0
206
+
207
+ 1. 新增 `GlobalEvent` 全局事件类,提供全局鼠标事件订阅
208
+ 2. 修订若干类型声明错误
209
+
210
+ #### Version 2.0.0
211
+
212
+ 1. 新增 `AnimationManager` 动画管理器类,简化播放开发流程
213
+ 2. 发布至npm公开版本,版本号重置为2.0.0
214
+
215
+ #### Version 1.1.7
216
+
217
+ 1. `Draw` 类新增方法 `subscribe`,订阅绘制或编辑时事件
218
+ 2. `Draw` 类新增方法 `unsubscribe`,取消订阅绘制或编辑时事件
219
+ 3. 删除方法 `Draw.subscribeEdit` 和 `Draw.unsubscribeEdit`
220
+ 4. 废弃枚举 `EditEventType` 改用 `SubEventType`
221
+ 5. 热力图初始化参数中废弃接口 `useEntitiesIfAvailable`
222
+ 6. 模型参数中废弃接口 `timestamp`
223
+ 7. 模型运动参数中废弃接口 `projection`
224
+ 8. 多边形参数中废弃接口 `outlineColor` 和 `outlineWidth` 改用 `outline`
225
+ 9. 各图形参数废弃接口 `color` 改用 `materialType` 及 `materialUniforms`
226
+ 10. 波动线条废弃接口 `measure` 改用 `length`
227
+ 11. 地球实例废弃方法 `setViewer` 和 `setOption`
228
+
229
+ #### Version 1.1.6
230
+
231
+ 1. 重构多边形的轮廓线实现,支持多种自定义材质类型
232
+ 2. `Draw` 类新增方法 `addFeature`,手动添加可编辑对象
233
+ 3. `Draw` 类新增方法 `subscribeEdit`,订阅编辑对象结束事件
234
+ 4. `Draw` 类新增方法 `unsubscribeEdit`,取消订阅编辑对象结束事件
235
+
236
+ #### Version 1.1.5
237
+
238
+ 1. 新增类 `EChartsOverlay` 集成Echarts视图
239
+ 2. EchartsGL坐标同步Cesium渲染
240
+ 3. 重构模型运动逻辑为单模型运动
241
+ 4. 现模型运动支持模拟非直线运动
242
+ 5. 模型包络不在随模型运动自动更新,更改为手动
243
+ 6. 相机工具中新增层级与高度相互关系获取
244
+ 7. 修复在没有地形数据的情况下三角测量失效的问题
245
+ 8. 扩散点图层类新增修改位置及附加数据方法
246
+
247
+ #### Version 1.1.4
248
+
249
+ 1. 修复热力图在隐藏的情况下依然会重复刷新渲染的问题
250
+ 2. 新增扩散点图层(扩散特效)
251
+ 3. 重构 `Weather` 天气特效类
252
+ 4. 天气特效类现由单一场景实现替换为粒子效果实现
253
+ 5. 新增天气特效可以按坐标添加
254
+ 6. 新增天气特效在具体范围内实现
255
+ 7. 新增天气特效附加数据管理
256
+
257
+ #### Version 1.1.3
258
+
259
+ 1. 新增动态画标签的功能
260
+ 2. 新增 `Covering` 自定义覆盖物类
261
+ 3. 覆盖物可拖拽,实现信息框、信息提示
262
+ 4. 覆盖物可跟随,并自定义锚点
263
+
264
+ #### Version 1.1.0
265
+
266
+ 1. 删除绝大部分导出的接口
267
+ 2. 重构接口到相对应的类的命名空间中
268
+ 3. 优化接口命名
269
+
270
+ #### Version 1.0.17
271
+
272
+ 1. 新增 `Utils.ConvertSvg2Canvas` svg图片转canvas方法
273
+ 2. 新增 `PolylineTrailingMaterial` 拖尾线条自定义材质
274
+ 3. 重构 `PolylineFlowingWave` 波动线条和 `PolylineFlowingDash` 流动线条两种自定义材质
275
+ 4. 修复热力图更新渲染问题,修正若干ts类型声明问题
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) [2025] [KrazyPhish]
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,32 @@
1
+ ## @krazyphish/earth
2
+
3
+ A simpler module for GIS based on [cesium](https://www.npmjs.com/package/cesium), [turf](https://www.npmjs.com/package/@turf/turf).
4
+
5
+ ### Before start
6
+
7
+ Before start using this module, install packages blow manually: [cesium](https://www.npmjs.com/package/cesium), [echarts](https://www.npmjs.com/package/echarts).
8
+
9
+ Then install this module:
10
+
11
+ ```shell
12
+ npm install @krazyphish/earth
13
+ ```
14
+
15
+ ### Get started
16
+
17
+ ```html
18
+ <div id="GisContainer" class="relative w-full h-full"></div>
19
+ ```
20
+
21
+ ```ts
22
+ // in your main.ts or main.tsx
23
+ // import the style sheet
24
+ import "@krazyphish/earth/dist/style.css"
25
+ ```
26
+
27
+ ```ts
28
+ // in your map module, when initializing the cesium viewer
29
+ import { type Earth, createEarth } from "@krazyphish/earth"
30
+
31
+ const earth: Earth = createEarth()
32
+ ```