此类使用视图事件生成一组坐标,以使用 Draw 创建新的 Point 几何图形。调用 draw.create("point") 方法时,将返回对 PointDrawAction 的引用。监听 PointDrawAction 的 cursor-update 和 draw-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);
}
构造函数
属性概览
Name | 类型 | 描述 | 类 | |
---|---|---|---|---|
String | 更多信息 类的名称。 | 更多信息 | Accessor | |
Boolean | 更多信息 控制创建的几何图形是否具有 z 坐标。 | 更多信息 | DrawAction | |
Number[][] | 更多信息 点几何的 x,y 坐标数组。 | 更多信息 | PointDrawAction | |
MapView | 更多信息 对 MapView 的引用。 | 更多信息 | DrawAction |
属性详情
-
起始版本:GeoScene API for JavaScript 4.7
-
类的名称。声明的类名格式为
geoscene.folder.className
。
-
控制创建的几何图形是否具有 z 坐标。
- 默认值:true
-
起始版本: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 |
方法详情
-
complete()
-
完成绘制点几何图形并触发 draw-complete 事件。如果绘图逻辑需要通过双击或按“C”键以外的方式完成,则调用此方法。
-
在实例上发出事件。此方法仅应在创建此类的子类时使用。
参数:type String事件的名称。
event Objectoptional事件有效负载。
返回:类型 说明 Boolean 如果监听器收到通知,则为 true
-
-
将给定的屏幕点映射到地图点。
参数:screenPoint ScreenPoint屏幕上的位置。
返回:类型 说明 FromScreenPointResult | null 包含的结果对象,如果无法映射屏幕点,则返回 null
。
-
将给定的屏幕点映射到地图点。
参数:screenPoint ScreenPoint屏幕上的位置。
返回:类型 说明 Number[] | null 与给定屏幕点关联的点的 x、y 和 z 分量数组(如果启用了 hasZ),如果无法映射屏幕点,则为 null
。
-
在实例上注册事件处理程序。调用此方法以将事件与侦听器挂钩。
参数:要侦听的事件或事件数组。
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-add 或 vertex-remove 事件。
示例:if (action.canRedo()) { action.redo(); }
-
将给定的屏幕点映射到地图点。
参数:screenPoint ScreenPoint屏幕上的位置。
返回:类型 说明 Point | null MapPoint 与给定的屏幕点关联,如果屏幕点无法映射,则为 null。
-
undo()inherited
-
逐步撤消堆栈中记录的操作。在调用此方法之前调用 canUndo() 以检查是否可以在操作实例上调用此方法。调用此方法将根据最后一个操作触发 vertex-add 或 vertex-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 坐标对。
- 属性:
-
表示视图空间参考中的 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 坐标对。
- 属性:
-
表示视图空间参考中的 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); });