Class MapView

Generic PubSub class implementing the Publish-Subscribe pattern for event handling.

Hierarchy (view full)

Properties

BlueDot: BlueDot

Controls for BlueDot positioning.

Camera: Camera

Controls for the map's camera.

Images: Images

Controls for the map's markers.

Labels: Labels

Controls for the map's labels.

Markers: Markers

Controls for the map's markers.

Models: Models

Controls for the map's models.

Navigation: Navigation

Controls for the map's navigation.

Outdoor: Outdoor

Controls for the outdoor map.

Paths: Paths

Controls for the map's paths.

Shapes: Shapes

Controls custom GeoJSON geometry on the map

Style: Style

Controls for the indoor map's style.

Accessors

  • get currentFloor(): Floor
  • The current floor (Floor) of the map.

    Returns Floor

Methods

  • Clears all added elements from the map.

    Returns void

  • Creates a Coordinate on the map.

    Parameters

    • latitude: number

      The latitude of the coordinate.

    • longitude: number

      The longitude of the coordinate.

    • Optionalfloor: Floor

      Optional floor information if applicable.

    Returns Coordinate

    The created coordinate object.

    // Create a coordinate at the CN Tower.
    const coord = map.createCoordinate(43.642567, -79.387054);
  • Parameters

    • x: number
    • y: number
    • Optionalfloor: Floor

    Returns undefined | Coordinate

  • Destroys the MapView.

    Returns void

  • Experimental

    Enable debug interface

    Parameters

    • opitons: Partial<InspectorState> = {}

    Returns Promise<void>

  • Experimental

    Parameters

    • Optionalopts: {
          excludeFloors: Floor[];
      }

    Returns undefined | Promise<void>

  • Retrieves the dimensions of the map's canvas.

    Returns {
        height: number;
        width: number;
    }

    An object containing the width and height of the canvas.

    • height: number
    • width: number
  • Returns undefined | string

  • Returns {}

    • Determines if a given target is within the viewport.

      This method checks if the specified target, such as a Space, MapObject, Label, Marker, or string identifier, is currently within the visible area of the map viewport. Note that this method returns true even if the target is not visible (e.g., its visibility is set to false).

      Parameters

      • target:
            | string
            | Space
            | MapObject
            | Label
            | Marker

        The target to check for viewport inclusion. This can be a Space, MapObject, Label, Marker, or string identifier.

      Returns boolean

      A boolean indicating whether the target is within the viewport.

    • Unsubscribe a function previously subscribed with on

      Type Parameters

      • EventName extends
            | "floor-change"
            | "floor-change-start"
            | "hover"
            | "click"
            | "camera-change"
            | "outdoor-view-loaded"
            | "outdoor-style-loaded"
            | "user-interaction-start"
            | "user-interaction-end"
            | (keyof TStackedMapsEvents)
            | "blue-dot-position-update"
            | "blue-dot-state-change"
            | "blue-dot-error"

      Parameters

      • eventName: EventName

        An event name to which the provided function was previously subscribed.

      • fn: ((payload: TEventPayload<EventName>) => void)

        A function that was previously passed to on. The function must have the same reference as the function that was subscribed.

      Returns void

      // Unsubscribe from the 'click' event
      const handler = (event) => {
      const { coordinate } = event;
      const { latitude, longitude } = coordinate;
      console.log(`Map was clicked at ${latitude}, ${longitude}`);
      };
      mapView.off('click', handler);
    • Subscribe a function to an event.

      Type Parameters

      • EventName extends
            | "floor-change"
            | "floor-change-start"
            | "hover"
            | "click"
            | "camera-change"
            | "outdoor-view-loaded"
            | "outdoor-style-loaded"
            | "user-interaction-start"
            | "user-interaction-end"
            | (keyof TStackedMapsEvents)
            | "blue-dot-position-update"
            | "blue-dot-state-change"
            | "blue-dot-error"

      Parameters

      • eventName: EventName

        An event name which, when fired, will call the provided function.

      • fn: ((payload: TEventPayload<EventName>) => void)

        A callback that gets called when the corresponding event is fired. The callback will get passed an argument with a type that's one of event payloads.

      Returns void

      // Subscribe to the 'click' event
      const handler = (event) => {
      const { coordinate } = event;
      const { latitude, longitude } = coordinate;
      console.log(`Map was clicked at ${latitude}, ${longitude}`);
      };
      mapView.on('click', handler);
    • Sets the current floor (Floor) of the map.

      Parameters

      • floor: string | Floor

        The floor or floor ID to set.

      Returns undefined | Promise<void>

    • Parameters

      • c: string

      Returns void

    • Parameters

      • Optionalopts: TShowStackOptions

      Returns undefined | Promise<void>

    • Returns void

    • Updates the state (TUpdateState) of a given target on the map.

      The following table maps targets to states.

      target state
      Label TLabelState
      MapObject TGeometryState
      Space TGeometryState

      Type Parameters

      Parameters

      • target: T

        The target to update.

      • state: TUpdateState<T>

        The new state to apply to the target.

      Returns any

      // Update the color of a space to red.
      map.updateState(space, { color: 'red' });
    • Type Parameters

      • T extends string & {}

      Parameters

      • target: T
      • state: TUpdateStates

      Returns any