@terra.gl/core 0.0.1-alpha.12 → 0.0.1-alpha.13

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/dist/index.d.ts CHANGED
@@ -748,7 +748,7 @@ export declare function concatenateTypedArrays<T extends TypedArray>(...typedArr
748
748
  * @param zoom - 缩放级别
749
749
  * @returns 包含 WGS84 坐标数组的 GeoJSON geometry 对象 { type: string, coordinates: any }
750
750
  */
751
- export declare function convertGeometryToWGS84(geometryData: any, tileX: number, tileY: number, zoom: number): GeoJSONGeometry_2;
751
+ export declare function convertGeometryToWGS84(geometryData: any, tileX: number, tileY: number, zoom: number): GeoJSONGeometry;
752
752
 
753
753
  /**
754
754
  * 基础坐标类型
@@ -787,136 +787,6 @@ export declare interface CustomStyle extends BaseStyle {
787
787
  build: () => Object3D | Promise<Object3D>;
788
788
  }
789
789
 
790
- declare interface DomEventMap extends BaseEventMap<Map_2> {
791
- /** 事件的地理坐标(可选) */
792
- coordinate?: Coordinate;
793
- }
794
-
795
- /**
796
- * 单个绘制模式定义:
797
- * - actions: 参与的事件序列(目前主要是 click / mousemove / dblclick)
798
- * - create: 第一次点击时创建几何对象
799
- * - update: 每次新增顶点或移动时更新几何
800
- * - generate: 结束时生成最终结果(可以是 Feature,也可以是原几何)
801
- * - clickLimit: 最少点击次数(达到就可以结束,通常配合 dblclick)
802
- */
803
- declare type DrawModeDefinition = {
804
- actions: Array<"click" | "mousemove" | "dblclick">;
805
- create: (start: Coordinate, evt: DomEventMap) => any;
806
- update: (coords: Coordinate[], geometry: any, evt: DomEventMap) => void;
807
- generate: (geometry: any, coords: Coordinate[]) => any;
808
- clickLimit?: number;
809
- };
810
-
811
- /**
812
- * DrawTool:通用绘图工具
813
- *
814
- * 负责:
815
- * - 处理 Map 的 DOM 事件(click/mousemove/dblclick)
816
- * - 维护顶点序列 _clickCoords
817
- * - 调用模式定义的 create/update/generate
818
- * - 向外触发:drawstart / drawvertex / drawend / drawing 等事件
819
- */
820
- export declare class DrawTool extends MapTool {
821
- /** 配置 */
822
- options: DrawToolOptions;
823
- /** 当前模式定义 */
824
- private _modeDef?;
825
- /** 当前绘制中的顶点序列 */
826
- private _clickCoords;
827
- /** 是否正在绘制中 */
828
- private _isDrawing;
829
- /** 当前绘制中的几何对象(由 mode.create/create 返回) */
830
- private _geometry;
831
- /** 内部统一草图图层 */
832
- private _draftLayer?;
833
- /**
834
- * 注册一个绘制模式
835
- */
836
- static registerMode(name: string, def: DrawModeDefinition): void;
837
- /**
838
- * 获取已注册的模式
839
- */
840
- static getModeDefinition(name: string): DrawModeDefinition | undefined;
841
- constructor(options: DrawToolOptions);
842
- /**
843
- * 获取当前模式名称(统一转为小写)
844
- */
845
- getMode(): string;
846
- /**
847
- * 设置绘制模式:会清空当前绘制状态
848
- */
849
- setMode(mode: string): this;
850
- /**
851
- * 子类实现:返回需要绑定到 Map 的事件映射
852
- */
853
- protected getEvents(): {
854
- click: (evt: DomEventMap) => void;
855
- mousemove: (evt: DomEventMap) => void;
856
- dblclick: (evt: DomEventMap) => void;
857
- };
858
- /**
859
- * 启用时同步一下模式定义
860
- */
861
- protected onEnable(): void;
862
- /**
863
- * 禁用时结束当前绘制,并清理草图图层
864
- */
865
- protected onDisable(): void;
866
- /**
867
- * 确保当前 mode 有对应的定义
868
- */
869
- private _ensureMode;
870
- /**
871
- * 处理 click 事件:
872
- * - 第一次 click:开始绘制,调用 mode.create,触发 drawstart
873
- * - 后续 click:追加顶点,调用 mode.update,触发 drawvertex
874
- * - 若达到 clickLimit,则结束绘制
875
- */
876
- private _handleClick;
877
- /**
878
- * 处理 mousemove 事件:
879
- * - 仅在绘制中才更新几何
880
- * - 不修改 _clickCoords,只用临时 coords 传给 update
881
- */
882
- private _handleMouseMove;
883
- /**
884
- * 处理 dblclick:
885
- * - 如果正在绘制,则直接结束
886
- */
887
- private _handleDblClick;
888
- /**
889
- * 正常结束一次绘制:调用 mode.generate 并触发 drawend
890
- */
891
- private _finishDrawing;
892
- /**
893
- * 静默结束(不触发 drawend),用于切换模式 / 禁用工具
894
- */
895
- private _finishDrawingSilently;
896
- /**
897
- * 内部:获取或创建统一草图图层
898
- */
899
- _getOrCreateDraftLayer(): OverlayLayer<Feature>;
900
- /**
901
- * 内部:销毁草图图层
902
- */
903
- private _destroyDraftLayer;
904
- }
905
-
906
- /**
907
- * DrawTool 的配置项
908
- */
909
- declare type DrawToolOptions = MapToolOptions & {
910
- /** 模式名称,例如 'line' / 'polygon' / 'point' */
911
- mode: string;
912
- /** 是否在一次绘制结束后自动禁用工具 */
913
- once?: boolean;
914
- /** 主几何的样式(线 / 面) */
915
- geometryStyle?: StyleInput;
916
- /** 锚点样式 */
917
- vertexStyle?: StyleInput | null;
918
- };
919
-
920
790
  /**
921
791
  * 边缘索引类型
922
792
  * @description 定义网格四边的顶点索引
@@ -932,10 +802,6 @@ export declare type EdgeIndices = {
932
802
  northIndices: Uint16Array | Uint32Array;
933
803
  };
934
804
 
935
- declare class EmptyBase {
936
- constructor(..._args: any[]);
937
- }
938
-
939
805
  /**
940
806
  * 创建一个空基类(仅用于混入起点)
941
807
  */
@@ -1056,7 +922,7 @@ declare abstract class Feature extends Feature_base implements ICollidable {
1056
922
  /** Three.js几何对象 */
1057
923
  _threeGeometry: Object3D | Line2;
1058
924
  /** GeoJSON几何数据 */
1059
- _geometry: GeoJSONGeometry;
925
+ _geometry: GeoJSONGeometry_2;
1060
926
  /** 所属图层 */
1061
927
  _layer?: Layer;
1062
928
  /** 当前样式 */
@@ -1358,19 +1224,19 @@ declare type FeatureOptions = {
1358
1224
  rotateAngle?: number;
1359
1225
  };
1360
1226
 
1361
- /**
1362
- * GeoJSON几何类型联合类型
1363
- */
1364
- declare type GeoJSONGeometry = Point_2 | MultiPoint | LineString_2 | MultiLineString_2 | Polygon_2 | MultiPolygon;
1365
-
1366
1227
  /**
1367
1228
  * GeoJSON Geometry 的返回类型 (用于 GeoJSON 兼容输出)
1368
1229
  */
1369
- declare interface GeoJSONGeometry_2 {
1230
+ declare interface GeoJSONGeometry {
1370
1231
  type: string;
1371
1232
  coordinates: any;
1372
1233
  }
1373
1234
 
1235
+ /**
1236
+ * GeoJSON几何类型联合类型
1237
+ */
1238
+ declare type GeoJSONGeometry_2 = Point_2 | MultiPoint | LineString_2 | MultiLineString_2 | Polygon_2 | MultiPolygon;
1239
+
1374
1240
  /**
1375
1241
  * GeoJSON 兼容的 WGS84 坐标数组 [Lng, Lat]
1376
1242
  */
@@ -2921,114 +2787,6 @@ export declare type MapOptionsType = {
2921
2787
  FeatureEvents?: boolean;
2922
2788
  };
2923
2789
 
2924
- /**
2925
- * 地图工具基类
2926
- *
2927
- * - 管理工具的生命周期(addTo / enable / disable / remove)
2928
- * - 与 Map 的事件系统对接(内部统一注册/注销事件)
2929
- * - 保证同一张地图同时只存在一个激活工具
2930
- */
2931
- export declare abstract class MapTool extends MapTool_base {
2932
- /** 绑定的地图实例 */
2933
- protected _map?: Map_2;
2934
- /** 是否启用中 */
2935
- protected _enabled: boolean;
2936
- /** 缓存绑定到 Map 上的事件处理函数,便于 off 时移除 */
2937
- private _boundHandlers;
2938
- /**
2939
- * @param options 工具配置
2940
- */
2941
- constructor(options?: MapToolOptions);
2942
- /**
2943
- * 将工具添加到地图上,并自动启用。
2944
- * 同一张 Map 上会保证只有一个激活的 MapTool。
2945
- */
2946
- addTo(map: Map_2): this;
2947
- /**
2948
- * 获取当前绑定的地图实例
2949
- */
2950
- getMap(): Map_2 | undefined;
2951
- /**
2952
- * 启用工具:绑定事件 + 调用 onEnable 钩子
2953
- */
2954
- enable(): this;
2955
- /**
2956
- * 禁用工具:解绑事件 + 调用 onDisable 钩子
2957
- */
2958
- disable(): this;
2959
- /**
2960
- * 工具是否处于启用状态
2961
- */
2962
- isEnabled(): boolean;
2963
- /**
2964
- * 从地图上移除工具
2965
- */
2966
- remove(): this;
2967
- /**
2968
- * 子类实现:返回需要绑定到 Map 上的事件映射
2969
- *
2970
- * key: 事件名(如 'click', 'mousemove')
2971
- * value: 事件处理函数(参数为 Map 的事件数据)
2972
- *
2973
- * 注意:
2974
- * - 不要求提前 bind(this),MapTool 内部会统一绑定 this
2975
- */
2976
- protected abstract getEvents(): Record<string, (e: any) => void>;
2977
- /**
2978
- * 生命周期钩子:工具刚 addTo(map) 时调用
2979
- */
2980
- protected onAdd?(): void;
2981
- /**
2982
- * 生命周期钩子:工具 enable() 时调用
2983
- */
2984
- protected onEnable?(): void;
2985
- /**
2986
- * 生命周期钩子:工具 disable() 时调用
2987
- */
2988
- protected onDisable?(): void;
2989
- /**
2990
- * 内部:绑定 Map 事件
2991
- */
2992
- private _bindEvents;
2993
- /**
2994
- * 内部:解绑 Map 事件
2995
- */
2996
- private _unbindEvents;
2997
- }
2998
-
2999
- declare const MapTool_base: {
3000
- new (...args: any[]): {
3001
- eventClass: EventClass;
3002
- on: (type: string, listener: (data?: any) => void) => EventClass;
3003
- trigger: (type: string, data?: any) => EventClass;
3004
- off: (type: string, listener: (...args: any[]) => void) => EventClass;
3005
- };
3006
- } & {
3007
- new (...args: any[]): {
3008
- [x: string]: any;
3009
- options: any;
3010
- _isUpdatingOptions?: boolean;
3011
- _initHooksCalled?: boolean;
3012
- _initHooks?: Function[];
3013
- proxyOptions(): /*elided*/ any;
3014
- callInitHooks(): /*elided*/ any;
3015
- setOptions(options: ClassOptions): /*elided*/ any;
3016
- config(conf?: string | ClassOptions, value?: any): ClassOptions | /*elided*/ any;
3017
- onConfig(_conf: ClassOptions): void;
3018
- _visitInitHooks(proto: {
3019
- _initHooks: any;
3020
- }): void;
3021
- };
3022
- mergeOptions(options: ClassOptions): /*elided*/ any & typeof EmptyBase;
3023
- addInitHook(fn: Function | string, ...args: any[]): /*elided*/ any & typeof EmptyBase;
3024
- include(...sources: any[]): /*elided*/ any & typeof EmptyBase;
3025
- } & typeof EmptyBase;
3026
-
3027
- /**
3028
- * MapTool 配置项(预留,将来可以扩展)
3029
- */
3030
- declare type MapToolOptions = ClassOptions & {};
3031
-
3032
2790
  /**
3033
2791
  * Martini网格瓦片生成器
3034
2792
  * @description 基于RTIN(Right-Triangulated Irregular Networks)方法的高度图瓦片生成器