Type Alias TGetDirectionsOptions

TGetDirectionsOptions: {
    accessible?: boolean;
    connectionIdWeightMap?: Record<string, number>;
    excludedConnections?: Connection[];
    smoothing?:
        | boolean
        | {
            __EXPERIMENTAL_METHOD?: "greedy-los";
            enabled?: boolean;
            radius?: number;
        }
        | { __EXPERIMENTAL_METHOD: "rdp"; enabled?: boolean; radius?: number }
        | {
            __EXPERIMENTAL_INCLUDE_DOOR_BUFFER_NODES?: boolean;
            __EXPERIMENTAL_METHOD: "dp-optimal";
            enabled?: boolean;
            radius?: number;
        };
    zones?: TDirectionZone[];
}

Options for controlling the behavior of the Directions.

Type declaration

  • Optionalaccessible?: boolean

    If true directions will only take accessible routes

    false
    
  • OptionalconnectionIdWeightMap?: Record<string, number>

    Override the default weights for specific connection ids.

  • Optional ExperimentalexcludedConnections?: Connection[]

    Enterprise only. Connections that should not be used for directions.

    If a connection is excluded, it will not be used in the directions even if it is the shortest (or only) path. If there is no path that does not include the these connections, the directions will be undefined.

  • Optionalsmoothing?:
        | boolean
        | {
            __EXPERIMENTAL_METHOD?: "greedy-los";
            enabled?: boolean;
            radius?: number;
        }
        | { __EXPERIMENTAL_METHOD: "rdp"; enabled?: boolean; radius?: number }
        | {
            __EXPERIMENTAL_INCLUDE_DOOR_BUFFER_NODES?: boolean;
            __EXPERIMENTAL_METHOD: "dp-optimal";
            enabled?: boolean;
            radius?: number;
        }

    Enable or disable path smoothing for directions. When enabled, the path is simplified using line-of-sight checks to provide a more visually appealing route and shorter instructions.

    Can be a boolean to enable or disable smoothing, or an object with configuration options.

    Available methods:

    • 'greedy-los' (default): Greedy forward scan with line-of-sight validation. Fastest, O(n) time complexity. Good default choice.
    • 'rdp': Uses Ramer-Douglas-Peucker preprocessing + line-of-sight validation + door buffer nodes. Better for paths with doors and complex geometry. Medium speed.
    • 'dp-optimal': Dynamic Programming for globally optimal simplification. Slowest but highest quality, O(n²) complexity. Best when path quality is critical.
    true for non-enterprise mode, false for enterprise mode
    
    // Enable smoothing with default settings
    mapView.getDirections(firstSpace, secondSpace, {
    smoothing: true
    })

    // Enable smoothing with custom radius (in meters)
    mapView.getDirections(firstSpace, secondSpace, {
    smoothing: {
    radius: 1.5,
    }
    })

    // Use greedy line-of-sight method (default, explicit)
    mapView.getDirections(firstSpace, secondSpace, {
    smoothing: {
    enabled: true,
    __EXPERIMENTAL_METHOD: 'greedy-los',
    radius: 0.4,
    }
    })

    // Use RDP method (always uses line-of-sight)
    mapView.getDirections(firstSpace, secondSpace, {
    smoothing: {
    enabled: true,
    __EXPERIMENTAL_METHOD: 'rdp',
    radius: 0.4,
    }
    })

    // Use DP-optimal method with door buffer nodes
    mapView.getDirections(firstSpace, secondSpace, {
    smoothing: {
    enabled: true,
    __EXPERIMENTAL_METHOD: 'dp-optimal',
    __EXPERIMENTAL_INCLUDE_DOOR_BUFFER_NODES: true,
    radius: 0.4,
    }
    })
  • Optionalzones?: TDirectionZone[]

    Defines the special zones for navigation operations.

    mapView.getDirections(firstSpace, secondSpace, {
    zones: [
    {
    geometry: polygon as Feature<Polygon>,
    // The additional cost for navigation through the zone, from 0 to Infinity.
    // The final cost is calculated as the sum of basic cost that comes from the {@MapData}
    // and the additional zone cost.
    // A additional cost of 0 will make the zone free to navigate through
    // A additional cost of Infinity will make the zone impossible to navigate through
    cost: Infinity,
    floor: mapView.currentFloor,
    },
    ],
    });