# mapshape

Planar shape vector

## Description

A mapshape vector is an object that represents planar vector features with
either point, line, or polygon topology. The features consist of *x*-
and *y*-coordinates and associated attributes.

Attributes that vary spatially are termed Vertex properties. These elements of the
mapshape vector are coupled such that the length of the *x*- and
*y*-coordinate property values are always equal in length to any
additional dynamic Vertex properties.

Attributes that only pertain to the overall feature (point, line, polygon) are termed
Feature properties. Feature properties are not linked to the autosizing mechanism of the
Vertex properties. Both property types can be added to a mapshape vector after
construction using standard dot (`.`

) notation.

To create a planar point, line, or polygon shape for use with a geospatial table,
create a `mappointshape`

,
`maplineshape`

,
or `mappolyshape`

object instead.

## Creation

### Syntax

### Description

`s = mapshape()`

constructs an empty mapshape vector,
`s`

, with these default property
settings.

s = 0x1 mapshape vector with properties: Collection properties: Geometry: 'line' Metadata: [1x1 struct] Vertex properties: X: [] Y: []

`s`

is always a column vector.

`s = mapshape(`

constructs a mapshape vector and sets the `x`

,`y`

)`X`

and
`Y`

property values equal to vectors `x`

and `y`

.

`s = mapshape(`

constructs a mapshape vector, then adds dynamic properties to the mapshape
vector using `x`

,`y`

,`Name,Value`

)`Name`

, `Value`

argument
pairs. You can specify several name-value pair arguments in any order as
`Name1,Value1,...,NameN,ValueN`

.

`s = mapshape(`

constructs
a `structArray`

)`mapshape`

vector, assigning the fields of the structure
array, `structArray`

, as dynamic properties. Field values in
`structArray`

that are not numeric, logical, string
scalars, string arrays, character vectors, cell arrays of character vectors, or
cell arrays of numeric, logical, or cell array of character vectors values are
ignored. You can specify vectors within cell arrays as either row or column
vectors.

`s = mapshape(`

constructs a new `x`

,`y`

,`structArray`

)`mapshape`

vector, sets the
`X`

and `Y`

properties equal to vectors
`x`

and `y`

, and sets dynamic
properties from the field values of `structArray`

.

## Properties

## Object Functions

`append` | Append features to geographic or planar vector |

`cat` | Concatenate geographic or planar vector |

`disp` | Display geographic or planar vector |

`fieldnames` | Return dynamic property names of geographic or planar vector |

`isempty` | Determine if geographic or planar vector is empty |

`isfield` | Determine if dynamic property exists in geographic or planar vector |

`isprop` | Determine if property exists in geographic or planar vector |

`length` | Return number of elements in geographic or planar vector |

`properties` | Return property names of geographic or planar vector |

`rmfield` | Remove dynamic property from geographic or planar vector |

`rmprop` | Remove property from geographic or planar vector |

`size` | Return size of geographic or planar vector |

`struct` | Convert geographic or planar vector to scalar structure |

`vertcat` | Vertically concatenate geographic or planar vectors |

## Examples

## More About

## Tips

The

`mapshape`

function separates features using`NaN`

values. If you display a feature by using a scalar to index into the mapshape vector, such as`s(1)`

, then`NaN`

values that separate the features do not display.If

`X`

,`Y`

, or a dynamic property is set with more values than features in the mapshape vector, then all other properties expand in size using 0 for numeric values and an empty character vector (`''`

) for cell values.If a dynamic property is set with fewer values than the number of features, then this dynamic property expands to match the size of the other properties.

If the

`X`

or`Y`

property of the mapshape vector is set with fewer values than contained in the object, then all other properties shrink in size.If either

`X`

or`Y`

is set to [ ], then both coordinate properties are set to [ ] and all dynamic properties are removed.If a dynamic property is set to [ ], then it is removed from the object.

The mapshape vector can be indexed like any MATLAB

^{®}vector. You can access any element of the vector to obtain a specific feature. The following example demonstrates this behavior:Construct a Mapshape Vector Containing Multiple Features and Indexing Behaviors

This example builds a mapshape vector from a structure array; adds a Metadata property and demonstrates selective indexing behavior. Construct a Mapshape Vector and Add Metadata and Indexing

## Version History

**Introduced in R2012a**