---
title: "GridIndex | 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 GridIndex<T>

#### Type Parameters

-   T extends [GridKey](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GridKey/)

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[bboxes](#bboxes) [boxCells](#boxcells) [boxKeys](#boxkeys) [boxUid](#boxuid) [circleCells](#circlecells) [circleKeys](#circlekeys) [circles](#circles) [circleUid](#circleuid) [height](#height) [width](#width) [xCellCount](#xcellcount) [xScale](#xscale) [yCellCount](#ycellcount) [yScale](#yscale)

### Methods[](#methods)

[hitTest](#hittest) [hitTestCircle](#hittestcircle) [insert](#insert) [insertCircle](#insertcircle) [keysLength](#keyslength) [query](#query)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new GridIndex<[T](#constructorgridindext) extends [GridKey](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GridKey/)\>(  
        width: number,  
        height: number,  
        cellSize: number,  
    ): GridIndex<[T](#t)\>[](#constructorgridindex)
    
    #### Type Parameters
    
    -   T extends [GridKey](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GridKey/)
    
    #### Parameters
    
    -   width: number
    -   height: number
    -   cellSize: number
    
    #### Returns GridIndex<[T](#t)\>
    

## Properties[](#properties-1)

### bboxes[](#bboxes)

bboxes: number\[\]

### boxCells[](#boxcells)

boxCells: number\[\]\[\]

### boxKeys[](#boxkeys)

boxKeys: [T](#t)\[\]

### boxUid[](#boxuid)

boxUid: number

### circleCells[](#circlecells)

circleCells: number\[\]\[\]

### circleKeys[](#circlekeys)

circleKeys: [T](#t)\[\]

### circles[](#circles)

circles: number\[\]

### circleUid[](#circleuid)

circleUid: number

### height[](#height)

height: number

### width[](#width)

width: number

### xCellCount[](#xcellcount)

xCellCount: number

### xScale[](#xscale)

xScale: number

### yCellCount[](#ycellcount)

yCellCount: number

### yScale[](#yscale)

yScale: number

## Methods[](#methods-1)

### hitTest[](#hittest)

-   hitTest(  
        x1: number,  
        y1: number,  
        x2: number,  
        y2: number,  
        overlapMode: [OverlapMode](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.OverlapMode/),  
        predicate?: (key: [T](#t)) \=> boolean,  
    ): boolean[](#hittest-1)
    
    #### Parameters
    
    -   x1: number
    -   y1: number
    -   x2: number
    -   y2: number
    -   overlapMode: [OverlapMode](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.OverlapMode/)
    -   `Optional`predicate: (key: [T](#t)) \=> boolean
    
    #### Returns boolean
    

### hitTestCircle[](#hittestcircle)

-   hitTestCircle(  
        x: number,  
        y: number,  
        radius: number,  
        overlapMode: [OverlapMode](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.OverlapMode/),  
        predicate?: (key: [T](#t)) \=> boolean,  
    ): boolean[](#hittestcircle-1)
    
    #### Parameters
    
    -   x: number
    -   y: number
    -   radius: number
    -   overlapMode: [OverlapMode](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.OverlapMode/)
    -   `Optional`predicate: (key: [T](#t)) \=> boolean
    
    #### Returns boolean
    

### insert[](#insert)

-   insert(key: [T](#t), x1: number, y1: number, x2: number, y2: number): void[](#insert-1)
    
    #### Parameters
    
    -   key: [T](#t)
    -   x1: number
    -   y1: number
    -   x2: number
    -   y2: number
    
    #### Returns void
    

### insertCircle[](#insertcircle)

-   insertCircle(key: [T](#t), x: number, y: number, radius: number): void[](#insertcircle-1)
    
    #### Parameters
    
    -   key: [T](#t)
    -   x: number
    -   y: number
    -   radius: number
    
    #### Returns void
    

### keysLength[](#keyslength)

-   keysLength(): number[](#keyslength-1)
    
    #### Returns number
    

### query[](#query)

-   query(x1: number, y1: number, x2: number, y2: number): [QueryResult](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.QueryResult/)<[T](#t)\>\[\][](#query-1)
    
    #### Parameters
    
    -   x1: number
    -   y1: number
    -   x2: number
    -   y2: number
    
    #### Returns [QueryResult](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.QueryResult/)<[T](#t)\>\[\]
