Main Content

maplineshape

Line shape in planar coordinates

Since R2021b

Description

A maplineshape object represents a line or multiline in planar coordinates. A multiline is an individual line shape that contains a set of separate lines.

To represent a line or multiline in geographic coordinates, use a geolineshape object instead.

Creation

To create maplineshape objects, either:

  • Import line data in planar coordinates as a geospatial table using the readgeotable function, and then query the Shape variable of the table.

  • Use the maplineshape function (described here).

Description

shape = maplineshape(x,y) creates a maplineshape object or array of maplineshape objects with vertices at the specified x- and y-coordinates. The sizes of x, y, and the maplineshape object array shape match.

example

Input Arguments

expand all

x-coordinates, specified as a numeric vector or a cell array of numeric vectors.

  • Create a line by specifying a vector, such as [65 62 53 66].

  • Create a multiline by specifying a vector and including line breaks as NaN values, such as [55 34 18 NaN 14 19 42 26].

  • Create an array of lines and multilines by specifying a cell array of vectors, such as {[55 34 18],[14 19 NaN 42 26 31]}.

The NaN values in x must correspond to the NaN values in y.

The size of x must match the size of y. For cell arrays, the size of the vector in each cell of x must match the size of the vector in the corresponding cell of y.

Data Types: double | cell

y-coordinates, specified as a numeric vector or a cell array of numeric vectors.

  • Create a line by specifying a vector, such as [4 59 121 98].

  • Create a multiline by specifying a vector and including line breaks as NaN values, such as [78 56 63 NaN 83 106 104 126].

  • Create an array of lines and multilines by specifying a cell array of vectors, such as {[78 56 63],[83 106 NaN 104 126 131]}.

The NaN values in x must correspond to the NaN values in y.

The size of x must match the size of y. For cell arrays, the size of the vector in each cell of x must match the size of the vector in the corresponding cell of y.

Data Types: double | cell

Properties

expand all

This property is read-only.

Number of line parts, returned as an array of nonnegative integers.

For a maplineshape scalar, the value of NumParts is 1 when the maplineshape object represents a single line and more than 1 when the object represents a multiline.

For a maplineshape array, the size of NumParts matches the size of the array.

Data Types: double

This property is read-only.

Geometric type, returned as "line".

Data Types: string

This property is read-only.

Coordinate system type, returned as "planar".

Data Types: string

Projected coordinate reference system (CRS), specified as a projcrs object. A projected CRS consists of a geographic CRS and several parameters that are used to transform coordinates to and from the geographic CRS.

Object Functions

geoplotPlot points, lines, and polygons on map
mapclipClip planar shape to xy-limits or polygon
bufferBuffer shape in geographic or planar coordinates
linelengthLength of line shape in geographic or planar coordinates
boundsBounds of shape in geographic or planar coordinates
ismultipointDetermine which array elements are multipoint shapes

Examples

collapse all

Import a shapefile containing a network of road segments in Concord, MA as a geospatial table. The shapefile represents the road segments using lines. Get information about the fourth line by querying the Shape variable of the table.

GT = readgeotable("concord_roads.shp");
GT.Shape(4)
ans = 
  maplineshape with properties:

                NumParts: 1
                Geometry: "line"
    CoordinateSystemType: "planar"
            ProjectedCRS: [1×1 projcrs]

Display the road segments on a street map.

geoplot(GT)
geobasemap streets

Create an individual line as a maplineshape scalar. Specify the projected CRS as World Equidistant Cylindrical, which has the EPSG authority code 4087.

x = [4 59 121 98];
y = [65 62 53 66];
lineshp = maplineshape(x,y);

p = projcrs(4087);
lineshp.ProjectedCRS = p
lineshp = 
  maplineshape with properties:

                NumParts: 1
                Geometry: "line"
    CoordinateSystemType: "planar"
            ProjectedCRS: [1x1 projcrs]

Create a multiline as a maplineshape scalar.

x = [78 56 63 NaN 83 106 104 126];
y = [55 34 18 NaN 14 19 42 26];
multiline = maplineshape(x,y);
multiline.ProjectedCRS = p
multiline = 
  maplineshape with properties:

                NumParts: 2
                Geometry: "line"
    CoordinateSystemType: "planar"
            ProjectedCRS: [1x1 projcrs]

Create one individual line and one multiline as a 1-by-2 maplineshape array.

x = {[78 56 63],[83 106 NaN 104 126 113]};
y = {[55 34 18],[14 19 NaN 42 26 37]};
lineMultiline = maplineshape(x,y);
lineMultiline.ProjectedCRS = p
lineMultiline=1×2 maplineshape array with properties:
                NumParts: [1 2]
                Geometry: "line"
    CoordinateSystemType: "planar"
            ProjectedCRS: [1x1 projcrs]

Version History

Introduced in R2021b