LoadingObjectManager
Extends ICustomizable, IEventEmitter, IGeoObject, IParentOnMap.
The object manager that optimizes downloading of objects from the server. Allows optimally downloading, displaying, clustering and managing visibility for objects. The manager sends the data request to the specified url in the JSONP format. This format corresponds to the format of objects added to ObjectManager, ObjectManager.add. Note that objects drawn on the map via this manager can't have editing and dragging modes enabled.
Constructor | Fields | Events | Methods
Constructor
LoadingObjectManager(urlTemplate[, options])
Parameters:
Parameter |
Default value |
Description |
— |
Type: String URL data template. Supports special constructions similar to Layer. Substitutions are also supported:
|
|
— |
Type: Object Options.
|
|
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. |
|
256 |
Type: Number Tile size for data loading. |
|
'callback' |
Type: Boolean Name of the GET parameter that contains the value of the JSONP callback. |
|
null |
Type: String Template for a jsonp callback. Supports the same substitutions as urlTemplate. All characters other than letters and numbers will be replaced with '_'. If the parameter is omitted, the name of the jsonp callback will be generated automatically. Conversion examples for tileNumber=[3, 1], zoom=9:
|
|
false |
Type: Boolean Divide requests for data into requests for individual tiles. By default, requests are made for data for a rectangular region that contains multiple tiles. |
|
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. |
|
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. |
* Mandatory parameter/option.
Examples:
1.
var objectManager = new ymaps.LoadingObjectManager('http://myServer.com/tile?bbox=%b', {
// 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');
2.
An example of LoadingObjectManager response
jsonp_callback({
// The resonse contains error and data fields. If an error occurs, the "error" field
// contains the error code or description.
error: null,
data: {
type: 'FeatureCollection',
features: [
{
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [55, 35]
},
id: 23,
properties: {
balloonContent: 'Placemark balloon content',
iconContent: 'Placemark content'
},
options: {
preset: 'islands#yellowIcon'
}
}
]
}
});
Fields
Name |
Type |
Description |
Collection of clusters generated by the manager. |
||
Event manager. Inherited from IDomEventEmitter. |
||
IGeometry|null |
Geo object geometry. Inherited from IGeoObject. |
|
Collection of objects added to the layer. |
||
Options manager. Inherited from ICustomizable. |
||
Geo object data. Inherited from IGeoObject. |
||
State of the geo object. Inherited from IGeoObject. |
Events
Name |
Description |
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 class. More information is available in domEvent.manager. Inherited from IDomEventEmitter. |
|
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 class. More information is available in domEvent.manager. Inherited from IDomEventEmitter. |
|
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 class. More information is available in domEvent.manager. Inherited from IDomEventEmitter. |
|
Change to the geo object geometry. Instance of the Event class. Names of fields that are available via the Event.get method:
Inherited from IGeoObject. |
|
Map reference changed. Data fields:
Inherited from IParentOnMap. |
|
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 class. More information is available in domEvent.manager. Inherited from IDomEventEmitter. |
|
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 class. More information is available in domEvent.manager. Inherited from IDomEventEmitter. |
|
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 class. More information is available in domEvent.manager. Inherited from IDomEventEmitter. |
|
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 class. More information is available in domEvent.manager. Inherited from IDomEventEmitter. |
|
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 class. More information is available in domEvent.manager. Inherited from IDomEventEmitter. |
|
End of multitouch. This event is only available on devices that support multitouch. Returns an implementation of the IMultiTouchEvent interface. Inherited from IDomEventEmitter. |
|
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:
Inherited from IDomEventEmitter. |
|
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:
Inherited from IDomEventEmitter. |
|
Change to the object options. Inherited from ICustomizable. |
|
Change to the geo object overlay. Instance of the Event class. Names of fields that are available via the Event.get method:
Inherited from IGeoObject. |
|
The parent object reference changed. Data fields:
Inherited from IChild. |
|
Change to the geo object data. Instance of the Event class. Names of fields that are available via the Event.get method:
Inherited from IGeoObject. |
|
Mouse wheel scrolling. When using, keep in mind that mouse events are emulated when a touch screen is used. Instance of the MapEvent class. More information is available in domEvent.manager. Inherited from IDomEventEmitter. |
Methods
Name |
Returns |
Description |
Number[][]|null |
Calculates the boundaries in geo coordinates for an area that covers all the loaded objects in the manager. |
|
getMap() |
Returns reference to the map. Inherited from IParentOnMap. |
|
Object |
Getting information about the current state of an object added to the manager. |
|
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. |
||
IOverlay|null |
The method provides synchronous access to the overlay. Inherited from IGeoObject. |
|
IParentOnMap|null |
Returns link to the parent object, or null if the parent element was not set. Inherited from IChildOnMap. |
|
Number[][]|null |
Calculates the boundaries in global pixel coordinates for an area that covers all the loaded objects in the manager. |
|
String|null |
Returns URL of the tile with data. |
|
String |
Returns URL data template. |
|
Method that deletes all previously loaded data and sends a request for new data. |
||
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. |
||
Fields details
clusters
{objectManager.ClusterCollection} clusters
Collection of clusters generated by the manager.
Example:
objectManager.clusters.events.add('click', function (e) {
var objectId = e.get('objectId');
objectManager.clusters.balloon.open(objectId);
});
objects
{objectManager.ObjectCollection} objects
Collection of objects added to the layer.
Example:
objectManager.objects.events.add('click', function (e) {
var objectId = e.get('objectId');
objectManager.objects.balloon.open(objectId);
});
Methods details
getBounds
{Number[][]|null} getBounds()
Calculates the boundaries in geo coordinates for an area that covers all the loaded objects in the manager.
Returns array of the area's coordinates, or null if the manager has not been added to the map.
getObjectState
{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 |
|
— |
Type: Object ID of the object to get the state for. |
* Mandatory parameter/option.
Example:
// 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
{Number[][]|null} getPixelBounds()
Calculates the boundaries in global pixel coordinates for an area that covers all the loaded objects in the manager.
Returns array of the area's coordinates, or null if the manager has not been added to the map.
getTileUrl
{String|null} getTileUrl()
Returns URL of the tile with data.
Parameters:
Parameter |
Default value |
Description |
— |
Type: |
* Mandatory parameter/option.
Example:
var objectManager = new ymaps.LoadingObjectManager('http://myServer.com/tile?bbox=%b');
objectManager.getTileUrl = function (parameters) {
var boundingBox = parameters.boundingBox.join('~');
return this.getUrlTemplate().replace(/%b/g, boundingBox);
};
getUrlTemplate
{String} getUrlTemplate()
Returns URL data template.
reloadData
{} reloadData()
Method that deletes all previously loaded data and sends a request for new data.
setUrlTemplate
{} setUrlTemplate(urlTemplate)
Parameters:
Parameter |
Default value |
Description |
— |
Type: String URL data template. |
* Mandatory parameter/option.
Mandatory parameter/option.