A handle that allows a point to be dragged around.

To use a PointDragHandle in your own editors, you have to:

  • link a point of the shape (or feature) to the handle, cf. getPoint
  • update the shape or feature, based on the dragged point, cf. drag

For example, to move the center of a PointDragHandle as follows:

function createCenterHandle(context: EditContext): EditHandle {
const circle = context.shape as CircleByCenterPoint;
return new PointDragHandle(
(): Point => circle.center,
(point: Point): void => circle.move2DToPoint(point)
);
}

Since

2022.1

Hierarchy

Constructors

Accessors

  • get active(): boolean
  • Indicates whether the handle is active.

    Returns boolean

  • set active(active): void
  • Parameters

    • active: boolean

    Returns void

  • get snapPoint(): null | Point
  • The point to snap to.

    This is used to paint a snap icon.

    Typically, this is set by subclasses, for example in PointDragHandle.drag.

    Returns null | Point

  • set snapPoint(p): void
  • Parameters

    Returns void

Methods

  • Called whenever the point is dragged to a new location.

    By default, this delegates to the drag function that was passed into the constructor.

    Parameters

    • point: Point

      The new location of the point, in model coordinates.

    • event: GestureEvent

      The gesture event that caused the drag.

    • context: EditContext

      The edit context

    Returns void

  • Returns the cursor for this point handle.

    • if the handle is active, this returns "grab".
    • if the handle is inactive, but the mouse interacts with the point, this returns "pointer".
    • otherwise, null is returned.

    Parameters

    Returns null | string

  • Returns the model point that this handle corresponds to.

    By default, this delegates to the getPoint function that was passed into the constructor.

    Returns Point

  • Checks whether the given input event interacts with the point handle.

    By default, this returns true if the mouse or finger is within a certain distance of the point. A larger distance is used for touch events than for mouse events.

    Parameters

    Returns boolean

  • Populates a context menu with entries.

    For example, a handle for a point in a polyline might add a "Delete point" context menu entry.

    Parameters

    • event: GestureEvent

      the input event that triggered opening the context menu.

    • context: EditContext

      the edit context

    • contextMenu: ContextMenu

      the context menu to add entries to.

    • onDone: (() => void)

      a callback that needs to be called when a menu action is performed. Call this at the end of the ContextMenuItem.action implementation.

        • (): void
        • Returns void

    Returns void

  • This method allows the handle to draw labels on the map.

    For example, you can use this to show coordinates of points, or the current radius of a circle on top of an edit handle.

    The default implementation draws nothing.

    Parameters

    Returns void

  • Called when (another) handle changes the feature or shape, as indicated by the "EditShape" event.

    This handle can update its own state, based on the changed shape.

    For example, a PointListInsertHandle just inserted a point in a polyline. The PointListTranslateHandle uses the update to recalculate new sub-handles, based on the new polyline (with the extra point).

    The default implementation does nothing.

    Returns void

  • Transform a view point to model coordinates.

    The default implementation transforms the view point to a model coordinate on terrain. It also moves the point's Z to 0.

    Parameters

    • viewPoint: Point

      The view point to transform to model coordinates

    • context: EditContext

      The edit context

    Returns null | Point

    Since

    2023.1

Events

"EditShape" event

  • on("EditShape", callback: ((event) => void)) : Handle
  • An event that is emitted whenever this handle changes the shape of a feature.

    EditShape

    Parameters

    • event: "EditShape"
    • callback: ((event) => void)

    Returns Handle