---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/ObjectManager.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/dev/jsapi-v2-1/doc/en/llms.txt

# ObjectManager

Extends [ICustomizable](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ICustomizable.md), [IEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IEventEmitter.md), [IGeoObject](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md), [IParentOnMap](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IParentOnMap.md).

Object manager. Allows optimally displaying, clustering, and managing visibility for objects. Note that objects drawn on the map via this manager can't have editing and dragging modes enabled.

[Constructor](#constructor-summary) | [Fields](#properties-summary) | [Events](#events-summary) | [Methods](#methods-summary)

## Constructor {#constructor-summary}

```javascript
ObjectManager([options])
```

**Parameters:**

#|
|| **Parameter** | **Default value** | **Description**  ||
|| [`options`](#param-options) | — | Type: Object

Options. 
- You can set all the options specified in the [Clusterer](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Clusterer.md) description, 		except for hasBalloon and hasHint options.
- Cluster options are set with the "cluster" prefix. The list of options is specified in the description of [ClusterPlacemark](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ClusterPlacemark.md);
- Options for singular objects should be specified with the geoObject prefix. The list of options is specified in [GeoObject](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/GeoObject.md). Note that the manager ignores the 'visible' option. ||
|| [`options.clusterize`](#param-options.clusterize) | false | Type: Boolean

Flag indicating whether the objects should be clusterized. Note that clusterization only works for point objects at this time. When cluster mode is enabled, all non-point objects are ignored. ||
|| [`options.syncOverlayInit`](#param-options.syncOverlayInit) | false | Type: Boolean

A flag that allows creating overlays for objects synchronously. Note that when you create an overlay synchronously, you should ensure that the appropriate class, which implements the IOverlay interface, is loaded. By default, the overlays are created asynchronously, and the overlay class is loaded on demand. ||
|| [`options.viewportMargin`](#param-options.viewportMargin) | 128 | Type: Number\|Number[]

Offset for the area where the objects are shown. Use this option to expand the view area of objects relative to the visible area of the map. ||
|#


**Example:**

```javascript
var objectManager = new ymaps.ObjectManager({
    // Enabling clustering.
    clusterize: true,
    // Cluster options are set with the "cluster" prefix.
    clusterHasBalloon: false,
    // Geo object options are set with the "geoObject" prefix.
    geoObjectOpenBalloonOnClick: false
});

// You can set options directly for child collections.
objectManager.clusters.options.set({
    preset: 'islands#grayClusterIcons',
    hintContentLayout: ymaps.templateLayoutFactory.createClass('Group of objects')
});
objectManager.objects.options.set('preset', 'islands#grayIcon');
```

## Fields {#properties-summary}

#|
|| **Name** | **Type** | **Description** ||
|| [clusters](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#clusters) | [objectManager.ClusterCollection](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/objectManager.ClusterCollection.md) | Collection of clusters generated by the manager. ||
|| [events](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#events) | [IEventManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IEventManager.md) | Event manager.

Inherited from [IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#events). ||
|| [geometry](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#geometry) | [IGeometry](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeometry.md)\|null | Geo object geometry.

Inherited from [IGeoObject](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#geometry). ||
|| [objects](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#objects) | [objectManager.ObjectCollection](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/objectManager.ObjectCollection.md) | Collection of objects added to the layer. ||
|| [options](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ICustomizable.md#options) | [IOptionManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IOptionManager.md) | Options manager.

Inherited from [ICustomizable](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ICustomizable.md#options). ||
|| [properties](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#properties) | [IDataManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDataManager.md) | Geo object data.

Inherited from [IGeoObject](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#properties). ||
|| [state](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#state) | [IDataManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDataManager.md) | State of the geo object.

Inherited from [IGeoObject](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#state). ||
|#

## Events {#events-summary}

#|
|| **Name** | **Description** ||
|| [click](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-click) | Single left-click on the object. When using, keep in mind that mouse events are emulated when a touch screen is used. Instance of the [MapEvent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/MapEvent.md) class. More information is available in [domEvent.manager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/domEvent.manager.md).

Inherited from [IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-click). ||
|| [contextmenu](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-contextmenu) | Calls the element's context menu. When using, keep in mind that mouse events are emulated when a touch screen is used. Instance of the [MapEvent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/MapEvent.md) class. More information is available in [domEvent.manager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/domEvent.manager.md).

Inherited from [IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-contextmenu). ||
|| [dblclick](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-dblclick) | Double left-click on the object. When using, keep in mind that mouse events are emulated when a touch screen is used. Instance of the [MapEvent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/MapEvent.md) class. More information is available in [domEvent.manager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/domEvent.manager.md).

Inherited from [IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-dblclick). ||
|| [geometrychange](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#event-geometrychange) | Change to the geo object geometry. Instance of the [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md) class. Names of fields that are available via the [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md#get) method: 
- originalEvent: [IEvent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IEvent.md) - Original event of the geometry.

Inherited from [IGeoObject](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#event-geometrychange). ||
|| [mapchange](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IParentOnMap.md#event-mapchange) | Map reference changed. Data fields: 
- oldMap - Old map.
- newMap - New map.

Inherited from [IParentOnMap](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IParentOnMap.md#event-mapchange). ||
|| [mousedown](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-mousedown) | Pressing the mouse button over the object. When using, keep in mind that mouse events are emulated when a touch screen is used. Instance of the [MapEvent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/MapEvent.md) class. More information is available in [domEvent.manager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/domEvent.manager.md).

Inherited from [IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-mousedown). ||
|| [mouseenter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-mouseenter) | Pointing the cursor at the object. When using, keep in mind that mouse events are emulated when a touch screen is used. Instance of the [MapEvent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/MapEvent.md) class. More information is available in [domEvent.manager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/domEvent.manager.md).

Inherited from [IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-mouseenter). ||
|| [mouseleave](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-mouseleave) | Moving the cursor off of the object. When using, keep in mind that mouse events are emulated when a touch screen is used. Instance of the [MapEvent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/MapEvent.md) class. More information is available in [domEvent.manager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/domEvent.manager.md).

Inherited from [IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-mouseleave). ||
|| [mousemove](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-mousemove) | Moving the cursor over the object. When using, keep in mind that mouse events are emulated when a touch screen is used. Instance of the [MapEvent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/MapEvent.md) class. More information is available in [domEvent.manager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/domEvent.manager.md).

Inherited from [IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-mousemove). ||
|| [mouseup](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-mouseup) | Letting go of the mouse button over an object. When using, keep in mind that mouse events are emulated when a touch screen is used. Instance of the [MapEvent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/MapEvent.md) class. More information is available in [domEvent.manager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/domEvent.manager.md).

Inherited from [IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-mouseup). ||
|| [multitouchend](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-multitouchend) | End of multitouch. This event is only available on devices that support multitouch. Returns an implementation of the IMultiTouchEvent interface.

Inherited from [IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-multitouchend). ||
|| [multitouchmove](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-multitouchmove) | Repeating event during multitouch. This event is only available on devices that support multitouch. Returns an implementation of the IMultiTouchEvent interface with information about touches. Defines the touches property, which contains a list of touches. Every touch is described by an object that contains the following fields: 
- clientX - X coordinate of the touch relative to the viewable area of the browser.
- clientY - Y coordinate of the touch relative to the viewable area of the browser.
- pageX - X coordinate of the touch relative to the beginning of the document.
- pageY - Y coordinate of the touch relative to the beginning of the document.

Inherited from [IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-multitouchmove). ||
|| [multitouchstart](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-multitouchstart) | Start of multitouch. This event is only available on devices that support multitouch. Returns an implementation of the IMultiTouchEvent interface with information about touches. Defines the touches property, which contains a list of touches. Every touch is described by an object that contains the following fields: 
- clientX - X coordinate of the touch relative to the viewable area of the browser.
- clientY - Y coordinate of the touch relative to the viewable area of the browser.
- pageX - X coordinate of the touch relative to the beginning of the document.
- pageY - Y coordinate of the touch relative to the beginning of the document.

Inherited from [IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-multitouchstart). ||
|| [optionschange](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ICustomizable.md#event-optionschange) | Change to the object options.

Inherited from [ICustomizable](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ICustomizable.md#event-optionschange). ||
|| [overlaychange](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#event-overlaychange) | Change to the geo object overlay. Instance of the [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md) class. Names of fields that are available via the [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md#get) method: 
- overlay: [IOverlay](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IOverlay.md)\|null - Reference to the overlay.
- oldOverlay: [IOverlay](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IOverlay.md)\|null - Previous overlay of the geo object.

Inherited from [IGeoObject](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#event-overlaychange). ||
|| [parentchange](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IChild.md#event-parentchange) | The parent object reference changed.

Data fields:

- oldParent - Old parent.
- newParent - New parent.

Inherited from [IChild](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IChild.md#event-parentchange). ||
|| [propertieschange](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#event-propertieschange) | Change to the geo object data. Instance of the [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md) class. Names of fields that are available via the [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Event.md#get) method: 
- originalEvent: [IEvent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IEvent.md) - Original event of the data manager.

Inherited from [IGeoObject](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#event-propertieschange). ||
|| [wheel](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-wheel) | Mouse wheel scrolling. When using, keep in mind that mouse events are emulated when a touch screen is used. Instance of the [MapEvent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/MapEvent.md) class. More information is available in [domEvent.manager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/domEvent.manager.md).

Inherited from [IDomEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDomEventEmitter.md#event-wheel). ||
|#

## Methods {#methods-summary}

#|
|| **Name** | **Returns** | **Description** ||
|| [add](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#add)([objects](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#add-param-objects)) | [ObjectManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md) | Adding objects to the manager. ||
|| [getBounds](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#getBounds)() | Number[][]\|null | Calculates the boundaries in geo coordinates for an area that covers all the objects in the manager. ||
|| [getFilter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#getFilter)() | String\|Function|null | Returns the set filter function. ||
|| [getMap](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IParentOnMap.md#getMap)() | [Map](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Map.md) | Returns reference to the map.

Inherited from [IParentOnMap](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IParentOnMap.md#getMap). ||
|| [getObjectState](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#getObjectState)([id](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#getObjectState-param-id)) | Object | Getting information about the current state of an object added to the manager. ||
|| [getOverlay](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#getOverlay)() | [vow.Promise](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/vow.Promise.md) | Returns the promise object, which is confirmed by the overlay object at the time it is actually created, or is rejected with an appropriate error message.

Inherited from [IGeoObject](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#getOverlay). ||
|| [getOverlaySync](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#getOverlaySync)() | [IOverlay](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IOverlay.md)\|null | The method provides synchronous access to the overlay.

Inherited from [IGeoObject](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IGeoObject.md#getOverlaySync). ||
|| [getParent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IChildOnMap.md#getParent)() | [IParentOnMap](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IParentOnMap.md)\|null | Returns link to the parent object, or null if the parent element was not set.

Inherited from [IChildOnMap](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IChildOnMap.md#getParent). ||
|| [getPixelBounds](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#getPixelBounds)() | Number[][]\|null | Calculates the boundaries in global pixel coordinates for an area that covers all the objects in the manager. ||
|| [remove](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#remove)([objects](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#remove-param-objects)) | [ObjectManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md) | Deleting objects from the manager. ||
|| [removeAll](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#removeAll)() | [ObjectManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md) | Deleting all objects from the manager. ||
|| [setFilter](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#setFilter)([filterFunction](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#setFilter-param-filterFunction)) | Sets a filter function for objects. ||
|| [setParent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IChildOnMap.md#setParent)([parent](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IChildOnMap.md#setParent-param-parent)) | [IChildOnMap](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IChildOnMap.md) | Sets the parent object. If the null value is passed, the manager element will only be deleted from the current parent object.

Inherited from [IChildOnMap](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IChildOnMap.md#setParent). ||
|#

## Fields details {#field_detail}

### clusters {#clusters}

```javascript
{objectManager.ClusterCollection} clusters
```

Collection of clusters generated by the manager.

**Example:**

```javascript
objectManager.clusters.events.add('click', function (e) {
    var objectId = e.get('objectId');
    objectManager.clusters.balloon.open(objectId);
});
```

### objects {#objects}

```javascript
{objectManager.ObjectCollection} objects
```

Collection of objects added to the layer.

**Example:**

```javascript
objectManager.objects.events.add('click', function (e) {
    var objectId = e.get('objectId');
    objectManager.objects.balloon.open(objectId);
});
```

## Methods details {#method_detail}

### add {#add}

```javascript
{ObjectManager} add(objects)
```

Adding objects to the manager.

**Returns** reference to the object manager.

**Parameters:**

#|
|| **Parameter** | **Default value** | **Description**  ||
|| [`objects`](#add-param-objects)[*](*star) | — | Type: Object|Object[]\|String

String or object with a JSON description of the objects. JSON object descriptions are formed using the following approach (see the example below). An object may be an entity or a collection of entities. A collection of entities is made up of an object with the following fields: 
- type - Type of object. The value of the field must be "FeatureCollection".
- features - Array of child entities in the collection. Child objects may be entities or nested 	collections of entities.
An entity is made up of an object with the following fields: 
- id - Unique object ID. Mandatory field.
- type - Type of object. The value of the field must be "Feature".
- geometry - Object geometry. Contains the "type" and "coordinates" fields. The value corresponds to the [GeoObject](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/GeoObject.md) passed to the constructor.
- options - Options for the geo object.
- properties - Geo object data. ||
|#

\* Mandatory parameter/option.

**Examples:**

**1.**

```javascript
var objectManager = new ymaps.ObjectManager({ clusterize: true });
var currentId = 0;

// Adding a single object.
objectManager.add({
    type: 'Feature',
    id: currentId++,
    geometry: {
        type: 'Point',
        coordinates: [56.23, 34.79]
    },
    properties: {
        hintContent: 'Popup hint text',
        balloonContent: 'Balloon content'
    }
});
map.geoObjects.add(objectManager);
```

**2.**

```javascript
// Adding an array of point objects.
var objects = [];
for (var i = 0, l = coordinates.length; i < l; i++) {
    objects.push({
        type: 'Feature',
        id: currentId++,
        geometry: {
            type: 'Point',
            coordinates: coordinates[i]
        }
    });
}
objectManager.add(objects);
map.geoObjects.add(objectManager);
```

**3.**

```javascript
// Adding collections of objects.
var collection = {
    type: 'FeatureCollection',
    features: [{
        type: 'Feature',
        id: currentId++,
        geometry: {
            type: 'Point',
            coordinates: [24.34, 65.24]
        }
    }, {
        type: 'Feature',
        id: currentId++,
        geometry: {
            type: 'Point',
            coordinates: [25.34, 63.24]
        }
    }
]}
objectManager.add(collection);
map.geoObjects.add(objectManager);
```

**4.**

```javascript
// Adding non-point objects
var objects = [];

// Adding a circle
objects.push({
    type: 'Feature',
    id: 1,
    geometry: {
        type: 'Circle',
        coordinates: [55.755381, 37.619044],
        radius: 300
    }
});

// Adding a rectangle
objects.push({
    type: 'Feature',
    id: 2,
    geometry: {
        type: 'Rectangle',
        coordinates: [
            [55.764286, 37.606169],
            [55.759688, 37.620588]
        ]
    },
    options: {
        fillColor: '#FFFFFF',
        opacity: 0.8
    }
});

// Adding a polyline
objects.push({
    type: 'Feature',
    id: 3,
    geometry: {
        type: 'LineString',
        coordinates: [
            [55.75901100, 37.6308886],
            [55.7516538, 37.6299444],
            [55.74603822, 37.6380125]
        ]
    },
    options: {
        strokeColor: "#FF0000",
        strokeWidth: 5
    }
});

// Adding a polygon
objects.push({
    type: 'Feature',
    id: 4,
    geometry: {
        type: 'Polygon',
        coordinates: [[
            [55.75175065, 37.6041094],
            [55.75005637, 37.6137224],
            [55.742891186, 37.6166407],
            [55.74153546, 37.60342281],
            [55.74700649, 37.59775798]
        ]]
    },
    options: {
        opacity: 0.2,
        strokeWidth: 2,
        fillColor: '#00FF00'
    }
});

objectManager.add(objects);
```

### getBounds {#getBounds}

```javascript
{Number[][]|null} getBounds()
```

Calculates the boundaries in geo coordinates for an area that covers all the objects in the manager.

**Returns** array of the area's coordinates, or null if the manager has not been added to the map.

### getFilter   {#getFilter}

```javascript
{String|Function|null} getFilter()
```

**Returns** the set filter function.

### getObjectState {#getObjectState}

```javascript
{Object} getObjectState(id)
```

Getting information about the current state of an object added to the manager.

**Returns** object with following fields: 
- found - Attribute that indicates whether an object with the passed ID exists. Type: Boolean.
- isShown - Attribute that indicates whether the object is located in the visible area of the map. Type: Boolean.
- cluster - JSON description of the cluster the object was added to. Besides the required fields, it contains the properties.geoObjects field with an array 	of objects that are in the cluster. This field is returned only when clusterization is enabled.
- isClustered - Attribute indicating whether an object is in the cluster. This field is returned only when clusterization is enabled. Type: Boolean.
- isFilteredOut - Attribute indicating whether an object passed through filtration. If the filter is not set or the object passed through filtration, the value of the field is "false". Type: Boolean.

**Parameters:**

#|
|| **Parameter** | **Default value** | **Description**  ||
|| [`id`](#getObjectState-param-id)[*](*star) | — | Type: Object

ID of the object to get the state for. ||
|#

\* Mandatory parameter/option.

**Example:**

```javascript
// Opening the cluster balloon with the selected object.
// Getting data about the state of an object inside the cluster.
var objectState = objectManager.getObjectState(objects[1].id);
// Checking whether the object is located in the visible area of the map.
if (objectState.found && objectState.isShown) {
    // If the object is in a cluster, we open the cluster balloon with the appropriate object selected.
    if (objectState.isClustered) {
        objectManager.clusters.state.set('activeObject', objects[1]);
        objectManager.clusters.balloon.open(objectState.cluster.id);
    } else {
        // If the object isn't in a cluster, we open its own balloon.
        objectManager.objects.balloon.open(objects[i].id);
    }
}
```

### getPixelBounds {#getPixelBounds}

```javascript
{Number[][]|null} getPixelBounds()
```

Calculates the boundaries in global pixel coordinates for an area that covers all the objects in the manager.

**Returns** array of the area's coordinates, or null if the manager has not been added to the map.

### remove {#remove}

```javascript
{ObjectManager} remove(objects)
```

Deleting objects from the manager.

**Returns** reference to the object manager.

**Parameters:**

#|
|| **Parameter** | **Default value** | **Description**  ||
|| [`objects`](#remove-param-objects)[*](*star) | — | Type: Object|Object[]\|String

A string object with a JSON description of objects or an array of IDs of the objects being deleted. For the object description format, see the description of the method [ObjectManager.add](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/ObjectManager.md#add) ||
|#

\* Mandatory parameter/option.

**Examples:**

**1.**

```javascript
// Removing objects with IDs 0 and 56.
objectManager.remove([0, 56]);
```

**2.**

```javascript
// Deleting an array of objects
objectManager.remove([
    {
        type: 'Feature',
        id: 23,
        geometry: {
            type: 'Point',
            coordinates: [45.33, 24.33]
        }
    },
    {
        type: 'Feature',
        id: 52,
        geometry: {
            type: 'Point',
            coordinates: [45.23, 24.34]
        }
    },
]);
```

**3.**

```javascript
// Deleting a collection of objects.
objectManager.remove({
    type: 'FeatureCollection',
    features: [
         // Describing objects in the collection
        // ...
    ]
});
```

### removeAll {#removeAll}

```javascript
{ObjectManager} removeAll()
```

Deleting all objects from the manager.

**Returns** self-reference.

**Example:**

```javascript
objectManager.removeAll();
```

### setFilter {#setFilter}

```javascript
{} setFilter(filterFunction)
```

Sets a filter function for objects.

**Parameters:**

#|
|| **Parameter** | **Default value** | **Description**  ||
|| [`filterFunction`](#setFilter-param-filterFunction)[*](*star) | — | Type: Function\|String

Filter function. Takes a single object added to ObjectManager. If the function returns true, the object will be processed. If false, the object will be excluded from further processing. A string can also be passed as a filter. The following keywords are available in the string filter: 
- options - Accessing the object's options.
- properties - Accessing the object's data.
- geometry - Accessing the object's geometry.
- id - Accessing the object's identifier.
For a filter, you can specify an expression that returns true or false. ||
|#

\* Mandatory parameter/option.

**Examples:**

**1.**

```javascript
// Skipping objects with an ID under 100.
objectManager.setFilter('id > 100');
```

**2.**

```javascript
// Only objects of the specified types will be displayed on the map.
objectManager.setFilter('properties.type == "cafe" || properties.type == "pharmacy"');
```

**3.**

```javascript
// You can define a filter function.
objectManager.setFilter(function (object) {
    return object.properties.name != 'The one who cannot be shown.';
});
```

[*star]: Mandatory parameter/option.