---
title: "SegmentVector | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Class SegmentVector

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[segments](#segments) [MAX\_VERTEX\_ARRAY\_LENGTH](#max_vertex_array_length)

### Methods[](#methods)

[createNewSegment](#createnewsegment) [destroy](#destroy) [forceNewSegmentOnNextPrepare](#forcenewsegmentonnextprepare) [get](#get) [getOrCreateLatestSegment](#getorcreatelatestsegment) [prepareSegment](#preparesegment) [simpleSegment](#simplesegment)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new SegmentVector(segments?: [Segment](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Segment/)\[\]): SegmentVector[](#constructorsegmentvector)
    
    #### Parameters
    
    -   `Optional`segments: [Segment](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Segment/)\[\]
    
    #### Returns SegmentVector
    

## Properties[](#properties-1)

### segments[](#segments)

segments: [Segment](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Segment/)\[\]

### `Static`MAX\_VERTEX\_ARRAY\_LENGTH[](#max_vertex_array_length)

MAX\_VERTEX\_ARRAY\_LENGTH: number

## Methods[](#methods-1)

### createNewSegment[](#createnewsegment)

-   createNewSegment(  
        layoutVertexArray: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/),  
        indexArray: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/),  
        sortKey?: number,  
    ): [Segment](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Segment/)[](#createnewsegment-1)
    
    Creates a new empty segment and returns it.
    
    #### Parameters
    
    -   layoutVertexArray: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/)
    -   indexArray: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/)
    -   `Optional`sortKey: number
    
    #### Returns [Segment](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Segment/)
    

### destroy[](#destroy)

-   destroy(): void[](#destroy-1)
    
    #### Returns void
    

### forceNewSegmentOnNextPrepare[](#forcenewsegmentonnextprepare)

-   forceNewSegmentOnNextPrepare(): void[](#forcenewsegmentonnextprepare-1)
    
    Causes the next call to [prepareSegment](#preparesegment) to always return a new segment, not reusing the current segment even if the new geometry would fit it.
    
    #### Returns void
    

### get[](#get)

-   get(): [Segment](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Segment/)\[\][](#get-1)
    
    #### Returns [Segment](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Segment/)\[\]
    

### getOrCreateLatestSegment[](#getorcreatelatestsegment)

-   getOrCreateLatestSegment(  
        layoutVertexArray: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/),  
        indexArray: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/),  
        sortKey?: number,  
    ): [Segment](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Segment/)[](#getorcreatelatestsegment-1)
    
    Returns the last segment, or creates a new segments if there are no segments yet.
    
    #### Parameters
    
    -   layoutVertexArray: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/)
    -   indexArray: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/)
    -   `Optional`sortKey: number
    
    #### Returns [Segment](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Segment/)
    

### prepareSegment[](#preparesegment)

-   prepareSegment(  
        numVertices: number,  
        layoutVertexArray: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/),  
        indexArray: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/),  
        sortKey?: number,  
    ): [Segment](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Segment/)[](#preparesegment-1)
    
    Returns the last segment if `numVertices` fits into it. If there are no segments yet or `numVertices` doesn't fit into the last one, creates a new empty segment and returns it.
    
    #### Parameters
    
    -   numVertices: number
    -   layoutVertexArray: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/)
    -   indexArray: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/)
    -   `Optional`sortKey: number
    
    #### Returns [Segment](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Segment/)
    

### `Static`simpleSegment[](#simplesegment)

-   simpleSegment(  
        vertexOffset: number,  
        primitiveOffset: number,  
        vertexLength: number,  
        primitiveLength: number,  
    ): SegmentVector[](#simplesegment-1)
    
    #### Parameters
    
    -   vertexOffset: number
    -   primitiveOffset: number
    -   vertexLength: number
    -   primitiveLength: number
    
    #### Returns SegmentVector
