Class MultiLineString

java.lang.Object
com.mapbox.geojson.MultiLineString
All Implemented Interfaces:
CoordinateContainer<List<List<Point>>>, GeoJson, Geometry, Serializable

public final class MultiLineString extends Object implements CoordinateContainer<List<List<Point>>>
A multilinestring is an array of LineString coordinate arrays.

This adheres to the RFC 7946 internet standard when serialized into JSON. When deserialized, this class becomes an immutable object which should be initiated using its static factory methods.

When representing a LineString that crosses the antimeridian, interoperability is improved by modifying their geometry. Any geometry that crosses the antimeridian SHOULD be represented by cutting it in two such that neither part's representation crosses the antimeridian.

For example, a line extending from 45 degrees N, 170 degrees E across the antimeridian to 45 degrees N, 170 degrees W should be cut in two and represented as a MultiLineString.

A sample GeoJson MultiLineString's provided below (in it's serialized state).

 {
   "type": "MultiLineString",
   "coordinates": [
     [
       [100.0, 0.0],
       [101.0, 1.0]
     ],
     [
       [102.0, 2.0],
       [103.0, 3.0]
     ]
   ]
 }
 
Look over the LineString documentation to get more information about formatting your list of linestring objects correctly.
Since:
1.0.0
See Also:
  • Method Details

    • fromJson

      public static MultiLineString fromJson(@NonNull String json)
      Create a new instance of this class by passing in a formatted valid JSON String. If you are creating a MultiLineString object from scratch it is better to use one of the other provided static factory methods such as fromLineStrings(List).
      Parameters:
      json - a formatted valid JSON string defining a GeoJson MultiLineString
      Returns:
      a new instance of this class defined by the values passed inside this static factory method
      Since:
      1.0.0
    • fromLineStrings

      public static MultiLineString fromLineStrings(@NonNull List<LineString> lineStrings)
      Create a new instance of this class by defining a list of LineString objects and passing that list in as a parameter in this method. The LineStrings should comply with the GeoJson specifications described in the documentation.
      Parameters:
      lineStrings - a list of LineStrings which make up this MultiLineString
      Returns:
      a new instance of this class defined by the values passed inside this static factory method
      Since:
      3.0.0
    • fromLineStrings

      public static MultiLineString fromLineStrings(@NonNull List<LineString> lineStrings, @Nullable BoundingBox bbox)
      Create a new instance of this class by defining a list of LineString objects and passing that list in as a parameter in this method. The LineStrings should comply with the GeoJson specifications described in the documentation. Optionally, pass in an instance of a BoundingBox which better describes this MultiLineString.
      Parameters:
      lineStrings - a list of LineStrings which make up this MultiLineString
      bbox - optionally include a bbox definition
      Returns:
      a new instance of this class defined by the values passed inside this static factory method
      Since:
      3.0.0
    • fromLineString

      public static MultiLineString fromLineString(@NonNull LineString lineString)
      Create a new instance of this class by passing in a single LineString object. The LineStrings should comply with the GeoJson specifications described in the documentation.
      Parameters:
      lineString - a single LineString which make up this MultiLineString
      Returns:
      a new instance of this class defined by the values passed inside this static factory method
      Since:
      3.0.0
    • fromLineString

      public static MultiLineString fromLineString(@NonNull LineString lineString, @Nullable BoundingBox bbox)
      Create a new instance of this class by passing in a single LineString object. The LineStrings should comply with the GeoJson specifications described in the documentation.
      Parameters:
      lineString - a single LineString which make up this MultiLineString
      bbox - optionally include a bbox definition
      Returns:
      a new instance of this class defined by the values passed inside this static factory method
      Since:
      3.0.0
    • fromLngLats

      public static MultiLineString fromLngLats(@NonNull List<List<Point>> points)
      Create a new instance of this class by defining a list of a list of Points which follow the correct specifications described in the Point documentation. Note that there should not be any duplicate points inside the list and the points combined should create a LineString with a distance greater than 0.
      Parameters:
      points - a list of Points which make up the MultiLineString geometry
      Returns:
      a new instance of this class defined by the values passed inside this static factory method
      Since:
      3.0.0
    • fromLngLats

      public static MultiLineString fromLngLats(@NonNull List<List<Point>> points, @Nullable BoundingBox bbox)
      Create a new instance of this class by defining a list of a list of Points which follow the correct specifications described in the Point documentation. Note that there should not be any duplicate points inside the list and the points combined should create a LineString with a distance greater than 0.
      Parameters:
      points - a list of Points which make up the MultiLineString geometry
      bbox - optionally include a bbox definition
      Returns:
      a new instance of this class defined by the values passed inside this static factory method
      Since:
      3.0.0
    • type

      @NonNull public String type()
      This describes the TYPE of GeoJson geometry this object is, thus this will always return MultiLineString.
      Specified by:
      type in interface GeoJson
      Returns:
      a String which describes the TYPE of geometry, for this object it will always return MultiLineString
      Since:
      1.0.0
    • bbox

      @Nullable public BoundingBox bbox()
      A Feature Collection might have a member named bbox to include information on the coordinate range for it's Features. The value of the bbox member MUST be a list of size 2*n where n is the number of dimensions represented in the contained feature geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries.
      Specified by:
      bbox in interface GeoJson
      Returns:
      a list of double coordinate values describing a bounding box
      Since:
      3.0.0
    • coordinates

      @NonNull public List<List<Point>> coordinates()
      Provides the list of list of Points that make up the MultiLineString geometry.
      Specified by:
      coordinates in interface CoordinateContainer<List<List<Point>>>
      Returns:
      a list of points
      Since:
      3.0.0
    • lineStrings

      public List<LineString> lineStrings()
      Returns a list of LineStrings which are currently making up this MultiLineString.
      Returns:
      a list of LineStrings
      Since:
      3.0.0
    • toJson

      public String toJson()
      This takes the currently defined values found inside this instance and converts it to a GeoJson string.
      Specified by:
      toJson in interface GeoJson
      Returns:
      a JSON string which represents this MultiLineString geometry
      Since:
      1.0.0
    • typeAdapter

      public static com.google.gson.TypeAdapter<MultiLineString> typeAdapter(com.google.gson.Gson gson)
      Gson type adapter for parsing Gson to this class.
      Parameters:
      gson - the built Gson object
      Returns:
      the TYPE adapter for this class
      Since:
      3.0.0
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object