Skip to content

Documentation / @geoverse/editor-core / EditEngine

Class: EditEngine ​

Defined in: packages/editor-core/src/engine.ts:41

编辑引擎:dispatch 走 校验→applyForward→入栈→清 redo→emit。 undo/redo 复用泛型 applyForward/applyReverse,只认 added/removed/modified, 对要素数量变化(split 1→2、merge 2→1)零特判。

Constructors ​

Constructor ​

ts
new EditEngine(options?): EditEngine;

Defined in: packages/editor-core/src/engine.ts:51

Parameters ​

options? ​

EditEngineOptions = {}

Returns ​

EditEngine

Properties ​

crs ​

ts
readonly crs: string;

Defined in: packages/editor-core/src/engine.ts:49

Methods ​

adoptServerState() ​

ts
adoptServerState(serverFeatures): void;

Defined in: packages/editor-core/src/engine.ts:159

采纳服务端权威状态(409 冲突 rebase):以服务端要素覆盖/补齐本地同 id 要素, 并清空历史栈(rebase 后旧历史不再有效)。本地未提交编辑由调用方在 commit 前后取舍。

Parameters ​

serverFeatures ​

EditableFeature[]

Returns ​

void


dispatch() ​

ts
dispatch(cmd): EditResult;

Defined in: packages/editor-core/src/engine.ts:60

Parameters ​

cmd ​

Command

Returns ​

EditResult


getFeature() ​

ts
getFeature(id): EditableFeature | undefined;

Defined in: packages/editor-core/src/engine.ts:137

Parameters ​

id ​

string

Returns ​

EditableFeature | undefined


on() ​

ts
on(listener): () => void;

Defined in: packages/editor-core/src/engine.ts:114

Parameters ​

listener ​

SnapshotListener

Returns ​

() => void


onTransaction() ​

ts
onTransaction(listener): () => void;

Defined in: packages/editor-core/src/engine.ts:120

订阅事务事件(同步层用以累积未提交变更)。

Parameters ​

listener ​

TransactionListener

Returns ​

() => void


redo() ​

ts
redo(): boolean;

Defined in: packages/editor-core/src/engine.ts:104

Returns ​

boolean


remapIds() ​

ts
remapIds(idMap): void;

Defined in: packages/editor-core/src/engine.ts:169

提交后端回包后,把临时 id 替换成真实 id(状态 + 历史栈一并改)。

Parameters ​

idMap ​

Record<FeatureId, FeatureId>

Returns ​

void


setVersions() ​

ts
setVersions(versions): void;

Defined in: packages/editor-core/src/engine.ts:143

写入后端下发的版本号(乐观锁)。

Parameters ​

versions ​

Record<FeatureId, number>

Returns ​

void


snapshot() ​

ts
snapshot(): EditSnapshot;

Defined in: packages/editor-core/src/engine.ts:125

Returns ​

EditSnapshot


undo() ​

ts
undo(): boolean;

Defined in: packages/editor-core/src/engine.ts:94

Returns ​

boolean