Class Marker

Creates a marker component

Example

let marker = new Marker()
.setLngLat([30.5, 50.5])
.addTo(map);

Example

Set options

let marker = new Marker({
color: "#FFFFFF",
draggable: true
}).setLngLat([30.5, 50.5])
.addTo(map);

See

Events

Event dragstart of type Event will be fired when dragging starts.

Event drag of type Event will be fired while dragging.

Event dragend of type Event will be fired when the marker is finished being dragged.

Hierarchy (view full)

Constructors

Methods

  • Adds a CSS class to the marker element.

    Parameters

    • className: string

      on-empty string with CSS class name to add to marker element

    Returns void

    Example

    let marker = new Marker()
    marker.addClassName('some-class')
  • Attaches the Marker to a Map object.

    Parameters

    • map: Map

      The MapLibre GL JS map to add the marker to.

    Returns this

    Example

    let marker = new Marker()
    .setLngLat([30.5, 50.5])
    .addTo(map); // add the marker to the map
  • Returns the Marker's HTML element.

    Returns HTMLElement

    element

  • Get the marker's geographical location.

    The longitude of the result may differ by a multiple of 360 degrees from the longitude previously set by setLngLat because Marker wraps the anchor longitude across copies of the world to keep the marker on screen.

    Returns LngLat

    A LngLat describing the marker's location.

    Example

    // Store the marker's longitude and latitude coordinates in a variable
    let lngLat = marker.getLngLat();
    // Print the marker's longitude and latitude values in the console
    console.log('Longitude: ' + lngLat.lng + ', Latitude: ' + lngLat.lat )

    See

    Create a draggable Marker

  • Get the marker's offset.

    Returns Point

    The marker's screen coordinates in pixels.

  • Returns the current pitchAlignment property of the marker.

    Returns Alignment

    The current pitch alignment of the marker in degrees.

  • Returns the Popup instance that is bound to the Marker.

    Returns Popup

    popup

    Example

    let marker = new Marker()
    .setLngLat([0, 0])
    .setPopup(new Popup().setHTML("<h1>Hello World!</h1>"))
    .addTo(map);

    console.log(marker.getPopup()); // return the popup instance
  • Returns the current rotation angle of the marker (in degrees).

    Returns number

    The current rotation angle of the marker.

  • Returns the current rotationAlignment property of the marker.

    Returns Alignment

    The current rotational alignment of the marker.

  • Returns true if the marker can be dragged

    Returns boolean

    True if the marker is draggable.

  • Returns a true if this instance of Evented or any forwardeed instances of Evented have a listener for the specified type.

    Parameters

    • type: string

      The event type

    Returns boolean

    true if there is at least one registered listener for specified event type, false otherwise

  • Removes a previously registered event listener.

    Parameters

    • type: string

      The event type to remove listeners for.

    • listener: Listener

      The listener function to remove.

    Returns Marker

  • Adds a listener to a specified event type.

    Parameters

    • type: string

      The event type to add a listen for.

    • listener: Listener

      The function to be called when the event is fired. The listener function is called with the data object passed to fire, extended with target and type properties.

    Returns this

  • Adds a listener that will be called only once to a specified event type.

    The listener will be called first time the event fires after the listener is registered.

    Parameters

    • type: string

      The event type to listen for.

    • Optional listener: Listener

      The function to be called when the event is fired the first time.

    Returns Promise<any> | Marker

    this or a promise if a listener is not provided

  • Removes the marker from a map

    Returns this

    Example

    let marker = new Marker().addTo(map);
    marker.remove();
  • Removes a CSS class from the marker element.

    Parameters

    • className: string

      Non-empty string with CSS class name to remove from marker element

    Returns void

    Example

    let marker = new Marker()
    marker.removeClassName('some-class')
  • Sets the draggable property and functionality of the marker

    Parameters

    • Optional shouldBeDraggable: boolean

      Turns drag functionality on/off

    Returns this

  • Bubble all events fired by this instance of Evented to this parent instance of Evented.

    Parameters

    • Optional parent: Evented
    • Optional data: any

    Returns Marker

  • Set the marker's geographical position and move it.

    Parameters

    Returns this

    Example

    Create a new marker, set the longitude and latitude, and add it to the map

    new Marker()
    .setLngLat([-65.017, -16.457])
    .addTo(map);

    See

  • Sets the offset of the marker

    Parameters

    • offset: PointLike

      The offset in pixels as a PointLike object to apply relative to the element's center. Negatives indicate left and up.

    Returns this

  • Sets the opacity and opacityWhenCovered properties of the marker. When called without arguments, resets opacity and opacityWhenCovered to defaults

    Parameters

    • Optional opacity: string

      Sets the opacity property of the marker.

    • Optional opacityWhenCovered: string

      Sets the opacityWhenCovered property of the marker.

    Returns this

  • Sets the pitchAlignment property of the marker.

    Parameters

    • Optional alignment: Alignment

      Sets the pitchAlignment property of the marker. If alignment is 'auto', it will automatically match rotationAlignment.

    Returns this

  • Binds a Popup to the Marker.

    Parameters

    • Optional popup: Popup

      An instance of the Popup class. If undefined or null, any popup set on this Marker instance is unset.

    Returns this

    Example

    let marker = new Marker()
    .setLngLat([0, 0])
    .setPopup(new Popup().setHTML("<h1>Hello World!</h1>")) // add popup
    .addTo(map);

    See

    Attach a popup to a marker instance

  • Sets the rotation property of the marker.

    Parameters

    • Optional rotation: number

      The rotation angle of the marker (clockwise, in degrees), relative to its respective Marker#setRotationAlignment setting.

    Returns this

  • Sets the rotationAlignment property of the marker.

    Parameters

    • Optional alignment: Alignment

      Sets the rotationAlignment property of the marker. defaults to 'auto'

    Returns this

  • Add or remove the given CSS class on the marker element, depending on whether the element currently has that class.

    Parameters

    • className: string

      Non-empty string with CSS class name to add/remove

    Returns boolean

    if the class was removed return false, if class was added, then return true

    Example

    let marker = new Marker()
    marker.toggleClassName('toggleClass')
  • Opens or closes the Popup instance that is bound to the Marker, depending on the current state of the Popup.

    Returns this

    Example

    let marker = new Marker()
    .setLngLat([0, 0])
    .setPopup(new Popup().setHTML("<h1>Hello World!</h1>"))
    .addTo(map);

    marker.togglePopup(); // toggle popup open or closed