Interface SnappingHandlerOptions<EditedFeature, TargetFeature>

interface SnappingHandlerOptions<
    EditedFeature extends WazeFeature,
    TargetFeature extends WazeFeature,
> {
    allowSnapToEdge?: boolean;
    allowSnapToNode?: boolean;
    allowSnapToVertex?: boolean;
    editableLayer: WazeFeatureLayer<EditedFeature>;
    onSnap?: (
        info: {
            snapPoint: Point;
            snapType: SnappedFeatureType;
            targetLayer: WazeFeatureLayer<TargetFeature>;
        },
    ) => void;
    onUnsnap?: (point: Point) => void;
    targetFilter?: (
        targetFeature: TargetFeature,
        targetLayer: WazeFeatureLayer<TargetFeature>,
        editedFeature: undefined | EditedFeature,
        editableLayer: WazeFeatureLayer<EditedFeature>,
    ) => boolean;
    targetLayers: WazeFeatureLayer<TargetFeature>[];
}

Type Parameters

Properties

allowSnapToEdge?: boolean

If an editable feature could be snapped to an edge of the target feature

allowSnapToNode?: boolean

If an editable feature could be snapped to a node of the target feature

allowSnapToVertex?: boolean

If an editable feature could be snapped to a vertex of the target feature

The layer with features that could be snapped to target features.

onSnap?: (
    info: {
        snapPoint: Point;
        snapType: SnappedFeatureType;
        targetLayer: WazeFeatureLayer<TargetFeature>;
    },
) => void

A callback for when an editable feature is snapped to some target features.

onUnsnap?: (point: Point) => void

A callback for when an editable feature is unsnapped from some target features.

targetFilter?: (
    targetFeature: TargetFeature,
    targetLayer: WazeFeatureLayer<TargetFeature>,
    editedFeature: undefined | EditedFeature,
    editableLayer: WazeFeatureLayer<EditedFeature>,
) => boolean

Keep target features that are valid snap targets.

Type declaration

Layers with features that are snap targets for features from the editableLayer.