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 Maps SDK for JavaScript 4.5

此类使用视图事件来生成一组坐标,以使用 Draw 创建新的几何。调用 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
optional

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

属性概述

可以设置、检索或侦听任何属性。请参阅使用属性主题。
显示继承属性 隐藏继承属性
名称 类型 描述
String

类的名称。

更多详情
Accessor
Boolean

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

更多详情
DrawAction
Number[][]

几何的 x,y 坐标数组。

更多详情
PointDrawAction
MapView

MapView 的引用。

更多详情
DrawAction

属性详细信息

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

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

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

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

几何的 x,y 坐标数组。

MapView 的引用。

方法概述

显示继承的方法 隐藏继承的方法
名称 返回值类值 描述

添加一个或多个与对象的生命周期相关联的句柄。

更多详情
Accessor
Boolean

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

更多详情
DrawAction
Boolean

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

更多详情
DrawAction

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

更多详情
PointDrawAction
Boolean

在实例上触发事件。

更多详情
DrawAction
FromScreenPointResult|null

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

更多详情
DrawAction
Number[]|null

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

更多详情
DrawAction
Boolean

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

更多详情
DrawAction
Boolean

如果存在指定的句柄组,则返回 true。

更多详情
Accessor
Object

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

更多详情
DrawAction

逐步恢复堆栈中记录的操作。

更多详情
DrawAction

移除对象拥有的句柄组。

更多详情
Accessor
Point|null

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

更多详情
DrawAction

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

更多详情
DrawAction

方法详细说明

addHandles(handleOrHandles, groupKey)inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。

// Manually manage handles
const handle = reactiveUtils.when(
  () => !view.updating,
  () => {
    wkidSelect.disabled = false;
  },
  { once: true }
);

// Handle gets removed when the object is destroyed.
this.addHandles(handle);
参数
handleOrHandles WatchHandle|WatchHandle[]

对象销毁后,标记为要移除的句柄。

groupKey *
optional

标识句柄应添加到的组的键。组中的所有句柄稍后都可使用 Accessor.removeHandles() 进行删除。如果未提供键,则句柄将被添加到默认组。

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。
hasHandles(groupKey){Boolean}inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

如果存在指定的句柄组,则返回 true。

参数
groupKey *
optional

组键。

返回
类型 描述
Boolean 如果存在指定的句柄组,则返回 true
示例
// Remove a named group of handles if they exist.
if (obj.hasHandles("watch-view-updates")) {
  obj.removeHandles("watch-view-updates");
}
on(type, listener){Object}inherited

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

参数

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

listener Function

事件触发时要调用的函数。

返回
类型 描述
Object 返回具有 remove() 方法的事件处理程序,可调用该方法来停止侦听事件。
属性 类型 描述
remove Function 调用时,从事件中移除侦听器。
示例
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();
}
removeHandles(groupKey)inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

移除对象拥有的句柄组。

参数
groupKey *
optional

要移除的组键或组键的数组或集合。

示例
obj.removeHandles(); // removes handles from default group

obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");
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);
});

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息