PointDrawAction

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

此类使用视图事件生成一组坐标,以使用 Draw 创建新的 Point 几何图形。调用 draw.create("point") 方法时,将返回对 PointDrawAction 的引用。监听 PointDrawAction 的 cursor-updatedraw-complete 事件来处理点几何的创建。

另请参阅:
示例:
function enableCreatePoint(draw, view) {
  let action = draw.create("point");

  // PointDrawAction.cursor-update
  // Give a visual feedback to users as they move the pointer over the view
  action.on("cursor-update", function (evt) {
    createPointGraphic(evt.coordinates);
  });

  // PointDrawAction.draw-complete
  // Create a point when user clicks on the view or presses "C" key.
  action.on("draw-complete", function (evt) {
    createPointGraphic(evt.coordinates);
  });
}

function createPointGraphic(coordinates){
  view.graphics.removeAll();
  let point = {
    type: "point", // autocasts as /Point
    x: coordinates[0],
    y: coordinates[1],
    spatialReference: view.spatialReference
  };

  let graphic = new Graphic({
    geometry: point,
    symbol: {
      type: "simple-marker", // autocasts as SimpleMarkerSymbol
      style: "square",
      color: "red",
      size: "16px",
      outline: { // autocasts as SimpleLineSymbol
        color: [255, 255, 0],
        width: 3
      }
    }
  });
  view.graphics.add(graphic);
}

构造函数

new PointDrawAction(properties)
参数:
properties Object
可选

有关可能传递给构造函数的所有属性的列表,请参见属性

属性概览

可以设置、检索或收听任何属性。请参阅使用属性主题。
显示继承的属性 隐藏继承的属性
Name 类型 描述
String更多信息

类的名称。

更多信息Accessor
Boolean更多信息

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

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

几何的 x,y 坐标数组。

更多信息PointDrawAction
MapView更多信息

MapView 的引用。

更多信息DrawAction

属性详情

declaredClass Stringreadonly inherited
起始版本:GeoScene API for JavaScript 4.7

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

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

默认值:true
vertices Number[][]readonly
起始版本:GeoScene API for JavaScript 4.19

几何的 x,y 坐标数组。

MapView 的引用。

方法概览

显示继承的方法 隐藏继承的方法
Name 返回类型 描述
Boolean更多信息

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

更多信息DrawAction
Boolean更多信息

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

更多信息DrawAction
更多信息

完成绘制几何图形并触发 draw-complete 事件。

更多信息PointDrawAction
Boolean更多信息

在实例上发出事件。

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

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

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

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

更多信息DrawAction
Boolean更多信息

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

更多信息DrawAction
Object更多信息

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

更多信息DrawAction
更多信息

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

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

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

更多信息DrawAction
更多信息

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

更多信息DrawAction

方法详情

canRedo(){Boolean}inherited

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

返回:
类型 说明
Boolean 如果可以调用 redo() 方法,则返回 true
canUndo(){Boolean}inherited

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

返回:
类型 说明
Boolean 如果可以调用 undo() 方法,则返回 true
complete()

完成绘制几何图形并触发 draw-complete 事件。如果绘图逻辑需要通过双击或按“C”键以外的方式完成,则调用此方法。

emit(type, event){Boolean}inherited

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

参数:
type String

事件的名称。

event Object
optional

事件有效负载。

返回:
类型 说明
Boolean 如果监听器收到通知,则为 true
getCoordsAndPointFromScreenPoint(screenPoint){FromScreenPointResult|null}inherited

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

参数:
screenPoint ScreenPoint

屏幕上的位置。

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

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

参数:
screenPoint ScreenPoint

屏幕上的位置。

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

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

参数:
type String

事件的名称。

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

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

参数:

要侦听的事件或事件数组。

listener Function

事件触发时调用的函数。

返回:
类型 说明
Object 返回带有 remove() 方法的事件处理程序,应调用该方法以停止侦听事件。
属性 类型 说明
remove 函数 调用时,从事件中删除侦听器。
示例:
view.on("click", function(event){
  // event is the event handle returned after the event fires.
  console.log(event.mapPoint);
});
redo()inherited

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

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

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

参数:
screenPoint ScreenPoint

屏幕上的位置。

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

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

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

事件概览

名称 类型 描述
{coordinates: Number[],preventDefault: Function,defaultPrevented: Boolean,type: "cursor-update"}
更多信息

在指针在视图上移动后触发。

更多信息 PointDrawAction
{coordinates: Number[],preventDefault: Function,defaultPrevented: Boolean,type: "draw-complete"}
更多信息

在用户完成绘制点后触发。

更多信息 PointDrawAction

事件详情

cursor-update

在指针在视图上移动后触发。它将指针在视图上的位置作为数字数组返回,该数组表示视图空间参考中的 x,y 坐标对。

属性:
coordinates Number[]

表示视图空间参考中的 x,y 坐标对的数字数组。

preventDefault Function

防止事件传播在事件链上冒泡。

defaultPrevented Boolean

调用 preventDefault() 时设置为 true。

type String

事件的类型。

该值始终是 "cursor-update”

示例:
action.on("cursor-update", function (evt) {
  view.graphics.removeAll();
  let point = new Point({
    x: evt.coordinates[0],
    y: evt.coordinates[1],
    spatialReference: view.spatialReference
  });
  let graphic = createGraphic(point);
  view.graphics.add(graphic);
});
draw-complete

在用户完成绘制点后触发。它将指针在视图上的位置作为数字数组返回,该数组表示视图空间参考中的 x,y 坐标对。

属性:
coordinates Number[]

表示视图空间参考中的 x,y 坐标对的数字数组。

preventDefault Function

防止事件传播在事件链上冒泡。

defaultPrevented Boolean

调用 preventDefault() 时设置为 true

type String

事件的类型。

该值始终是 "draw-complete”

示例:
action.on("draw-complete", function (evt) {
  view.graphics.removeAll();
  let point = new Point({
    x: evt.coordinates[0],
    y: evt.coordinates[1],
    spatialReference: view.spatialReference
  });
  let graphic = createGraphic(point);
  view.graphics.add(graphic);
});

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