DrawAction

AMD: require(["geoscene/views/draw/DrawAction"], (DrawAction) => { /* 代码 */ });
ESM: import DrawAction from "@geoscene/core/views/draw/DrawAction";
类: geoscene/views/draw/DrawAction
继承于: DrawAction Accessor
起始版本: GeoScene API for JavaScript 4.22

DrawAction 是所有绘图动作的基类。DrawActions 使用视图事件来生成一组坐标来创建新的几何图形。每个都有不同的用途,允许您创建不同类型的几何图形,例如 pointmultipointpolyline 和 polygon

调用 draw.create("type of geometry") 法时,会返回相关绘制动作的实例。 然后,您可以监听其事件以创建符合应用程序指定标准的新几何。

示例:

构造函数

new DrawAction(properties)
参数:
properties Object
optional

所有可传入构造函数的属性,请参见属性列表

属性列表

可以设置、检索或监听的属性。参见 使用属性
展示继承属性 隐藏继承属性
属性 类型 描述
String更多信息

类名。

更多信息Accessor
Boolean更多信息

控制创建的几何图形是否具有 z 坐标。

更多信息DrawAction
Number[][]更多信息

数字的二维数组,表示组成正在绘制的几何图形的每个顶点的坐标。

更多信息DrawAction
MapView更多信息

MapView 的引用。

更多信息DrawAction

属性详细说明

declaredClass Stringreadonly inherited

类名。类的名称声明格式为 geoscene.folder.className

hasZ Boolean

控制创建的几何图形是否具有 z 坐标。

默认值:true
vertices Number[][]readonly

数字的二维数组,表示组成正在绘制的几何图形的每个顶点的坐标。

view MapView

MapView 的引用。

方法列表

属性 返回值类型 描述
Boolean更多信息

指示是否可以在操作实例上调用 redo() 方法。

更多信息DrawAction
Boolean更多信息

指示是否可以在操作实例上调用 undo() 方法。

更多信息DrawAction
Boolean更多信息

在实例上触发事件。

更多信息DrawAction
FromScreenPointResult|null更多信息

将给定的屏幕点映射到地图点。

更多信息DrawAction
Number[]|null更多信息

将给定的屏幕点映射到地图点。

更多信息DrawAction
Boolean更多信息

指示实例上是否存在与提供的事件名称匹配的事件侦听器。

更多信息DrawAction
Object更多信息

在实例上注册事件处理程序。

更多信息DrawAction
更多信息

增量重做堆栈中记录的操作。

更多信息DrawAction
Point|null更多信息

将给定的屏幕点映射到地图点。

更多信息DrawAction
更多信息

逐步撤消堆栈中记录的操作。

更多信息DrawAction

方法详细说明

canRedo(){Boolean}

指示是否可以在操作实例上调用 redo() 方法。

返回值:
类型 描述
Boolean 如果 redo() 可以被调用,将会返回 true
canUndo(){Boolean}

指示是否可以在操作实例上调用 undo() 方法。

返回值:
类型 描述
Boolean 如果 undo() 可以被调用,将会返回 true
emit(type, event){Boolean}

在实例上触发事件。仅当创建此类的子类时才应使用此方法。

参数:
type String

事件名称

event Object
optional

事件负载。

返回值:
类型 描述
Boolean 如果侦听器收到通知,则为true 
getCoordsAndPointFromScreenPoint(screenPoint){FromScreenPointResult|null}

将给定的屏幕点映射到地图点。

参数:
screenPoint ScreenPoint

屏幕上的位置。

返回值:
类型 描述
FromScreenPointResult | null 包含的结果对象,如果无法映射屏幕点,则返回 null
getCoordsFromScreenPoint(screenPoint){Number[]|null}

将给定的屏幕点映射到地图点。

参数:
screenPoint ScreenPoint

屏幕上的位置。

返回值:
类型 描述
Number[] | null 与给定屏幕点关联的点的 x、y 和 z 分量数组(如果启用了 hasZ),如果无法映射屏幕点,则为 null
hasEventListener(type){Boolean}

指示实例上是否存在与提供的事件名称匹配的事件侦听器。

参数:
type String

事件名称

返回值:
类型 描述
Boolean 如果类支持输入事件,则返回 true。
on(type, listener){Object}

在实例上注册事件处理程序。调用此方法将事件与侦听器挂钩

参数:

要监听的event 或者事件数组

listener Function

事件触发时要调用的函数

返回值:
类型 描述
Object 返回一个remove() 方法的事件处理程序,该方法用以停止侦听事件。
属性 类型 描述
remove Function 当被调用时,从事件中移除监听器。
示例代码:
view.on("click", function(event){
  // event是事件触发后返回的事件句柄。
  console.log(event.mapPoint);
});
redo()

增量重做堆栈中记录的操作。在调用此方法之前调用 canRedo() 以检查是否可以在操作实例上调用此方法。 调用此方法将触发 vertex-addvertex-remove 事件,具体取决于最后一个操作。

示例代码:
if (action.canRedo()) {
  action.redo();
}
screenToMap(screenPoint){Point|null}

将给定的屏幕点映射到地图点。

参数:
screenPoint ScreenPoint

屏幕上的位置。

返回值:
类型 描述
Point | null MapPoint 与给定的屏幕点关联,如果屏幕点无法映射,则为 null。 
undo()

逐步撤消堆栈中记录的操作。 在调用此方法之前调用 canUndo() 以检查是否可以在操作实例上调用此方法。 调用此方法将触发 vertex-addvertex-remove 事件,具体取决于最后一个操作。

示例代码:
if (action.canUndo()) {
  action.undo();
}

类型定义

FromScreenPointResult

getCoordsAndPointFromScreenPoint() 方法的结果对象。 有关每个属性的更多详细信息,请参见下表。

属性:
vertex Number[]

x、y 和 z 分量的数组(如果启用了 hasZ)。

mapPoint Point

与给定屏幕点关联的点的地图点。

ScreenPoint

表示屏幕上一个点的对象。

属性:
x Number

x 坐标。

y Number

y 坐标。

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.