On this page

Class LngLatBounds

A LngLatBounds object represents a geographical bounding box, defined by its southwest and northeast points in longitude and latitude.

If no arguments are provided to the constructor, a null bounding box is created.

Note that any MapLibre GL method that accepts a LngLatBounds object as an argument or option can also accept an Array of two LngLatLike constructs and will perform an implicit conversion. This flexible type is documented as LngLatBoundsLike.

let sw = new LngLat(-73.9876, 40.7661);
let ne = new LngLat(-73.9397, 40.8002);
let llb = new LngLatBounds(sw, ne);
Index

Constructors

  • Parameters

    • Optionalsw: [number, number, number, number] | LngLatLike | [LngLatLike, LngLatLike]

      The southwest corner of the bounding box. OR array of 4 numbers in the order of west, south, east, north OR array of 2 LngLatLike: [sw,ne]

    • Optionalne: LngLatLike

      The northeast corner of the bounding box.

    Returns LngLatBounds

    let sw = new LngLat(-73.9876, 40.7661);
    let ne = new LngLat(-73.9397, 40.8002);
    let llb = new LngLatBounds(sw, ne);
    

    OR

    let llb = new LngLatBounds([-73.9876, 40.7661, -73.9397, 40.8002]);
    

    OR

    let llb = new LngLatBounds([sw, ne]);
    

Methods

  • Adjusts the given bounds to handle the case where the bounds cross the 180th meridian (antimeridian).

    Returns LngLatBounds

    The adjusted LngLatBounds

    let bounds = new LngLatBounds([175.813127, -20.157768], [-178. 340903, -15.449124]);
    let adjustedBounds = bounds.adjustAntiMeridian();
    // adjustedBounds will be: [[175.813127, -20.157768], [181.659097, -15.449124]]
    
  • Check if the point is within the bounding box.

    Parameters

    • lnglat: LngLatLike

      geographic point to check against.

    Returns boolean

    true if the point is within the bounding box.

    let llb = new LngLatBounds(
      new LngLat(-73.9876, 40.7661),
      new LngLat(-73.9397, 40.8002)
    );
    
    let ll = new LngLat(-73.9567, 40.7789);
    
    console.log(llb.contains(ll)); // = true
    
  • Returns the geographical coordinate equidistant from the bounding box's corners.

    Returns LngLat

    The bounding box's center.

    let llb = new LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
    llb.getCenter(); // = LngLat {lng: -73.96365, lat: 40.78315}
    
  • Returns the east edge of the bounding box.

    Returns number

    The east edge of the bounding box.

  • Returns the north edge of the bounding box.

    Returns number

    The north edge of the bounding box.

  • Returns the northeast corner of the bounding box.

    Returns LngLat

    The northeast corner of the bounding box.

  • Returns the northwest corner of the bounding box.

    Returns LngLat

    The northwest corner of the bounding box.

  • Returns the south edge of the bounding box.

    Returns number

    The south edge of the bounding box.

  • Returns the southeast corner of the bounding box.

    Returns LngLat

    The southeast corner of the bounding box.

  • Returns the southwest corner of the bounding box.

    Returns LngLat

    The southwest corner of the bounding box.

  • Returns the west edge of the bounding box.

    Returns number

    The west edge of the bounding box.

  • Checks if this bounding box intersects with another bounding box.

    Returns true if the bounding boxes share any area, including cases where they only touch along an edge or at a corner.

    This method properly handles cases where either or both bounding boxes cross the antimeridian (date line).

    Parameters

    Returns boolean

  • Check if the bounding box is an empty/null-type box.

    Returns boolean

    True if bounds have been defined, otherwise false.

  • Set the northeast corner of the bounding box

    Parameters

    Returns this

  • Set the southwest corner of the bounding box

    Parameters

    Returns this

  • Returns the bounding box represented as an array.

    Returns [[number, number], [number, number]]

    The bounding box represented as an array, consisting of the southwest and northeast coordinates of the bounding represented as arrays of numbers.

    let llb = new LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
    llb.toArray(); // = [[-73.9876, 40.7661], [-73.9397, 40.8002]]
    
  • Return the bounding box represented as a string.

    Returns string

    The bounding box represents as a string of the format 'LngLatBounds(LngLat(lng, lat), LngLat(lng, lat))'.

    let llb = new LngLatBounds([-73.9876, 40.7661], [-73.9397, 40.8002]);
    llb.toString(); // = "LngLatBounds(LngLat(-73.9876, 40.7661), LngLat(-73.9397, 40.8002))"
    
  • Converts an array to a LngLatBounds object.

    If a LngLatBounds object is passed in, the function returns it unchanged.

    Internally, the function calls LngLat.convert to convert arrays to LngLat values.

    Parameters

    • input: LngLatBoundsLike | null

      An array of two coordinates to convert, or a LngLatBounds object to return.

    Returns LngLatBounds

    A new LngLatBounds object, if a conversion occurred, or the original LngLatBounds object.

    let arr = [[-73.9876, 40.7661], [-73.9397, 40.8002]];
    let llb = LngLatBounds.convert(arr); // = LngLatBounds {_sw: LngLat {lng: -73.9876, lat: 40.7661}, _ne: LngLat {lng: -73.9397, lat: 40.8002}}
    
  • Returns a LngLatBounds from the coordinates extended by a given radius. The returned LngLatBounds completely contains the radius.

    Parameters

    • center: LngLat

      center coordinates of the new bounds.

    • Optionalradius: number

      Distance in meters from the coordinates to extend the bounds.

    Returns LngLatBounds

    A new LngLatBounds object representing the coordinates extended by the radius.

    let center = new LngLat(-73.9749, 40.7736);
    LngLatBounds.fromLngLat(100).toArray(); // = [[-73.97501862141328, 40.77351016847229], [-73.97478137858673, 40.77368983152771]]
    
Was this helpful?
SDK JS
Reference
LngLatBounds